Testing Throughout the Software Development Lifecycle
Core concepts
SDLC models include sequential (waterfall), iterative, incremental, and Agile. Each affects when and how testing happens. The V-model pairs development activities with test levels: component testing, component integration testing, system testing, system integration testing, and acceptance testing. Test levels differ by objective, test basis, object, typical defects, and responsibility. Test types describe what is tested: functional, non-functional, black-box, white-box, confirmation, regression, and smoke. Confirmation testing checks a specific fix; regression testing checks that changes did not break unaffected areas. Acceptance testing includes user acceptance, operational, contractual, regulatory, alpha, and beta forms.
Shift-left means starting testing early, reviewing requirements and designing tests before code. Agile favors continuous feedback, automation, and whole-team quality. Maintenance testing is triggered by modification, migration, or retirement and begins with impact analysis.
Traps
Candidates mix levels with types, component integration with system integration, and confirmation with regression. Alpha testing occurs at the developer's site; beta at user sites. A test level is not a phase.
Worked example
A tax rate changes. Confirmation testing runs the specific tax calculation with the new rate; regression testing reruns invoice totals, discounts, and reports that depend on tax. Impact analysis decides the regression scope.
Rule of thumb: confirmation = "did we fix this?"; regression = "did we break anything else?"