OCS: Inject Faults
Injecting faults to achieve comprehensive testing
To achieve an extremely high level of software quality, the U.S. Federal Aviation Administration (FAA) requires the testing of thousands of modules created by different development teams.
To fully test an application, it must be tested under all possible conditions, including error conditions. But simulating errors like a disk offline or a disk broken can be difficult. The typical approach is to modify the source code temporarily before testing. However, this is so labor-intensive it is most often only done once. For this project, the FAA wanted a higher level of quality assurance, and asked the contractor to find a way to test many different error conditions.
The contractor chose Aprobe technology, since it can "spoof" a system to believe that any error has already occurred. Sometimes this involved using Aprobe to stub out the execution of specified methods and to return an error code instead. In other cases, the contractor used Aprobe to throw an exception. No application changes were necessary for these error tests. The fault injection process was so straightforward that it was added to the regression testing process and run on every build.
Aprobe allowed the contractor to achieve comprehensive error testing. The quality of the final code was demonstrably improved.