Parasoft C/C++test 2022.2 unterstützt das neue MISRA C:2012 Amendment 3 und eine Entwurfsversion von MISRA C++ 202x. Erfahren Sie mehr >>

Warum DevOps kontinuierlich getestet werden muss

Von Parasoft

14. Oktober 2015

4  min lesen

Beim kontinuierlichen Testen geht es nicht nur um Automatisierung. Wahr Kontinuierliches Testen für DevOps richtet Testaktivitäten am Geschäftswert aus. Das Ziel des kontinuierlichen Testens zur Unterstützung von DevOps besteht darin, bedeutungslose Tests zu eliminieren und wertschöpfende Aufgaben zu produzieren, die die Entwicklungsorganisation wirklich zu einer erfolgreichen Veröffentlichung antreiben.

Als Reaktion auf die heutige Nachfrage nach „Continuous Everything“ bewegt sich das Software Delivery-Förderband immer schneller. Angesichts der Tatsache, dass das Testen die Hauptbeschränkung des Softwarebereitstellungsprozesses war, ist es nicht zu erwarten, dass eine einfache Beschleunigung eines problematischen Prozesses zu besseren Ergebnissen führt.

Eine großartige Analogie für I Love Lucy Fans ist die berüchtigte Szene von Lucy und Ethel in der Süßwarenfabrik, die Schwierigkeiten haben, Schritt zu halten, während das Förderband immer schneller Pralinen ausstößt.

Jetzt, da die schnelle Bereitstellung differenzierbarer Software zu einer geschäftlichen Notwendigkeit geworden ist, bemühen sich die Softwareentwicklungsteams, Schritt zu halten. Als Reaktion auf die gestiegene Nachfrage suchen sie nach neuen Wegen, um ihre Veröffentlichungszyklen zu beschleunigen und die Einführung agiler oder schlanker Entwicklungspraktiken wie DevOps voranzutreiben.

Angesichts der Anzahl der Softwarefehler, die jetzt täglich Schlagzeilen machen, ist es offensichtlich, dass die Beschleunigung des SDLC die Tür zu schwerwiegenden Auswirkungen öffnet.

Unternehmen gehen nicht davon aus, dass die Praktiken von gestern die Prozessanforderungen von heute erfüllen können. Es muss einen kulturellen Wandel vom Testen einer Anwendung zum Verständnis der mit einem Release-Kandidaten verbundenen Risiken geben. Eine solche Verschiebung erfordert eine Überwindung des traditionellen „Bottom-up“ -Ansatzes beim Testen, bei dem inkrementelle Tests für neue Funktionen hinzugefügt werden. Dies wird zwar immer erforderlich sein, es ist jedoch ebenso wichtig, einen Top-Down-Ansatz zur Minderung von Geschäftsrisiken zu verfolgen. Dies bedeutet, dass Unternehmen die Benutzererfahrung mit den wahrscheinlichsten Anwendungsfällen im Zusammenhang mit nicht funktionalen Anforderungen kontinuierlich verteidigen müssen.

Damit eine fortschrittlichere Automatisierung stattfinden kann, müssen wir über den Prozentsatz der bestandenen / fehlgeschlagenen Tests hinausgehen, um die Auswirkungen von Fehlern genauer zu verstehen: eine Nuance, die in der traditionellen Regressionstestsuite verloren geht.

Kontinuierliche Tests, bei denen automatisch eine Reihe von Tests durchgeführt werden, um zu überprüfen, ob die Geschäftserwartungen hinsichtlich Funktionalität, Sicherheit, Zuverlässigkeit und Leistung erfüllt werden, sind der Schlüssel zur Überbrückung dieser Lücke. Es verschiebt das Paradigma von einem reinen Bottom-Up-Ansatz zu einem Hybridmodell, bei dem Top-Down-Tests eingesetzt werden, um die erwartete Benutzererfahrung vor Änderungen zu schützen, die während der Entwicklung der Anwendung vorgenommen werden. Letztendlich setzt Continuous Testing die Frage von "Sind Sie mit dem Testen fertig?" Zurück. zu "Wird das Risiko verstanden und akzeptiert?"

Testen: Der Elefant im Raum

Wenn Organisationen beginnen, den SDLC zu beschleunigen, werden Prozessegpässe offensichtlich. Einer der Engpässe, die die SDLC-Beschleunigung weiterhin belasten, ist das Testen. Im besten Fall wurde das Testen als unvermeidlicher Overhead angesehen - ein "Time-Boxed" -Ereignis, das irgendwann zwischen dem vollständigen Code und dem angestrebten Veröffentlichungsdatum auftritt. Im schlimmsten Fall haben Unternehmen Qualitätsprozesse nach der Veröffentlichung vorangetrieben und einen „Echtzeit-Kundenakzeptanztest“ erzwungen.

