Durable Quality
Contents

SDLC & STLC

The Software Development Life Cycle (SDLC) describes how software is planned, built, released and maintained. The Software Testing Life Cycle (STLC) describes how it is tested. STLC runs inside SDLC, and it starts when requirements exist, not when code is finished.

AspectSDLCSTLC
FocusBuilding the productVerifying and validating the product
OwnerThe whole team: product, design, engineeringQA and test engineers, together with developers
StartsWith a business need or ideaAs soon as requirements exist
OutputWorking softwareEvidence of quality: results, defects, a closure report

SDLC: the six phases

PhaseGoalKey outputsQuality activities
1RequirementsDecide what to build and whyUser stories, acceptance criteriaReview for ambiguity, testability and missing edge cases
2DesignDecide how to build itArchitecture, data models, API contractsDesign reviews, threat modelling, testable interfaces
3ImplementationBuild itSource code, unit testsCode review, static analysis, unit tests, TDD
4TestingVerify and validate itTest results, defect reportsIntegration, system, regression and acceptance testing
5DeploymentRelease it to usersRelease build, release notesSmoke tests, canary checks, a tested rollback plan
6MaintenanceOperate and improve itPatches, enhancementsMonitoring, incident analysis, regression tests for fixes

Every SDLC model uses these phases. Waterfall runs them once, in order. Agile runs the whole loop every sprint. The V-model pairs each build phase with a test level. DevOps compresses the loop with CI/CD so it can run many times a day.

STLC: the six phases

Entry criteria say when a phase may start. Exit criteria say when it is done. Write both down and check them before moving on.
PhaseEntry criteriaActivitiesDeliverables
1Requirement analysisRequirements or stories are availableIdentify testable requirements, raise questions, define scope, assess automationRequirements traceability matrix (RTM), clarified questions
2Test planningRequirements analysedChoose strategy, scope, tools, roles, schedule; assess risks; estimate effortTest plan, effort estimate
3Test case developmentTest plan approvedWrite test cases and automation scripts, prepare test data, peer reviewReviewed test cases, test data, scripts
4Environment setupArchitecture known; often parallel to phase 3Provision environments, seed data and accounts, smoke-test the environmentReady environment, smoke-test results
5Test executionTest cases, environment and a testable build are readyRun tests, log defects, retest fixes, run regressionExecution report, defect reports, updated RTM
6Test cycle closureExecution done or exit criteria metEvaluate coverage against exit criteria, collect metrics, hold a retrospectiveTest closure report, lessons learned

How they fit together: the V-model

The V-model makes the link between the two lifecycles explicit. Each build phase on the left produces the basis for a test level on the right. Tests for a level are designed when its partner phase finishes, long before they run.

Requirements pair with acceptance testing, system design with system testing, architecture with integration testing, and module design with unit testing.
  • During requirements, analyse testability and draft acceptance tests.
  • During design, plan system and integration tests against the contracts.
  • During implementation, write unit tests with the code, and prepare environments and data.
  • During testing, execute, log defects and retest. At release, smoke test and close the cycle.