Abstract
Despite the application of rigorous development methodologies, program
errors are generally regarded as a fundamental phenomenon in sufficiently
complex software systems. Yet, computer software is employed to control
larger, more complex, more potentially dangerous systems than ever before.
Ensuring that these software systems function correctly is a vital
concern.
A large class of well-known software testing techniques require
information attained by executing the program under test. We are
interested in those techniques that monitor and/or modify the internal
behavior of the executing program. This work proposes new methods to
efficiently and effectively support these techniques while executing
programs in their target run-time environment.
Consequently, we are concerned with machine executable programs and
our approach is compiler-based. This approach, as opposed to more
traditional interpreter-based approaches, will afford a significant
increase execution speed during software testing, increased confidence
in the accuracy of a software test, and a new set of capabilities with
which to test software. It is hoped that, as a result, current state-of
the-art structural and fault-based testing techniques will become
significantly more cost-effective and attractive as a means to test
real, production software systems.