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 und komplexe 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.

  • 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 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 Laufe der Zeit 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 am Projekt oder Produkt ändert. Stichwort: Integration in die Build-Umgebung, Ausführung beim Einchecken von geändertem Code aber auch von Konfigurationen/Daten.

In modernen Unternehmen der Software-Entwicklung wird schon seit Jahren die vollautomatische kontinuierliche Integration von funktionalen Erweiterungen und Korrekturen in die Gesamtcode-Basis eines Programms, auch als Continuous Integration bezeichnet, praktiziert. 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 (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.

Mehraufwand lohnt sich

Die Erstellung automatischer Tests bedeutet einen Mehraufwand – sinnvollerweise erfolgt dies direkt während der Software-Entwicklung und kontinuierlich. Im Gegenzug ist dieser Mehraufwand im Verhältnis zum Aufwand für die Entwicklung relativ konstant. Allerdings steigt erfahrungsgemäß mit zunehmender Komplexität eines Systems auch der Testaufwand. 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.