Skip to main content
Beginner reading +10 XP

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.

Exercise Multiple Choice

In the Testing Quadrants model, where does exploratory testing belong?

Exercise Put in Order

Put these SDLC testing activities in the correct shift-left order, from earliest to latest.

Review requirements and ask 'what if' questions
Monitor production and test in live environments
Run automated tests in CI pipeline
Write test cases alongside development
Exercise Flashcard

What is the main problem with testing in the Waterfall model?

Click to reveal answer