[an error occurred while processing this directive]

Master project

Type of project:
Master project WS 2005/2006

Reto Ghioldi

AutoTest - Automated fault localization in external C code of Eiffel programs

Ilinca Ciupa, Andreas Leitner


AutoTest is a fully automatic testing tool for Eiffel classes and is based on the ideas of Design by Contract. However, external code (such as external C/C++ code) is usually not equipped with contracts. This means that often the manifestation of a bug occurs far from the actual location of the fault in the software and there is no indication of the type of error that occurred.

In this thesis we evaluate different approaches for gaining additional information about faults in external code and for tracing them back to the Eiffel code. The solution is based on a technique called dynamic binary analysis (DBA). We chose Valgrind’s Memcheck as the tool that our work is based on, designed and implemented a universal framework for automated DBA and finally built an extension to AutoTest in order to allow it to use this automated analysis.

We successfully detected the real error causes in over 93% of our Eiffel test applications with different kinds of bugs in external code and could provide the programmer useful debugging information.

Project plan (PDF)

Report (PDF)

Source code