Den Entwicklungsprozess iterativer gestalten Digitale Qualitätssicherung mit Shift-Left Testing

Autor / Redakteur: Jan Wolter * / Stephan Augsten

Wer das Testing bereits frühzeitig in den Software-Entwicklungsprozess integriert, kann die Qualität digitaler Produkte gewährleisten und die Kosten für Fehlerbehebungen senken. Aber wie gelingt der Shift Left und welche Vorteile bietet er?

Firmen zum Thema

Mit Testautomatisierung lässt sich die Sicherheit im Software-Entwicklungslebenszyklus weiter nach links verschieben
Mit Testautomatisierung lässt sich die Sicherheit im Software-Entwicklungslebenszyklus weiter nach links verschieben
(© WrightStudio - stock.adobe.com)

Nicht selten kommt es vor, dass bei Softwareprojekten das Budget oder die Zeit überschritten wird. Häufig liegt es dabei nicht an der falschen Planung – vielmehr besteht das eigentliche Problem in der Art und Weise, wie das Projekt den Code validiert.

Der Ansatz des Shift-Left Testings versucht dem entgegenzuwirken, indem das Testen in die frühen Phasen der Softwareentwicklung verlagert wird. Durch frühes und häufiges Testen kann ein Projekt die Anzahl der Bugs reduzieren und die Qualität des Codes erhöhen.

Das Ziel ist es, während der Implementierungsphase keine kritischen Fehler mehr zu finden, die ein Patching des Codes erfordern. Hierfür benötigen die Produkt- und Entwicklungsteams sofortige Tests für neue Funktionen, noch während diese im Sprint entwickelt werden, um eine hohe Qualität bei hoher Geschwindigkeit zu gewährleisten.

Was sind die wichtigsten Vorteile von Shift-Left Testing?

Beim Shift-Left Testing erfolgt ein erheblicher Teil des Testaufwands in einer früheren Phase im Software Development Lifecycle (SDLC), oft während – statt nach – den kritischen Phasen des Systemdesigns und der Entwicklung. Unabhängig davon, ob die Softwareentwicklungsmethode Agile, Continuous, Wasserfall oder eine Kombination dieser Methoden ist, bedeutet dieses frühe Testen eine Verbesserung der Effizienz und Produktivität des SDLCs.

Mit der gesteigerten Effizienz können die Teams:

  • Funktionen schneller in die Hände der Kunden bringen,
  • die Qualität der Softwareanwendung verbessern,
  • die Ausführungszeit für QA-Tests reduzieren und/oder
  • den Zeitaufwand für Nacharbeit und Fehlerkorrekturen am Ende des SDLC reduzieren.

Werden Tests hingegen erst nach Abschluss der Design- und Entwicklungsphasen durchgeführt, sind häufig Engpässe die Folge. Unerwartete Fehler, die erst spät im SDLC gefunden werden, können dazu führen, dass Teams Designs, Kodierung und zusätzliche Tests überarbeiten müssen. Diese Nacharbeit kostet Zeit und Geld und kann darüber hinaus Entwickler demoralisieren, die bereits viel Arbeit in ein Release gesteckt haben und sich nun Wochen oder Monate später wieder in den alten Code hineinarbeiten müssen.

Wie setze ich Shift-Left Testing um?

Tester frühzeitig einbinden

Um die Linksverschiebung voranzubringen, sollten die QA-Tester zu allen Design-Diskussionen und Reviews eingeladen werden. Dies gibt ihnen die Möglichkeit, potenzielle Problemstellen früh im Prozess zu identifizieren. In einigen Szenarien sind die QA-Tester diejenigen, die am ehesten wie die Nutzer denken, sodass sie in dieser Phase einen wichtigen Beitrag leisten können.

Dazu hilft eine hohe Abdeckung der von den Entwicklern erstellten Unit-Tests. Tester sollten lernen, Unit-Test-Skripte für Updates auszuführen und zu bearbeiten. Wenn erfahrene Entwickler Unit- und Komponententests in Tools mit vertrautem Code einbauen, ist die einzige erforderliche Schulung, den QA-Testern genügend Programmierkenntnisse beizubringen, um bestehenden Code bearbeiten zu können.

