SolisImages - stock.adobe.com
Softwareentwicklung: Neue Wege in der Qualitätssicherung
In jüngster Zeit haben Entwickler moderne Testszenarien in ihre CI/CD-Praktiken aufgenommen. Dabei müssen sie neue Wege in der digitalen Qualitätssicherung gehen.
Für Entwickler, die mit Cloud-nativen Technologien arbeiten, sind Softwaretests und Qualitätssicherung wichtige Aspekte der Produktentwicklung. Die meisten Teams haben derartige Tests an den Anfang des Entwicklungsprozesses – nach links – verlagert, wovon sich die Bezeichnung Shift Left Testing ableitet. So wird die Qualität des Codes geprüft, während dieser sich noch durch die CI/CD-Pipeline bewegt.
Continuous Integration/Continuous Delivery (CI/CD) umfasst mehrere zusammenhängende Praktiken, von der Integrations- und Test- bis hin zur Bereitstellungs- und Implementierungsphase, und dient der Verbesserung der Softwarebereitstellung. Die einzelnen Phasen der Anwendungsentwicklung werden automatisiert und stetig überwacht, wodurch ihr größter Mehrwert entsteht. Der Trend zu dieser Art der Qualitätssicherung zeigt, dass DevOps und andere moderne Entwicklungspraktiken immer beliebter werden. Diese Arbeitsweise ermöglicht es Entwicklern selbstständiger zu arbeiten und mehr Verantwortung für ihre Anwendung zu übernehmen.
Erst in jüngster Zeit haben Entwickler End-to-End-API- und Browsertests in ihre CI/CD-Praktiken aufgenommen und so den Umfang ihrer qualitätssichernden Maßnahmen erweitert. Sie prüfen nun bereits in frühen Phasen ihrer Arbeit, wie Code sich in verschiedenen Browsern verhält und wie er mit wichtigen Datenquellen interagiert. Daraus entstehen neue Schnittstellen mit anderen Testverfahren, die ihrerseits früher als bisher üblich angewandt werden, wie Unit- oder Security-Tests. Die frühe Durchführung von Tests stellt sicher, dass potenzielle Fehler schnellstmöglich erkannt werden, wodurch Unternehmen bares Geld sparen und Entwicklern mehr Zeit für die Fertigstellung innovativer Produkte bleibt.
Cloud-Tempo fordert neue Testmethoden ein
Traditionell läuft Softwareentwicklung nach dem sogenannten Wasserfallmodell ab, bei dem Tests erst kurz vor der Veröffentlichung, am rechten Ende der Handlungskette, durchgeführt werden. Das ergibt auf den ersten Blick durchaus Sinn, da so alle Fehler beseitigt werden, um anschließend eine perfekte Version der Software zu veröffentlichen.
Diese Methode bringt allerdings auch Probleme mit sich. Fehler, die nicht rechtzeitig erkannt werden, können Folgefehler nach sich ziehen, deren Entfernung noch kniffliger und aufwendiger ist. Außerdem ist es problematisch, wenn Kunden erst bei späteren Tests eingebunden werden.
Sollten dabei noch Fehler erkannt werden, kostet deren Behebung wertvolle Zeit. Selbst Fehlerberichten und Verbesserungsvorschlägen von Testern können Entwickler sich oft nicht widmen, weil ihnen die Zeit fehlt. Diese Probleme können dank Shift Left Testing behoben werden.
Die Migration in die Cloud und der Einführung agiler, an DevOps-Praktiken orientierte Entwicklungsmethoden ermöglichen ein deutliches schnelleres Entwicklungstempo, welches durch manuelles, traditionelles Testen behindert wird. Daher wird das Testen in frühere Phasen des Entwicklungsprozesses verlagert und nicht mehr von speziellen Testteams durchgeführt, sondern direkt von einzelnen Personen aus allen Entwicklungsteams. So ermöglichen Entwickler eine schnelle Freigabe des Codes und gewährleisten gleichzeitig ein hohes Qualitätsniveau bei jedem Release.
Je früher, desto besser
Die eingesetzten CI/CD-Praktiken und die frühen Tests sorgen dafür, dass ein Code jederzeit einsatzbereit ist. Entwickler erkennen zunehmend den Wert von End-to-End-Tests während ihrer CI-Builds. API-Tests ermöglichen es Teams, End-to-End-Workflows zu verifizieren, indem sie HTTP-Anfragen und API-Aufrufe verketten, so dass sie alle Ebenen ihrer Systeme von jedem Standort aus validieren können. Browsertests können die Sicht des Benutzers während kritischer Phasen der Anwendungslogik erfassen, wodurch sich zeigt, welchen Einfluss UI-Änderungen auf Webanwendungen haben können.
Viele Probleme können nun von Entwicklern direkt erkannt werden, ohne dass weitere Experten hinzugezogen werden müssen. So werden Korrekturschleifen eingespart und es bleibt viel mehr Zeit, um auf die wichtigen Details zu achten.
„Teams aus verschiedenen Bereichen sind dafür verantwortlich den Code zu testen, ihn fortwährend zu überwachen und die gesammelten Daten in die Analyse mit einzubeziehen.“
Stefan Marx, Datadog
Die bereits genannten Tests werden umso wertvoller, wenn Teams die Möglichkeit haben, die gewonnenen Ergebnisse mit Daten aus ihrem gesamten Stack in Beziehung zu setzen. Mit einfachem Zugriff auf korrelierte Metriken, Traces und Logs verfügen sie über den nötigen Kontext, um fehlgeschlagene Tests zu erkennen und Fehler zu beheben, die während der Entwicklungsphase nicht erkannt wurden. So kann fehlerhafter Code gestoppt werden, noch bevor dieser in Produktion geht. Qualitätssicherung wird somit zu einem ganzheitlichen Prozess, der jeden Teil des Entwicklungszyklus und Daten aus jedem Teil des Stacks einbezieht.
Qualitätssicherung ist Gruppenarbeit
Die Neuerungen in der Qualitätssicherung betreffen nicht nur das Vorziehen von Testvorgängen, sondern auch eine grundlegende Veränderung in der Art und Weise, wie Entwicklerteams innerhalb eines Unternehmens zusammenarbeiten.
Teams aus verschiedenen Bereichen sind dafür verantwortlich den Code zu testen, ihn fortwährend zu überwachen und die gesammelten Daten in die Analyse mit einzubeziehen. So kann beispielsweise ein Frontend-Entwickler ein Problem bei der Integration seiner letzten Änderungen anhand der Strukturierung der Backend-APIs erkennen und anschließend gemeinsam mit dem Backend-Team die beste Lösung erarbeiten. Idealerweise führen diese Änderungen so zu einem Auflösen von Silos und einer offeneren und direkten Kommunikation zwischen den einzelnen Teams.
Ein Mehrwert entsteht
Effektive Qualitätssicherung bedeutet, dass Fehler schnellstmöglich behoben werden. Das passiert am besten schon in der Entwicklungsphase, noch bevor das Problem überhaupt als solches sichtbar wird. So beginnt ein positiver Kreislauf. Weniger Korrekturen bedeuten weniger Ausfallzeiten, so sind die Kunden zufrieden und den technischen Teams bleibt Zeit für die Entwicklung neuer Produkte, was die Kunden zufriedener macht. Eine effektive Qualitätssicherung zeugt von Zuverlässigkeit, verbessert die Kundenerfahrung und fördert die Entstehung innovativer Ideen.
Die Autoren sind für den Inhalt und die Richtigkeit ihrer Beiträge selbst verantwortlich. Die dargelegten Meinungen geben die Ansichten der Autoren wieder.