Software testing life cycle (STLC)
The software testing life cycle (STLC) is the sequence of activities a team carries out to test a piece of software, from studying the requirements to closing the test effort. It is commonly described as six phases: requirement analysis, test planning, test case development, test environment setup, test execution and test cycle closure.
The longer version
In the usual telling the six phases follow one another. During requirement analysis, testers read the requirements and work out what can be tested. Test planning sets the scope, the approach, the people and the schedule. Test case development produces the cases, scripts and data. Environment setup prepares the machines, software and accounts the tests need, and can run in parallel with case development. Test execution runs the tests and reports defects. Closure checks what was done against the plan, archives the work and records what was learned. The model gives each phase its own entry and exit criteria, so a phase starts and ends on a state that can be checked.
The six-phase list is a teaching convention, and the ISTQB Foundation syllabus does not use it. The syllabus describes a test process made of seven groups of activities: test planning, test monitoring and control, test analysis, test design, test implementation, test execution and test completion. It adds that these activities may appear to follow a logical sequence and are often implemented iteratively or in parallel. On an agile team the same activities recur inside every iteration, where a sequential project would run them once.
Calling it a life cycle says two things that test phase does not. Testing has a beginning and an end of its own, with planning and closure on either side of the part where tests are run, and the cycle repeats for each release. A test phase is one stage of a project plan, the slot after coding where execution happens. The STLC is also narrower than the software development life cycle (SDLC), which runs from requirements through design, coding, testing and release to maintenance. The STLC is the testing strand within it, and its early phases can begin alongside requirements and design work, before there is any code to execute.
Common questions
What are the phases of the software testing life cycle?
The software testing life cycle is commonly described as six phases: requirement analysis, test planning, test case development, test environment setup, test execution and test cycle closure. The list is a convention, and some sources merge or rename phases.
What is the difference between STLC and SDLC?
The SDLC, or software development life cycle, covers everything involved in producing software, from requirements through design, coding, testing and release to maintenance. The STLC covers only the testing activities and sits inside the SDLC, running alongside its phases.
Is the software testing life cycle an official standard?
The six-phase STLC is a widely taught convention, and the ISTQB Foundation syllabus does not define it. The syllabus describes a test process of seven groups of activities, from test planning to test completion, and notes that they are often implemented iteratively or in parallel.
Does the STLC apply to agile teams?
Agile teams carry out the same activities in a compressed and repeated form. Planning, design, execution and a light closure happen within each iteration and often overlap, so the cycle turns once per iteration where a sequential project would turn it once per release.
What are entry and exit criteria in the STLC?
Entry criteria are the conditions that must hold before a phase of the testing life cycle begins, and exit criteria are the conditions that must hold before it is declared finished. Test execution, for example, might need a deployed build and reviewed test cases to start, and every planned case run to end.
Bug reports that arrive ready to triage.
Collect replay, console, network and browser context with the Free plan.