Software testing project management – 2022 guide
As many use cases show, there are plenty of examples of software and systems that have been commissioned but failed due to errors or not meeting the clients standards. However, with the right testing technologies, such occurrences can be significantly reduced.
Usually, in an agile approach to software development, similar situations happen less frequently than in traditional models, due to testing software in short intervals systematically along with changes introduced by programmers.
What is software testing and why it matters
Furthermore, other activities that include the software testing process may include reporting on the progress and results of tests, as well as, assessing the quality of the test subject. We divide testing into dynamic testing (when the tested module must be turned on) and static testing (when the test subject is turned off).
Developers can participate in the testing process, especially at low levels, but their lack of objectivity often results in poor performance. The independent tester conducting software audit may have the skills required and defined in the testing process, but above all, he should have the mandate to perform all assigned duties assigned to him by the management.
A well-tested system translates into:
- Up to 80% less critical errors discovered after implementation
- Up to 30% reduction in the implementation costs of a given functionality due to the identification of errors by the test team at the early stages of the project
- 24/7 basic verification of the environment using test automation
- Up to 70%, less time spent on manual regression testing ensured by automating the testing process
Test execution levels:
The software development process consists of several stages/phases in which characteristic tests are performed. These tests can be divided as follows:
Test management process
To ensure high quality, all software should be tested extensively. Yet, due to the growing complexity of systems, one has to be aware that it can be a lengthy and costly process. Therefore, in order to speed up the entire process, Test Management has to be up and running.
The ultimate test management process model consists of 2 elements: planning and execution.
The Test planning phase is to define the objective of the testing itself within the software development, implementation and service needs. We can document our plan in a design or master test plan, or a separate test plan specifically developed for each test.
It must be noted that the planning phase is shaped by the organisation’s test policy, the scope of testing, objectives, risk, framework, validity, testability, and resource availability. The more advanced the project, the more information is available and more details can be included in the plans. Furthermore, test planning is a continuous activity performed throughout the project lifecycle, and the feedback is used to identify risks so that planning can be adjusted to the current situation.
Test planning activities include:
- Definition of a general test method (test strategy), including the definition of test levels and test, start and end criteria
- Integration and coordination of test activities within the software development cycle: purchase, delivery, development, operation and service
- Tasks distribution: deciding what to test, who will perform each test activity, when and how test activities should be performed, how test results will be analysed and when to stop testing
- Assigning resources for various, defined tasks
- Defining the quantity, level of accuracy, structure and patterns of test documentation
- Selection of measures for monitoring and controlling test preparation, defect resolution and risk assessment
- Establishing a level of accuracy for test procedures to provide sufficient information to support reproducible test preparation and execution
Test execution is an important part of the software development process.
In turn, validation checks that the software meets the user’s expectations.
We can start testing at any point in the software development cycle, but the sooner we start testing our system, the cheaper project will be. Besides, the moment when we can start testing depends on the software development method used in the project. The execution phase is divided into the following stages:
- Progress Monitoring
- Test Reporting
- Configuration management
- Test conducting
- Incidents management
- Assessment of exit criteria
- Closing activities
The purpose of monitoring is to obtain feedback and gain insight into the performed tasks. All monitored metrics (collected both: manually or automatically) can be used to measure exit criteria (e.g. coverage). Besides, we use those metrics to evaluate progress according to the planned schedule and budget.
Test Reporting provides a summary of the test project, including information on what happened during testing, when the exit criteria were met, analysis of information and metrics supporting the recommendation and decisions on future actions, such as other defects, the profitability of further testing, other risk areas and the level of trust in the tested software. This phase also provides an outline of the test summary report.
Test management takes into account all software development management activities based on information and measurements collected, as well as, reported during the execution phase. These activities can be related to any test task related to the software lifecycle.
Examples of test conducting activities include:
- Making decisions based on information obtained from test monitoring
- Re-prioritisation of tests when risk occurs (e.g. software will be delivered)
- Schedule change depending on availability or unavailability of the test environment
- Establishing entry criteria that require the developer to retest the fixes (perform confirmation tests) before including them in a release
Configuration Management aims to establish and maintain the integrity of the products (modules, data and documentation). From a testing standpoint, configuration management may require ensuring that all software components have been identified, version controlled, tracked, linked to each other and the development components (subject to testing), so that changes and relationships can be tracked throughout the testing process. Furthermore, configuration management helps testers identify (and recreate) the tested elements and gather needed information to populate documentation.
Since finding defects is the main aim of the tests, all discrepancies between results must be reported as incidents that must be analysed. Incidents and defects should be tracked from detection and classification to repair and solution conformation. To be able to manage all incidents right up to their closure, the organization should implement an incident management process and classification rules.
Incidents can be reported during the development, inspection, testing, or use of a software product. They can be reported for bugs in code or a running system, and any type of document such as requirements, development documents, test documents, or user information such as help or installation instructions.
Assessment of exit criteria
The purpose of this phase is to assess the performed test against previously established objectives. We check in the so-called logs called (test logs) meeting the criteria of the tests we have completed. At this point, you should also consider whether there is a need to perform additional tests or whether there is a need to transform the exit criteria. The last element is the reporting of the activities performed and the results.
This step finishes the test process. If all functionalities have been validated by the client, we mark them as received and document their acceptance. In the next step, we transfer all documentation and tools collected during the entire test process to the support and maintenance team.
As many use cases show well-implemented test management can save a lot of money and resources. However, for further improvement of the effectiveness of the entire project, it is important to adopt a list of best practices, which includes the following pieces of advice:
- Start test management as early as possible
- Software testing should be iterative
- Testers should reuse test artefacts to increase the efficiency
- Use requirement-based testing
- Coordinate and integrate with the development team
- Relegate tasks to the Software Development Company
Do you want to learn more about how the software audit or testing phase can help your company guarantee the best quality of your product? Contact us and let’s talk!