Jaca: A reflective fault injection tool based on patterns Eliane Martins, Cecilia M.F. Rubira , Nelson G.M.Leme Institute of Computing - State University of Campinas (UNICAMP) PO Box 6176 - Campinas - SP - Brazil Email: {eliane, cmrubira, nelsongm}@ic.unicamp.br Abstract Jaca is a software fault injection tool that validates OO applications written in Java. Jaca's major goal is to inject faults using high-level programming features during runtime by corrupting attribute values, methods parameters or return values. Jaca's design was based on a set of patterns - the Fault Injection Pattern System. This pattern describes a generic architecture defined from recurrent design aspects present in most fault injection tools. The objective was to reduce tool development time while enhancing qualities such as portability, extensibility, reusability, efficiency and robustness. The paper presents the pattern set and its use in Jaca's development. An extension of Jaca to consider injection at assembly level is also presented to show how easy it is to add new features to the tool. Keywords: software fault injection - fault model - reflective programming - design patterns