Automatisierte Tests von SAP-Entwicklungen rechnen sich

24.04.2009
Von Eric Jochum
Nur wenige Unternehmen testen ihre SAP-Anwendungen konsequent. Selbststeuernde Verfahren sorgen jedoch für Stabilität.

Viele große Automobilkonzerne steuern ihre Fahrzeugproduktion über eine ERP-Lösung von SAP. Sämtliche Prozesse, die beispielsweise die Montage betreffen, sind dort abgebildet. Das SAP-System sorgt dafür, dass immer genügend Fertigungsteile vorhanden sind. Wenn der Bestand zurückgeht, löst die Software automatisch einen Bestellvorgang beim Zulieferer aus, der dann die entsprechenden Teile rechtzeitig liefern kann. Kommt es hier zu einem Softwarefehler, kann es durchaus sein, dass die Bänder in den Fertigungshallen stillstehen, und das kann teuer werden. Umso erstaunlicher ist es, dass IT- und Fachabteilungen beim Testen von Software nicht genügend Sorgfalt an den Tag legen. Die Notwendigkeit von Tests ist vielen zwar bewusst, doch fehlt den Mitarbeitern die Zeit.

Auf jeden Fall notwendig sind Tests, wenn SAP alle zwei Monate ein neues Patch herausbringt oder alle sechs Monate ein Enhancement Package veröffentlicht – und selbstverständlich bei komplett neuen Installationen. Dann müssen die IT und die Fachabteilungen das gesamte System mit Anwendungsfällen prüfen. Das gilt auch für die Eigenentwicklungen und Erweiterungen der SAP-Standardprogramme.

Manuelles Testen: Zeitaufwändig und unvollständig

Statt aber systematisch, methodisch und strukturiert vorzugehen, bestimmt Kollege Zufall die Testprozesse. So wird häufig intuitiv gearbeitet, nach dem Prinzip: Wir suchen uns gängige Anwendungsfälle. Dieses manuelle Testen frisst jedoch viel Zeit und ist nicht kalkulierbar. Ein Anwender gibt manuell die Testfälle und Daten in das SAP-System ein, bestätigt die Dateneingabe und wartet ab, was passiert. Funktioniert alles einwandfrei, nimmt er sich den nächsten Fall vor, gibt es Schwierigkeiten, versucht er den Fehler zu beheben.

Die Folgen sind häufig Testszenarien, die einem produktiven Massenbetrieb nicht standhalten und sich nicht wiederholen lassen. Die ermittelten Testfälle sind oft fehlerhaft und bis zu 30 Prozent redundant. Zudem bleiben die negativen Testfälle außen vor.

Automatisiertes Testen: Methodisch dem Fehler auf der Spur

Automatisiertes Testen hilft dagegen, den Testaufwand deutlich zu reduzieren und Kosten zu sparen. Dabei zeichnet eine Software im Vorfeld der eigentlichen Überprüfungen Testverläufe wie eine Art Rekorder auf und spielt sie über Nacht durch. Dieses Verfahren wird als GUI-Testautomatisierung (GUI = Graphical User Interface) bezeichnet. Es kommt in eigenständigen Projekten zum Einsatz, die geplant, spezifiziert, umgesetzt, protokolliert und ausgewertet werden. Die Rekorder-Funktion (Capture) zeichnet Mausbewegungen, Mausklicks oder Tastatureingaben auf jeder Bildschirmoberfläche auf. Diese "Aufnahmen" kann der Tester jederzeit wiedergeben (Replay), so dass er bei einem erneuten Testdurchlauf nicht selbst anwesend sein muss.

Die GUI-Testautomatisierung kann mehrere Testskripte nacheinander durchlaufen lassen. Falls sie während der Skriptwiedergabe an einer Stelle nicht fortfahren kann, weil sich ein Fenster nicht öffnet oder eine Fehlermeldung auftritt, stoppt der Durchlauf. Ein Screenshot wird erzeugt, der Testfall gespeichert und automatisch eine Fehlermeldung ausgegeben. Nummerierte Fehler Der Dateiname des Screenshots beinhaltet die Zeilennummer des Skripts, in der der Fehler aufgetreten ist. Damit kann der Tester jederzeit nachvollziehen, in welcher Zeile des Programms der Test beziehungsweise die Wiedergabe abgebrochen wurde. Mittels des Capture-Replay-Verfahrens werden die Testfälle aufgezeichnet. Dadurch wird das Sollergebnis festgelegt. Mit dem systematischen Testdaten-Management ist die Wiederholung der Testfälle reproduzierbar. Das ist wichtig, um Fehler sinnvoll beheben zu können.

Darauf kommt es an

Die Herausforderung beim automatisierten Testen besteht in der Planung und Vorbereitung. Aufgrund der Komplexität kann die IT nicht alle Anwendungsszenarien automatisieren. Wichtig ist es deshalb, die richtige Auswahl zu treffen. Wählt man zu komplexe Testfälle, ist der Aufwand für die Wartung der Automatisierung so groß, dass sie mehr Zeit und Geld kostet als die manuelle Alternative.

Die GUI-Testautomatisierung erfolgt am besten am Ende eines Projekts, da sich bis dahin oft noch Änderungen ergeben. Dann entfaltet sie ihr wahres Potenzial, indem auf Grundlage von Planungen neuer Releases eine weitere GUI-Testautomatisierung aufgesetzt werden kann. Die Vorteile des Verfahrens liegen insbesondere in der Möglichkeit von Regressionstests. Diese wiederholen alle oder einen Teil der Testfälle, um die Nebenwirkungen von Modifikationen in bereits getesteten Teilen der Software aufzuspüren. Zudem lassen sich Tests häufiger und schneller vornehmen. Eine höhere Zuverlässigkeit, reproduzierbare Ergebnisse und eine unbeaufsichtigte Testausführung ohne Benutzerinteraktion sind weitere positive Merkmale.

Sparen ab dem dritten Test

Das Einsparungspotenzial der GUI-Testautomatisierung gegenüber dem manuellen Testen ist enorm: Bereits nach dem dritten Durchlauf liegen die Kosten für das manuelle und automatisierte Testen gleichauf (siehe Kasten "Rechenbeispiel"). Mit jedem weiteren Testdurchlauf steigen die Kosten der manuellen Methode gegenüber der GUI-Automatisierung dramatisch an. Beim fünften Durchlauf ist die GUI-Automatisierung um fast 16 Prozent günstiger. Entscheidend für den schnellen Return on Investment ist die Wiederverwendbarkeit innerhalb mehrerer Tests durch Modularisierung, die Häufigkeit der Regressionstests, die Stabilität der Tests bei Systemveränderung und die Wiederverwendung der funktionalen Tests, zum Beispiel für Lasttests oder zur Systemüberwachung.

(ue)