Fault injection‐based assessment of aspect‐oriented fault tolerance
Rapport, 2010

Aspect‐oriented programming provides an interesting approach for implementing software‐based fault tolerance as it allows the core functionality of a program and its fault tolerance features to be coded separately. This paper presents a comprehensive fault injection study that estimates the fault coverage of several software implemented fault tolerance mechanisms designed to detect or mask transient hardware faults. We compare their fault coverage for two target programs and for three implementation techniques: manual programming in C and two variants of aspect‐oriented programming. We also compare the impact of different compiler optimization levels on the fault coverage. The software‐implemented fault tolerance mechanisms investigated are: i) triple time‐redundant execution with voting and forward recovery, ii) a novel dual signature control flow checking mechanism, and iii) a novel combination of several mechanisms that are shown to achieve perfect fault detection coverage for some of our target programs. The faults injected were single bit‐flips in memory words and instructions set architecture registers holding live data. The study shows that the variations in fault coverage among the implementation techniques generally are small, while it varies significantly (from 88% to 100%) for the different fault tolerance mechanisms.

Time‐redundant Execution

Aspect Oriented Programming

Fault Injection

Control Flow Checking

Fault Tolerance


Ruben Alexandersson

Chalmers, Data- och informationsteknik, Software Engineering

Johan Karlsson

Chalmers, Data- och informationsteknik, Nätverk och system





Technical report - Department of Computer Science and Engineering, Chalmers University of Technology and Göteborg University: 2010:07