The Center for Education and Research in Information Assurance and Security (CERIAS)

The Center for Education and Research in
Information Assurance and Security (CERIAS)

Compiler-Integrated Software Testing

Author

Edward W. Krauser

Entry type

phdthesis

Abstract

Traditionally, compilers available to the software developer/tester have only supported two software testing techniques, statement and branch coverage. However, during compilation, sufficient syntactic and semantic information is available to provide support for additional testing techniques. This dissertation presents an approach to integrate support for program mutation, a well-known and effective software testing technique, directly into a compiler. The paradigm permits the intermediate states of computation within a machine-executable program to be monitored or modified subsequent to compilation, without recompiling the program. Program mutations are performed in an efficient manner on native machine-code, and direct support is provided for effective mutant execution on MIMD architectures. As such, the paradigm provides facilities for the development of practical tools that allow support for program mutation, while improving the cost-effectiveness of both experimental and testing applications. The paradigm is based upon program patch generation and application. A prototype patch-generating C compiler, and mutation-based software testing environment utilizing this paradigm, have been constructed in order to demonstrate the approach. The prototype implementation supports the manipulation of separately compiled programs and, therefore, permits potentially large software systems to be tested. A set of experimental results compares the effectiveness of the compiler-integrated approach, employed by the prototype, to that employed by existing mutation-based software testing environments in providing support for program mutation.

Key alpha

Krauser

Note

December 1991

School

Purdue University

Publication Date

1900-01-01

Contents

1. Introduction 2. Program Patches and their Application 3. Generating Program Patches 4. A Prototype Implementation and Experimentation 5. Conclusions and Future Work

Language

English

Location

A hard-copy of this is in REC 216

BibTex-formatted data

To refer to this entry, you may select and copy the text below and paste it into your BibTex document. Note that the text may not contain all macros that BibTex supports.