Shift-Left-Testing in der Softwareentwicklung

Shift-Left-Testing in der Softwareentwicklung

  • ITOps & DevOps
6 Minuten Lesezeit Aktualisiert Oct 30, 2024

Auf einen Blick: Shift Left-Testing verbessert die Softwarequalität, indem Fehler früh im Entwicklungszyklus erkannt werden, wodurch Kosten gesenkt und die Liefergeschwindigkeit gesteigert wird. Dieser Ansatz steht im Gegensatz zu traditionellen Testmethoden, die erst spät im Prozess auftreten.

  • Vorteile sind geringere Kosten und verbesserte Produktqualität.
  • Herausforderungen beinhalten unzureichende Führung und Ressourcenbeschränkungen.

Agile Praktiken, die fast überall übernommen werden, erfordern schnelleres und früheres Testen im Softwareentwicklungszyklus (SDLC). Entwicklung und Testen frühzeitig zusammenzubringen, wird gemeinhin als "Linksverschiebung" bezeichnet.

Shift Left und traditionelle Tests

Shift-Left-Testing ist eine Abkehr von dem, was in einem Wasserfall-Softwareentwicklungsprojekt üblich ist . Traditionelle Ansätze beginnen mit dem Testen unmittelbar vor ReleasIng In die Produktion. Wenn man so spät im Prozess testet, wird die Veröffentlichung bei Fehlern oder Usability-Problemen verzögert, bis diese behoben sind. Vor der Einführung agiler Praktiken wie der Shift Left-Entwicklung war das Testen ein Engpass, der die pünktliche Projektlieferung erheblich behindert. Die Beseitigung dieses Engpasses ist einer der wichtigsten Vorteile von Shift Left im DevOps-Bereich.

Was bedeutet Shift Left in der Softwareentwicklung?

Was bedeutet Shift Left?

Shift Left ist eine Praxis , die darauf abzielt, Fehler frühzeitig im Softwareentwicklungsprozess zu finden und zu verhindern. Die Idee ist, die Qualität zu verbessern, indem Aufgaben so früh wie möglich im Lebenszyklus nach links verlegt werden. Shift-Left-Testing bedeutet, früher im Softwareentwicklungsprozess zu testen. Die einfachste Möglichkeit, die Bedeutung von Shift-Left-Softwaretests zu erklären, ist, den Entwicklungszyklus als eine Linie zu betrachten, die von links nach rechts verläuft.

Softwareentwicklungszyklus

Im alten Modell kam das Testen nur ganz rechts an der Linie zum Einsatz. Da wir den Engpass hier erkennen, wollen wir den Teststart nun so weit wie möglich nach links verschieben.

Warum ist Shift Left in DevOps wichtig?

Im traditionellen Softwareentwicklungsmodell werden die Anforderungen auf der linken Seite des Plans gehalten und die Anforderungen an Lieferung und Tests auf der rechten Seite. Das Problem ist, dass diese Praktiken mit den sich ändernden Erwartungen und Anforderungen nicht umgehen können, was zu negativen Ergebnissen für das Unternehmen führt, wie zum Beispiel:

  • Erhöhte Kosten
  • Verlängerte Markteinführungszeit
  • Unerwartete Fehler

6 Vorteile des Shift-Left-Tests

Es gibt mehrere Vorteile, die durch die Anwendung einer Shift-Left-Strategie im DevOps erzielt werden können. Hier sind einige der wichtigsten:

1. Reduzierte Kosten

Allein die Kosten sind ein sehr großer Vorteil des Shift-Left-Testansatzes. Schätzungen zufolge konnten während der Anforderungsphase über die Hälfte aller Softwarefehler identifiziert werden, während weniger als 10 % während der Entwicklungsphase des Lebenszyklus auftauchten. Die Kosten für die Behebung dieser Fehler sind umgekehrt: Ein Fehler, der nach dem Eingang des Produkts entfernt wird, kostet etwa das 100-fache mehr als einer, der während der Anforderungsphase identifiziert und entfernt wird. Forschungen des Ponemon Institute aus dem Jahr 2017 ergaben, dass Schwachstellen, wenn sie im frühen Entwicklungsprozess entdeckt werden, im Durchschnitt etwa 80 US-Dollar kosten können. Dieselben Schwachstellen könnten jedoch etwa 7.600 US-Dollar kosten, wenn sie nach der Produktion entdeckt werden.

Reduzierte Kosten

2. Verbesserte Testautomatisierung

Das Verschieben nach links ermöglicht eine größere Fähigkeit, Tests zu automatisieren. Testautomatisierung bringt einige wichtige Vorteile mit sich:

  • Viel weniger menschliche Fehler
  • Erhöhte Testabdeckung (mehrere Tests können gleichzeitig durchgeführt werden)
  • Fähigkeit für Prüfer, sich auf interessantere und erfüllendere Aufgaben zu konzentrieren
  • Weniger Produktionsprobleme

