Fault Modeling Using the Program Dependence Graph

Abstract

We present a fault classification scheme and a fault seeding method that is based on the manifestation of faults in the program dependence graph (PDG). We enhance the domain/computation fault classification scheme 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 program. Structural faults correspond to differences in the control dependence or data dependence information in the PDGs, whereas statement-level faults correspond to differences in the information within PDG nodes. 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 into C programs. We are using our fault seeder to experiment with the effectiveness of unit testing techniques, and are investigating the application of our fault seeder for formulating a fault-based testing method.


Related research categories:
(1) Program Analysis
(2) Control Dependence

Go To Publications