Was ist der Unterschied zwischen Shift Left und Shift Right?

Was ist der Unterschied zwischen Shift Left und Shift Right?


Wann ist eigentlich der richtige Zeitpunkt, um Software-Code zu testen? Antworten auf diese Frage liefern die beiden Ansätze Shift-Left und Shift-Right. Im folgenden Blogartikel stellen wir sie näher vor.


Was bedeutet Shift Left und Shift Right?

Fehler und Schwächen im Code möglichst frühzeitig zu identifizieren und zu beheben, ist für jedes Software-Projekt essenziell. Doch wann ist der richtige Zeitpunkt, den Code zu testen? Die beiden Ansätze Shift Left und Shift Right beschreiben zwei unterschiedliche Herangehensweisen.


Am besten lassen sich die Richtungsangaben „links“ und „rechts“ nachvollziehen, indem wir einen Blick auf den DevOps-Zyklus werfen. Die einzelnen Schritte in einem Softwareprojekt sind dabei eng miteinander verzahnt. Am besten lässt sich DevOps durch eine endlose Schleife visualisieren. Erhalten die Teams Feedback, setzt sich der Prozess erneut in Gang.

Gut zu wissen: Mehr über DevOps erfahren Sie auch in unserem Blogartikel „DevOps – was ist das eigentlich?.



DevOps Vorgehensweise im Bezug auf Shift Left und Shift Right

Shift Left

Shift Left zielt darauf ab, das Testen als Teil der Softwareentwicklung zu etablieren und Code möglichst frühzeitig und häufig zu testen. Testing rückt damit auf die linke Seite des DevOps-Prozesses.

Vor allem in jüngster Zeit hat Shift-Left zunehmend an Bedeutung gewonnen. IT-Teams müssen Software immer schneller und gleichzeitig in hoher Qualität bereitstellen. Dadurch steigt der Druck. Shift-Left kann dabei helfen, Kosten und Zeit zu sparen, indem Fehler möglichst zu Beginn entdeckt und behoben werden.


Shift Right

Shift Right verschiebt das Testing hingegen weiter nach rechts, sprich ans Ende des Prozesses. Das bedeutet: Die Software wird erst zu einem späteren Zeitpunkt getestet, wenn der Entwicklungsprozess bereits vollständig abgeschlossen ist.


Die Vorteile von Shift Left

frühzeitiges Erkennen von Fehler durch den Einsatz von Shift Left:

  • Desto früher Teams mit dem Testen beginnen, desto schneller können sie Fehler und Schwächen in der Software beheben und damit Folgefehler vermeiden.


geringere Kosten durch den Einsatz von Shift Left:

  • Fehler können gleich zu Beginn beseitigt werden. Dafür ist meist ein geringer Aufwand nötig. Das spart nicht nur Zeit, sondern auch Geld.


verlässliche Tests durch den Einsatz von Shift Left:

Das Entwicklungsteam und das Qualitätssicherungsteam arbeiten von Anfang an eng zusammen. Das ermöglicht es, verlässliche Tests zu entwickeln, die alle nötigen Anforderungen erfüllen.


beschleunigte Auslieferung durch den Einsatz von Shift Left:

Indem regelmäßig getestet wird, sind lange Testphasen am Ende der finalen Entwicklung meist überflüssig.


5 Tipps um Shift Left in die Praxis umsetzen

Damit Shift Left auch in der Praxis gelingt, sind einige Vorbereitungen im Team nötig. Essenziell ist dabei, die passenden Strukturen zu schaffen, die eine frühzeitige Qualitätssicherung ermöglichen. Folgende Tipps können dabei helfen:


Kommunikation im Team

Nur wenn alle am gleichen Strang ziehen und sich für die Qualität eines Softwareprojektes verantwortlich fühlen, können Erfolge erzielt werden. Daher ist es wichtig, dass alle im Team verstehen, warum der Shift-Left-Ansatz sinnvoll ist. Alle Teammitglieder sollten daher frühzeitig in den Prozess miteingebunden werden.


Agile Frameworks nutzen

Der Shift-Left-Ansatz lässt sich am besten in einem agilen Arbeitsumfeld umsetzen. In regelmäßigen Abständen werden hierbei neue Features entwickelt und bereitgestellt, die parallel getestet werden.


Tests automatisieren

Testfälle zu automatisieren, ist eine wesentliche Voraussetzung dafür, dass die Umstellung zu SHIFT-LEFT gelingt. Das Testing kann somit beschleunigt und in regelmäßigen Abständen wiederholt werden, ohne das Personal aufgestockt werden muss. Die Entwickler erhalten dadurch wiederum schnelles Feedback, das sie bereits in kurzer Zeit umsetzen können.


Implementierung eine CI/CD-Pipeline

Eine CI/CD-Pipeline ermöglicht es, regelmäßige Tests automatisch in den Prozess einzuplanen. Der Vorteil: Die Teammitglieder sparen Ressourcen und können sich auf die wesentlichen Aufgaben konzentrieren.


Verschiedene Testarten integrieren

Um die Qualität sicherzustellen und unterschiedliche Funktionen abzudecken, sollten die Teams auf verschiedene Testarten setzen. Beispiele sind Unit-Tests, Code-Tests und funktionale Tests. Idealerweise sollten diese Tests automatisiert werden.


Warum sollte Shift Right dennoch nicht vernachlässigt werden?

Shift Left bietet viele Vorteile. Fehler können schnell und zuverlässig erkannt und folglich frühzeitig behoben werden. Dennoch ist auch der Shift-Right-Ansatz keineswegs verzichtbar. In einer Entwicklungsumgebung zu testen (Shift Left), bedeutet auch, dass manche Faktoren noch überhaupt nicht berücksichtigt werden können. Bei Shift-Right wird die Software hingegen unter reellen Bedingungen getestet. Das Verhalten der Nutzer kann dabei zum Beispiel betrachtet und miteinbezogen werden. Das ermöglicht es dem Team, neue unerwartete Schwächen aufzudecken.


Fazit

Wann ist der richtige Zeitpunkt, um Software zu testen? Shift Left bietet hierfür eine klare Antwort: So früh und so häufig wie möglich. Diese Vorgehensweise stellt sicher, dass Schwächen in der Software frühzeitig identifiziert und ausgemerzt werden. Shift Left spielt daher vor allem im DevOps-Zyklus eine wichtige Rolle.


Auf den ersten Blick scheinen sich Shift Left und Shift-Right grundlegend voneinander zu unterscheiden. Verzichtbar ist jedoch keine der beiden Strategien. Denn nur in Kombination können diese beiden Herangehensweisen sicherstellen, dass das Softwareprodukt am Ende die Qualitätsansprüche erfüllt. Wichtige Voraussetzungen dafür: das passende Mindset, die richtige Organisation im Team und eine fundierte Teststrategie.


Wir helfen Ihnen dabei, Shift Left und Shift Right erfolgreich in Ihrem Softwareprojekt zu etablieren. Gerne beraten unsere Qualitätsexperten Sie unverbindlich und professionell!

Share by: