Definition Shift-Left | Shift-Left-Testing Was ist Shift-Left?

Als Shift-Left wird ein Ansatz bezeichnet, bei dem ein Prozessschritt vorgezogen und früher als im Prozessablauf ursprünglich vorgesehen ausgeführt wird. Typisch ist dieser Ansatz beispielsweise für Software­entwicklungs­prozesse und das DevOps-Prinzip. Das sogenannte Shift-Left-Testing führt Tests in einem frühen Stadium des Software­entwicklungs­prozesses durch. Fehler lassen sich in einem frühen Entwicklungsstadium finden. Der Aufwand für die Fehlerbehebung sinkt und die Produktqualität steigt.

Anbieter zum Thema

Unter dem Shift-Left-Ansatz versteht man das Vorziehen eines Prozessschritts in eine frühere Phase des Prozessablaufs, beim Shift-Left-Testing also zum Beispiel das Testen von Software in einem frühen Entwicklungsstadium.
Unter dem Shift-Left-Ansatz versteht man das Vorziehen eines Prozessschritts in eine frühere Phase des Prozessablaufs, beim Shift-Left-Testing also zum Beispiel das Testen von Software in einem frühen Entwicklungsstadium.
(Bild: gemeinfrei / Pixabay )

Der englische Begriff "Shift-Left" lässt sich mit "Linksverschiebung" ins Deutsche übersetzen. Es handelt sich um einen Ansatz, bei dem ein einzelner Prozessschritt vorgezogen und früher als im Prozessablauf ursprünglich vorgesehen ausgeführt wird. In einem von links nach rechts dargestellten Prozessablauf kommt es zu einer Linksverschiebung eines Prozessschritts. Typisch ist dieser Ansatz der Linksverschiebung beispielsweise für den Softwareentwicklungsprozess. Er lässt sich aber prinzipiell in allen Prozessabläufen wie in der Projektabwicklung, beim Troubleshooting oder im IT-Support anwenden. Beim sogenannten Shift-Left-Testing werden Tests schon in einem frühen Stadium des Softwareentwicklungsprozesses ausgeführt. Ziel ist es, Fehler in einem frühen Entwicklungsstadium zu finden und eine hohe Qualität der Software zu erreichen.

Was ist Shift-Left-Testing?

Wie im vorigen Absatz angesprochen, ist das Shift-Left-Testing eine typische Anwendung des Prinzips der Linksverschiebung. Anstatt eine Software wie im klassischen Prozess der Softwareentwicklung erst spät oder am Ende des Entwicklungsprozesses zu testen, werden die Softwaretests in ein früheres Stadium des Entwicklungsprozesses verschoben. In der Regel werden die Tests kontinuierlich und mehrfach ausgeführt. Diese Art des Testens ist eine wichtige Komponente des DevOps-Prinzips und Teil einer Software-Delivery-Pipeline. Sie wird in diesem Zusammenhang auch als Continuous Testing bezeichnet. Fehler lassen sich dank dem Vorziehen von Tests bereits in einem frühen Entwicklungsstadium finden und beheben. Aufwendige Nacharbeiten am Ende des Softwareentwicklungsprozesses lassen sich vermeiden und die Bereitstellungszeiten für qualitativ hochwertige Softwareprodukte verkürzen. Es existieren verschiedene Arten der Linksverschiebung des Testens wie das traditionelle, das inkrementelle oder das modellbasierte Shift-Left-Testing.

Vorteile durch das Vorziehen von Softwaretests

Die Implementierung einer Linksverschiebung in den Softwareentwicklungsprozess und das Vorziehen von Softwaretests in ein früheres Stadium bietet zahlreiche Vorteile. Früh im Entwicklungsprozess lassen sich Fehler finden und beheben. Die Produktqualität ist schon sehr früh sehr hoch und aufwendiges Nacharbeiten aufgrund von spät entdeckten Fehlern wird vermieden. Bereitstellungszeiten für qualitativ hochwertige Softwareprodukte verkürzen sich. Weitere Vorteile sind:

  • Tester werden früh eingebunden und haben weniger Zeitdruck beim Testen.
  • Die Zusammenarbeit zwischen Softwareentwicklern und Testern verbessert sich.
  • Es bleibt mehr Zeit für das Beseitigen der gefundenen Fehler.
  • Die Fehlersuche vereinfacht sich, da die Komplexität in einem frühen Entwicklungsstadium noch nicht so hoch wie bei fast fertiger Software ist.
  • Grundsätzliche Fehler im Softwaredesign lassen sich noch gut beheben.
  • Die Kosten für die Fehlerbehebung reduzieren sich.
  • Geschwindigkeit und Qualität in der Softwareentwicklung sind keine gegenläufigen Ziele mehr.
  • Das Risiko der Entwicklung schlechter Softwareprodukte reduziert sich.

(ID:47986686)