David Schuler

Software Engineering Chair (Prof. Zeller)
Saarland University – Computer Science
Campus E1 3
66123 Saarbrücken, Germany
E-mail: schuler@st.cs.uni-saarland.de
Phone: +49 (0)681 302-64026

Deutschsprachige Startseite Page d'acceuil en français English home page
  

About me

I am working as scientific assistant in the Software Engineering Group at Saarland University.

My research lies in the area of software quality assurance, notably

  • Dynamic program analysis: How can we characterize program runs?
  • Software testing: How do we know a test is "good enough"?

Projects

Efficient and Effective Mutation Testing

My most exciting work these days is in the area of mutation testing -- that is, seeding artificial bugs into code to assess whether your test suite finds them. If it does not, this means your test suite is not yet good enough.

Despite its effectiveness, mutation testing has two issues. First, it requires large computing resources to re-run the test suite again and again. Second, and this is worse, a mutation to the program can keep the program's semantics unchanged -- and thus cannot be detected by any test. Such equivalent mutants act as false positives; they have to be assessed and isolated manually, which is an extremely tedious task.

For that purpose, I have developed Javalanche, framework for mutation testing of Java programs, which addresses both the problems of efficiency and equivalent mutants:

  • First, Javalanche is built for efficiency from the ground up, manipulating byte code directly and allowing mutation testing of programs that are several orders of magnitude larger than earlier research subjects.
  • Second, Javalanche addresses the problem of equivalent mutants by assessing the impact of mutations on dynamic invariants: The more invariants impacted by a mutation, the more likely it is to be useful for improving test suites.

We have evaluated Javalanche on seven industrial-size programs, confirming its effectiveness. With less than 3% of equivalent mutants, our approach provides a precise and fully automatic measure of the adequacy of a test suite -- making mutation testing, finally, applicable in practice.

For details on the technique, see our paper on Efficient Mutation Testing by Checking Invariant Violations.

Detecting Code Theft with API Birthmark

As part of my master's thesis, I have developed the API birthmark, a tool to extract and compare birthmarks based on API call sequence sets. With API birthmark, one can effectively determine code theft.

The corresponding paper was presented at ASE 2007, and got me some nice media coverage (Slashdot · SZ · Heise · Linuxworld · Pressespiegel · Computable · Bild · Entwickler · ACM Technews · Computerzeitung · IDW Online).

A list of all my publications can be found here.

Teaching

I served as a teaching assistant for programming 2 (Programmierung 2), an introduction to object-oriented programming, in summer semesters 2007 and 2008. Among others, I was responsible for setting up and running automated tests for more than 200 participants.

Contact

You can meet me in my office in Building E 1 3, Room 302 or send me an e-mail schuler@st.cs.uni-sb.de

<schuler@st.cs.uni-saarland.de> · http://www.st.cs.uni-saarland.de/~schuler/ · Updated: 2009-11-05 18:40