May 26, 2020
Estimated Post Reading Time ~

How to Implement Full Software Testing Life Cycle (STLC) and Apply Testing Techniques

Software Testing trends over the decades




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!


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:
The Requirements phase – The teams are involved in finalizing the initial draft of requirements.

Planning Phase – Planning the resources and activities which will be involved in the project.

Analysis phase – Depicting the test scenarios and requirement clarifications if any.

The Design Phase – Designing of all the documents which will be used in the project.

Implementation Phase – Test writing and its prioritization and preparation of sanity and regression suites.

Execution Phase – The main phase where the actual execution takes place.

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:


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


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.

3. Analysis Phase


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.

4. Design Phase


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


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


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


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 the Software Testing Life Cycle (STLC) in a tabular form:
S.No 
Phase Name 
Entry Criteria 
Activities Performed 
Deliverables 
Requirements 
Requirements specification document  
Brainstorming on the requirements. Create a list of requirements and get your doubts clarified.
RUD (Requirements understanding document) 



Application design document 
Understand the feasibility of the requirements – whether they are testable or not. 
Testing feasibility report 



User acceptance criteria document 
If your project requires automation, carry out automation feasibility study.
Automation feasibility report  



Planning 
Updated requirements document 
Define the scope of the project
Test Plan document



Test feasibility reports 
Do the risk analysis and prepare the risk mitigation plan 
Risk mitigation document



Automation feasibility report 
Perform test estimation
Test estimation document




Determine the overall testing strategy and process





Identify the tools and resources and check for any training needs





Identify the environment




Analysis 
Updated requirements document 
Identify the detailed test conditions 
Test conditions document

Test Plan document 

Risk Document 

Test estimation document 

Design 
Updated requirements document 
Detail out the test condition   
Detailed test condition document 

Identify the test data 

Test conditions document 

Requirement traceability metrics 

Create the traceability metrics 



Test coverage metrics 



Implementation 
Detailed test condition document 
Create and review the test cases
Test cases


Create and review the automation scripts
Test scripts


Identify the candidate test cases for regression and automation
Test data


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

Execution 
Test cases 
Execute the test cases 
Test execution report 



Test scripts 
Log bugs/defects in case of discrepancy 
Defect report 




Report the status
Test log and Defect log 





Updated requirement traceability metrics  
Conclusion 
Updated test cases with results 
Provide the accurate figures and result of testing 
Updated traceability metrics



Test closure conditions 
Identify the risks which are mitigated 
Test summary report





Updated risk management report  
Closure 
Test closure condition 
Do the retrospective meeting and understand the lessons learnt 
Lessons learnt document


Test summary report 
Test matrices 



Test closure report 


By aem4beginner

No comments:

Post a Comment

If you have any doubts or questions, please let us know.