Qualitäts-Management

Effiziente Unit-Tests unter z/OS

18.01.2011
Im Lager der Großrechner sind Unit-Tests bislang eher die Ausnahme. Das Tool "Savvytest" soll die Mainframer zum Umdenken bewegen.

Ein bewährter Ansatz, schon früh und nachhaltig die Qualität von Software zu verbessern, sind Unit-Tests. Dabei werden Schnittstellen von Units oder Komponenten getestet, um zu gewährleisten, dass diese sich wie spezifiziert und erwartet verhalten (Blackbox-Testing). Unit-Tests sind besonders effektiv und flexibel, da sie bereits sehr früh schon während der Entwicklung eingesetzt werden können, andererseits aber auch als Basis für Integrations-, Regressions- und selbst Abnahmetests dienen können.

Das Savvytest-Plug-in für IBMs Rational Developer for System z: Das mittlere Fenster zeigt den Editor für Testszenarien.
Das Savvytest-Plug-in für IBMs Rational Developer for System z: Das mittlere Fenster zeigt den Editor für Testszenarien.

Trotz ihrer hohen Effizienz sind Unit-Tests zwar in der Client-Server-Welt recht verbreitet, fristen auf Mainframes aber oft noch ein Außenseiterdasein. Hierfür gibt es nach Ansicht der in Ludwigsburg ansässigen Unternehmensberatung Savignano Software Solutions mehrere Gründe: Legacy-Anwendungen waren in der Vergangenheit oft monolithisch aufgebaut, so dass kaum Komponenten isoliert werden konnten. Mit der Implementierung modernerer Architekturen ändert sich das jedoch auch auf Mainframes zunehmend. Statt monolithischer Anwendungen werden Geschäftsobjekte und Services in Komponenten isoliert, die nicht nur getrennt implementiert, sondern auch getrennt getestet werden können.

Ein anderer Grund ist der, dass man Unit-Tests wegen des anfangs anfallenden Zusatzaufwands meidet. In der Regel müssen solche Tests programmiert werden, auch wenn es Frameworks gibt, die einen Teil dieser Arbeit abnehmen. Schnittstellenänderungen im Rahmen der Weiterentwicklung einer Applikation erfordern darüber hinaus auch Anpassungen an den Testprogrammen. Gerät das Projekt unter Zeitdruck, was meist der Fall ist, unterbleiben oft die Anpassungen an den Unit-Tests, da sie zu diesem Zeitpunkt keinen Mehrwert zu bringen scheinen, so die Erfahrungen bei Savignano. Einmal aus dem Takt geraten, tendieren Unit-Tests dazu, zu veralten und unbrauchbar zu werden.

Diesem Problem soll das Tool Savvytest vorbeugen. "Unit-Tests auf Mainframes zu ermöglichen war dabei nur eines der Hauptziele", erklärt Geschäftsführer Metin Savignano. "Die Tests sollten außerdem ohne Programmierung erstellt werden können und bestehende Tests sollten auch bei Änderungen an der zu testenden Schnittstellen gültig bleiben. Alle Tests und ihre Ergebnisse werden in einem XML-Format gespeichert, sind daher leicht archivierbar und können auch problemlos in andere Datenformate überführt werden."

Eine Besonderheit des Produkts liegt darin, dass es für mehrere Zielgruppen entworfen wurde. Als früheste Tester sind dies zum einen die Entwickler. Für sie steht Savvytest als Plug-in für die Entwicklungsplattform Rational Developer for System z von IBM zur Verfügung. Dort integriert sich das Tool nahtlos, so dass Anwender mit ihrem gewohnten Bedienkonzept arbeiten. Dabei wird die rein technische Schnittstelle durch Kontextinformationen über die Art der Verwendung von Strukturen und Datenfeldern ergänzt, um so für die Erstellung der Tests eine fachliche Sicht auf die Schnittstelle zu bekommen.

Eine weitere Zielgruppe sind Konfigurations-Manager und Integratoren. Diesen bietet die Batch-Ausführung der Tests die Möglichkeit zu automatisierten Tests bei Standbau- und Continous-Integration.

Schließlich adressiert Savvytest in einer Variante als Standalone-Anwendung mit einer vereinfachten Bedienoberfläche auch den fachlichen Tester. Nachdem der Entwickler bereits die fachliche Sicht auf die technische Schnittstelle beschrieben hat, bietet sich dem fachlich orientierten Mitarbeiter die Möglichkeit, Tests für Komponenten zu erstellen. Die Vorteile gegenüber Tests für Anwendungen liegen auf der Hand: Geschäftsobjekte oder Services lassen sich direkt und auch früher testen, da es anders als bei Capture-Replay-Lösungen nicht Voraussetzung ist, dass die Anwenderschnittstellen bereits angepasst wurden.

Durch die Einbindung dieser Zielgruppen in ein gemeinsames Test-Tool ergibt sich der Vorteil, dass unterschiedliche Sichten in die Testbasis einfließen und diese damit verbreitern, was sich letztlich positiv auf die Qualität der Software auswirkt. (ue)