GRINDER

GeneRic fault INjection tool for DEpendability and Robustness assessments

GRINDER is a fault injection framework that has been developed with the goal of easy adaptability to various injection targets and scenarios. While a large number of different fault injection tools exist that all target injections of specific fault types into specific locations of specific target systems (short: they only work for a very specific experimental assessment), GRINDER can be reused across a large variety of different systems. To support different target systems, GRINDER introduces an abstract interface to target systems. For each target of a fault injection campaign, a controller extension for this target has to be implemented and linked with GRINDER, so that GRINDER can initialize, reset, and stop the target and trigger experiment executions.

We have successfully used GRINDER in fault injection experiments with the Linux-based Android OS kernel (see our work on the PAIN tool) and in a joint project with General Motors, in which we evaluated the implementation of AUTOSAR safety mechanisms in a commercial AUTOSAR distribution.

Our experience with GRINDER’s usage and code reusability for these scenarios is documented in workshop paper:

Stefan Winter, Thorsten Piper, Oliver Schwahn, Roberto Natella, Neeraj Suri, and Domenico Cotroneo:
“GRINDER: On Reusability of Fault Injection Tools”
Proc. of the 2015 IEEE/ACM 10th International Workshop on Automation of Software Test (AST 2015)
Florence, Italy, May, 2015, pp. 75-79
DOI: 10.1109/AST.2015.22
ISBN: 978-1-4673-7022-6
IEEE Computer Society Conference Publishing Services

GRINDER’s source code is available on github under the AGPL v3 license:

https://github.com/DEEDS-TUD/GRINDER

GRINDER is a generic framework and will not run without the target system specific extension that turns it into an actual fault injection tool. To see GRINDER in action, check out PAIN or AUTOGRINDER.