Umfangreiche Tests geben uns das nötige Vertrauen in unsere Code-Änderungen und das gute Gefühl, nichts kaputtgemacht zu haben. Doch je mehr Testfälle wir haben, desto mehr Zeit kostet es, diese auszuführen. Insbesondere wenn das Test-Setup aufwändig ist (z.B. Hardware-in-the-Loop enthält) und der Automatisierungsgrad niedrig, ist die regelmäßige Ausführung aller Tests in der täglichen Arbeit nicht mehr praktikabel. Die Ausführung der gesamten Testsuite kann dann nur noch wöchentlich oder noch seltener erfolgen. Dadurch werden viele Fehler aber erst spät gefunden, was die Ursachenforschung erschwert und hohe Folgekosten verursacht.
Die Test-Impact-Analyse zeigt auf, wie wir dieses Problem adressieren können. Zunächst reduziert die Test-Impact-Analyse die Testfälle auf diejenigen, die Code durchlaufen, der sich seit dem letzten Testlauf geändert hat – denn nur dort sind neue Fehler zu erwarten. Durch eine anschließende intelligente Sortierung werden die verbleibenden Testfälle zusätzlich in eine Reihenfolge gebracht, bei der neue Fehler möglichst schnell erkannt werden.
Wir zeigen anhand konkreter Erfahrungen aus Forschung und Praxis, wie das Verfahren funktioniert und was es leistet. Grundlage des Vortrags sind Forschungsarbeiten, die im Rahmen von Promotionen bei uns in der Forschungsgruppe entstehen. Hierfür haben wir Test-Impact-Analysen sowohl auf rund 400 Open-Source-Systemen als auch in einem Hardware-In-The-Loop-Teststand in Kooperation mit BMW evaluiert. In unseren Studien konnten wir so in nur 2% der Testlaufzeit 90% aller neuen Fehler finden. Zusätzlich deckt die Test-Impact-Analyse Fehler deutlich früher auf als vergleichbare Verfahren.
Die Test-Impact-Analyse als Methode ist an kein bestimmtes Werkzeug, keine Programmiersprache oder Entwicklungsumgebung gebunden. Damit bietet der Vortrag Erkenntnisse, die jeder Teilnehmer in seinem eigenen Projekt anwenden kann.