Since this post accompanies a talk in German, it is written in German, too.
Je älter und größer ein Softwaresystem ist, desto wichtiger ist eine verlässliche, automatisierte Testsuite. Insbesondere, wenn ich unter Zeitdruck viele Änderungen umsetze und kurze Release-Zyklen habe.
Wenn das System wächst, muss auch die Testsuite wachsen. Damit steigt aber auch die Ausführungsdauer. Wir sehen in der Praxis immer öfter Suites, die mehrere Stunden oder sogar Tage laufen. Langlaufende Suites werden aber typischerweise seltener ausgeführt als schnelle Suites, z.B. wöchentlich statt täglich. Leider muss ich als Entwickler dadurch immer länger auf Feedback warten, wodurch es immer aufwändiger wird, die Ursache für fehlschlagende Tests zu lokalisieren. Ironischerweise mindert das den Wert der Tests gerade für die Systeme, in denen sie eigentlich besonders wichtig sind.
Test-Impact-Analyse adressiert dieses Problem, indem sie Testfälle aussortiert, die bei der nächsten Ausführung höchstwahrscheinlich keine Fehler finden. Dazu werden die Code-Änderungen analysiert, die seit dem letzten Testlauf durchgeführt worden sind. Außerdem werden Tests so in Reihenfolge gebracht, dass sie möglichst schnell möglichst viele Änderungen durchlaufen. In unseren empirischen Studien konnten so über 90% der Fehler in weniger als 10% der Ausführungszeit gefunden werden.
Der Vortrag stellt Grundlagen, Forschungsergebnisse und empirische Studien zu Test-Impact-Analyse vor. Daneben berichten wir von unseren Erfahrungen damit in der eigenen Entwicklung, in Open-Source Projekten und bei Kunden.