We present a fault-classification scheme and a fault-seeding method that are based on the manifes- tation of faults in the program dependence graph (PDG). We enhance the domain/computation fault- classification scheme developed by Howden to further characterize faults as structural and statement-level, depending on the differences between the PDG for the original program and the PDG for the faulty pro- gram. We perform transformations on the PDG to produce the different types of faults described in our PDG-based fault-classification scheme. To demonstrate the usefulness of our technique, we implemented a fault seeder to embed faults in C programs. Our fault seeder makes controlled fault transformations to the PDG for a C program, and generates C code from the transformed PDG. The current version of the fault seeder creates multiple fault-seeded versions of the original program, each with one known fault. To demonstrate the operation of the fault seeder, we used it to perform a study of the effectiveness of dataflow testing and mutation testing using a set of faulty programs generated by our fault seeder. We also used the faulty programs to determine the mutation and dataflow adequacy of the fault-detecting test sets.
Back to my home page.