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 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

Cacamber als BDD-Framework für ABAP: Ein OSS-Hobbyprojekt unseres Entwicklungsleiters
Juli 28, 2023
Keine Kommentare
Kennen Sie folgendes Problem? Neue Funktionen sollen entwickelt werden, aber die Kommunikation mit dem Kunden

INTENSE integriert SmartCity-App endios one in Service-Plattform TENTAC
Mai 19, 2023
Keine Kommentare
Die Service-Plattform TENTAC der INTENSE AG wird mit neuer Integration erweitert: endios one ist die

DSAG veröffentlicht Leitfaden zu „ABAP Development Tools in Eclipse“
März 20, 2023
Keine Kommentare
Vor über 10 Jahren wurden die ABAP Development Tools (ADT) für Eclipse als die neue

Wordle für Ninjas: Ein Experiment unserer Clean Code Advocates
Dezember 20, 2022
Keine Kommentare
Bei der INTENSE veranstalten die Clean Code Advocates regelmäßige Coding Dojos. Dort wird in entspannter
Super infos, danke!