What is Software Testing Life Cycle (STLC)?


Software Testing Life Cycle (STLC)

Software Testing Life Cycle (STLC) is a sequence of actions conducted to test a software product. STLC is composed of different stages, each of them with an exact purpose. Bellow, there is a diagram with the 6 different stages in STLC.




To understand the stages better, they can be reduced to 3 main tasks: laying the groundwork for execution, execution, and conclusion.

Each of the 6 stages has definite Entry & Exit Criteria, Input & Output. What do they mean?

Entry criteria are the essential items that must e completed before a stage can be executed.
Exit criteria are the items that must be completed before a stage can be concluded.

The different stages of the Software Testing Life Cycle

1. Requirement analysis

This is the very first step in the STLC. During requirement analysis, the testing team thoroughly studies the stakeholders’ requirements and define how the final product should behave according to them.

Requirements can be either functional or non-functional. Functional requirements define what the system should do, while non-functional requirements define system performance and security ability.

Input:

  • Identify what tests suit best
  • Identify where testing is supposed to be executed
  • Identify the testing priorities

2. Test Planning

This step reveals the overall cost and effort of the testing phase. Usually, these factors are determined by an experienced QA manager that is also finalizing the Test Plan.

Input:

  • Selecting a testing tool
  • Test plan preparation
  • Estimation of time & effort
  • Risk provision

Output:

  • Test strategy

3. Test case development

At this point, the team develops all the test cases that need to be executed. The test cases must be aligned with the stakeholders’ requirements. All the test data must be designed, reviewed and then reworked.

Input:

  • Designing the test cases
  • Verifying the test cases

Output:

  • Test cases

4. Environment setup

This is the final step before test execution. This step decides the software and hardware conditions under which the product will be tested. The test manager has to make sure that the test environment is all set up according to the guidelines written for the project.

For time economy reasons, this step can be executed in parallel with test case development because the team doesn’t need to get involved in the environment setup.

Input:

  • Understanding the requirements and setting up the environment accordingly
  • Smoke test on the build

Output:

  • Ready environment
  • Smoke test results

5. Test Execution

During this step, proper tests will be carried out by testers, based on the previously designed test plans and test cases. After identifying and resolving bugs, the team will retest the system to make sure that everything works accordingly.

Input:

  • Execute tests according to test plan
  • Identify and document the failed cases
  • Retest the system after the bugs are fixed
  • Track the failed cases for closure

Output:

  • Updated test cases
  • Defect reports

6. Cycle Closure

After all the tests are done, the team discusses and analyzes all the outcomes, to improve the testing strategy. Also, the team identifies other testing strategies that can be implemented in the future for more efficiency. All the test information is documented, so if a similar problem arises in the future, it will be fixed easily.

Input:

  • Analyze time, cost, test coverage, test quality
  • Document the learning out
  • Prepare Test Closure report
  • Test result analysis

Output:

  • Test metrics
  • Test closure report