PASC study materials
PASC study resources

PASC: Software Testing and Quality Assurance

PASC ยท Work through your exam, one topic at a time.

All guide sections

Software Testing and Quality Assurance

Testing provides information about quality; QA is the broader process of building quality in. Know the test levels - unit, integration, system, acceptance - and their purposes: unit tests isolate logic, integration tests exercise interfaces, system tests validate end-to-end behavior, acceptance tests confirm fitness for use. Distinguish verification from validation and black-box (specification-driven: equivalence partitioning, boundary value analysis, decision tables) from white-box (structure-driven: statement, branch, path coverage) techniques.

Master the testing vocabulary: a fault (defect) may cause an error (incorrect state) that produces a failure (observable deviation). Testing can show the presence of defects, never their absence - Dijkstra's point. Understand regression testing, smoke testing, exploratory testing, and the test pyramid (many fast unit tests, fewer integration, fewest UI). Know static analysis and code review find defects without executing code.

Traps: equating 100% statement coverage with correctness (branches and conditions may still hide defects); assuming more testing always means better quality regardless of risk (risk-based prioritization matters); and confusing a test stub (canned responses) with a mock (behavior verification). Questions often describe a defect found late - the lesson is usually earlier, cheaper detection, not more testers.

Rule of thumb: test the boundaries, not the middle - most defects cluster at edges and transitions.

Worked example: For an input valid from 1 to 100, boundary value analysis tests 0, 1, 100, 101 (and often 2, 99), not 50. Equivalence partitioning adds one representative from each valid/invalid class.