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.
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. 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
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
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 Software Testing Life Cycle (STLC) in a tabular form:
|S.No||Phase Name||Entry Criteria||Activities Performed||Deliverables|
|1||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
|2||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
|3||Analysis||Updated requirements document |
Test Plan document
Test estimation document
|Identify the detailed test conditions||Test conditions document|
|4||Design||Updated requirements document |
Test conditions document
out the test condition
Identify the test data
Create the traceability metrics
|Detailed test condition document |
Requirement traceability metrics
Test coverage metrics
|5||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
|6||Execution||Test cases |
|Execute the test cases |
Log bugs/defects in case of discrepancy
Report the status
|Test execution report |
Test log and Defect log
Updated requirement traceability metrics
|7||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
|8||Closure||Test closure condition |
Test summary report
|Do the retrospective meeting and understand the lessons learnt||Lessons learnt document|
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.