Software testing is that stage of the software development life cycle in which the testing team looks for the defects in the software and actions are taken to fix the detected ones. Just like SDLC includes all the activities to be performed in the entire development of a software product.
STLC in Software Testing Life Cycle also includes all the activities to be performed during testing, along with the time at which they should be performed. Some Software Testing phases are to be taken care of to test software in an organized and effective way to produce bug-free software for the stakeholders and users.
Software Testing steps
1. Requirements Analysis
Requirements analysis is the first software testing phase in which the requirements of the software are analysed by the Quality Assurance team from the testing point of view. These requirements can be functional or non-functional requirements. The requirements to be tested are pinpointed and it is also evaluated ‘whether it is possible to test them or not?’.
These requirements are discussed with the stakeholders like the client, business analyst, technical leaders, system architects and for the untestable requirements mitigation strategy is planned.
Image Source: GeeksforGeeks
Types of Requirements
1. Business Requirements: These are high-level requirements of a project that impact important business activities. For example, accurate fund transfer is a business requirement for mobile banking software.
2. Architectural Requirements: These requirements include the design of the software to implement the business requirements.
3. System And Integration Requirements: These requirements include the user stories and other detailed information considered during the development phase.
2. Test Planning
In this software testing phase, the test managers and leaders estimate the number of efforts and cost that will be required during the entire testing process. The outcomes of the requirements analysis are used in preparing the test plan. The test plan brings clarity to the test process and makes it more organized. The activities undertaken in this stage are:
- Estimating the resource requirements
- Allocating the roles and responsibilities to the peoples
- Finding the most suitable tools, like automation tools to reduce the efforts and time of testing.
- Training requirements
All the important aspects are documented to guide during the test execution. The types of tests to be performed also determined. For example, Unit test, API testing, integration test, system test, etc. This phase also includes determining the objective of each test, along with the deliverables to be submitted at the end. The tests are also scheduled as per the testing need.
3. Test Design
This is the stage at which the test cases of the tests are designed and prepared by the test team. In the case of automation testing, test scripts are prepared and the test data is also prepared. These test cases are reviewed by the other team members to check ‘if they are good enough for effectively testing the software or not?’.
Requirements traceability matrix is also prepared to track the requirements covered by each test case. It helps in evaluating the fulfilment of requirements. While preparing the test cases following points should be considered:
1. Test cases should be created from the end user’s perspective.
2. No test case should be repeated.
3. Test cases should ensure 100% coverage.
4. It should be easy to identify the test cases.
5. Testing techniques should be effectively implemented for good testing.
4. Test Environment Setup
Test Environment setup is the step that can be performed along with the test design phase. The setup of the testing environment depends upon the hardware and software requirements list. In some cases, test teams might not be a part of this process.
The development team and the customer are responsible for providing the environment for performing tests. During the setup of the test environment, the test team starts creating the test cases for ensuring the readiness of the environment for testing purposes.
Test environment setup involves:
1. Setting up the server for the testing as every test cannot be performed on a local computer.
2. Creation of a network
3. The setup of the tester’s machine.
4. A bug reporting system is also designed for keeping the information about the bugs or defects detected in an organized way.
5. Even the test data is also kept ready for performing the tests.
5. Test Execution
After these software testing steps are over, the test cases created are executed as per the schedule in the test plan. The outcome of each test case execution can be either pass or fail based on the comparison between actual and expected output for the given test data. The same outcome is reported as status with each test case.
When a test case is failed, the defect or bug responsible for it is reported on the defects report. Then the development team looks into these defects on the priority and the severity basis for resolving them.
After the bug is fixed, the testing team again performs the test to ensure that the bug has completely fixed. Even, it also helps in ensuring that the fix has not led to the generation of new defects in the related components.
6. Test Closure
At this software testing phase, the test closure report is prepared. Along with that, test metrics are calculated to evaluate the entire test process. The test deliverables are checked by the team, to ensure if they are the same as expected. It is ensured that all the incidents that occurred are addressed and resolved. It is ensured that sufficient testing has been performed based on the criteria like test coverage, quality, time, cost, software, business objectives.
After all documentation, the software is submitted to the customer representative for final validation. In the end, the test artefacts like test cases and defects report are analysed by the whole team and suggestions are taken which can be implemented to improve the process in future.
These are the software testing phases that are performed in the testing process of any software. The way these software testing steps are performed may vary from organisation to organization but the purpose remains the same. Performing these stages efficiently is the key to the faster release of quality software in the market.