Warum gibt es Agile Testing bei der INTENSE?

Agiles Testen ist weit verbreitet und in der Teststrategie vieler Entwicklungsprozessen nicht mehr weg zu denken. Auch bei der Intense ist „Agile Testing“ ein essenzieller Baustein der Testaktivitäten in der Entwicklung unserer Softwareprodukte.

Was ist Agile Testing?

Das oberste Ziel, das mit den Prinzipien des agilen Testens erreicht werden soll, ist stabile und zuverlässige Software für den reibungslosen Gebrauch zu entwickeln, die Softwarenormen und Qualitäten entspricht. Hierfür werden in kurzen Zyklen und für jedes neue Modul oder Feature Integrationstests erstellt und automatisiert getestet. Durch die einzelnen Phasen des Agile Testings ist eine hoche Planbarkeit sichergestellt, ohne an Flexibilität zu verlieren. Aber auch nach der Auslieferung eines Produktes spielt agiles Testen eine große Rolle. Dies zeigt sich bei der frühzeitigen Erkennung von Fehlern durch Regressionstests und Ausbesserung von Schwachstellen. Auch wird die Softwarebelastbarkeit und -qualität, in einer realen Umgebung, durch Testautomatisierung innerhalb der agilen Testmethoden, sichergestellt. Als letztes soll durch agile Entwicklung, Software auch zukünftig allen möglichen Herausforderungen gewachsen sein – beispielsweise auch in der explorativen Gestaltung. Daher ist Flexibilität und Anpassungsfähigkeit der Software ebenfalls ein wesentlicher Bestand in unserer agilen Softwareentwicklung. Durch das Agile Testing wird sichergestellt, dass die Software diese Flexibilität und Anpassbarkeit trotz stetigen Wachsens nicht verloren geht. So wird während des Softwaretests sichergestellt, dass die einzelnen Module unabhängig voneinander problemlos funktionieren.

Wie unterscheiden sich Agile Testing Ansätze vom traditionellen Testprozess?

Agiles Testen integriert sich in den Scrum Zyklus eines Projektteams. Die aufwändige und zeitintensive Phase wie der Testplanung, Teststrategieentwicklung und Testkoordination, die in traditionellen Projekten existiert, existiert zwischen den Teammitgliedern der agilen Entwicklung nicht mehr. Aufwändige Planungs-Excels und Dokumentationen entfallen somit großteils. Stattdessen werden die Testaktivitäten in kürzere Zyklen zerbrochen und an den sich stetig änderten Anforderungen der Softwareentwicklung angepasst.

Phasen agiler Softwareentwicklung

1. Planen

Der erste Schritt in jeder Entwicklung ist, die fachlichen Anforderungen zu analysieren, daraus Stories zu entwerfen und Abnahmekriterien zu definieren. Bereits in dieser Phase werden vom Produkt-Owner erste grobe Abnahmetests definiert. Die Stories werden in Sprints abgearbeitet, um den Wünschen und Anforderungen des Kunden gerecht zu werden.

2. Entwerfen

Nachdem alle nötigen Module, Funktionen und UI Elemente geplant und entworfen wurden, werden Testfälle für jedes Feature definiert sowie Stories und Sub-Tasks für jedes Feature erstellt. Erst nachdem diese Anforderungen definiert wurden, kann mit der Entwicklung begonnen werden.

3. Agil entwickeln und testen

Mit der Funktionsentwicklung stellen Unit Tests sicher, dass die Software den Anforderungen entspricht. Dies ermöglich eine korrekte Abbildung von Prozessen und Logiken. Zudem werden nach der jeder Story Frontend-Tests erstellt beziehungsweise aktualisiert: dies garantiert, dass die Oberfläche einen klaren Faden hat, einfach zu bedienen ist und stabil und fehlerfrei funktioniert. Diese für das Frontend entwickelten Integrationstests werden in einen automatisierten Ablauf integriert, worin die UI regelmäßig und automatisch, mit Hilfe des Frameworks Selenium, getestet werden. Sollte ein bestehender Test durch die Veränderung in der UI aktualisiert werden müssen, so werden die neuen Abläufe, wie in einem Regressionstest, erneut getestet und der automatisierte Ablauf aktualisiert.

4. Release

Die Applikation wird nach der fertiggestellten Entwicklung und einem ausgiebigen agilen Testen, für den Kunden zur Verfügung gestellt. Hierbei stellen die Verwendung des SAP-Frameworks SAPUI5 sowie die FIORI-Richtlinien sicher, dass die Applikation reibungslos in bereits existierende SAP-Umgebungen und Infrastrukturen, falls vorhanden, eingebunden werden kann.

5. Feedback

Mit dem Release auf dem Kundensystem ist die Entwicklung jedoch nicht gänzlich abgeschlossen, denn auch nach dem Release achtet das Entwicklungsteam auf Feedback der Kunden. So wird die Software auf dem Kundensystem je nach Bedarf gewartet, letzte potenzielle Schwachstellen ausgebessert sowie auf Wünsche und Verbesserungsvorschläge der Kunden eingegangen.

Fazit

Agiles Testing findet, im Vergleich zum klassischen Testing, bereits früher und regelmäßiger innerhalb der Implementierung, mit mehr User Integration und mit hohem Automatisierungsgrad während der Testautomatisierung statt. Ein früher übliches Vorplanen eines umfangreichen Testplans für ein Gesamtprodukt zu Beginn der Entwicklung entfällt, das Testing orientiert sich an den jeweils aktuellen Stories und Features – die Agilität ist gewährleistet. Als Schlüsselfaktor zeigt sich bei dieser Teststrategie, in jedem Zyklus die Flexibilität und schnellere Anpassbarkeit der Tests an neue und sich ändernde Anforderungen. Durch das schnelle Feedback an die Testteams innerhalb des Entwicklungszyklus, der jederzeit auf Knopfdruck abrufbar ist, kann frühzeitig und somit kostensparend gegengesteuert werden. Ebenso geben automatisierte Testaktivitäten die Sicherheit, dass die Software auch nach Änderungen weiterhin lauffähig ist. Lesenswert hierzu sind außerdem die 12 Grundprinzipien hinter dem Agilen Manifest.

Der Autor

Dominik Panzer

Dominik Panzer

Dominik verantwortet als Entwicklungsleiter die technische Produktentwicklung der Intense AG und unterstützt Teams als Technical Agile Coach in den Bereichen Prozesse, Testautomatisierung, Methodiken und Clean Code. Er ist Initiator der Clean Code Advocate Initiative der INTENSE AG.

Lesenswerte Artikel aus Business Technology

One Comment

  1. Andrzej Kaya

    Super infos, danke!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.