L03: Verification Methods — Revision Questions
Format: Explain in your own words, give brief examples
Question 1: Four Verification Techniques — Definitions
List the four verification techniques (INCOSE taxonomy) and provide a one-sentence definition for each.
For each technique, give one example of when it would be the most appropriate choice.
Question 2: Inspection Techniques Spectrum
Inspection techniques range from formal (Fagan) to informal (ad-hoc).
Name four different inspection techniques in order from most formal to least formal. For each, describe when it would be appropriate to use.
Question 3: Inspection vs Testing
Inspection and testing are complementary verification techniques.
Compare and contrast inspection and testing across three dimensions (e.g., what they find, timing, detection method). Explain why using both is recommended.
Question 4: Safety vs Liveness Properties
Static analysis can verify different types of properties.
Define safety properties and liveness properties. Give one concrete software example of each type of property.
Question 5: Rice’s Theorem — Sound vs Complete
Explain the trade-off between soundness and completeness in static analysis tools.
What does Rice’s Theorem tell us about the fundamental limitations of static analysis? How do commercial tools typically handle this trade-off?
Question 6: Test Levels
Describe the four test levels: Unit, Integration, System, and Acceptance.
For each level, identify: (a) what is being tested, (b) who typically performs the testing, and (c) one example of a defect that would be found at that level.
Question 7: Test Doubles
Unit testing often requires isolating the unit under test using test doubles.
What is the role of mocks?
Question 8: Black Box vs White Box
Compare black box testing and white box testing.
For each approach, describe: (a) what knowledge the tester needs, (b) what types of defects it finds, and (c) one testing technique associated with it.
Question 9: Google’s Test Pyramid
Google recommends a test pyramid with a 70/20/10 ratio.
What do these percentages represent? Explain why this ratio is recommended. What is the “ice cream cone” anti-pattern and why is it problematic?
Question 10: Demonstration
Define demonstration and explain when it is the only appropriate verification method. Give two examples of demonstration activities in software development.
Question 11: Defense in Depth
Different verification techniques are suited to different quality characteristics.
For the following quality characteristics, identify which verification technique(s) are most effective and explain why:
- Maintainability
- Usability
- Security
Topics Covered
| Topic | Questions |
|---|---|
| Four Verification Techniques | Q1, Q11 |
| Inspection | Q2, Q3 |
| Static Analysis | Q4, Q5 |
| Testing Fundamentals | Q6, Q7, Q8 |
| Test Pyramid | Q9 |
| Demonstration | Q10 |