Software Test Life Cycle (STLC)

Learn via video courses
Topics Covered

Overview

Software development has an entire testing phase, which has many stages in itself, called the software testing life cycle. It is about detailing the stages of testing a product goes through.

There is a lot of planning and decision-making going into the process. Here, we will discuss an entire testing life cycle process with each phase in detail.

What is Software Testing Life Cycle (STLC)?

The software testing life cycle is a process of testing an application that goes through sequential phases. Each phase has a distinctive role to play and should be handled separately. After one phase of STLC is done, only move to another phase in the testing cycle.

Characteristics of STLC

  1. STLC is a testing process part of the software development life cycle.
  2. The STLC process remains the same irrespective of the SDLC methodology used.
  3. In STLC, once the first phase is done, only the tester moves to the next phase of the process.

Software Testing Life Cycle Phases

software-testing-life-cycle-phases

Requirement Analysis

Requirement analysis is the first step in STLC where the product manager and test lead understand the requirement. All points are noted and maintained in the document. Getting the requirement right is extremely crucial as it would lay down the foundation for the rest of the process.

Activities in Requirement Analysis

  • Gather and understand requirements from stakeholders through elicitation techniques.
  • Analyze requirements for consistency, clarity, completeness, and feasibility.
  • Document requirements using appropriate techniques and formats.
  • Validate requirements through reviews, walkthroughs, and prototypes.
  • Manage changes to requirements effectively through a structured process.

Deliverables in Requirement Analysis

  • Requirement Traceability Matrix (RTM)
  • Automation feasibility report, only if applicable.

Test Planning

In the Test planning phase, the entire STLC process is planned out. How long would the testing cycle be, how much would be automated vs how much would be manually tested, what tools are required, and if staff needs to be trained and create RTM(requirement traceability matrix). The lead takes all these important decisions based on them, and tasks are allocated to senior QA and QA members.

Activities in Test Planning

  • Define test objectives to align testing efforts with project goals.
  • Identify test scope and coverage criteria for comprehensive testing.
  • Develop a high-level test strategy to guide the overall testing approach.
  • Create detailed test plans for each testing level or phase.
  • Define test metrics and reporting mechanisms for effective communication.

Deliverables in Test Planning

  • Effort estimation document
  • Test planning document
  • Test strategy document

Test Case Development

The first step is to lay down the test framework—the tools required like Selenium, maven, log4j, reports, etc. Then, manual test cases and automated test cases are written. The goal is to automate repeated test cases, and all the creative, exploratory, and random test cases are manually tested.

Activities in Test Case Development

  • Analyze requirements and understand the functionalities to be tested.
  • Design test scenarios to cover different aspects of the software.
  • Write detailed test cases with test steps, expected results, and test data.
  • Review and validate test cases for accuracy, completeness, and requirements coverage.

Deliverables in Test Case Development

  • Test data
  • Test scripts
  • Test cases

Test Environment Setup

Because of SauceLabs, and BrowserStack, the test environment can be easily created virtually. Test environments for multiple combinations of the operating system, browser, and processors can be created, allowing further testing accuracy to expand further. When these options were unavailable, setting up the environment was a costly affair.

Activities in Test Environment Setup

  • Identify test environment requirements.
  • Provision the test environment with the necessary hardware and software configurations.
  • Prepare test data that represents various testing scenarios.
  • Validate the test environment to ensure it is properly set up and functional.

Deliverables in Test Environment Setup

  • Results of Smoke Testing
  • Test Environment ready with necessary test data set-up

Test Execution

Test execution signifies running the test cases, generating the report, if a bug is found, then assigning the bug to the developer and resolving it. Regression testing to ensure previous code is still working and retesting to ensure the system is bug-free.

Activities in Test Execution

  • Execute test cases based on the test plan and test data.
  • Record actual outcomes and any observed deviations or defects during test execution.
  • Report identified defects with accurate details, including reproduction steps and attachments.
  • Update the status of executed test cases, marking them as passed, failed, or pending.

Deliverables in Test Execution

  • A Report containing all defects
  • Completed Requirement Traceability Matrix (RTM) with the status of execution
  • Updated test cases with their results

Test Cycle Closure

The test cycle needs to close at the right time as lots of resources are involved, and the code needs to reach the production stage. The closure is where we have a definite idea of the extent of testing done, both functional and non-functional.

Activities in Test Cycle Closure

  • Analyze the results of test case execution to evaluate the quality and effectiveness of testing.
  • Review and analyze reported defects, verifying their fixes and ensuring closure.
  • Prepare a comprehensive test cycle report summarizing test results, metrics, and assessment.
  • Conduct a retrospective session to identify lessons learned, areas for improvement, and provide recommendations for future testing cycles.

Deliverables in Test Cycle Closure

  • Test Metrics used in testing
  • Test Closure report is a must

STLC Phases Along with Entry and Exit Criteria

Entry criteria signify the prerequisite one should have before entering the phase, and exit criteria denote after what criteria we can say the phase has ended. Let's have a look in detail below.

PhaseEntry CriteriaActivityExit Criteria
Requirement AnalysisRequirement document prepared by the manager which is signed by both client and manager.Understand the client requirement and prepare the Requirement Traceability Matrix(RTM)All functional and non-function requirements are noted and both parties have agreed to the terms.
Test planningAll functional and non-functional requirements of the product are known.Making decisions like The entire STLC How much to process had been automated, tool planned out with requires, training overview of what and needs for the staff, how much to the duration of test cycleThe entire SDLC process has been planned with an overview of how much to automate.
Test Case DevelopmentThe entire road map to STLC has been laid out.Test cases are written both manually and in automation. In the case of automation, a framework has been created so that the testing process is more manageable.All manual and automation test cases are created. In the case of automation, a framework is laid out.
Test Environment SetupAll test cases have been written and there is a clear picture of what to automate.Setting up the test environment on the server or using Sauce labs and BrowserStack features.Once the test environment is setup which is reliable and has high test case coverage
Test ExecutionTest environment is set up. The test environment could be a server or a paid service provider application.Test cases are executed, reports are prepared and bugs found are assigned. Bugs are resolved and the application is retested.All bugs are resolved and a detailed report is generated
Test cycle closureReports are prepared and the application is bug-free.STLC cycle is closed and the product reaches the production stage.Bugs are resolved. The application has gone through retesting and regression testing.

Conclusion

  1. Software testing life cycle is part of SDLC where steps are defined through which an application goes through in testing.
  2. Requirement Analysis phase, where the product lead would note down the requirement meticulously. All functional and non-functional requirements are noted.
  3. Test planning plans out the outline of the entire testing process. Tools, training needs, and testing duration are all defined.
  4. Test environment setup where the server is set up to carry out the testing cycle, test cases are executed, and reports are generated.
  5. Once all the bugs are fixed and the application is retested, the test cycle is closed, and the code is sent for production.

Additional Resources

  1. Top Manual Testing Interview Questions
  2. What is Software Testing?
  3. Top Selenium Interview Questions and Answers
  4. Test Plan vs Test Strategy
  5. Smoke and Sanity Testing