2.1 SDLC Models and Good Testing Practices
Key Takeaways
- Testing occurs throughout the software development lifecycle, not only after coding is complete.
- Sequential, iterative, incremental, and agile models organize testing differently, but all need clear test objectives and feedback.
- Good testing practices include early involvement, suitable test levels, test basis review, traceability, and appropriate completion criteria.
- Each development activity should have a corresponding testing activity that can provide feedback.
- CTFL questions often ask how testing adapts to an SDLC model rather than which model is universally best.
Testing Fits the Lifecycle
An SDLC model describes how software work is organized from concept through delivery and maintenance. CTFL v4.0.1 does not treat one model as always superior. Instead, it asks whether testing is integrated in a way that provides timely feedback, manages risk, and supports quality goals.
In a sequential model, phases such as requirements, design, implementation, test, and release may appear in a defined order. Testing still should not wait silently until the end. Testers can review requirements, plan test levels, design tests from specifications, and prepare environments before code is complete.
Iterative and incremental models deliver work in cycles or increments. Testing happens repeatedly as each increment is built and integrated. This supports earlier feedback, but it also creates regression risk because new increments may affect existing behavior.
Agile approaches use short iterations, close stakeholder collaboration, frequent feedback, and evolving product understanding. Testing is usually continuous and team-based. Testers contribute to backlog refinement, acceptance criteria, test design, exploratory testing, automation, and release decisions.
| Good practice | Why it matters |
|---|---|
| Test early | Defects are cheaper to prevent or find near their origin |
| Review the test basis | Ambiguous requirements lead to weak tests and wrong products |
| Define test levels | Different levels catch different types of defects |
| Maintain traceability | Coverage, impact analysis, and reporting become easier |
| Use completion criteria | Stakeholders know when testing evidence is sufficient |
A useful exam idea is that each development activity can have a corresponding testing activity. Requirements can be reviewed and used for acceptance tests. Architecture can be reviewed and used for integration test planning. Code can be supported by component testing and static analysis. System behavior can be evaluated by system testing and acceptance testing.
Good testing practices are stable even when the lifecycle changes. Test objectives should be clear. The test basis should be testable. Test environments and data should be managed. Defects should be reported with useful evidence. Test results should inform decisions.
The lifecycle affects timing and emphasis. In a sequential project, formal phase gates and documents may be important. In agile, lightweight documentation and continuous conversation may dominate. In a regulated environment, both agility and formal evidence may be needed.
CTFL questions may present a team that writes all tests after release or waits until code freeze to review requirements. Those are warning signs. Testing throughout the SDLC means defects, risks, and unclear expectations are addressed as early and continuously as practical.
Which statement best reflects good testing practice across SDLC models?
Which practices support effective testing throughout the SDLC?
Select all that apply