|
Fast Fault Injection with Virtual Machines (Fast Abstract) Appeared in: Supplement of the 37th Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN2007) Date: June 2007 Download: BIBTEX (suesskraut2007DSNb) Fault injection is a widely used technique to test the robustness of software systems and to find bugs in applications. We focus on using fault injection to judge the quality of error handling in applications. Even mature applications have serious bugs in error handling. To find all bugs related to bad error handling when using a certain API one has to do exhaustive fault injection, i.e., to inject all error values found in the API's specification. When doing exhaustive fault injection one has to do one fault injection experiment per API usage of the application to test. That means one need to run the application once per fault injection. So the run-time of all experiments together grows like O(n^2) in terms of API usages. One can reduce run-time complexity to O(n) by utilizing snapshots and rollbacks. The idea is to make a snapshot of the application directly before a fault is injected. After the fault injection experiment is finished the application's state is rolled back to the last snapshot. In this way one can reuse the progress until the fault injection an application has already achieved. |