Person von oben am Laptop

Software-Tests müssen Qualität sichern und schnell sein

Von Thomas Avieny

Nicht nur die Energiewirtschaft oder die Industrie stehen vor den Herausforderungen der Digitalisierung. Damit die Unternehmen Digitalisierungsprojekte vorantreiben können, müssen Software-Anwendungen immer schneller zur Verfügung gestellt werden. Das erhöht auch den Druck auf die Entwicklung von Software. Langwierige Software-Tests müssen vermieden und durch automatisierte Prozesse ersetzt werden.

Automatisierte Tests in der Software-Entwicklung – Nicht nur ein Beschleuniger

Zu Beginn der Entwicklung von Anwendungen ist wenig Funktionalität in einer Software und damit auch relativ geringer Aufwand für die Tests dieser Funktionalität – also viel Entwicklung, wenig Tests. In der weiteren Entwicklung nimmt der Funktionsumfang in mehr oder minder großen Schritten zu. Bei jeder Änderung an der Software, wie zum Beispiel neue Funktionalität oder Wartung durch Bugfixes (das ist eine Korrekturauslieferung für Software) können Seiteneffekte auf bestehende Funktionalitäten niemals komplett ausgeschlossen werden. Dies führt dazu, dass stets die gesamte Funktonalität getestet werden muss. Da der Funktionsumfang weiter wächst, wächst auch der Aufwand für Tests ständig mit.

Werden diese Tests alle manuell durchgeführt, ändert sich das Verhältnis von Aufwänden für die eigentliche Entwicklung zur Testausführung dramatisch – wenig Entwicklung, sehr viel Aufwand für Tests.

  • Manuelle Tests benötigen Zeit nach der Entwicklung, häufig in einer sogenannten Testphase. Eine mögliche Auslieferung/Produktivsetzung der entwickelten Software verschiebt sich also um diese Testphase, die durch automatisierte Tests zumindest kürzer ausfallen könnte.

  • Dies führt dazu, dass beispielweise bei einem kritischen Bugfix für ein produktives System die Korrektur gegebenenfalls nur wenige Stunden dauert, die anschließenden Tests jedoch Tage bis Wochen und erst anschließend der kritische Fehler auf dem Produktivsystem behoben werden kann.

  • Die Umsetzung des eigentlichen Digitalisierungsprojekts gerät durch zeitaufwendiges, manuelles Testen ins Stocken. Der Druck auf die Unternehmen im umkämpften Wettbewerb steigt. Wenn Fehler unerkannt in die Produktionsumgebung gelangen, kann dies zu unzufriedenen Kunden und erhöhten Wartungskosten führen. Schlimmstenfalls ist ein Fehler unternehmenskritisch.

Grundsätzliche Vorteile automatischer Tests

Durch die Automatisierung von Tests entfällt der manuelle Aufwand der regelmäßigen und häufigen Ausführung gleicher Tests. Das lohnt sich vor allem im Zeitablauf und bei lang laufenden Projekten/Produkten. Es stellt sicher, dass durch die Tests abgedeckte, zunehmende Menge an Funktionalität wie vorgesehen funktioniert. Wichtig ist, dass die Tests möglichst ganz ohne manuellen Aufwand oder Eingriff ausgeführt werden, sie also vollständig automatisch ausgeführt werden, sobald sich etwas an der entwickelten Software ändert.

In modernen Unternehmen der Software-Entwicklung wird schon seit Jahren die Continuous Integration praktiziert. Kontinuierliche Integration beschreibt den Prozess des fortlaufenden Zusammenfügens von Komponenten zu einer Anwendung. Nur hierdurch ist sichergestellt, dass es bei Änderungen ein schnelles Feedback gibt und damit sehr zeitnah Korrekturen vorgenommen werden können. Bei einer gegebenenfalls erst nach Monaten stattfindenden Testphase sind diese Korrekturen deutlich aufwändiger und teurer (Vgl. z.B. „10er Regel“ oder „rule of ten„).
Die Vorteile dieser Arbeitsweise in überschaubaren Schritten liegen zum einen im kontinuierlichen Arbeitsfluss, zum anderen in der Möglichkeit der frühzeitigen Fehlererkennung. In der Summe ergeben sich Vorteile bei Arbeitseffizienz und Software-Qualität.

Rule of ten

Die Zehnerregel der Fehlerkosten besagt, daß je weiter ein Fehler sich unentdeckt in die späten Phasen des Werdeganges eines Produktes oder Prozesses bewegt – oder gar bis zum Kunden –, umso höher werden die Kosten zur Behebung dieses Fehlers. In jedem Schritt der Entwicklung ist die Behebung eines Problems etwa zehnmal schneller und kostengünstiger als in der nächsten Phase.

Mehraufwand lohnt sich

Die Erstellung automatischer Tests bedeutet zunächst einen Mehraufwand – sinnvollerweise erfolgt dies direkt während der Software-Entwicklung und kontinuierlich. Vergleicht man diesen Mehraufwand mit dem Aufwand für die Entwicklung, bleibt das Verhältnis relativ konstant. Allerdings steigt erfahrungsgemäß mit zunehmender Komplexität einer Software auch der Testaufwand. Während der Aufwand für manuelle Tests bei komplexen Systemen explodieren würde, kommen nun die Vorteile automatischer Tests voll zum Tragen. Fehler werden frühzeitig erkannt und von den Entwicklern behoben. Die Entwickler können ihre Änderungen so oft wie möglich in die gemeinsame Code-Basis integrieren. Damit bleibt also auch langfristig der Gesamtaufwand für die Entwicklung inklusive Tests stabil und explodiert nicht so, wie bei manuellen Tests.

Ihr Feedback

Wir freuen uns, dass Sie einen Kommentar hinterlassen möchten. Bitte beachten Sie, dass Kommentare gemäß unserer Datenschutzerklärung moderiert werden.

Die mit * gekennzeichneten Felder sind Pflichtfelder. Ihre Daten werden nicht an Dritte weitergegeben.