3. Erhöhte Software-Liefergeschwindigkeit

Früher bedeutet schneller. Wenn Sie Fehler früher im Produktionszyklus finden, können Sie sie auch viel schneller beheben. Folglich:

  • Die Zeit zwischen den Veröffentlichungen kann sich deutlich verkürzen.
  • Die Qualität der Software verbessert sich.

4. Verbesserte Produktqualität

Der Shift-Left-Ansatz betont, dass Entwickler sich von Anfang an auf Qualität konzentrieren müssen, anstatt zu warten, bis Fehler und Fehler erst spät im SDLC entdeckt werden.

5. Erhöhte Kundenzufriedenheit

Eine schnellere Auslieferung von Software mit weniger Fehlern ist ein großer Vorteil des Shift-Left-Ansatzes. Wenn dich sonst nichts davon überzeugt, dass dies ein guter Schachzug ist, dann sollten die Lächeln auf den Gesichtern deiner Geschäftspartner alles sein, was du brauchst. Lernen Sie aus den Entscheidungen, die Humana bei der Auswahl einer modernen Mainframe-Entwicklungsumgebung für das Bearbeiten und Debuggen von Code getroffen hat, um deren Geschwindigkeit, Qualität und Effizienz zu verbessern.

play

6. Verbesserte Teamzusammenarbeit

Das Verschieben nach links ermöglicht es Produktteams, tägliche Aufgaben wie Folgendes auszuführen:

  • Tests
  • Feedback geben
  • Überprüfung von Änderungen und Fortschritten

Links verschieben vs. rechts verschieben in DevOps

Nach links verschieben vs. nach rechts.

Ein Shift-Left-Testansatz kann in einer realen Umgebung möglicherweise nicht immer optimale Leistung und Funktionsfähigkeit liefern. In solchen Situationen kann eine Shift-Right-Teststrategie helfen, um:

  • Verbesserung des Kundenerlebnisses
  • Bieten Sie einen Raum für die Implementierung der Testautomatisierung
  • Sicherstellen Sie eine bessere Testabdeckung

Was ist Shift Right in der Softwareentwicklung?

Shift Right-Tests werden von rechts ausgeleitet, also in der Postproduktion. In dieser Shift-Right-Praxis testen Sie eine vollständig entwickelte und funktionierende Anwendung, um Leistungs- und Benutzerfreundlichkeitsmerkmale sicherzustellen. Bewertungen und Rückmeldungen von Zielnutzern tragen zusätzlich zur Verbesserung der Softwarequalität bei. Ein wichtiges Merkmal des Shift-Right-Ansatzes ist die Bereitschaft zu:

  • Validiere eine Hypothese, indem du neue Lösungen ausprobierst
  • Arbeiten Sie mit Kunden zusammen, um herauszufinden, was funktioniert (anstatt von Annahmen auszugehen)

Kontinuierliches Feedback von Nutzern kann helfen, besser auf Softwareausfälle zu reagieren.

6 Vorteile des Shift-Right-Tests

Wenn Sie Shift-Right-Tests in Ihre Entwicklungsprozesse integrieren, können Sie erhebliche Vorteile erzielen.

1. Feedback der Nutzer aus der realen Welt

Das Testen in der Produktion ermöglicht es Ihnen, von tatsächlichen Nutzern in tatsächlichen Szenarien zu sehen, wie Software in der realen Welt funktioniert. Während Sie versuchen können, solche Umgebungen in früheren Tests zu replizieren, können bei realen Situationen unerwartete Probleme auftreten.

2. Kontinuierliche Überwachung

Die DevOps-Kultur der kontinuierlichen Bereitstellung von Softwareverbesserungen erfordert kontinuierliches Testen. Shift Right-Tests und -Monitoring bieten die notwendige Rückkopplungsschleife, um häufige Releases mit Vertrauen durchzuführen.

3. Schnellere Lösung von Produktionsproblemen

Mit Shift-Right-Tests finden Sie Probleme schneller, sodass Sie sie schnell beheben können. Mit effizienter Problemlösung haben Ihre Nutzer weniger Ausfallzeiten und können sich auf zuverlässigere Releases verlassen.

4. Bessere Benutzererfahrung

Wenn Nutzer mit Ihrem Team zusammenarbeiten, genießen sie eine schnelle und reaktionsschnelle Problemlösung, aber auf lange Sicht weniger Probleme. Die Beseitigung von Engpässen und Benutzeroberflächenproblemen sowie der Einsatz kontinuierlicher Verbesserungsansätze führen zu höherer Nutzerzufriedenheit.

5. Vorbeugung schwerwiegender Mängel

Der Ansatz ermöglicht es Ihnen, Leistungsprobleme, Funktionsprobleme und Fehler in der Benutzererfahrung zu erkennen, damit Sie schnell reagieren können, bevor diese Probleme zu größeren Rückschlägen werden.

