Ballista: “High Level” + “Repeatable”
High level testing is done using API to perform fault injection
- Send exceptional values into a system through the API
- Requires no modification to code -- only linkable object files needed
- Can be used with any function that takes a parameter list
- Direct testing instead of middleware injection simplifies usage
Each test is a specific function call with a specific set of parameters
- System state initialized & cleaned up for each single-call test
- Combinations of valid and invalid parameters tried in turn
- A “simplistic” model, but it does in fact work...
-
Early results were encouraging:
- Found a significant percentage of functions with robustness failures
- Crashed systems from user mode