Seit Start unseres Projekts rund um die neue native App für mobiles Banking war Testautomatisierung ein „Must-have“. Mit wachsendem Umfang des Projekts wurde allerdings bald klar: Der ursprünglich für die Testautomatisierung gewählte Weg wird im Umfeld eines wachsenden agilen Softwareprojekts zu Problemen führen. Das Low-Code-Testautomatisierungs-Tool, mit dem die QA Engineers zunächst ins Projekt gestartet waren, schloss de facto die Entwickler*innen aus den Abnahmetests aus – ein Wasserfall-Modell in einer ansonsten agilen Welt. Wir brauchten ein neues Werkzeug für die Testautomatisierung, um einen Shift-Left im QA-Prozess zu ermöglichen.
In den ersten Projekten, die unser DKB-eigenes FinTech DKB CodeFactory zusammen mit Capgemini realisiert, steht darum die Testautomatisierung im Vordergrund. Dabei war die Zusammenarbeit zwischen Development und Testing von Anfang an sehr eng. Unser gemeinsames Ziel: Über die Nutzung der Test-Codes soll unsere Software-Entwicklung schnelles Qualitätsfeedback zu den von ihr entwickelten Codes bekommen.
Die Transformation in der Qualitätssicherung bringt mehrere Vorteile:
Der Wechsel des für die Qualitätssicherung verwendeten Tools macht Tests leicht zugänglich für Entwickler*innen.
Der Einsatz von QS-/Akzeptanztests schon in der Entwicklungsphase hilft, Fehler frühzeitig zu erkennen.
Ein Shift-Left-Ansatz spart durch die Vermeidung von Fehlern in der QA-Phase Zeit und sorgt so für eine bessere Code- und Produktqualität.
Die Transformation beseitigt den Engpass-Effekt, den das Testing im klassischen linearen Vorgehen verursacht.
Mit der Möglichkeit, Skripte aus einer (Gitlab-)Pipeline auf realen Geräten in einer Cloud auszuführen, erhöht sich die Geräteabdeckung.Das macht das Testing effizienter.
Das Toolset so zu verändern, dass es auch den Entwickler*innen zur Verfügung steht, war der entscheidende Teil der Shift-Left-Transformation. Die Auswahl erfolgte basierend auf plattformnativen Tools und Tools, die auch von Entwickler*innen verwendet werden. Für Android-Tests definierte das agile Team gemeinsam Kotlin und Espresso, für iOS-Test Swift und XCUI. Dieses Toolset unterstützt die Integration von QA und Development, die Zusammenarbeit und die Umsetzung des Shift-Left-Ansatzes.
In der kurzen Zeit unserer Zusammenarbeit mit dem Capgemini Software Solution Center konnten wir unseren neuen Testing-Ansatz in 4 Projekten anwenden. Bei der Implementierung bereits bestehender und neuer Tests hat sich die Automatisierungsabdeckung im Vergleich zur alten Automatisierungslösung bereits verbessert. Die Tests laufen schneller und wurden zur gleichen Codebasis zusammengeführt, an der die Entwickler*innen arbeiten. Diese haben somit ununterbrochen Zugriff darauf. Das Test Development erfolgt für Tests, die ohne menschliche Beteiligung wiederholbar in den CI/CD Pipelines ablaufen können.
Dank des Teams des Capgemini Software Solution Centers und unseres Nearshore-Ansatzes konnten wir parallel an unseren Projektzielen arbeiten. Wir waren in der Lage, unseren Testautomatisierungs-Ansatz zu wechseln sowie unseren technischen Aufwand im Testing zu reduzieren Zugleich konnten wir unsere Release-Zyklen beibehalten und neue Funktionen implementieren. Ein so schnelles Wachstum war nur durch die tägliche Abstimmung zwischen Onshore- und Nearshore-Team und die enge Zusammenarbeit mit den Anwendungsentwickler*innen bei der Testintegration in den Entwicklungscode möglich.
Mit zunehmender Automatisierung unserer Tests ist das nächste Ziel der Teams, die Nutzung der Pipeline-Integration für kontinuierliche Tests zu erweitern. Regelmäßigere Testausführungen geben schnellen Überblick über den Projektstatus und Informationen über neue Feature-Bereitstellungen. Das erhöht das Qualitätsbewusstsein im Projekt für alle Teammitglieder. Ein weiteres Ziel ist die parallele Testausführung mit einer Mobile Device Farm in der Cloud. Mit dieser Lösung können wir eine größere Geräteabdeckung sicherstellen, was zu erhöhter Qualität der betreffenden Apps beitragen wird. Der neue Ansatz verbessert nicht nur unsere aktuellen Projekte, sondern kann auch in künftigen Projekten leicht implementiert werden. Unsere Teams motiviert die Anwendung neuer und spannender Technologien zu höchstem Einsatz, um möglichst viele Testfälle für schnelle und qualitativ hochwertige Releases zu automatisieren.