Enhancing Software Reliability through Testing
Studies during software design and development can improve software
reliability. By performing reliability testing, it is possible to eliminate the
software failure mode. It is also important to perform
life testing after finishing
the software design.
Testing of new software prototypes for failure is important to detect the causes
of failure and prescribe actions to fix them. If there are features added to the
software, a test case must be prepared in a different way. The Software Quality
Assurance team must be able to determine the number of new test cases for the
present software version. If a new feature
is part of an existing feature, the team
can share test cases between the two features. Lastly, the group can combine the
test cases of the previous and present versions then record the results.
Evaluation of Software Reliability through Operational Testing
Operational testing checks software performance in an operational environment.
However, it is not easy to create an operational environment like in aircraft
industries,
nuclear industries,
etc. It is possible to perform reliability evaluation
through reliability growth based prediction and steady state reliability
estimation.
In steady state reliability estimation, data from delivered software can predict the
reliability of the software’s next version.
On the other hand, the reliability
growth based prediction uses documentation from past test data to observe a
trend and predict the next version’s reliability.
The prediction and assessment of reliability uses the reliability growth model.
Failure data from the software operation serves as input to this model, which can
evaluate software reliability. However, it is important to
note that there is no best
model that can claim to represent the failure process. As such, it is important to
select the model based on the predetermined conditions.
Reliability estimation, on the other hand, assumes that somebody will fix the
error when discovered. Fixing it will not affect the software
reliability and that
the fix is accurate.