Blog

Automatische Testfallselektion für Regressionstests - Richard Seidl

Geschrieben von Richard Seidl | 19.06.2023

Silke hatte in Ihrem Unternehmen ein typisches Problem bei Regressionstests: Diese liefen sehr, sehr lange. Die Rahmenbedingungen waren schwierig: Die Regressionstests prüfen ein komplexes Testobjekt, welches in verschiedenen Programmiersprachen entwickelt wird. Gemeinsam mit der TU München konnte Sie und ihr Team das Problem lösen – durch eine automatisierte Testselektion über die C++ und Java-Anteile hinweg. Im Interview haben wir über die konkrete Umsetzung, verschiedene Konzepte zur Testselektion und die beeindruckenden Zahlen über die erreichte Zeitersparnis gesprochen.

“Auf der Java Seite waren wir vorher bei einer Laufzeit von 2,5 Stunden (…) In vielen Fällen können wir jetzt nach 10-15 Minuten den Entwicklern tatsächlich eine Rückmeldung geben: Ja, war gut – oder eben auch nicht” – Silke ReimerAuf der Java Seite waren wir vorher bei einer Laufzeit von 2,5 Stunden (…) In vielen Fällen können wir jetzt nach 10-15 Minuten den Entwicklern tatsächlich eine Rückmeldung geben: Ja, war gut – oder eben auch nicht” – Silke Reimer

Silke Reimer ist schon vor über 20 Jahren bei ihrem ersten Arbeitgeber mit dem Konzept des Test Driven Development in Berührung gekommen. Seitdem lässt sie das Thema Testautomatisierung und generell Software Qualitätssicherung nicht mehr so richtig los. Inzwischen ist sie Leiterin der Qualitätssicherung für eines der beiden Geschäftsfelder bei der IVU Traffic Technologies AG. Ein wichtiger Teil ihrer Aufgabe beinhaltet Verbesserungen im Bereich Testautomatisierung auf allen Ebenen. Diesem Thema hat sie sich vor ihrer aktuellen Position auch als Testarchitektin langjährig gewidmet. Dabei ist ihr besonders wichtig, dass Testautomatisierung nicht das Ziel sondern eine von mehrere Maßnahmen ist, um den Entwickler:innen ein schnelles Feedback über die Qualität des Codes zu geben.

Highlights in dieser Episode:

  • Wir sprechen über Testfallselektion für Regressionstests
  • Die Lösung wurde gemeinsam mit der TU München entwickelt, um die Durchlaufzeiten zu reduzieren
  • Silke arbeitet bei IVU und entwickelt Software für Verkehrsbetriebe
  • Die Test-Suite umfasst etwa 25.000 Testfälle und dauerte ohne Selektion bis zu sieben Stunden
  • Durch die Selektion können bis zu 50-60% der Testfälle eingespart werden
  • Die Lösung analysiert, welche Dateien bei Testläufen geöffnet werden, um die nötigen Testfälle zu selektieren
  • Es wurde eine Reduktion von Stunden auf Minuten in manchen Läufen erreicht
  • Die Entwickler erhalten deutlich schnelleres Feedback
  • Das System läuft seit etwa anderthalb bis zwei Jahren
  • Es gab keine Situationen, in denen wichtige Fehler durch das System übersehen wurden

Wie man Stunden in Minuten verwandelt

Silke Reimer teilet spannende Einblicke in die Welt der automatischen Testfallselektion. Durch Zusammenarbeit mit der TU München wurde eine innovative Lösung entwickelt, um die Durchlaufzeiten von Regressionstests in einem komplexen Softwareumfeld signifikant zu reduzieren.

Der Sprung in eine neue Ära der Testautomatisierung

Silke erzählt von Herausforderungen und Lösungen in einem Szenario, das viele Unternehmen gut kennen: lange Durchlaufzeiten bei Regressionstests aufgrund eines riesigen Codespeichers und diverser Programmiersprachen. Die Zusammenarbeit zwischen IVU und der TU München führte zur Entwicklung eines innovativen Ansatzes, der es ermöglicht, nur die notwendigen Testfälle auszuführen und somit massive Zeitersparnisse zu erzielen.

Die Herausforderung: Ein Berg an Code und Wartezeit

Silke gab einen Überblick über die Dimensionen des Problems. Bei IVU, einem Unternehmen, das Software für Verkehrsbetriebe entwickelt, umfasst allein die Test-Suite rund 25.000 Fälle. Eine vollständige Durchführung aller Tests dauerte bis zu sieben Stunden – eine untragbare Wartezeit für Entwickler nach jedem Code-Check-in. Zusätzlich zur Komplexität durch unterschiedliche Programmiersprachen wie C++ und Java kam noch die Pflege von zahlreichen Branches hinzu. Dieses Setting führte zu einer enormen Belastung der Ressourcen und einer verzögerten Feedbackschleife.

Die Lösung: Intelligente Selektion statt Massentests

Die Wende kam mit einem Projekt in Kooperation mit der TU München unter Leitung von Professor Alexander Pretschner. Durch den Einsatz eines Doktoranden konzentrierte sich das Team darauf, ein System zu entwickeln, welches basierend auf den Änderungen im Code nur relevante Testfälle auswählt. Dieser Ansatz erlaubte es dem Team nicht nur, erheblich Zeit zu sparen, sondern auch Ressourcen effizienter zu nutzen und schnelleres Feedback für Entwickler zu ermöglichen. Silke teilte spannende Details über den Prozess der Selektion, einschließlich nächtlicher Analysen und automatischer Zuordnungen von Code-Änderungen zu Testfällen.

Von Stunden zu Minuten

Das Ergebnis dieses Projekts ist beeindruckend: In vielen Fällen konnte das Feedback an Entwickler auf 10 bis 15 Minuten reduziert werden – ein gewaltiger Fortschritt gegenüber den ursprünglichen sieben Stunden. Besonders interessant ist dabei die Tatsache, dass dies über verschiedene Technologien hinweg erreicht wurde. Die Effizienzsteigerung betrifft sowohl Java als auch C++ Bereiche des Unternehmens und zeigt somit eine breite Anwendbarkeit des entwickelten Systems.

Was kommt als Nächstes?

Während unseres Gesprächs gab Silke einen Ausblick auf mögliche zukünftige Verbesserungen des Systems. Dazu gehören beispielsweise Priorisierungen innerhalb der selektierten Tests, um noch schneller Feedback geben zu können oder eine detailliertere Analyse auf Funktionsebene für weitere Effizienzgewinne. Diese kontinuierliche Optimierung zeigt deutlich das Potenzial und die Notwendigkeit für Innovationen im Bereich des Softwaretestings.

Fazit

Die Geschichte von IVU und ihrer erfolgreichen Implementierung einer intelligenten Testfallselektion ist ein tolles Beispiel für technologischen Fortschritt. Sie demonstriert eindrucksvoll, wie durch mutige Entscheidungen und innovative Zusammenarbeit Herausforderungen gemeistert werden können, die vielen als unüberwindbar erscheinen.