Testen war schon immer der Elefant im Raum. Psychologisch gesehen hat die Formbarkeit von Software Unternehmen eine Ausrede gegeben, Investitionen in Tests aufzuschieben. Dieser Aufschub führt jedoch zu technischen Schulden. Im Laufe der Zeit steigt die technische Verschuldung, was das mit jeder Veröffentlichung verbundene Risiko und die Komplexität erhöht.

Ein weiteres Hindernis für die SDLC-Beschleunigung ist das Fehlen eines koordinierten End-to-End-Qualitätsprozesses. Wenn vertrauenswürdige und ganzheitliche Qualitätsdaten im gesamten SDLC gesammelt würden, könnten stärker automatisierte Entscheidungspunkte nachgelagerte Prozesse optimieren.

Kontinuierliches Testen: Wie es hilft

Continuous Testing bietet eine objektive Echtzeitbewertung der Geschäftsrisiken, die mit einer in der Entwicklung befindlichen Anwendung verbunden sind. Bei einheitlicher Anwendung können sowohl geschäftliche als auch technische Manager bessere Kompromissentscheidungen zwischen Veröffentlichungsumfang, Zeit und Qualität treffen.

Kontinuierliches Testen ist nicht nur mehr Automatisierung, sondern eine umfassendere Neubewertung der Softwarequalitätspraktiken - basierend auf den Qualitätskosten eines Unternehmens, ausgewogen in Bezug auf Geschwindigkeit und Flexibilität. Letztendlich kann Continuous Testing eine quantitative Risikobewertung liefern und umsetzbare Aufgaben erstellen, die dazu beitragen, diese Risiken zu mindern, bevor mit der nächsten Stufe des SDLC fortgefahren wird.

Abbildung 1: Reduzieren Sie Risiken, bevor Sie zur nächsten Stufe des SDLC übergehen

Angenommen, ein Einzelhändler weiß, dass sehr spezifische Faktoren für die Benutzererfahrung im Zusammenhang mit der Anwendung die Wahrscheinlichkeit erhöhen, dass der Verbraucher Artikel in seinen E-Commerce-Warenkorb legt. Diese Metriken, die in der Geschäftssprache definiert und automatisch gemessen werden, sind genau dieselben Benchmarks, die zum Akzeptieren eines Software-Release-Kandidaten verwendet werden. Die Frage, die die Testsuite beantworten sollte, ist, wie sich Anwendungsänderungen auf diese Geschäftsmetriken auswirken. Ziel ist es, die Geschäftserwartungen und die Geschäftssprache in den Vordergrund des Validierungsprozesses zu rücken und letztendlich den Benutzer und die Marke zu schützen.

Wenn es um Softwarequalität geht, sehen wir uns mit der Notwendigkeit einer echten Prozessumgestaltung konfrontiert. Kontinuierliches Testen ist keine Plug-and-Play-Lösung. Wie bei allen prozessgesteuerten Initiativen erfordert dies die Entwicklung von Menschen, Prozessen und Technologien. Wir müssen dem kreativen Charakter der Softwareentwicklung als Disziplin Rechnung tragen, müssen uns jedoch der überwältigenden Tatsache stellen, dass Software jeden Aspekt des Geschäfts durchdringt - und Softwarefehler das größte Risiko für das Unternehmen darstellen.

Zusammenfassung

Angesichts der Geschäftserwartungen in jeder Phase des SDLC liefert Continuous Testing eine quantitative Risikobewertung sowie umsetzbare Aufgaben, die dazu beitragen, diese Risiken zu mindern, bevor sie in die nächste Phase des SDLC übergehen. Das Ziel kontinuierlicher Tests zur Unterstützung von DevOps besteht darin, bedeutungslose Tests zu eliminieren und Mehrwertaufgaben zu erstellen, die die Entwicklungsorganisation wirklich zu einer erfolgreichen Veröffentlichung führen.

Kontinuierliche Tests für DevOps - Entwicklung über die Automatisierung hinaus

Von Parasoft

Die branchenführenden automatisierten Softwaretest-Tools von Parasoft unterstützen den gesamten Softwareentwicklungsprozess, vom Schreiben der ersten Codezeile über Unit- und Funktionstests bis hin zu Leistungs- und Sicherheitstests, wobei simulierte Testumgebungen genutzt werden.

Erhalten Sie die neuesten Nachrichten und Ressourcen zum Testen von Software sofort.