Analyse von Computerprogrammen durch automatische Experimente
Final Report Abstract
Wenn ein Programm abstürzt, schlägt die Stunde der Fehlersucher – der Menschen, die die Ursache des Fehlers finden und beheben müssen. Fehlersuche ist ein mühsames Geschäft: Ein Ablauf eines modernen Programms umfasst schnell Milliarden von einzelnen Anweisungen, von denen nur eine einzige falsch arbeiten muss, um sämtliche Ergebnisse zu verfälschen. Diesen Strom von Anweisungen und Daten müssen Programmierer im Blick behalten, um den Fehler zu finden – eine Nadel im Heuhaufen ist ein Kinderspiel dagegen. Und nicht nur das: Hat man einmal mit der Suche begonnen, weiß man nie, wann sie enden wird – ob zum Abendessen oder zum Morgengrauen. Im Forschungsprojekt “Analyse von Computerprogrammen durch automatische Experimente” haben Forscher der Universität des Saarlandes nun Verfahren entwickelt, die diesen Suchaufwand dramatisch reduzieren. Gerade mal eine von 600 Anweisungen müsse der Programmierer betrachten, um den Fehler zu beheben – bei einem 3.000-Zeilen-Programm also 5 Zeilen, so die Studie der Saarländer: Ein absoluter Rekord, und dies vollautomatisch, ohne weitere Hilfsmittel. Bedenkt man, dass Fehlersuche gut und gerne 50% der Softwareerstellung ausmachen kann, können die Saarbrücker Forscher nicht nur die Produktivität enorm steigern, sondern auch dafür sorgen, dass Softwareentwickler endlich wieder planmäßig zu jedem Abendessen zuhause sind – ein Gewinn für die ganze Familie.
Publications
- Isolating Intrusions by Automatic Experiments. Network and Distributed System Security Symposium (NDSS), 2006
S. Neuhaus, A. Zeller
- Isolating Relevant Component Interactions with JINSI. Workshop on Dynamic Analysis (WODA), 2006
A. Orso, S. Joshi, M. Burger, A. Zeller
- JINSI: Isolation fehlerrelevanter Interaktion in Produktivsystemen. Workshop on Software Reengineering (WSR), 2007
M. Burger
- Replaying and Isolating Failing Multi-Object Interactions. Workshop on Dynamic Analysis (WODA), 2008
M. Burger, A. Zeller