Criteria needed for a good software testing plan
The objective of this article on testing is to present the various testing activities to be implemented, with the specific constraints and planned processes.
Since it is almost impossible to develop an error-free software application, it is essential to take the time to find and correct them through an appropriate testing process. The cost of the tests is actually an investment because it allows you to reduce costs in the subsequent phases of production and operating release.
The objective of the testing phase should be to find the largest number of errors with the minimum number of test cases. The testing plan therefore has the main purpose of establishing the hierarchy with which the tests must be performed, the methods of execution, the acceptance criteria.
Testing is carried out through a bottom-up approach: first the individual modules are tested and then the entire project is tested, assessing its overall efficiency. Having said that, a good test plan must include at least the following types of tests:
- Unit test
- Integration Test
- System Test
- User Acceptance Test
- Alpha test and Beta test
- Regression Test
- Stress test
Test phase and hierarchy
Unit test (Unit or module test)
It aims to identify errors in the individual software module. Verify that the software performs the operations correctly. It is carried out by the programmer who developed the module and documented reporting the functional requirements to be met. (weight on the test plan 15%)
It aims to identify errors in the software when all the modules that make up a subsystem or the entire system are made to work together. It is carried out jointly by the group of programmers who developed the various modules. (weight on the test plan 20%)
System Test (System Test)
It aims to ensure that the software product as a whole completely meets the initial requirements, is an internal test. (weight on the testing plan 45%)
User Acceptance Test
It aims to assess the compliance of the software application with the requirements initially expressed in the contract and to obtain formal customer acceptance of what has been achieved. The test is performed by the client in his test environment, and by a group of users. (weight on the test plan 20%)
Alpha test and Beta test
An alpha test is a preliminary test of a software application that is not yet complete, performed by some potential users represented by a team. A beta test has the objective of making the customer evaluate, before the official roll-out of the system, the actual functionality, completeness and operation of the application. The details on data collection by the user of this part will be updated on this document as soon as the stable version of the app is completed, in order to make the data collection more suitable for the final functions and details to complete and render more Functional the frontend.
Regression Test (non-regression test)
It aims to verify downstream of a corrective maintenance, after the bug has been identified and corrected and exactly the same tests that were performed when the problem was identified were performed.
Stress test (load test)
The stress test is part of the system tests and aims to determine the breaking point of a software system, beyond which system instability, data loss or service interruption occur.