Software Testing and Verification
What the domain covers
This domain tests test levels, techniques, coverage, and the distinction between verification and validation. Expect equivalence partitioning, boundary value analysis, decision tables, state transition testing, structural coverage, and regression testing.
Core rules
- Verification asks whether the product was built right; validation asks whether the right product was built.
- Black-box techniques derive tests from specifications; white-box techniques derive tests from code structure.
- Boundary value analysis targets edges because defects cluster at boundaries.
- Coverage is a measure, not a goal by itself; 100% statement coverage can still miss branches.
- Every test needs a reliable oracle and repeatable setup.
Worked example
Input field accepts integers from 1 to 100 inclusive. Equivalence classes are invalid below 1, valid 1–100, and invalid above 100. Boundary values are 0, 1, 2, 99, 100, and 101. Reasoning: test one value from each invalid class, plus both sides of each boundary. Add non-integer and empty inputs if the specification allows them. This catches off-by-one errors that a single mid-range value cannot reveal.
Traps
- Testing only valid inputs and ignoring invalid classes.
- Confusing statement coverage with branch or condition coverage.
- Using the implementation as the only oracle.
- Omitting regression tests after a fix.
Exam focus
Select the technique that matches the specification structure, then justify the chosen values.