Various classifications of reliability tests can be done, the commonly followed method, classifies as per the phase of the development cycle. It includes
- Product development tests
- Reliability performance tests
- Reliability acceptance tests
- Reliability verification tests
Product Development Tests
It focuses on design improvement during failures by evaluating the system design. It’s result validate product’s functional capabilities.
Reliability Performance Tests
They validate product compliance with specified requirements under the specified conditions of operation. They are also called as reliability qualification tests
Reliability Acceptance Tests
It focuses on reliability parameters under ongoing quality program and are conducted during production. It validates the compliance of end product from the production process as per design specification.
Reliability Verification Tests
They focus solely on reliability parameters like MTBF or failure rate. It validates compliance at a given confidence level thus, it is formal and statistical in nature.
Software reliability testing includes feature testing, load testing, and regression testing.
Feature test
Feature testing checks the features provided by the software and is conducted in the following steps:
- Each operation in the software is executed once.
- Interaction between the two operations is reduced and
- Each operation is checked for its proper execution.
The feature test is followed by the load test.
Load test
This test is conducted to check the performance of the software under maximum work load. Any software performs better up to some amount of workload, after which the response time of the software starts degrading. For example, a web site can be tested to see how many simultaneous users it can support without performance degradation. This testing mainly helps for Databases and Application servers. Load testing also requires software performance testing, which checks how well some software performs under workload.
Regression test
Regression testing is used to check if any new bugs have been introduced through previous bug fixes. Regression testing is conducted after every change or update in the software features. This testing is periodic, depending on the length and features of the software.