The aim of reliability testing is to measure the reliability of a system.
The reliability measurement is not easy to apply practically. The difficulties that arise are:
1. Operational profile uncertainty: The operational profiles based on experience with other systems may not be an accurate reflection of the real use of the system.
2. High costs of test data generation: It can be very expensive to generate large volume of data required in an operational profile unless the process can be totally automated.
3. Statistical uncertainty when high reliability is specified: You have to generate a statistically significant numbers of failures to allow accurate reliability measurements. When the software is reliable, relatively few failures occur and it is difficult to generate new failures.
4. Recognition failure: It is not always obvious whether or not a system failure has occurred. If you have a formal specification, you may be able to identify deviations from that specification but, if the specification is in natural language, there may be ambiguities.