6. Beseitigung unvorhersehbarer Ergebnisse

Shift-Right-Tests versetzen Sie in eine proaktive Position mit kontinuierlicher Überwachung, die die Wahrscheinlichkeit unangenehmer Überraschungen deutlich verringert.

Wie man Shift-Left-Tests implementiert

Es gibt einige wichtige Shift-Left-Strategien, die Ihnen helfen werden, diesen Ansatz beim Softwaretesten anzuwenden.

Nachfrageplanung

Testanalysten arbeiten mit geschäftlichen und operativen Stakeholdern zusammen und bieten so eine vorausschauende Sicht auf die Nachfrage. Diese Sicht ermöglicht es Ihnen, im Voraus zu planen und Folgendes abzuschließen:

  • Das Budget
  • Ressourcen
  • Teststrategien

Die Nachfrageplanung ist ein integraler Bestandteil des Shift-Left-Ansatzes und bietet einen Ausgangspunkt für alle anderen Aktivitäten im Testzyklus.

Statische Tests

Statische Tests werden in den frühen Projektzyklen durchgeführt und umfassen die Validierung von Anforderungen und Design. Ziel der statischen Tests ist es, Fehler früh im Lebenszyklus zu finden, die in späteren Projektphasen sehr teuer zu entfernen sein könnten. Verwenden Sie geeignete Checklisten, um Anforderungen und Design zu überprüfen und zu validieren. Protokollieren Sie Fehler in ein Fehlermanagement-Tool.

Vereinheitlichte Teststrategie

Dies ist eine übergeordnete, übergeordnete Strategie für End-to-End-Tests – von Unit Testing über User Acceptance Testing (UAT), operational readiness testing (ORT) bis hin zu Tests nach der Bereitstellung. Die Strategie umfasst alle Phasen der Qualitätskontrolle und definiert klare Verantwortlichkeiten. Eine einheitliche Teststrategie ermöglicht es Ihnen, Abhängigkeiten von Umgebungen, Stubs, Automatisierung und Testdaten zu analysieren – sodass die jeweiligen Teams die Bedürfnisse erfüllen können.

Risikobasierte Analyse

Eine risikobasierte Analyse wird durchgeführt, um die Auswirkungen und Wahrscheinlichkeit eines Ausfalls für jedes Testszenario zu bestimmen. Dieser Ansatz wird für funktionale, nicht-funktionale und Regressionstypen von Tests verwendet. Sobald die Testfälle festgestellt sind, wird die Priorität der Testfälle auf Grundlage der fertigen Analyse festgelegt. Besprechen Sie die Auswirkungen des Scheiterns mit dem Business Analyst oder Designer. Bestimmen Sie die Ausfallwahrscheinlichkeit des Entwicklungsteams.

Herausforderungen bei der Einführung von Shift Left-Tests

Herausforderungen bei Shift Left-Tests können die Einführung erschweren. Dazu gehören:

  • Unzureichende Führung: Führungskräfte müssen neue Gewohnheiten fördern und das richtige Verhalten fördern. Ein Fokus auf das Erreichen eines Startdatums könnte zum Beispiel bedeuten, dass keine Zeit für Shift-Left-Tests bleibt.
  • Unfähigkeit, Prozesse zu verändern: Teams können sich in ihren Gewohnheiten festsetzen und sich auf vertraute Werkzeuge und Ansätze verlassen. Kulturen können schwer zu verändern sein.
  • Begrenzte Ressourcen: Shift Left-Tests können als mehr von Teams verlangend wahrgenommen werden, ohne die höhere Arbeitsbelastung zu unterstützen.
  • Versäumnis, Tester frühzeitig einzubinden: Ihr Team könnte die Einbindung von Tester in den frühesten Phasen verzögern, in denen sie den größten Beitrag leisten können.
  • Umfang des unausgerichteten Tests: Das Testen muss den Nutzungsszenarien entsprechen, und Änderungen in der Software werden möglicherweise nicht in den Testprotokollen widergespiegelt.

Verwandte Literatur

Diese Beiträge sind meine eigenen und spiegeln nicht unbedingt die Position, Strategien oder Meinung von BMC wider.

Mehr aus ITOps & DevOps

Interessieren Sie sich für mehr von BMC?

The Brief ist unsere monatliche E-Mail zum Mainframe und zur Enterprise-Orchestrierung: Recherchen, Kundenberichte, Produktnachrichten, Events.

Mit der Registrierung für dieses Angebot bestätigen Sie, dass Sie die Datenschutzrichtlinie von BMC gelesen und zugestimmt haben.

Sie haben The Brief abonniert

Das Briefing umfasst die Mainframe- und Enterprise-Orchestrierung – BMC AMI und Control-M – sowie die Analystenforschung, Kundeneinsätze und Events in beiden Bereichen.