Who I Am

I am postdoctoral researcher (postdoc) at the Software Engineering Chair (Prof. Dr. Andreas Zeller) at Saarland University. I am interested in all sorts of systematic (and automated in particular) debugging, especially dynamic analysis and capture/replay of programs.

I maintain several projects related to my research and courses at this chair. In my resume at www.martin-burger.net, you can find further information about my education, work experience, further education, special skills, talks, exhibitions, demonstrations, and awards.

PhD Thesis – Replaying and Isolating Failure-Inducing Program Interactions

News: I successfully completed my PhD thesis defense on June 20th.

Summary:
A program fails. What now? A programmer must debug the program to fix the problem, by completing two fundamental debugging tasks: first, the programmer has to reproduce the failure; second, she has to find the failure cause. Both tasks can result in a tedious, long-lasting, and boring work on the one hand, and can be a factor that significantly drives up costs and risks on the other hand. The field of automated debugging aims to ease the search for failure causes.
This work presents JINSI, taking a new twist on automated debugging that aims to combine ease of use with unprecedented effectiveness. Taking a single failing run, we automatically record and minimize the interactions between objects to the set of calls relevant for the failure. The result is a minimal unit test that faithfully reproduces the failure at will: “Out of these 14,628 calls, only 2 are required”. In a study of 17 real-life bugs, JINSI reduced the search space to 13.7 % of the dynamic slice or 0.22 % of the source code, with only 1 to 12 calls left to examine—a precision not only significantly above the state of the art, but also at a level at which fault localization ceases to be a problem.
Moreover, by combining delta debugging, event slicing, and dynamic slicing, we are able to automatically compute failure reproductions along cause-effect chains eventually leading to the defect—both efficiently and effectively. JINSI provides minimal unit tests with related calls which pinpoints the circumstances under which the failure occurs at different abstraction levels. In that way, the approach discussed in this thesis ensures a high diagnostic quality and enables the programmer to concentrate on automatically selected parts of the program relevant to the failure.

You can download my PhD thesis as PDF file.

Research & Projects

The focus of my research is on automated debugging, in particular on applying delta debugging to find failure-inducing circumstances automatically—circumstances such as the program input, changes to the program code, or program executions. In addition, I am interested in all sorts of automation related to software development, for instance build and test automation.

Usually, my research results in usable tools, for instance DDchange, a debugging framework and provided tools that automatically determine failure-inducing program changes. Currently, I am working on JINSI, a tool that replays and isolates failure-inducing program interactions.

See my detailed research interests and my projects for more details.

Publications

My latest publication related to capture/replay “Minimizing Reproduction of Software Failures” will appear at the 2011 International Symposium on Software Testing and Analysis (ISSTA 2011) in Toronto, ON, Canada.

Abstract: A program fails. What now? Taking a single failing run, we record and minimize the interaction between objects to the set of calls relevant for the failure. The result is a minimal unit test that faithfully reproduces the failure at will: “Out of these 14,628 calls, only 2 are required”. In a study of 17 real-life bugs, our JINSI prototype reduced the search space to 13.7 % of the dynamic slice or 0.22 % of the source code, with only 1-12 calls left to examine.

Initial submission available upon request.

All my publications

You can find an exhaustive list of my publications at the chair’s publications page. Most of them can be downloaded as PDF file.

Teaching

I have extensive experience as supervisor for several courses related to software engineering in general and debugging as well as programming in particular:

Semester Course Type
Winter 2010 Software Engineering — “The engineering discipline of the 21st century.” Core lecture, in English
Summer 2009 13 Wochen - 13 Sprachen — 13 programming languages in 13 weeks. Proseminar, in German
Summer 2007 Programmierung 2 — Learn how to program on a large scale. Regular lecture, in German
Summer 2006 Automated Debugging — Learn how to find failure causes automatically. Advanced lecture, in English

Furthermore, I helped supervise the following lectures:

Semester Course Type
Summer 2010 Softwarepraktikum Practical course
Summer 2009 Softwarepraktikum Practical course
Summer 2008 Softwarepraktikum Practical course
Summer 2007 Softwarepraktikum Practical course
Summer 2006 Softwarepraktikum Practical course

Looking for a bachelor/master thesis?

In order to get a feeling of what I'm interested in, you can check out my research, projects, and my my publications page. If you are interested, just contact me and we will see if we can find a suitable topic.

Contact

During usual office hours, you may either phone me (+49 (0)681 302-70991) or pay me a visit in room 1.08. If I'm not physically available, just send an e-mail. If you prefer a fast answer, give me a call.