Das Video ansehen
Die Methodik der Linksverschiebung
In diesem Artikel wird der Shift-Links-Ansatz als eines der Kernelemente der DevOps-Methoden und als wesentlicher Bestandteil der agilen Softwareentwicklung vorgestellt.
Das Problem bei herkömmlichen Methoden ist, dass das Testen erst sehr spät im Softwareentwicklungsprozess stattfindet, was zu einem erheblichen Aufwand und hohen Kosten für die Fehlerbehebung führt. Die Methoden des Shift-Links-Ansatzes gewährleisten ein frühzeitiges Testen, wodurch sowohl die Kosten als auch der Aufwand für die Fehlerkorrektur minimiert werden und die Qualität des Produkts erhalten bleibt.
Neben der Aufrechterhaltung der Produktqualität wird dieser Artikel Ihnen helfen zu verstehen, wie der Shift-Links-Ansatz die Teamarbeit und die Zusammenarbeit mit dem Team verbessert. Ebenso konzentriert sich dieser Artikel auf die Kernaspekte des Ansatzes zusammen mit seinen Leitlinien.
In diesem Artikel:
Traditionelle Methoden vs. Shift Left-Ansatz
Bei traditionellen Softwareentwicklungsmethoden ist es oft ein Problem, dass Tests sehr spät platziert werden. Dieses Verhalten ist bei typischen Modellen wie dem Wasserfallmodell oder dem V-Modell zu beobachten. Dies ergibt sich aus dem sequenziellen Charakter des Modells, bei dem jede Phase auf die vorherige folgt. Die Testphase liegt relativ weit am Ende des Modells, so dass das gesamte Produkt in einer Phase kurz vor der Freigabe getestet werden kann.
Dies führt jedoch oft dazu, dass Probleme erst sehr spät erkannt werden, was zu einem hohen Aufwand und damit verbundenen Kosten für die Behebung der Probleme führt. Der Shift Left Approach bietet verschiedene Richtlinien zur frühzeitigen Durchführung von Tests, die es ermöglichen, Probleme schnell und kostengünstig zu erkennen und zu beheben.
Wie im Diagramm dargestellt, wird das Testen nach links verschoben, d. h. in ein früheres Stadium der Entwicklung.
Der Grundgedanke ist, durch möglichst viele automatisierte Tests kontinuierlich Feedback zu sammeln. Dies stellt einerseits sicher, dass das Produkt die gewünschten Qualitätsstandards erfüllt, und hilft andererseits, den mit dem Testen verbundenen Aufwand und die Kosten zu minimieren.
Linksverschiebung Leitlinien für die Annäherung
Es gibt keine festen Regeln für die Umsetzung des Shift-Links-Ansatzes. Auf der Grundlage unserer Erfahrungen haben wir jedoch einige Leitlinien formuliert, die der Ansatz vorschlägt:
- Zusammenarbeit: Verschiedene Teams, z. B. Entwickler und Qualitätssicherer, sollten eng und frühzeitig zusammenarbeiten, um besser auf die verschiedenen Produktanforderungen eingehen zu können und vom Fachwissen des jeweils anderen zu profitieren.
- Kontinuierliches Feedback: Holen Sie während des gesamten Entwicklungsprozesses Feedback von den Test- und Qualitätssicherungsabteilungen ein, anstatt bis zum Ende zu warten.
- Automatisierte Tests: Die Automatisierung von Tests erleichtert das effiziente Testen und reduziert so den Zeit- und Kostenaufwand für das Testen.
- Iterative Entwicklung: Verwenden Sie einen iterativen Entwicklungsansatz, bei dem kleine Änderungen vorgenommen und häufig getestet werden.
- Fehlervermeidung: Ziel ist es nicht nur, Fehler zu erkennen, sondern auch Maßnahmen zu ergreifen, um Fehler frühzeitig und proaktiv zu vermeiden. Dies kann durch Schulungen, Kodierungsrichtlinien und bewährte Verfahren erreicht werden.
Beispiel für die Integration der Linksverschiebungsrichtlinien
In der Regel sind in vielen Unternehmen verschiedene Teams mit unterschiedlichen Aufgaben in der Entwicklungspipeline betraut. Das Entwicklungsteam schreibt den Code für das Produkt, das Qualitätssicherungs-Team führt Tests durch und stellt sicher, dass das Produkt die gewünschte Qualität aufweist, und das DevOps-Team versucht, die Prozesse für beide Teams zu automatisieren und zu optimieren. Der Shift Left-Ansatz fördert eine engere Zusammenarbeit zwischen diesen Teams.
Die Tester sollten frühzeitig einbezogen werden. Wenn Tester bereits in der Produktplanungsphase einbezogen werden, können sie die Anforderungen des Produkts besser verstehen und die Tests entsprechend gestalten. Außerdem können sie aufgrund ihrer Erfahrung potenzielle Probleme frühzeitig erkennen und die Entwickler informieren.
Außerdem sollten die Tester über einige Programmierkenntnisse verfügen. Zwar erwartet niemand von ihnen, dass sie Experten außerhalb ihrer Kernkompetenz sind, aber wenn die Tester kleinere Fehler selbst beheben können, kann sich das Entwicklungsteam auf wichtigere Probleme konzentrieren.
Außerdem sollten die Entwickler auf die Testbarkeit achten, um den Testern schnelle und unkomplizierte Tests zu ermöglichen, z. B. durch die Verwendung eindeutiger IDs für jedes Element und die Durchführung kleinerer Tests. Typische Tests, die von den Entwicklern selbst durchgeführt werden können, sind automatisierte Sicherheitstests.
Automatisierung von Sicherheitstests
Eine wichtige Art von Tests sind Sicherheitstests. Zu diesem Zweck ermöglichen einige Tools automatisierte Tests auf Sicherheitsrisiken. Es können verschiedene Arten von Tests durchgeführt werden, um das Produkt auf verschiedene Fehler und Schwachstellen zu untersuchen. Dazu gehört zum Beispiel ein statischer Anwendungssicherheitstest, kurz SAST, bei dem der Quellcode vor der Kompilierung auf Schwachstellen geprüft wird. Viele Tools geben auch Hinweise, wie die gefundenen Probleme mit minimalem Aufwand behoben werden können. Diese Tests können so automatisiert werden, dass Entwickler ein unabhängiges Feedback zu ihrem Code erhalten und Probleme leicht beheben können.
Das Versionskontrollprogramm Github beispielsweise nutzt die Automatisierung, bei der der Code bei jedem Push auf Daten geprüft wird, die ein Sicherheitsrisiko darstellen. Dazu könnten Anmeldedaten für die Anmeldung oder Authentifizierungsschlüssel gehören. Wenn GitHub solche Risiken entdeckt, wird der Entwickler automatisch gewarnt, um zu verhindern, dass kritische Informationen an die Öffentlichkeit gelangen.
Schlussfolgerung
Insgesamt hat dieser Artikel die Kernelemente des Shift-Links-Ansatzes und die darin enthaltenen Leitlinien aufgezeigt. Er hat gezeigt, wie problematisch späte Tests in traditionellen Softwareentwicklungsmodellen sein können und welche Vorteile es hat, die Methoden des Shift Left-Ansatzes in seine Projekte einzubauen. Zu den Ergebnissen gehören nicht nur ein geringerer Zeitaufwand für ein qualitativ hochwertiges Produkt, sondern auch eine verbesserte Zusammenarbeit zwischen den einzelnen Teams.
Die Umstrukturierung der Entwicklungspipeline birgt jedoch einige Herausforderungen, deren Vorteile sich jedoch mittelfristig auszahlen können. Die Berater von Scalefree im Bereich DevOps und Cloud sind Experten für die Integration und Automatisierung von Praktiken wie dem Shift Left Approach in ihren Projekten und unterstützen Sie gerne.
Wenn Sie mehr über technische Prüfungen erfahren möchten, finden Sie im folgenden Artikel verschiedene Methoden zur Durchführung von Tests in einer Data Vault-gestützten EDW.
Über den Autor
Damian Hinz
Damian unterstützt das Cloud-Team und ist auf DevOps-Strategien und -Implementierung spezialisiert. Dank seiner umfangreichen Erfahrung mit agilen Methoden kann Herr Hinz DevOps-Verfahren nahtlos in Geschäftsabläufe integrieren. Sein Fachwissen erstreckt sich auch auf Cloud Computing-Plattformen wie AWS, Azure und GCP und ermöglicht reibungslose Übergänge und optimierte Abläufe in der Cloud-Umgebung. Darüber hinaus zeichnet sich Herr Hinz durch den Einsatz von IaC-Tools wie Terraform zur Rationalisierung von Infrastrukturmanagementprozessen aus. Damian Hinz hat einen Bachelor-Abschluss in Computerwissenschaften.