Where Testing Fits in the SDLC
Software doesn't get built in one shot. It goes through a series of phases — planning, design, coding, testing, deployment, and maintenance. This is the Software Development Lifecycle (SDLC), and understanding where testing fits into it is crucial.
The Old Way: Waterfall
In the waterfall model, each phase happens in sequence: requirements, design, implementation, testing, deployment. Testing comes near the end, after all the code is written.
The problem? If you find a fundamental design flaw during testing, you've already spent months building on a broken foundation. Fixing it is expensive, painful, and sometimes impossible within the deadline.
The Modern Way: Agile and Shift-Left
Modern teams work in short cycles (sprints, typically 1-2 weeks). Testing happens throughout the cycle, not at the end. This is called shift-left — moving testing activities earlier in the process.
In an agile team, testers are involved from day one:
- During planning: Reviewing requirements, asking "what if" questions, identifying risks
- During development: Writing test cases alongside code, pairing with developers
- During integration: Running automated tests in CI, exploratory testing on new features
- After deployment: Monitoring production, testing in production environments
The Testing Quadrants
Lisa Crispin and Janet Gregory created a useful model called the Testing Quadrants that categorizes testing activities:
| Business-Facing | Technology-Facing | |
|---|---|---|
| Supporting the Team | Q2: Functional tests, examples, prototypes | Q1: Unit tests, component tests |
| Critiquing the Product | Q3: Exploratory testing, usability, UAT | Q4: Performance, security, reliability |
- Q1 and Q2 (left side) support the team during development — they help build the right thing.
- Q3 and Q4 (right side) critique the finished product — they find problems before users do.
A healthy test strategy covers all four quadrants. Most teams over-invest in Q1 (unit tests) and under-invest in Q3 (exploratory testing).
Continuous Testing
In modern DevOps, testing is continuous. Tests run automatically on every commit, every merge, and every deployment. The goal is a fast feedback loop: break something, know about it in minutes, fix it before it reaches users.
This is why learning about CI/CD matters even if you're not a DevOps engineer. Your tests need to run in pipelines, and understanding how those pipelines work makes you a more effective tester.
The key takeaway: Testing isn't a phase — it's a continuous activity that starts when the first requirement is written and doesn't stop until the software is retired.
In the Testing Quadrants model, where does exploratory testing belong?
Exploratory testing is business-facing (it evaluates the product from a user perspective) and critiques the product (it finds problems rather than supporting development). Q3 also includes usability testing and UAT.
Put these SDLC testing activities in the correct shift-left order, from earliest to latest.
What is the main problem with testing in the Waterfall model?
Click to reveal answer
Testing comes near the end, after all code is written. If a fundamental design flaw is found during testing, it's expensive and painful to fix because months of development were built on a broken foundation.
Click to flip back