Effizientere Softwareentwicklung durch Testautomatisierung

Testautomatisierung ist als Methode der agilen Softwareentwicklung heute unerlässlich. Um Software kontinuierlich ausliefern zu können, muss auch kontinuierlich getestet werden. Dabei erkennen wir in unseren Kundenprojekten, dass manuelle Tests, die immer wieder ausgeführt werden müssen, hohe Kosten und hohen Aufwand erfordern, insbesondere auf Seiten der Fachbereiche.

Unsere Erfahrung zeigt, dass ca. 80% der Tests Wiederhol-Testaufwände (Regression) sind.

Hier liegt der Testaufwand schnell um ganze Größenordnungen höher als die Codeänderung. Eine geänderte Codezeile kann hunderte Regressionstests nach sich ziehen. Daher ist es nur durch die Automatisierung der Softwaretests möglich, neue Software schnell, bedarfsgerecht und in hoher Qualität bereitzustellen.

Insgesamt wird der Testaufwand der Fachabteilung um bis zu 90% reduziert und eine Zeitersparnis von 70% erreicht.

Unser methodisches Vorgehen im Bereich Testautomatisierung

Profitieren Sie von unserer Beratungs- und Umsetzungskompetenz bei der Konzeption einer modernen Testautomatisierungs-Infrastruktur. Wir verfügen aufgrund zahlreicher Projekte über ein umfassendes Know-how im Bereich DevOps und der damit verbundenen Testautomatisierung.

Als Teil der Quality Assurance (QA) testen wir Software, mit dem Ziel, die Qualität und damit den Wert der Software zu erhöhen. Testen ist kein Selbstzweck, sondern liefert Indizien, um Verbesserungspotentiale systematisch zu identifizieren und kontinuierlich zu nutzen – und das möglichst früh im Produktionsprozess.

Im Sinne einer Continuous Communication werden im Zuge der Testautomatisierung sowohl die Fachabteilung als auch die Software- und Testentwickler bei der Ableitung automatisierbarer Akzeptanztests gleichermaßen einbezogen. Diese gemeinsame Qualitätsverantwortung besteht während des gesamten Softwareentwicklungsprozesses. So stellen wir sicher, dass die Software nicht nur in optimaler Qualität, sondern auch bedarfsgerecht geliefert wird. Die automatisierten Softwaretests können sehr schnell und regelmäßig parallel zum Entwicklungsprozess durchlaufen werden, so dass Fehler, Probleme und Missverständnisse direkt erkannt und behoben werden.

Anwendung des Wirtschaftlichkeitsprinzip durch die Testpyramide

Wir testen entlang der Testpyramide (Unit > Komponente > Integration > UI):

Das bedeutet wir machen für die Software Entwickler das Schreiben der Tests der Teststufen: Unit, Komponente, und Integration zum Bestandteil der Definition of Done aller fachlichen Anforderungen (User Stories). Und wir schaffen die Rolle des Testentwicklers für die Teststufe: UI, dessen Aufgabe darin besteht den fachlichen Wiederholtestumfang in Testautomatisierung zu überführen, also einen Testroboter für die Computer-Mensch-Schnittstelle zu schaffen. Dafür setzen wir universelle Multiplattform Test Frameworks wie Ranorex Studio ein, in denen Branchenstandards wie Selenium Webdriver bereits integriert sind. In der Folge testen Mitarbeiter der Fachabteilungen nur noch die neuen User Stories, während der Testroboter die Regressiontests erledigt. Die Testpyramide entsteht durch die Gewichtung der Teststufen gemäß dem Wirtschaftlichkeitsprinzip. Die Wirtschaftlichkeit eines Tests berechnet sich aus der Geschwindigkeit der Ausführung und der benötigten Zeit zur Erstellung und Pflege, gegenüber der Fehlerfindungsrate und dem Fehlereintrittsrisiko. Eine hohe Testabdeckung (~ 80%) mit Programmierer Tests, ist kostengünstig, weil die Tests unmittelbar als Bestandteil des Codes geschrieben werden und sie sehr schnell in abgekapselten Bereichen des Systems ausführbar sind. Dadurch kann sich der UI-Testprogrammierer auf die Geschäftsprozesse mit dem höchsten Risiko konzentrieren, die das Vorhandensein des Gesamtsystems erfordern, also den Teil der ansonsten immer wieder manuell von den fachlichen Experten getestet werden müsste.

Zur erfolgreichen Implementierung müssen einige typische Herausforderungen gemeinsam im Projekt adressiert werden:

  • Ausreichende Testabdeckung in den Teststufen, gemäß dem wirtschaftlichen Risiko
  • Auswahl geeigneter Regressiontests für den Testroboter
  • Reproduzierbarer Datenbestand
  • Reproduzierbarer Testaufbau

Referenzen

Direktversicherung Saarbrücken

Prämiert als Vorzeige Code-of-Conduct Projekt des Landes Saarland

Situation:

  • Code-of-Conduct Implementierungsprodukt
  • MT AG Verantwortung der Testautomatisierung

Herausforderung:

  • 100% Testüberdeckung erforderlich, Fachbereich konnte angefragte 150 PT manuelle Testauswände nicht leisten

Lösung:

  • > 90% Einsparung von geplanten manuellen Fachtestaufwänden durch Testautomatisierung
  • Effektive Tests durch Mengenlehrebetrachtung

„Aufgrund des guten Testkonzepts bereits vor den fachlichen Abnahmetests haben wir „leider“ keine Fehler mehr gefunden!“ – Zitat (C. Westrich)

Landesrechenzentrum NRW

Situation:

  • Projekte im Bereich Steuer, MT AG in Verantwortung, Systemintegrationstests über mehrere Fachverfahren und Anwendungen hinweg zu entwickeln

