Software Intelligence Talk 2022-09: Schnelle CI trotz wachsender Test-Suite bei Dolby

Dr. Sven Amann

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

Koordinaten

  • Sprecher: Lars Kempe (Dolby Germany GmbH) und Dr. Sven Amann 
  • Konferenz: Software Intelligence Talk 2022-09 der CQSE GmbH
  • Datum: Mittwoch, 28. September 2022, 10:30 bis 12:00 Uhr

Zusammenfassung

Ein gute Continuous Integration läuft weniger als 10min -- etwa die Zeit, um einen neuen Kaffee zu holen. Diese Ansicht teilen die Entwickler:innen von Dolby mit vielen Kolleg:innen aus anderen Organisationen [1] und Pionieren wie Martin Fowler [2]. Die größte Herausforderung liegt dabei in der Laufzeit der (automatisierten) Tests [2]. Diese steigt unweigerlich mit der Anzahl der Tests, also mit Größe und Alter des Software-Systems. Und auf höheren Testebenen können auch einzelne Tests bereits signifikant Zeit beanspruchen.

Ein Lösungsansatz ist, eine Teilmenge der Tests für schnelles Feedback direkt auszuführen und die übrigen Tests in nachgelagerte Test-Builds (z.B. nightly) auszulagern, die auch länger brauchen dürfen. Dieser Ansatz steht und fällt natürlich mit der Auswahl der Teilmenge, da von dieser insbesondere auch abhängt, welche Teile des Software-Systems ungetestet bleiben. Was aber, wenn wir die Teilmenge abhängig von den konkreten Änderungen auswählen, die getestet werden sollen? Schließlich können neue Testfehlschläge ja nur von Änderungen verursacht werden. Die Test-Impact-Analyse verfolgt genau diese Idee. Sie ermöglicht es vollautomatisch diejenigen Tests zu bestimmen, die am wahrscheinlichsten Fehler in gegebenen Änderungen finden. So lassen sich rund 90% der Testfehlschläge in nur 2% der Testlaufzeit erkennen.

Lars Kempe (Dolby) und Sven Amann (CQSE) haben die Test-Impact-Analyse im letzten Jahr für C/C++-Systeme bei Dolby zum Einsatz gebracht. Hierzu konnten Sie die vorhandene Test-Impact-Analyse des CQSE-Werkzeugs Teamscale über einen simplen Plugin in die pytest-basierte Testautomatisierung bei Dolby integrieren. Anschließend haben sie gemessen, wie viel schneller dadurch die Continuous Integration wurde und wie viele Testfehlschläge früher als zuvor entdeckt wurden. Im Vortrag stellen die beiden die Grundlagen der Analysen und Datenerhebung vor und präsentieren die Ergebnisse und ihre Erfahrungen.

 

[1]: Hilton et al.: https://dl.acm.org/doi/abs/10.1145/3106237.3106270
[2]: Fowler: https://martinfowler.com/articles/continuousIntegration.html

Anmeldung

Dr. Sven Amann