Mit diesen Prozessänderungen werden QA-Tester frühzeitig eingebunden und entwickeln ein solides Verständnis sowohl für die geschäftlichen Ziele der Software als auch für die Anforderungen, die der Kunde stellt. Zu diesem Zeitpunkt können die QA-Tester eine vollständige Liste der erwarteten Nutzer-Workflows sowie die Validierungsbedingungen für die Unit-Tests erstellen.

Testautomatisierung von Beginn an aufbauen

Testautomatisierungen treiben nicht nur das Shift-Left Testing voran, sie fördern auch die Zusammenarbeit zwischen Entwicklung und QA. Allerdings wird die Testautomatisierung oft nicht richtig oder vollständig genutzt, um das Testen nach links zu verlagern. Statistiken zum Testing zeigen:

  • Fast drei Viertel der QA-Tester sehen Testautomatisierung und Skripterstellung als eine Aufgabe, die sie außerhalb des Testausführungszyklus durchführen.
  • 45 Prozent der Softwareunternehmen nutzen Testautomatisierung für Unit-Tests – und nur die Hälfte für Continuous Integration und Delivery (CI/CD).

Testautomatisierungsprojekte sind häufiger erfolgreich, wenn erfahrene Programmierer die Automatisierung erstellen und QA-Tester sie bearbeiten, überwachen und ausführen. Warum? Weil Testautomatisierung nicht außerhalb des Testzyklus durchgeführt werden sollte. Wird sie als zusätzliche QA-Aufgabe verstanden, bleibt letztlich nicht genügend Zeit sie fertigzustellen und das Testautomatisierungsprojekt gerät ins Stocken.

Skriptbasierte Testautomatisierung für End-to-End- oder komplexe funktionale Regressionstestszenarien ist sehr schwierig zu entwickeln, geschweige denn zu warten. Eine gute Möglichkeit ist daher die Zusammenarbeit eines Entwicklers mit Kodierungserfahrung und eines Testers, der mit dem Auffinden von Fehlern in den erwarteten Kundenabläufen vertraut ist.

Schnelle Prozesse etablieren

Frühzeitige Tester-Einbindung und Testautomatisierungen sind ein wichtiger Schritt Richtung Shift-Left Testing. Letztlich bleibt aber weiterhin die Herausforderung, dass neue Funktionen mindestens einmal innerhalb des Sprints manuell getestet werden müssen und Entwickler die Testergebnisse schnell zurück benötigen, um einen Kontextwechsel zu vermeiden. Es gilt also einen optimierten Prozess zu etablieren, der schnelle und effiziente Mid-Sprint-Testergebnisse liefert.

Hierbei können integrierte Tools helfen, wie etwa die Applause In-Sprint Testing Lösung. Dank passender API-Funktionen und einer Zwei-Wege-Integration mit den Bug-Tracking-Systemen der Kunden können hierbei In-Sprint-Tests vollständig innerhalb der Systeme und Prozesse des Unternehmens durchgeführt werden.

Sobald Entwickler die Codierung einer neuen oder aktualisierten Funktion abgeschlossen haben, können sie das Ticket auf einen vorgegebenen Status aktualisieren und automatisch einen Testfall basierend auf den Anforderungen der Funktion erhalten. Mit diesem Prozess verlassen die Teams nie ihre bestehenden Systeme; sie erhalten die benötigten Testergebnisse, bevor das Feature in den Mastercode eingebunden wird oder die Entwickler zu einem anderen Feature übergehen.

Jan Wolter
Jan Wolter
(Bild: Applause)

Letztlich muss die Linksverschiebung als eine Umwandlung des gesamten Entwicklungsprozesses betrachtet werden. Die genannten Schritte können nur Veränderung schaffen, wenn das gesamte Team und Unternehmen dazu beiträgt. Genauso bedeutet ein erfolgreich umgesetzter Shift-Left-Ansatz aber auch eine Stärkung des Teams und führt letztlich zu höherer Entwicklungsgeschwindigkeit, schnelleren Releases und geringeren Kosten für Fehlerbehebungen.

* Jan Wolter leitet als General Manager für Applause den europäischen Geschäftsbereich und ist verantwortlich für den Ausbau des Unternehmens im europäischen Markt. Seine Hauptaufgabe besteht darin, sicherzustellen, dass die Ziele von Applause Europe in Bezug auf das Umsatzwachstum und die Kundenakquisition umgesetzt werden. Außerdem sorgt er dafür, dass die Qualität und die Kundenzufriedenheit des Unternehmens auf höchstem Niveau bleiben.

(ID:47304979)