What is Software Fault Injection?
Software development is a peculiar process, half science and half art. Now that software is doing things like controlling airplanes, the artsy part had better be backed by solid engineering practice. Consumers are no longer satisfied with code that mostly works. Fault injection is a useful tool in developing high quality, reliable code. Its ability to reveal how software systems behave under experimentally controlled anomalous circumstances makes it an ideal crystal ball for predicting how badly good software can behave.
This complete, how-to guide to a revolutionary new approach to software analysis gets developers, programmers, and managers up to speed on cutting-edge fault injection techniques. Fault-injection pioneers Jeffrey Voas and Gary McGraw use real-world case studies and code to demonstrate the unique benefits and challenges associated with these techniques. Fault injection is useful in multiple domains including:
- Testing - predicting where faults are most likely to hide
- Safety - simulating failures in real software environments and estimating worst-case scenarios
- Law - predicting the level of liability incurred by a piece of code
- Security - uncovering potential security vulnerabilities during the development cycle
- Reuse - obtaining a more accurate read on crucial maintenance and reuse issues
- Engineering - seamlessly introducing fault-injection into your software process
Related Technical Articles
(PostScript Help)
- J. Voas, G. McGraw, L. Kassab, & L. Voas. Fault-injection: A Crystal Ball for Software Quality, IEEE Computer, June 1997, Volume 30, Number 6, pp. 29-36.
- J. Voas, F. Charron, G. McGraw, K. Miller, & M. Friedman. Predicting How Badly "Good" Software can Behave, IEEE Software, July 1997, Volume 14, Number 4, pp. 73-83.
Table of Contents
Preface
- Software Assurance: Why Code Behavior Matters
- Setting the Stage: History and Basic Definitions
- Fault Injection Fundamentals: Implementing Anomalies for Inputs, Outputs, and Everything In Between
- Software Mutation: Invasive Injections Simulating Programmer Faults
- Software Testability: Ferreting Out Faults with Pie
- Software Safety: Hiding Faults with EPA
- Applied Safety Assessment: EPA Meets The Real World
- Information Security: Simulating Attacks With AVA
- Maintenance and Reuse: Software Life Support
- Advanced Fault Injection: Icing On The Fault Injection Cake
- Inoculating Real-World Software: Getting Started with Fault Injection
Appendix A: Using The CD-ROM -- Safetynet and Mothra.
|