Blogs

a laptop with code lines on the screen and a notebook, pen and coffee mug set on a work station
How to Implement Full Software Testing Life Cycle (STLC) and Apply Testing Techniques

 

Software Testing trends over the decades
conversation between product owner and developer over the importance of software testing
conversation between product owner and developer about software testing reducing bugs
product owner asking testers to work harder to improve software

As we can see in the above images, the trend and competency of software testing have changed over the years. QA testers are now more technical and process oriented. In these changing times, testing has grown beyond just finding bugs into a wider scope. It is generally performed right from the inception of the project when the requirements are not even finalized.

Since testing processes have been standardized after the year 2000, it also has its own lifecycle just like the development team. In the world of testing, we call that lifecycle as STLC which will be explained in the following section.

Let’s start! 

lines of codes on a screen
What is a lifecycle in software testing?

A lifecycle is nothing but the sequence of changes from one form to another form. These changes generally happen to any tangible or intangible things. Every entity has a lifecycle from its inception to retirement.

In a similar way, every software is also an entity. Testing also has a sequence of steps which should be executed in a definite sequence just like developing a software.

The process of executing the testing activities in a systematic and planned manner is called testing life cycle. 

What is Software Testing Life Cycle (STLC)?

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

Below are the basic phases of STLC:

  1. The Requirements phase – The teams are involved in finalizing the initial draft of requirements.
  2. Planning Phase – Planning the resources and activities which will be involved in the project.
  3. Analysis phase – Depicting the test scenarios and requirement clarifications if any.
  4. The Design Phase – Designing of all the documents which will be used in the project.
  5. Implementation Phase – Test writing and its prioritization and preparation of sanity and regression suites.
  6. Execution Phase – The main phase where the actual execution takes place.
  7. Conclusion or Closure Phase – Submit the metrics and reports. UAT with clients or closure activities to ensure the exit criteria is met. 

    Let’s take a look at each phase in detail.
1. Requirement Phase: 
people huddles around a table with stationery, drinks and devices

During this phase of STLC, testing teams analyze and study the requirements. The testers usually conduct meetings to discuss the requirements with the business analysts’ team and all the stakeholders to see what is testable and what are the areas of focus. This phase of STLC helps to identify the scope of the testing. If any feature is not testable or has a dependency, then QA needs to communicate the same during this phase so that the mitigation strategy can be planned. It’s a good practice to create diagrams and flow charts to understand the requirements and the user journey with the development team. 

2. Planning Phase
a person's hands taking notes in a diary over a table representing the planning stage in software testing

In general, the test planning is supposed to be the first step of the testing process. In this phase, we identify the various activities and resources which would help to meet the testing objectives. It is in this phase where the testing team decides the reporting structure and the tools to be used like Defect Management Tool, Test Case management tools, automation tools, etc. Test plan and test strategy document are also created in this phase and how to implement this practice is explained in the 6th QA practice of this article

3. Analysis Phase
a man looking a notes pinned on a wall and analyzing

This STLC phase, in my opinion, should be the most important phase as it defines “WHAT” to be tested. We must identify the test scenarios through the requirements document, product risks and other test basis. The test scenarios should be traceable back to the requirement.

How to write efficient test scenarios are explained here

4. Design Phase
silhouette of woman experiencing VR content in front of a tiled display of a car illustration

In this phase, we define the various ways and mediums through which we will conduct the test. This phase involves the following tasks: 

  • Detailing the test scenarios. Breaking down the test scenarios into multiple sub-conditions to increase coverage.
  • Identifying and setting up the test data
  • Identifying and setting up the test environment or finalizing the devices and browser list on which the testing will be performed
  • Creating the RTM document, which is the requirement traceability metrics helping the Test scenarios and test cases to be traced back to the requirements
  • Create the test coverage metrics to depict the coverage of the functionality or module. This can be optional as the coverage can be extracted from the RTM as well. 
5. Implementation Phase
man releasing a dart at the target after aiming

This STLC phase is for creation of the detailed test cases from the test scenarios created earlier. It is a good practice to give priority to each test case which can help the test team to extract the priority items to create Sanity and Regression suite. Also, please make sure that these test cases are duly reviewed by all the stakeholders and product owners and getting their sign-off is the most important aspect of a successful project. Involve and get your clients to interact more in this phase to get your test cases and test scripts in automation reviewed and signed off. 

6. Execution Phase
the word 'now' written across an upward trending arrow and circled with red

As the name suggests, this is the phase where the actual execution takes place. Before starting with the execution, we need to make sure that our entry criteria are met. The Entry criteria needs to be finalized in the Test planning phase and should be mentioned in the Test Strategy document which should be signed off before starting this phase.

Execute > Log defects > Track your progress > Update RTM and test cases when you find bugs while doing exploratory testing.

7. Conclusion or Closure Phase
a cartoon of a human standing near a stop sign post

This is the end of one software testing life cycle which concentrates majorly on the exit criteria and reporting, and has a retrospective meeting to depict lessons learnt. The reporting structure can be decided in the Design phase and should be used diligently in this phase to communicate the progress and get the sign-off on the Exit criteria. UAT (User Acceptance Testing) should also be conducted in this phase with the product owners to get their sign-off and we also need to discuss if there are any P1 issues remaining and a fix plan for the same if any. Retrospective meetings are also an essential part of each lifecycle as it helps the whole project team in understanding “What went wrong” and “What went right” to help the team to improve from the next cycle. 

Summary of the STLC Phases

Let’s try to summarize Software Testing Life Cycle (STLC) in a tabular form: 

S.No  Phase Name  Entry Criteria  Activities Performed  Deliverables 
Requirements Requirements specification document  
 
Application design document 
 
User acceptance criteria document 
 
Brainstorming on the requirements. Create a list of requirements and get your doubts clarified.

Understand the feasibility of the requirements – whether they are testable or not. 
 
If your project requires automation, carry out automation feasibility study.
RUD (Requirements understanding document) 
 
Testing feasibility report 
 
Automation feasibility report  
Planning Updated 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
 
Analysis Updated requirements document 
 
Test Plan document 
 
Risk Document 
 
Test estimation document 
 
Identify the detailed test conditions Test conditions document
Design Updated 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 
 
Implementation Detailed test condition document Create and review the test cases

Create and review the automation scripts
 
Identify the candidate test cases for regression and automation

Identify and highlight priority to extract test cases for Sanity and Regression suite
 
Identify/create the test data
 
Take sign-off of the test cases and scripts
Test cases

Test scripts
 
Test data
Execution Test 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  
Conclusion Updated 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  
Closure Test closure condition 
 
Test summary report 
 
Do the retrospective meeting and understand the lessons learnt Lessons learnt document
 
Test matrices 
 
Test closure report 

You can also read our post on improving website performance here. Write in to Argil DX to learn more about how we practice rigorous QA testing in agile software delivery.

Argil DX is a leading implementer of AEM and other solutions in the Adobe Experience Cloud. Contact us for more on our services.

Share it:

Ankur Mittal

February 18, 2020

1 thought on “How to Implement Full Software Testing Life Cycle (STLC) and Apply Testing Techniques”

  1. it is really a good blog on stlc. You describe the different phases of STLC very informatively. thanks for sharing with us. keep posting!

    Reply

Leave a Comment

Related Posts