What is Software Testing Life Cycle (STLC)?

Posted in

What is Software Testing Life Cycle (STLC)?

    The software testing life cycle (STLC) is the process a team follows to plan testing, design tests, prepare the environment, execute checks, manage defects, and evaluate the results. Its purpose is to give stakeholders evidence about product quality and release risk. It cannot prove that software has no defects.

    STLC is part of the broader software development life cycle (SDLC) . Testing can begin while requirements are still being discussed and continue through development and after release. The six phases below are a useful framework, but teams may overlap, repeat, or rename them.

    The six phases of STLC at a glance

    Phase

    Main question

    Typical work

    Output

    1. Requirement analysis

    What should be tested?

    Review requirements, risks, and acceptance criteria

    Testable requirements and initial coverage map

    2. Test planning

    How will we test it?

    Set scope, priorities, people, schedule, and exit criteria

    Test plan or sprint test approach

    3. Test case design

    Which checks will show whether it works?

    Design scenarios, cases, and data

    Reviewed tests and requirement traceability

    4. Test environment setup

    Where and with what data will tests run?

    Configure systems, access, devices, and data

    Ready environment and smoke-check result

    5. Test execution

    What happened when we tested?

    Run tests, report defects, retest fixes, assess risk

    Results, defect records, and coverage status

    6. Test closure

    What have we learned, and what remains?

    Summarize results and unresolved risks

    Test summary and reusable test assets

    Quick example: For a checkout change, a tester checks whether the requirements specify supported payment methods and failure messages, plans coverage for the highest-risk purchases, designs successful and declined-payment scenarios, prepares a payment sandbox, executes the tests, then reports results and remaining risks. The team may revisit test design as soon as a new edge case appears.

    What are entry and exit criteria in STLC?

    Entry criteria are the conditions needed to start an activity effectively. Exit criteria are the conditions used to decide whether it is complete enough to move forward. They should be agreed in planning and adjusted when requirements or risks change.

    For example, test execution might require an available build, working credentials, a stable environment, and approved test data. Its exit criteria might include execution of all release-critical tests, review of unresolved high-severity defects, and a documented decision about residual risk. A failed exit criterion does not automatically prohibit release; it means the release owner needs an explicit, informed decision.

    1. Requirement analysis

    The QA team reads user stories, specifications, designs, and acceptance criteria to identify what can be verified. Testers ask about vague behavior, missing error states, access rules, and non-functional needs such as performance and accessibility. They collaborate with product owners, developers, and other stakeholders while changes are still inexpensive to discuss.

    For the checkout example, “the payment should work” is insufficient. A testable requirement says which methods are supported, what happens after a decline, and whether a failed attempt creates an order. A requirement traceability matrix or a lightweight story-to-test mapping can make gaps visible.

    Typical output: clarified acceptance criteria, a list of risks and questions, and a first mapping of requirements to tests.

    Move on when: the team can describe expected behavior well enough to plan meaningful tests; open questions are tracked.

    2. Test planning

    A test plan defines scope, priorities, responsibilities, environments, test levels, timing, and how results will be reported. It also says what will not be covered in this cycle and why. A small Agile team may keep this in a sprint ticket; a regulated or complex release may need a formal document.

    Choose checks based on risk. A payment authorization path may justify API, integration, and end-to-end tests, while a minor copy change may need a focused review. Developers commonly own unit tests; integration and system testing can be shared according to the team's setup. For a deeper look at the options, see types of software testing and what software testing involves .

    Typical output: a test plan or sprint-level approach, resource estimates, priorities, and entry and exit criteria.

    Move on when: stakeholders understand what evidence the team intends to collect and the principal gaps in coverage.

    3. Test case design

    Turn requirements and risks into test scenarios with inputs, expected results, and enough context to reproduce a failure. Include normal paths, boundaries, invalid inputs, permissions, and relevant integrations. Prepare data without copying sensitive production information into an unsafe test environment.

    For checkout, one case could be: Given a valid cart and an approved sandbox card, when the customer confirms payment, then exactly one order is created and a confirmation is shown. Another should cover a decline, retry, or interrupted request. Link each case to its requirement where traceability matters, and review cases for gaps and duplication. Complete coverage of every possible input is generally impractical; prioritize important risks rather than promising “100% coverage.”

    Typical output: scenarios, test cases or automated checks, data needs, and an updated coverage map.

    Move on when: the important behaviors have clear expected outcomes and reviewers have addressed major gaps.

    4. Test environment setup

    Prepare the application build, devices or browsers, connected services, permissions, configuration, and test data. The environment should represent the production behavior relevant to the test, though it need not duplicate every production detail. For payment testing, use an approved sandbox and controlled data.

    Run a brief smoke check before full execution: can testers sign in, create a cart, reach checkout, and observe results? Record environment versions so failures can be reproduced. Review software testing tools and QA tools when selecting tools for test management, automation, or defect tracking.

    Typical output: a configured environment, available data and accounts, and a smoke-check result.

    Move on when: critical dependencies work and testers can reliably run their checks.

    5. Test execution and defect management

    Run the planned manual and automated checks, compare actual behavior with expected behavior, and record results. A useful defect report identifies the build and environment, steps to reproduce, expected and actual results, and supporting evidence. The team triages impact and urgency, then retests fixes and runs relevant regression checks.

    If a checkout request times out and creates two orders, the team should record the defect, investigate whether retry behavior is involved, and test the fix alongside nearby order flows. A failed test may also signal a data or environment issue; investigate before labeling every failure an application defect.

    Typical output: pass/fail and blocked results, defect records, retest status, and a view of remaining risk.

    Move on when: the agreed exit criteria have been evaluated and outstanding issues are visible to decision-makers.

    6. Test closure

    Summarize what was tested, what passed, what remains untested, and which defects are open. Keep the evidence and test assets useful for the next cycle. A retrospective can identify flaky checks, slow environment setup, or requirements that repeatedly caused confusion.

    A concise checkout test summary could say that all critical purchase paths passed on the release candidate, one low-impact display issue remains, and a particular payment provider's outage behavior was not tested. The product or release owner can then make a decision with those limitations in view. Closure marks the end of a testing cycle; it does not mean the product will never be tested again.

    Typical output: a test summary, documented open risks, archived results, and follow-up actions.

    STLC vs. SDLC: What is the difference?

    Aspect

    STLC

    SDLC

    Scope

    Testing activities and evidence about quality

    The broader process of planning, building, delivering, and maintaining software

    Main work

    Analyze, plan, design, set up, execute, and assess tests

    Define requirements, design, implement, test, deploy, and maintain

    People involved

    Testers, developers, product owners, and other reviewers

    The full product and engineering team

    Outputs

    Test cases, results, defect records, and quality or risk summaries

    Working software and supporting product artifacts

    Relationship

    Operates within and alongside development work

    Includes testing as one of its ongoing concerns

    STLC is not something that must wait until coding finishes. Testers can review requirements and design tests while developers implement a feature. Read more about software engineering and what software developers do for the wider context.

    How STLC works in Agile and DevOps teams

    In a sequential project, the phases may look like distinct handoffs. In Agile work, the same activities usually recur for each story or sprint. A team can analyze a story on Monday, design tests while it is coded, run automated checks on every change, and close the story only after discussing the results. Continuous integration helps surface failures quickly; human review still matters for unclear requirements, usability, and risk decisions.

    Automation belongs where repeatability and feedback justify its maintenance cost. Unit and API checks often provide fast feedback; a smaller set of end-to-end checks covers key user journeys. Tools such as Selenium IDE may help with particular browser testing tasks, but the choice of tool follows the test objective. For an interview-oriented recap, see software testing interview questions and answers and Selenium interview questions .

    Common STLC mistakes and how to avoid them

    Mistake

    Better approach

    Waiting for a finished build before discussing testing

    Review requirements and risks as soon as a change is proposed

    Treating the six phases as rigid gates

    Repeat phases when code, requirements, or evidence changes

    Counting test cases as a substitute for coverage

    Map important risks and requirements to checks

    Copying production data into a test system without safeguards

    Use synthetic or appropriately protected data

    Closing testing because every scripted test ran

    Report blocked checks, open defects, and untested risks

    Conclusion

    The six STLC phases help a team turn requirements into useful evidence: what was checked, what failed, what remains uncertain, and what to improve next time. Use the phases as a repeatable guide, adapt their formality to the project, and make release risks visible.

    People are also reading:

    Sameeksha
    Written by

    Sameeksha Medewar

    With 3+ years of experience in curating highly-informative and well-researched technical blogs, Sameeksha is a passionate technical writer, technology enthusiast, and computer science graduate. She holds experience writing articles in niches like software testing, programming languages, like C++, Python, HTML/CSS, and JavaScript, computer networking, and data science.

    FAQs


    They are requirement analysis, test planning, test case design, test environment setup, test execution, and test closure. Some teams treat defect management or reporting as a separate phase, so you may also see seven or eight steps.

    Testing work can start when requirements or a proposed change are available to review. Test execution begins later, once a testable build and suitable environment exist.

    No. It covers decisions, design, execution, and evaluation for manual and automated tests. Automation can support several phases, but it does not replace the need to define expected behavior and review results.

    A test plan describes the overall scope, approach, resources, risks, and completion criteria. A test case describes a particular condition or action and its expected outcome.

    The team evaluates its agreed exit criteria and reports the evidence. The release owner or other designated stakeholder accepts remaining risks and makes the release decision under the organization's process.