abstract = "The task of ensuring that a software artifact is
correct can be a very time consuming process. To be
able to say that an algorithm is correct is to say that
it will produce results in accordance with its
specifications for all valid input. One possible way to
identify an incorrect implementation is through the use
of automated testing (currently an open problem in the
field of software engineering); however, actually
correcting the implementation is typically a manual
task for the software developer. In this thesis a
system is presented which automates not only the
testing but also the correction of an implementation.
This is done using genetic programming methods to
evolve the implementation itself and an appropriate
evolutionary algorithm to evolve test cases. These two
evolutionary algorithms are tied together using
co-evolution such that each population plays a large
role in the evolution of the other population. A
prototype of the Co-evolutionary Automated Software
Correction (CASC) system has been developed, which has
allowed for preliminary experimentation to test the
validity of the idea behind the CASC system",
notes = "sort, seeding
Approved by Dr. Daniel Tauritz, Advisor Dr. Thomas
Weigert Dr. Bruce McMillin",