Thesis and Project Topics

If you are interested in any of the topics listed below for your bachelor’s or master’s thesis or a master’s project , please contact us (Birgit Hofer, Thomas Hirsch).

Predicting the quality of debugging approaches

Debugging approaches often provide a ranked list of suspicious statements to the programmer. Depending on the quality of the input data (e.g. test cases, program structure), the actually faulty statements can be listed high or low in the ranking. However, only a top ranking of the faulty statements helps a programmer when debugging. Machine learning can be used to predict whether a given approach will rank the faulty statements at a top position. This helps the programmer to decide whether it makes sense to inspect the suspicious statements in the provided order or if he/she should use another debugging tool.

Your tasks include:

  • Choosing a debugging technique (e.g. Spectrum-based fault localization, Information-retrieval based debugging)
  • Identifying and selecting features for the machine learning approach
  • Applying and evaluating your machine learning approach on a given benchmark

Literature:

Comparison and evaluation of debugging tools

Researchers have developed open source tools and plug-ins to support programmers in the debugging process, e.g. GZoltar and Jaguar. While these tools have been individually evaluated by their creators, a larger evaluation and comparison of these tools is still missing.

Your tasks include:

  • Identification and selection of debugging tools
  • Comparison of their implementation, e.g.
    * How to they measure code coverage?
    * How does the underlying debugging mechanism work?
    * How easily can they be extended?
  • Evaluation on a benchmark, e.g.
    * When do the tools produce different results?
    * What types of faults cannot be detected?
  • Conducting a user study

Literature:

Development of a debugging plugin and evaluation on an open source android project

Spectrum-based fault localization (SBFL) is a popular scientific debugging technique. While there exist SBFL plugins for Eclipse, there are no plugins for intelliJ or Android Studio. Furthermore, the usefulness of SBFL has not yet been evaluated on an android project.

Your tasks include:

  • Development of an intelliJ or Android Studio plugin
  • Evaluation of the usefulness of SBFL for an open source android project

Literature:

Development and evaluation of an improved dynamic slicing tool

Dynamic slices often contain too many statements. Conditional slicing is one way to reduce the number of statements.

Your tasks include:

  • Implementation of a dynamic slicing tool for Java
  • Evaluation on existing benchmarks such as tcas and ISCAS85

Literature: