What is Reliability testing

Reliability testing in software engineering

Software reliability testing refers to the probability of failure-free operation of a system. It is related to many aspects of software, including the testing process. Directly estimating software reliability by quantifying its related factors can be difficult.
reliability testing,robustness testing, stress testing, load testing

Testing is an effective sampling method to measure software reliability. Guided by the operational profile, software testing can be used to obtain failure data, and an estimation model can be further used to analyze the data to estimate the present reliability and predict future reliability.

Therefore, based on the estimation, the developers can decide whether to release the software, and the users can decide whether to adopt and use the software.

The risk of using the software can also be assessed based on the reliability information. Hamlet advocates that the primary goal of testing should be to measure the dependability of tested software.

There is agreement on the intuitive meaning of dependable software. It doesn't fail in unexpected ways. The following two are the variances of reliability testing based on this simple criterion.

  • Robustness Testing
  • Stress Testing
  • Load Testing

Robustness Testing

The robustness of a software component is the degree to which it can function correctly in the presence of exceptional inputs or stressful environmental conditions.

Robustness testing differs from correctness testing in the sense that the functional correctness of the software is not of concern. It only watches for robustness problems such as machine crashes, process hangs, or abnormal termination. Therefore robustness testing can be made more portable and scalable than correctness testing.

Stress Testing

Stress testing encompasses creating unusual loads on the system in attempts to break it. The system is monitored for performance loss and susceptibility to crashing during the load times. If it does crash as a result of high load, it provides for just one more recovery test. Stress testing is also known as Endurance Testing.

Stress testing is often used to test the whole system rather than the software alone. In such tests, the software or system is exercised with or beyond the specified limits.

Typical stress includes resource exhaustion, bursts of activities, and sustained high loads.

Stress testing is subjecting a system to an unreasonable load while denying it the resources needed to process that load. The idea is to stress a system to the breaking point to find the bugs that will make that break potentially harmful. The system is not expected to process the overload without adequate resources, but to behave decently. Bugs and failure modes discovered under stress testing may or may not be repaired depending on the application, the failure mode, consequences, etc. The load in stress testing is often deliberately distorted to force the system into resource depletion.

Load Testing

One of the most common, but unfortunate misuses of terminology is treating "load testing" and "stress testing" as synonymous.

Load testing is subjecting a system to a statistically representative load. In load testing, the load is varied from a minimum to the maximum level the system can sustain without running out of resources or having transactions suffer excessive delay.

Thread Testing

Thread testing is a popular testing technique suitable for testing real-time systems. In this testing, the processing of each external 'threads' it's a way through the system processes or objects with some processing carried out at each stage.

This type of testing involves identifying and executing each possible processing 'thread'.

Back-to-back testing

Back-to-back testing is used when several versions of a system exist for testing. All versions are tested with the same set of tests and then the results are compared for some system problems if exist. 

Some basic steps that may help to carry out back-to-back testing.
A general-purpose set of test cases is repaired.
Using these test cases, run the different system versions and store the results in different files.
Performs the automatic comparison of the results stored in different files and generates the Difference Report.

Post a comment