Software Testing Life Cycle (STLC)

Software Testing Life Cycle or STLC describes the different stages involved in the  testing of a product.This defines the following sequence of steps for the test engineers to follow.They are

  1. Requirement Analysis
  2. Test Planning
  3. Test Case development
  4. Test Environment setup
  5. Test Execution
  6. Test Closure

Software testing life cycle

*RTM (Requirement traceability Matrix)

As you can see,each of these stages in STLC have defined entry and exit criteria.

Entry Criteria is the prerequisites which needs to be completed before that stage begins.

Exit Criteria is the outcome of that particular stage.This can also be referred as Deliverables. As you have probably noticed the exit criteria of each of these stages are same as that of the entry criteria of subsequent stage.

Next lets look into the activities involved in detail against each of the STLC stages:

Requirement Analysis:          

                      During this phase testing team will analyse the system requirement specifications(both Functional and Non functional) in order to find out the feasibility(testable or not) and scope of requirements.These brain storm sessions help team to come up with Requirement Traceability Matrix.Other activities during this phase are :

  • Identification of Test environment
  • Prioritizing functionalities
  • Automation feasibility analysis

Test Planning:

                     Soon after the completion of previous stage,actual planning stage begins.The main activities performed during this stage are preparation of Test Plan, Test Strategy and Test Effort Estimation.Test Strategy contains the testing approach, risks and mitigation and test tool selection.Identification of additional training needs of the team (if any) finalize during this STLC stage.

Test Case Development:

                   In this phase the test team will prepare the actual test cases /test scripts(in case of automation).Also these test cases will be peer-reviewed and rewrite if necessary.Team will also be preparing the test data which needed to perform these test cases.

Test Environment Setup:

                  This steps usually done in parallel or soon after the completion of the previous STLC stage.This will vary from company to company.In some companies customers/development team will be setting up the test environments (list of software and hardware  required as per the requirement and design specifications).QA team will be setting up the test data in the test environment and perform smoke test to verify the readiness of the environment.

Test Execution:

                   During this stage, the team will execute the test cases prepared during the stlc test case development phase.While executing these test cases, test team may report several defects.These defects tracked in the system and developers will fix them.After fixing these defects, testing team will retest the defects and close them in the defect tracking system if working correctly.

Test Closure:

                 After the completion of the test execution,the testing team will perform the following activities during this stage.

  • Evaluation of Test completion criteria based on the Test Coverage, Business Objectives, Cost, Time and quality.
  • Root Cause analysis on what went wrong during the testing
  • Identification of best practices and document them for future use.
  • Preparation Test Metrics
  • Analysis of test report in order to find out the defect severity distribution across different modules.
  • Prepare test closure report.

Commonly asked interview questions on this topic:

  1. What is the difference between STLC (Software Testing Life Cycle) and SDLC (Software Development Life  Cycle) ?
  2. What are the deliverables in each stages of STLC ?
  3. What is an entry criteria in Software Testing Life Cycle?
  4. What is an exit criteria in Software Testing Life Cycle?
  5. What is RTM ?