Qualitätskontrolle am tatsächlichen Bedarf ausrichten So lässt sich Software Testing erfolgreich automatisieren
Anbieter zum Thema
Wer möchte bei der Softwareentwicklung nicht sicherstellen, dass die Qualität kontinuierlich überprüft wird? Am besten geht das automatisiert. Doch damit können einige Hürden einhergehen.

Konsequent testen: lieber einmal zu viel als zu wenig. Durch die Corona-Pandemie ist das für viele von uns momentan Alltag – und so ein Selbst- oder Schnelltest ist gleich gemacht. Der Aufwand steht dabei normalerweise in einem guten Verhältnis zum Nutzen.
Beim Testen von Unternehmenssoftware ist das nicht zwangsläufig so. Viel getestet wird auch hier, aber diese Tests sind häufig aufwendig und komplex. Gerade Unternehmen mit über Jahrzehnte gewachsenen Softwarestrukturen, die immer wieder angepasst wurden, müssen für die konstante Qualitätskontrolle oft viel Zeit aufwenden. Nicht jeder hat den Luxus, wie so manches Start-up, von der grünen Wiese aus denken zu können.
Wäre es nicht großartig, wenn man Prüfprozesse automatisieren und so vereinfachen könnte? Doch oft stehen komplexe IT-Strukturen der Integration von Continuous Testing in die DevOps-Pipeline im Weg. Mit den folgenden Strategien kann konsequentes, automatisiertes Testen trotzdem funktionieren.
Automatisieren bringt nur etwas, wenn es dadurch einfacher wird
Traditionell laufen automatisierte Tests über Skripte ab. Als Basis dieser Methode erstellt man ein Automation Framework. Diese Rahmenstruktur wird dann um Skripte erweitert. Wenn sich die zu testende Anwendung weiterentwickelt, müssen auch das Framework und die Skripte überdacht und möglicherweise angepasst werden. Das kann dazu führen, dass Tester neu angelernt werden müssen. Selbst erfahrenes Personal kann Schwierigkeiten damit haben, bei den stetigen Veränderungen den Überblick zu behalten.
Wenn wir uns ins Gedächtnis rufen, dass Automatisierung etwas beschleunigen soll, wirkt dieses Vorgehen kontraproduktiv. Wer die Qualitätskontrolle automatisieren will, sollte die Technik an die Anwendung anpassen. Denn ein App-Entwickler hat beispielsweise andere Anforderungen als ein Backend-Developer. Die Zusammenarbeit sollte trotzdem nicht zu kurz kommen. Wenn Sie schon unterschiedliche Ansätze im Arsenal haben, sollte diese auch jeder kennen und in der Lage sein, nachzuvollziehen, was ein anderes Team gemacht hat.
Eine „Schweizer-Taschenmesser-Lösung“ funktioniert bei unterschiedlichen Technologien also wahrscheinlich nicht. Vielmehr gilt es, eine Lösung zu implementieren, mit der sich Testfälle über den gesamten Technologie-Stack hinweg automatisieren lassen und damit die Zusammenarbeit der Entwickler-Teams vereinfachen. Möglich ist dies mit Systemen, die über eine zentrale Plattform laufen.
Das Werkzeug muss zum Handwerk passen
Software gibt es massenhaft. Ob Open Source oder kostenpflichtig, auch für Tests ist die Auswahl groß. Überlegen Sie sich daher genau, was Ihre Anforderungen sind. Ein kleines Unternehmen mit weniger Einzelanforderungen kann mit einem kostenlosen Prüf-Kit zurechtkommen. Je größer und komplexer die Struktur wird, zum Beispiel durch SAP- und Salesforce-Anwendungen, desto mehr muss das Tool können.
Bevor ein Test-Tool angeschafft wird, sollte man also genau wissen, was es können soll und wofür es gebraucht wird. Das Werkzeug ist nur ein Teil des Prozesses. Wenn es nicht das Richtige für die Aufgaben oder den Bediener ist, wird es seinen Zweck nicht erfüllen.
Ist die Wartung schwer, leidet die Automatisierung sehr
Bis die Automatisierung vollständig umgesetzt ist, dauert es eine Zeit lang. Doch dafür lässt sich danach langfristig Zeit einsparen. Zumindest, wenn die Wartung nicht zum Ressourcenfresser wird. Ohne funktionierende Wartung geht es nicht. Bei Tests muss man sich auf die richtigen Ergebnisse verlassen können. Zwei Hauptproblemfelder dabei sind: Instabile Prüfverfahren und Verfahren, die schwer zu aktualisieren sind.
Die Lösung beider Probleme beginnt bereits vor dem Testen. Um instabile Prozesse zu vermeiden, können stabilere Identifikatoren helfen. Je eindeutiger sich Kriterien zuordnen und erkennen lassen, desto besser. Außerdem sollte beim Test-Tool darauf geachtet werden, wie es auf Variationen reagiert und wie einfach es sich an Veränderungen in der Software anpassen lässt. Doch Vorsicht, selbst der beste Test kann durch unvollständige oder falsche Datensätze beeinträchtigt werden.
Um die Prüfanwendung auf Stand zu halten, sollte sie modular aufgebaut sein. Wenn sich ein Prozess ändert, muss nicht unbedingt die ganze Anwendung angepasst werden, sondern nur ein Teil davon. Die Module müssen in die Gesamtsoftware so integriert sein, dass sie trotz Update noch in der Infrastruktur funktionieren. Ein modularer Aufbau mag dazu einladen, hier und da noch etwas hinzuzufügen. Trotzdem sollte man dabei Maß halten.
Mehr Fokus auf die Schnittstellen
Viele automatisierte Tests befassen sich mit der Benutzeroberfläche (UI). Schließlich soll der Nutzer später mit der Software arbeiten können. Dabei sind Tests der Schnittstellen (API) besser für den Entwicklungsprozess geeignet und werden in Zukunft immer wichtiger.
Laut einer Studie von Tricentis sind der Aufbau, die Wartung und die Laufzeit von API-Prüfungen um ein Vielfaches (bei der Laufzeit um mehr als den Faktor 100) einfacher und schneller zu bewerkstelligen. Außerdem können Schnittstellentest früher durchgeführt werden als UI-Tests. Unter Umständen lassen sich die Auswirkungen neuer Versionen auf bestimmte Bereiche dadurch früher erkennen.
Nicht alle Strategien passen zu jedem Unternehmen
Ob automatisiertes Testen in Ihrem Unternehmen funktioniert, lässt sich nicht allein an Strategien festmachen. Die vier hier genannten sind Empfehlungen, basierend auf Erfahrung. Der beste Plan hilft jedoch wenig, wenn die Belegschaft nicht dafür bereit oder die Infrastruktur nicht gegeben ist. Überprüfen Sie daher Ihren Bedarf, überprüfen Sie Ihre Möglichkeiten, sprechen Sie mit den Kollegen. Stellen Sie Ihren eigenen Plan auf.
* Viktoria Praschl ist VP Sales Central Europe bei Tricentis.
(ID:47900322)