Thema: Werkzeuge für Software-QS und -Test

14:30 - 16:00

Akzeptanztests und Regression - FitNesse-Tests bei komplexen Anforderungen und permanenten Veränderungen umsetzen

Frank Ganske, MATHEMA Software GmbH

Betriebswirtschaftliche Anwendungs- und insbesondere Standardsoftware verarbeitet komplexe Datenstrukturen in komplexen Prozessen. Gleichzeitig erfolgen, oft durch gesetzliche Anforderungen, permanent Änderungen. Wie realisiert man unter diesen Voraussetzungen automatisierte Akzeptanztests - umfassend, änderungstolerant und mit vertretbarem Aufwand?

Dieser Workshop vermittelt wertvolle Erfahrungen aus mehrjähriger Produktentwicklung innerhalb derer automatisierte Regressionstests etabliert wurden. Fachliches Beispiel ist der Bereich Sozialversicherung als Element der Personalabrechnung. Die "Informationstechnische Servicestelle der gesetzlichen Krankenversicherung" (ITSG) liefert umfassende fachliche Testvorgaben, die alle aktuellen Anforderungen abdecken. Diese Testaufgaben zu erfassen und zu dokumentieren fordert Entwicklung und Fachabteilung und dauerte etwa ein Jahr. Das kann nicht regelmäßig wiederholt werden. Der zertifizierte Datenbestand genügt nicht für Regressionstests, weil die Erfassung nicht mehr getestet wird. Die Anforderungen werden zudem permanent aktualisiert. Man benötigt automatisierte Tests. Übliche Komponententests liegen, entsprechend ihrer Natur, in der Verantwortung der einzelnen Entwickler. Das bedeutet unterschiedliche Qualität und keine Gesamtaussage. Akzeptanztests hingegen prüfen das getestete System in seinem Auslieferungszustand.

Neben dem manuellen Test, wurde ein Framework auf Basis von FitNesse umgesetzt, um diese Testvorgaben automatisiert ausführen zu können. FitNesse wird vorgestellt und die Besonderheiten erläutert. Es wird beschrieben, welche Schnittstelle gewählt wurde und warum. Der naive Versuch, ein Fixture pro erforderlichem Dialog anzulegen, scheitert an dem permanenten Pflegeaufwand für die Tests. Es wird ein Fixture-Programm beschrieben, das rein deklarativ jede Programmfunktion aufrufen und die Ergebnisse auswerten kann. Statt alle Testdaten im Test zu beschreiben, werden Demodaten genutzt, die mit der getesteten Software ausgeliefert werden. Das trennt die erforderlichen, aber irrelevanten Hintergrunddaten, von den testspezifischen Angaben.
Es wird erläutert, wie durchgängig natürlichsprachige Bezeichner (z. B. "1. Monat") entsprechend der Clientoberfläche erreicht werden können.

Das Testsystem enthält dann nur noch die Angaben, um die Vorgabe zu bestimmen und das Ergebnis zu prüfen. Solche Tests konnten unverändert, über mehrere Releasestände, erfolgreich ausgeführt werden.

Diese am Beispiel der Personalabrechnung gezeigten Muster, lassen sich auf andere Bereiche übertragen.
Die Workshop-Teilnehmer erhalten ein EJB-Fixture (Enterprise JavaBeans) für FitNesse, mit dem Tests dynamisch und deklarativ erstellt werden. Sie sind eingeladen, ihre eigene lauffähige EJB-Anwendung mitzubringen, um dafür im Workshop Tests zu erstellen.

Frank Ganske, MATHEMA GmbH

Frank Ganske ist Senior Developer bei der MATHEMA Software GmbH in Erlangen. Er entwickelt seit 1991 betriebswirtschaftliche Individual- und Standardsoftware. Seine Schwerpunkte sind Java-Technologien im Financial-Bereich. Besonderes Interesse hat er an Veränderungsprozessen und deren Absicherung. Von 2005 bis 2012 hat er das DEÜV Meldeverfahren innerhalb der Releaseentwicklung einer Personalabrechnungs-Software umgesetzt und die ITSG Systemuntersuchung mit anschließendem QS-Prozess, sowie die Weiterentwicklung begleitet.