Herausforderung:

  • Zentrale Steuerung von synchronen und asynchronen Testszenarien
  • Ablösung von hohen manuellen Testaufwänden

Lösung:

  • Eigenentwickeltes Testframework mit Orchestrierung
  • Ca. 70% Zeitersparnis bei des Testausführung durch Wiederholbarkeit

Union Investment Frankfurt

Situation:

  • SW Entwicklungsprojekt Fonds-Profiler – Mission Critical Application
  • MT AG entwickelt und trainiert Fachtester

Herausforderung:

  • Projektbeginn mehr manuelle Tester als Entwickler = hoher Testaufwand der Regelwerke

Lösung:

  • Vollständiger Abbau manueller Tests
  • Heute stabile hohe fachliche Qualität durch ca. 1.800 automatisierte Fachtests
  • Ablösung von 30 manuellen Testern

Remondis Lünen (redooo.de)

Situation:

  • Innovationsprojekt zum Aufbau einer Container-bestellplattform, orientiert am Wettbewerb
  • MT AG betraut mit Architektur und Umsetzung

Herausforderung:

  • Hohe Schlagzahl an automatisierten Auslieferungen in gleichbleibender hoher Qualität, ohne Ausfallzeiten
  • Fachliche QA im Scrum Prozess abbilden

Lösung:

  • Test Driven Development mit > 80% Testabdeckung und kontinuierlichem Ausbau der Teststufen bis zur UI Automation
  • Fachliche Tests dokumentieren und risikobasiert mit UI-Automation-Tests abdecken für den Wiederholtestumfang

Leistungspakete

Wir bieten Ihnen 5 Pakete mit konkretem Nutzen, bei denen Sie in unterschiedlichen Stufen von unserer Expertise profitieren. Dabei ist es ganz Ihnen überlassen, ob wir in einem Workshop konkrete Handlungsempfehlungen für Sie ableiten, das Coaching übernehmen oder Testszenarien entwickeln.

Ergebnis
  • Identifizierung Ihrer Herausforderungen bzgl. der Softwarequalität
  • Assessment der individuellen Verbesserungspotentiale für Softwarequalität
  • Spezifische Handlungsempfehlungen auf Basis unserer Projekterfahrung
  • Konkreter Umsetzungsvorschlag
  • Ergebnisdokument mit Arbeitspaketen, Verantwortlichkeiten und Roadmap
Nutzen

Wir arbeiten in diesem Workshop für Sie heraus, wie Sie Ihr Softwareprojekt am besten umsetzen können und wie Sie in einem bereichsübergreifenden Team sowohl den Fachbereich als auch die Software- und Testentwickler zu Beteiligen machen, um das bestmögliche Ergebnis zu erreichen.

Ergebnis
  • Sukzessive Verprobung von Tools gemeinsam mit Entwicklerteams
    in mehreren Pilotstufen
  • Evaluierung der Möglichkeiten zur Testumgebungsbereitstellung
  • Testaufbau von rudimentärer Testinfrastruktur und -Umgebungen
Nutzen
  • Gewinnung der erfolgreichen Piloten als Multiplikatoren
  • Vorliegen eines konkreten Entwurfs der fachlichen Schnittstellen und Prozesse
  • Definition und Pilotierung der Rollen
  • Vorgehen zur Testumgebungsbereitstellung identifiziert
  • Testautomatisierungs-Tools identifiziert und pilotiert
  • Vorliegen einer initialen Version des Testfallkataloges
Ergebnis

Sukzessiver Aufbau der Testinfrastruktur und Verwaltungsstrukturen

  • Testtools
  • Testdatenmanagement
  • Testumgebungsmanagement
Nutzen

Umfangreicher Aufbau der Ziel-Lösung als Grundlage für einen Roll-Out

  • Fachliche Schnittstellen sind abgestimmt
  • Prozesse und Rollen sind abgestimmt
  • Bereitstellung isolierter Testumgebungen ist möglich
  • Schulungsinhalte sind definiert
Ergebnis
  • Weiterentwicklung und Abstimmung der Prozesse, Rollen und Arbeitsergebnisse
  • Schrittweise Etablierung von Methodik in den Teams für neue Projekte (u.a. durch Anwendung und Schulung in der Linie)
Nutzen

Erfolgreiches Roll-Out

  • Fachliche Schnittstelle sind etabliert
  • Prozesse und Rollen sind etabliert
  • Teams nutzen die Testautomatisierungsinfrastruktur und erweitern dabei den Testfallkatalog

Dieses Leistungspaket beinhaltet ein Coaching für das Testfallkatalogmanagement. Wir definieren gemeinsam mit Ihnen die einzelnen Regressionstests und erstellen ein Testfall Lifecycle-Management Konzept. Nach diesem Coaching können Sie eine Aussage zur Testüberdeckung machen und erhalten stabile Kernprozesse, da Spezifikation, beschriebene Testfälle und der Quellcode kontinuierlich synchronisiert sind.

Ergebnis
  • Definition einzelner Regressionstests
  • Erstellung und Einführung eines Testfall Lifecycle-Management Konzepts
  • Coaching bzgl. des Testfall Lifecycle-Managements
  • Aussagen zur Testüberdeckung sind möglich
  • Erhalt Stabilität der Kernprozesse, da Spezifikation, beschriebene Testfälle und der Quellcode kontinuierlich synchronisiert werden
Nutzen

Eine permanent gepflegte Dokumentation und revisionssichere Testdokumentation ist sichergestellt, wodurch Deployments in hoher Schlagzahl und Qualität stattfinden.

Finden Sie weiteres Material in unserem Downloadbereich zum Thema Testautomatisierung

Ansprechpartner

Peter Heintzen

Peter Heintzen

Bereichsleiter IT-Strategie & Architektur