Vortrag JFS 2018: Gestern lief's doch noch. Muss ich heute schon wieder alles testen? Forschungsergebnisse und eigene Erfahrungen mit Test-Impact-Analyse

Posted on 07/05/2018 by Dr. Elmar Juergens

Since this post accompanies a talk in German, it is written in German, too.

Koordinaten

  • Sprecher: Elmar Jürgens
  • Konferenz: JFS
  • Datum: Donnerstag, 5. Juli 2018, 14:30 - 15:15 Uhr
  • Ort: Kongresszentrum Stuttgart, Silchersaal

Zusammenfassung

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.

Folien

Click to activate comments for this page.

Please note that comments use the third-party integration Disqus, which shares data with both Twitter and Facebook and has a separate privacy policy that you have to agree to before activating comments on this page.