Theoretical Foundation Quiz Review Flashcards
What is legacy code?
code that continues to meet the customers’ needs but is difficult to evolve and maintain
What is beautiful code?
long-lasting code that is easy to evolve and meets the customers’ needs.
Why is it important to learn to deal with legacy code?
It might be difficult to rewrite old software
What is quality assurance?
It is the process or standards that result in high quality products and improve the manufacturing process
What is quality software?
It is software that meets the customers’ needs and is easy to evolve. Quality means “fitness for use.”
What does verification mean?
Did you build the thing right? Did you meet the specification?
What do we do to assure software quality?
Tests!
What is the approach that makes exhaustive testing feasible? Divide and ?
Divide and Conquer. We can significantly cut down the number of test cases by approaching the problem hierarchically.
What are the different types of tests: unit, …?
Unit Testing: makes sure a single procedure does what was expected
Module Testing: tests across individual units
Integration Testing: ensures that the interfaces between the units have consistent assumptions and communicate correctly,
System/Acceptance Testing: test to see if the integrated program meets its specifications
Widget Tests
What is test coverage?
It is the percentage of lines of code that were run by the test suite.
What does regression testing mean?
It means automatically rerunning old tests so new changes don’t break old code.
What is continuous integration testing?
It is regression testing every time new code is added.
How software engineering originated?
Margaret Hamilton used the term to distinguish it from hardware and other kinds of engineering
What does Plan-and-Document mean?
Extensive Planning Up Front
The concept behind the P and D models. Why don’t P and D models work well?
The concept is extensive planning before you ever start coding and write detailed documentation.
The P&D models don’t work well because any changes require changes in the documentation, which means going over deadlines. Changes are inevitable in production.
What was a model that tried to fix it by prototypes?(Spiral) What is the bad part of Spiral?
The model was Spiral. The bad part was that it used iterations that were too long apart from each other.
Make sure you have read the Agile Manifesto
-Individuals and Interactions over Processes and Tools
-Working Software over Comprehensive Documentation
-Customer Collaboration over Contract Negotiation
-Responding to Change over Following Plans
Who created the concept of Extreme Programming?
Kent Beck
Does Extreme Programming advocate shorter or larger iterations?
Shorter iterations
Does XP advocate writing tests before code or tests after code?
Writing tests before writing code, either using BDD or TDD
Does XP advocate working alone or working in pairs?
Working in pairs
What doe Agile emphasize to reduce mistakes?
Test-Driven Development
What does Agile emphasize to validate customer requirements?
User Stories