Die Bestandsführungssysteme von Lebensversicherern unterliegen im heutigen Wettbewerbsumfeld aufgrund sich ändernder gesetzlicher Rahmenbedingungen, Produktneueinführungen und Maßnahmen zur Produktivitätssteigerung stetigen Anpassungen und Erweiterungen in immer kürzer werdenden Entwicklungszyklen. Um sich mit voller Kraft auf die Umsetzung und Qualitätssicherung neuer Herausforderungen konzentrieren zu können, kommt der effizienten Sicherstellung der Funktionsfähigkeit vorhandener Komponenten und der Korrektheit von Druckstücken als vertragliche Dokumente und Aushängeschild gegenüber dem Kunden steigende Bedeutung zu.
Situation bei der Versicherungskammer Bayern
In der Lebensversicherung der Versicherungskammer Bayern gibt es für das Bestandsführungssystem drei Hauptreleases pro Jahr. Um sicherzustellen, dass die Funktionsfähigkeit der neuen Softwareversion weiterhin gegeben ist, werden Regressionstests durchgeführt. In einem Regressionstest wird geprüft, ob das Ergebnis einer fest vorgegebenen Folge von Eingabedaten mit einem als korrekt angesehenen Sollergebnis übereinstimmt. Das Ergebnis der zu testenden Software bezeichnen wir hier als Kandidat und das Sollergebnis als Referenz. Im Druckstückstest sind Kandidaten und Referenzen jeweils Druckstücke (zum Beispiel Policen). Der Regressionstestfallbestand für Druckstücke umfasst dabei etwa 10.000 Seiten. Diese Seiten müssen per Sichtvergleich durch einen Tester mit den dazugehörigen Referenzdokumenten auf Abweichungen hin untersucht werden. Um ein reibungsloses Zusammenspiel des Gesamtsystems zu gewährleisten, wird ein End-to-End-Test angestrebt, der mit der Eingabe über die grafische Benutzeroberfläche (GUI) des Bestandsführungssystems beginnt und bei dem resultierenden Druckstück endet. Im oberen Teil der Grafik „Regressionstest“ ist der Ablauf eines manuellen Regressionstests, wie er in der Vergangenheit bei der VKB durchgeführt wurde, schematisch dargestellt. Angesichts des für diese Tätigkeiten anfallenden Aufwands ist die manuelle Durchführung des Regressionstests nicht wirtschaftlich darstellbar, weshalb nach Ansatzpunkten zur Automatisierung dieser Tätigkeiten gesucht wurde.
Neben dem Aufwand birgt eine manuelle Durchführung immer auch Risiken hinsichtlich der Qualität des Tests. Fehlerquellen sind in der Eingabe und im Abgleich zwischen Kandidat und Referenz zu sehen. Wenn etwa versehentlich Testfälle nicht exakt wie spezifiziert durchgeführt werden, treten bei dem anschließenden Vergleich zwischen Referenz und Kandidat unerwünschte Abweichungen auf, die dann nicht als Fehler in der zu testenden Software gewertet werden können, sondern eine Folge der fehlerhaften Eingabe sind. Diese Abweichungen erschweren das Auffinden von echten Fehlern. Zusätzlich können bei der manuellen Sichtprüfung relevante Abweichungen übersehen werden.
Im unteren Teil der Grafik sind mögliche Ansatzpunkte für Automatisierung aufgezeigt:
▷Die Eingabe der Testdaten über die GUI des Bestandsführungssystems kann mittels eines Testautomaten erfolgen. Neben der Aufwandsreduktion kann auf diese Weise sichergestellt werden, dass Eingaben immer exakt gleich erfolgen, so dass das Risiko manueller Eingabefehler eliminiert wird.
▷An Stelle des Sichtvergleichs von Druckstücken können Vergleichswerkzeuge eingesetzt werden, damit keine Abweichungen übersehen werden.
Ein möglicher Ansatz ist hier der automatisierte Vergleich von Rohdaten, die als Vorstufe für die Generierung von Druckdateien dienen. Hinsichtlich des angestrebten End-to-End-Vergleichs von Druckstücken ist ein Rohdatenvergleich insbesondere aufgrund fehlender Layoutinformationen ungeeignet.
In einem alternativen Ansatz werden die Druckstücke nach Produktion wieder eingescannt. Die eingescannten Bilder werden anschließend mit einem entsprechenden Vergleichswerkzeug automatisch verglichen. Dieser Ansatz ist hinsichtlich des gewünschten End-to-End-Vergleichs zu bevorzugen, jedoch bieten die derzeit auf dem Markt verfügbaren Softwarelösungen nur eingeschränkte Möglichkeiten, Inhalte und Struktur des Druckstücks semantisch zu erfassen, wodurch die Fehleranalyse erschwert wird.
Eine dritte Möglichkeit, der Vergleich von Druckdateien, stellt einen guten Kompromiss zwischen diesen beiden Ansätzen dar. Eine Druckdatei ist eine Datei, die alle wesentlichen Informationen zur Erstellung von Druckstücken beinhaltet. Zusätzlich zu dem zu druckenden Text enthält sie Steueranweisungen für das Layout, Verweise auf externe Ressourcen in Form von Text oder Grafik sowie Metadaten wie beispielsweise strukturgebende Symbole oder Bezeichner. Die Druckdatei wird direkt an den Drucker gesendet, der sie verarbeitet und eine entsprechende Ausgabe auf Papier erzeugt. Somit können wir für den Regressionstest an Stelle der eigentlichen Ausgabe die zugehörige Druckdatei als Repräsentanten heranziehen. Gängige Formate für Druckdateien sind zum Beispiel AFP, PCL oder Postscript.
Bei der Analyse von Druckdateien verfolgen die verschiedenen Softwarewerkzeuge unterschiedliche Strategien, die wir im Folgenden kurz erläutern werden.
Automatischer Vergleich von Druckdateien
Ein möglicher Ansatz besteht in der Interpretation der zu vergleichenden Druckdateien und einem pixelweisem Vergleich der zu erwartenden Druckausgabe. Für den Benutzer stellt sich das Verfahren folgendermaßen dar: Jede Seite des Referenz- und Kandidatenstroms wird wie ein Bild in einem Rasterformat betrachtet, und die beiden Ströme werden Seite für Seite verglichen. Dabei kann man davon ausgehen, dass alle sichtbaren Elemente der Druckstücke erfasst werden. Es wird somit genau die Ausgabe verglichen, welche nach Verarbeitung durch den Drucker auf dem bedruckten Papier erscheinen würde. In der Praxis erscheint uns dieser Ansatz jedoch kaum brauchbar, da Referenz- und Kandidatenstrom oftmals tolerierbare oder gar intendierte Abweichungen aufweisen. So werden beispielsweise bei wiederholter Durchführung desselben Regressionstestfalls – etwa bei der Policierung – unterschiedliche Versicherungsnummern verwendet. Zudem kann das Datum der Generierung der Druckdateien verschieden sein. Bei dem pixelweisen Bildvergleich werden in der Regel alle Abweichungen ausgegeben. Das heißt, jeder Bildpunkt im Kandidaten, welcher in der Referenz fehlt – und umgekehrt – wird als Abweichung angezeigt. Somit muss der Tester eine Vielzahl von Abweichungen manuell sichten und entscheiden, ob es sich um unerwünschte Abweichungen, die auf Fehler in der zu testenden Software hinweisen, oder um beabsichtigte beziehungsweise aufgrund des Testverfahrens entstandene und daher zu tolerierende Abweichungen handelt.
Gängige Softwarewerkzeuge bieten die Möglichkeit, einen bestimmten Bereich einer Seite beim Vergleich zu ignorieren, so dass in diesem Bereich keine Prüfung stattfindet. Dies kann genutzt werden, falls Abweichungen stets in einem bestimmten Seitenbereich - etwa in der Kopfzeile - zu erwarten sind. Sollten die zu ignorierenden Abweichungen jedoch an verschiedenen Stellen auftreten, muss der Ausschluss dieser Stellen explizit mit entsprechend hohem Aufwand spezifiziert werden.
Als Alternative kann man die Inhalte der Druckdateien, wie zum Beispiel Text, Layoutinformation und Metadaten, vergleichen. Da ein solcher Vergleich die interne Struktur der Druckdateien berücksichtigt, werden Abweichungen ebenfalls strukturiert ausgegeben. Wenn beispielsweise Referenz und Kandidat auf unterschiedliche externe Ressourcen zugreifen, werden die entsprechenden Bezeichner ausgegeben, anstatt dass alle unterschiedlichen Bildpunkte angezeigt werden, wie es bei einem pixelweisen Vergleich zu erwarten wäre. Ebenso werden unterschiedliche Textfragmente als solche ausgegeben. Durch eine derart qualitative Ausgabe der Abweichungen wird die spätere Analyse und Fehlersuche erheblich vereinfacht. Hochwertige Werkzeuge, welche die Inhalte von Druckdateien unter Einbeziehung ihrer Struktur vergleichen, bieten überdies viele Konfigurationsmöglichkeiten, die es dem Benutzer erlauben, genau festzulegen, welche Elemente der Druckdateien verglichen werden sollen und welche nicht. Auf diese Weise können zum Beispiel bestimmte Textfragmente oder externe Ressourcen unabhängig von ihrer Position ignoriert werden.
Als Spezialfall dieser Methode kann man sich nur auf den Vergleich des Textinhaltes der zu vergleichenden Druckdateien beschränken. Dabei werden alle übrigen Informationen, insbesondere auch das Layout, verworfen. Dieses Vorgehen kann nützlich sein, wenn zum Beispiel infolge einer geringen textuellen Abweichung zwischen Referenz und Kandidat das Layout des gesamten nachfolgenden Textes verändert wird und man dennoch sichergehen will, dass ansonsten der Textinhalt übereinstimmt.
Eine Gegenüberstellung der beiden Strategien zum Vergleich von Druckdateien ist im Kastentext „Strategien“ gegeben.
Bei der Auswahl eines geeigneten Werkzeugs für den Einsatz bei der VKB wurde besonderer Wert darauf gelegt, die zu vergleichenden Elemente der Druckdateien exakt festlegen zu können. Eine weitere wesentliche Anforderung war, bekannte oder erwünschte Abweichungen zwischen Referenz und Kandidat soweit wie möglich von dem Vergleich auszuschließen. Falls im Kandidaten neue Seiten hinzugekommen sind, die in der Referenz nicht vorhanden sind, so ist dies zwar als Abweichung anzuzeigen, jedoch sollten diese Seiten dann idealerweise übersprungen werden, damit die übrigen Seiten sinnvoll gegen die Referenz geprüft werden können. Gleiches gilt für Seiten, die in der Referenz, aber nicht im Kandidaten vorkommen. Ein Ansatz, dies praktisch zu lösen, besteht in der Definition von Synchronisationspunkten. Ein weiteres Kriterium ist die Benutzerfreundlichkeit. Im automatisierten Regressionstest sind hunderte Druckdateien ohne Interaktion mit dem Benutzer zu testen (Batchbetrieb). Nur die Abweichungen zwischen Referenz und Kandidat sind dem Benutzer in strukturierter und übersichtlicher Weise zur Prüfung vorzulegen. Eine Möglichkeit der Präsentation liegt in der grafischen Darstellung von Seiten, die Abweichungen enthalten, und in der Markierung der Unterschiede. Zusammenfassend sind die wichtigsten Kriterien für den Einsatz eines Vergleichswerkzeugs für Druckdateien bei der VKB im Kasten „Kriterien“ dargestellt.
Realisierung bei der VKB
Bei der VKB wurde zusammen mit vtmw ein Prozess für den automatischen Regressionstest für Druckstücke definiert (siehe Grafik „Prozess“). Der erste Schritt besteht in der Eingabe der Testfälle über die grafische Benutzeroberfläche des Bestandsführungssystems. Dieser Teilschritt wird mit Hilfe eines Werkzeugs zur Automatisierung von Oberflächentests durchgeführt, wodurch sichergestellt wird, dass die Eingaben stets exakt gleich durchgeführt werden. Außerdem können durch den parallelen Einsatz mehrerer Testautomaten viele Testverträge in kurzer Zeit angelegt und bearbeitet werden. Als Ergebnis erhält man eine Liste von Vertragsnummern, welche die in diesem Schritt neu angelegten oder bearbeiteten Testverträge angibt.
Diese Liste dient als Eingabe für den zweiten Schritt, in welchem für jeden Testvertrag automatisch eine Druckdatei im AFP-Format erstellt wird, sofern im ersten Schritt eine druckrelevante Eingabe getätigt wurde.
Im dritten Schritt wird jede AFP-Datei mit ihrer jeweiligen Referenz verglichen. Dies geschieht mit einem Werkzeug, das alle Vergleiche automatisch durchführt und Abweichungen zwischen Referenzen und Kandidaten in Logdateien ausgibt. Das Werkzeug ist so konfiguriert, dass während des Vergleichs Vertragsnummern und Erstellungsdatum ignoriert werden. Außerdem kann eingestellt werden, welche Grafiken (Overlays) gegebenenfalls ausgetauscht wurden. Overlays werden unter anderem zur Repräsentation von sogenannten Einmaldruckstücken, die für alle Testfälle gleich sind, aber häufig modifiziert werden, verwendet. Zum Beispiel liegen verschiedene Informationsblätter für den Versicherungsnehmer in dieser Form vor.
Die Erfahrung hat gezeigt, dass oft gleichartige Abweichungen in mehreren Testfällen auftreten. Daher werden die erstellten Logdateien im vierten Schritt auf gleichartige Abweichungen hin untersucht. Das Ergebnis ist eine Auflistung der Abweichungen mit entsprechenden Verweisen auf die betroffenen Testfälle und Druckstücke. Bekannte Fehler oder gewünschte Abweichungen können dann in der manuellen Fehleranalyse schneller bearbeitet werden.
Im letzten Schritt werden die verbleibenden Abweichungen durch direkten Sichtvergleich von Referenz und Kandidat durch einen Tester in Augenschein genommen. Dies wird in dem verwendeten Werkzeug durch entsprechende grafische Darstellung unterstützt. Durch die vorhergehenden Schritte, die sämtlich automatisiert ablaufen, muss der Tester jede Abweichung nur einmal untersuchen.
60 Prozent Einspareffekt
Durch die Kombination von mehreren Softwarekomponenten ist es gelungen, den Regressionstest für Druckstücke zu automatisieren. In einem durchgängigen Prozess wird das Zielbild eines Vergleichs von Druckstücken durch den Vergleich von Druckdateien als Repräsentanten des tatsächlichen Druckstücks realisiert. Mit der anschließenden automatischen Aufbereitung und Klassifizierung der vorhandenen Abweichungen kann der verbleibende Aufwand für deren Beurteilung minimiert werden.
Vom ursprünglichen Gesamtaufwand konnten 60 Prozent durch die Automatisierung eingespart werden, 15 Prozent entfallen auf die weiterhin manuelle Fehleranalyse und 25 Prozent werden für die Wartung und Bedienung der Softwarekomponenten benötigt. Die Amortisationszeit für die Investition in das Automatisierungsvorhaben liegt bei etwa zwei Jahren.
Neben den Aufwandseinsparungen und der qualitativen Verbesserung des Regressionstests kann durch die Automatisierung auch der Gesamtprozess der Entwicklung beschleunigt werden, was schließlich in einer kürzeren Time to Market der zu testenden Software resultiert. In der Praxis ist zudem die Automatisierung oftmals erst die Voraussetzung dafür, dass Regressionstests im erforderlichen Umfang, also mit einer sinnvollen Testabdeckung, durchgeführt werden können.