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.