Application Lifecycle Management und Testing
Die lineare Wasserfallmethode im Application Lifecycle Management (ALM) hat ausgedient
Vor allem Testing muss heute dynamisch über den ganzen Lebenszyklus einer Applikation hinweg passieren, um mit agilen Wettbewerbern mithalten zu können. Unternehmen, die mit komplex gewachsenen SAP-Infrastrukturen arbeiten, sollten S/4-Cloud-Updates etwa immer sorgfältig vor dem Roll-out testen, ansonsten besteht die Gefahr, dass Geschäftsprozesse nicht mehr reibungslos funktionieren. Fehlende Performance-Tests können zum Beispiel dazu führen, dass Applikationen langsam und instabil laufen – und deshalb unter Umständen Kunden abspringen.
Doch herkömmliche Testansätze brauchen Zeit und der Aufwand, sie zu entwerfen, durchzuführen und zu warten, ist hoch. Von Vorteil ist es daher, Tests größtenteils zu automatisieren, indem man Continuous Testing von Beginn an in die DevOps-Pipeline integriert. Für innovative Start-ups ist das keine allzu große Herausforderung. Diese Newcomer haben den Vorteil, dass sie Tabula rasa beginnen und keine Altlasten mittragen müssen.
Jahrelang etablierte Player auf dem Markt kämpfen hingegen meist mit komplexen, historisch gewachsenen Application-Stacks. Die Prozesse in solchen unübersichtlichen Systemen sind oftmals sehr starr und gleichzeitig gelten strenge Compliance-Anforderungen. Wie gelingt es, unter diesen Bedingungen ein angemessenes Automatisierungsniveau beim Testing zu erzielen? Folgende Strategien helfen Unternehmen mit historisch gewachsenen Architekturen dabei, Continuous Testing in ihre DevOps-Pipeline zu integrieren.
Strategien zur Testautomatisierung
Unternehmen verfolgen bei der Testautomatisierung häufig einen skriptbasierten Ansatz. Das verursacht jedoch erheblichen Aufwand. Denn wenn sich die getestete Applikation ändert, müssen sowohl die Skripte als auch das Framework erneut geprüft und möglicherweise aktualisiert werden. Das verschlingt Zeit und Ressourcen. Um Testing einfacher und schneller zu machen, ist deshalb eine Lösung empfehlenswert, die eine Automatisierung von Testfällen über den gesamten Technologie-Stack hinweg bietet – von einer zentralen Plattform aus, ohne Code und mit geringem Aufwand.
Ein weiterer Grund, warum sich viele Unternehmen bei Testautomatisierungs-Projekten schwertun, ist die Testwartung. Hier stellen sich vor allem zwei Fragen: instabile Tests und Tests, die nur schwer anpassbar sind. Wenn ein automatisierter Test bei einer unveränderten Applikation fehlschlägt, liegt ein Stabilitätsproblem vor. Behebbar ist dies etwa durch stabilere Identifikatoren. Daneben können auch ungeeignete Testdaten oder instabile, unvollständige Umgebungen das Scheitern eines Tests verursachen. Die zweite Hürde – unflexible Tests – wird umschifft, indem man Tests aus Modulen erstellt, die in der gesamten Testreihe wiederverwendbar sind. Sollten sich Geschäftsprozesse ändern, so lassen sich die individuellen Module einfach aktualisieren und die jeweiligen Tests automatisch synchronisieren. Um den Aufwand für die Testwartung weiter zu senken, ist es zudem ratsam, die Test-Umgebung so schlank wie möglich zu halten.
Tests lassen sich noch weiter beschleunigen, indem Unternehmen den Anteil von UI-Tests reduzieren, wann immer das möglich ist. API-Tests sind solider, schneller und einfacher zu pflegen und damit für moderne Entwicklungsprozesse besser geeignet. Zudem sind sie in der Lage, Funktionen zu testen, für die UI-Tests nicht geeignet sind. Alle diese Strategien eröffnen Unternehmen Wege, um Continuous Testing über das ganze Application Lifecycle Management hinweg sicherzustellen. So bleiben auch Marktplayer mit historisch gewachsenen Application-Stacks agil und müssen sich vor den dynamischen Newcomern nicht verstecken.
SAP Cloud ALM (Application Lifecycle Management) soll der SolMan des Cloud Computing werden. Was logisch klingt, hat viele Herausforderungen. Wir liefern Antworten, wo ALM hilfreich ist und wo es ergänzende ITSM-Werkzeuge braucht.