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!
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.
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.
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.
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.
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.
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.
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.
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:
Let’s try to summarize the Software Testing Life Cycle (STLC) in a tabular form:
S.No
|
Phase Name
|
Entry Criteria
|
Activities Performed
|
Deliverables
|
1
|
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
| ||
2
|
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
| ||||
3
|
Analysis
|
Updated requirements document
|
Identify the detailed test conditions
|
Test conditions document
|
Test Plan document
| ||||
Risk Document
| ||||
Test estimation document
| ||||
4
|
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
| ||||
5
|
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
| ||||
6
|
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
| ||||
7
|
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
| ||||
8
|
Closure
|
Test closure condition
|
Do the retrospective meeting and understand the lessons learnt
|
Lessons learnt document
|
Test summary report
|
Test matrices
| |||
Test closure report
|
No comments:
Post a Comment
If you have any doubts or questions, please let us know.