What is a Lifecycle?

Lifecycle in simple term refers to the sequence of changes from one form to other form. These changes can happen to any tangible or intangible things. Every entity has a lifecycle from its inception to retire / demise.

In a similar fashion, Software is also an entity. Just like developing software involves a sequences of steps, testing also has steps which should be executed in a definite sequence.

This phenomenon of executing the testing activities in a systematic and planned way is called testing life cycle.

What is Software Testing Life Cycle (STLC)

Software Testing Life Cycle refers to a testing process which has specific steps to be executed in a definite sequence to ensure that the quality goals have been met. In STLC process, each activity is carried out in a planned and systematic way. Each phase has different goals and deliverables. Different organizations have different phases in STLC; however the basis remains the same.

Below are the phases of STLC:

  1. Requirements phase
  2. Planning Phase
  3. Analysis phase
  4. Design Phase
  5. Implementation Phase
  6. Execution Phase
  7. Conclusion Phase
  8. Closure Phase

1. Requirement Phase:

During this phase of STLC, analyze and study the requirements. Have brain storming sessions with other teams and try to find out whether the requirements are testable or not. This phase helps to identify the scope of the testing. If any feature is not testable, communicate it during this phase so that the mitigation strategy can be planned.

2.Planning Phase:

In practical scenarios, Test planning is the first step of the testing process. In this phase we identify the activities and resources which would help to meet the testing objectives. During planning we also try to identify the metrics, the method of gathering and tracking those metrics.

On what basis the planning is done? Only requirements?

The answer is NO. Requirements do form one of the bases but there are 2 other very important factors which influence test planning. These are:

– Test strategy of the organization.
– Risk analysis / Risk Management and mitigation.

3. Analysis Phase:

This STLC phase defines “WHAT” to be tested. We basically identify the test conditions through the requirements document, product risks and other test basis. The test condition should be traceable back to the requirement. There are various factors which effect the identification of test conditions:

– Levels and depth of testing
– Complexity of the product
– Product and project risks
– Software development life cycle involved.
– Test management
– Skills and knowledge of the team.
– Availability of the stakeholders.

We should try to write down the test conditions in a detailed way. For example, for an e-commerce web application, you can have a test condition as “User should be able to make a payment”. Or you can detail it out by saying “User should be able to make payment through NEFT, debit card and credit card”. The most important advantage of writing the detailed test condition is that it increases the test coverage, since the test cases will be written on the basis of the test condition, these details will trigger to write more detailed test cases which will eventually increase the coverage. Also identify the exit criteria of the testing, i.e determine some conditions when you will stop the testing.

4. Design Phase:

This phase defines “HOW” to test. This phase involves the following tasks:

– Detail the test condition. Break down the test conditions into multiple sub conditions to increase coverage.
– Identify and get the test data
– Identify and set up the test environment.
– Create the requirement traceability metrics
– Create the test coverage metrics.

5. Implementation Phase:

The major task in this STLC phase is of creation of the detailed test cases. Prioritize the test cases also identify which test case will become part of the regression suite. Before finalizing the test case, It is important to carry out the review to ensure the correctness of the test cases. Also don’t forget to take the sign off of the test cases before actual execution starts. If your project involves automation, identify the candidate test cases for automation and proceed for scripting the test cases. Don’t forget to review them!

6. Execution Phase:

As the name suggests, this is the Software Testing Life Cycle phase where the actual execution takes place. But before you start your execution, make sure that your entry criterion is met. Execute the test cases, log defects in case of any discrepancy. Simultaneously fill your traceability metrics to track your progress.

7. Conclusion Phase:

This STLC phase concentrates on the exit criteria and reporting. Depending on your project and stakeholders choice, you can decide on reporting whether you want to send out a daily report of weekly report etc. There are different types of reports ( DSR – Daily status report, WSR – Weekly status reports) which you can send, but the important point is, the content of the report changes and depends upon whom you are sending your reports. If Project managers belong to testing background then they are more interested in the technical aspect of the project, so include the technical things in your report ( number of test cases passed, failed, defects raised, severity 1 defects etc.). But if you are reporting to upper stakeholders, they might not be interested in the technical things so report them about the risks that have been mitigated through the testing.

8.Closure Phase:

Tasks for the closure activities include the following:

– Check for the completion of the test. Whether all the test cases are executed or mitigated deliberately. Check there are no severity 1 defects opened.
– Do lessons learnt meeting and create lessons learnt document.( Include what went well, where are the scope of improvements and what can be improved)

Conclusion:

Let’s try to summarize Software Testing Life Cycle (STLC) it now!

S.NoPhase NameEntry CriteriaActivities PerformedDeliverables
1RequirementsRequirements specification document

Application design document

User acceptance criteria document
Do brainstorming of the requirements. Create a list of requirements and get your doubts clarified.

Understand the feasibility of the requirements whether it is testable or not.

If your project requires automation, do the automation feasibility study.
RUD ( Requirements understanding document.

Testing feasibility report

Automation feasibility report.
2PlanningUpdated requirements document.

Test feasibility reports “

Automation feasibility report.
Define the scope of the project

Do the risk analysis and prepare the risk mitigation plan.

Perform test estimation.

Determine the overall testing strategy and process.

Identify the tools and resources and check for any training needs.

Identify the environment.
Test Plan document.

Risk mitigation document.

Test estimation document.
3AnalysisUpdated requirements document

Test Plan document

Risk Document

Test estimation document
Identify the detailed test conditionsTest conditions document.
4DesignUpdated requirements document

Test conditions document
Detail out the test condition.

Identify the test data

Create the traceability metrics
Detailed test condition document

Requirement traceability metrics

Test coverage metrics
5ImplementationDetailed test condition documentCreate and review the test cases.

Create and review the automation scripts.

Identify the candidate test cases for regression and automation.

Identify / create the test data

Take sign off of the test cases and scripts.
Test cases

Test scripts

Test data
6ExecutionTest cases

Test scripts
Execute the test cases

Log bugs / defects in case of discrepancy

Report the status
Test execution report

Defect report

Test log and Defect log

Updated requirement traceability metrics
7ConclusionUpdated test cases with results

Test closure conditions
Provide the accurate figures and result of testing

Identify the risks which are mitigated
Updated traceability metrics

Test summary report

Updated risk management report
8ClosureTest closure condition

Test summary report
Do the retrospective meting and understand the lessons learntLessons learnt document

Test matrices

Test closure report.