Qualitätskontrolle automatisieren
Home »  Unternehmen  »  Qualitätskontrolle automatisieren

Qualitätskontrolle automatisieren

Wie in jedem Produktionsbetrieb ist es auch bei der Software-Programmierung unerlässlich, laufende Entwicklungen mit einer strengen Qualitätskontrolle zu begleiten. Damit sich die Qualität der Softwareprodukte von Version zu Version kontinuierlich steigern lässt, hat ABACUS in den letzten Jahren grosse Anstrengungen unternommen und beträchtliche Investitionen in die Qualitätsprozesse und Testprozeduren getätigt.

 

Nebst vielfältigen applikatorischen Anforderungen, die Anwender an eine Software stellen, müssen bei der Softwareentwicklung auch noch weitere Faktoren berücksichtigt werden, welche die Stabilität und die Fehleranfälligkeit eines Produkts beeinflussen können. Dazu zählen unterschiedliche IT-Infrastrukturen, der Wunsch nach Unabhängigkeit bei der Wahl von Betriebssystemen wie Windows, Linux und Apple OS sowie die Abhängigkeit der Software von Drittherstellern wie beispielsweise Java von Oracle.

 

Je umfangreicher und komplexer eine Software ist, desto höher ist ihre Fehleranfälligkeit. Internationale Statistiken und Autoren wie etwa Steve McConnell, der das Buch „Code Complete 2“ geschrieben hat, sagen, dass je nach Komplexität und Grösse einer Software pro 1000 Zeilen Programmcode durchschnittlich zwischen 4 und 100 Fehler auftreten. Wobei, darauf hinzuweisen ist, dass nicht jeder Fehler zwingend die Funktionalität einer Software beinträchtigen muss.

 

Da eine solche Fehlerhäufigkeit für ABACUS nicht akzeptabel ist, setzt das Unternehmen auf besondere Qualitätssicherungsmassnahmen. Dazu dienen spezielle Werkzeuge und Prozesse, die für die Qualitätsförderung und die Qualitätssicherung bei der Softwareentwicklung zum Einsatz kommen.

 

Alles im DMS oder auf der Wissensdatenbank

Sämtliche Dokumente – vom Pflichtenheft über gesetzlichen Anforderungen, Konzepte, Projektunterlagen und Entwicklungsrichtlinien bis hin zu Testunterlagen wie etwa Analysen und Auswertungen – werden in einem Dokumenten Management System (DMS) oder im firmeninternen Wikipedia gespeichert. Während das interne Wiki, das den Grossteil der Entwicklungsdokumente und Richtlinien enthält, auch als eigentliche Wissensdatenbank für alle ABACUS Entwickler gilt, verwaltet das DMS auch Informationen unterschiedlicher Formate für alle ABACUS Mitarbeitende. Durch die zentrale Ablage im DMS und Wiki wird das Auffinden der entsprechenden Unterlagen vereinfacht. Die automatische Versionierung der Dokumente ermöglicht zudem eine lückenlose Nachvollziehbarkeit der getätigten Änderungen.

Ressourcenplanung verbunden mit dem Fehlertracking und Code-Review

Als eigentliches Hauptführungsinstrument wird ein Software-Werkzeug eingesetzt, das der Erfassung von Neuerungen, Ideen, Projekten und deren Unteraufgaben dient. Es ist modular aufgebaut und beinhaltet zudem die gesamte Ressourcenplanung der Mitarbeitenden, die Zeitpläne und die budgetierten Mittel der einzelnen Entwicklungsabteilungen. Die Planung ist direkt mit den entsprechenden Projekten verknüpft, so dass Unter- oder Überschreitungen der Zeitpläne eines Projekts jederzeit ersichtlich sind.

Darin sind zudem sämtliche Fehler, Verbesserungen oder Wünsche erfasst, unabhängig ob sie von ABACUS Mitarbeitenden, Vertriebspartnern oder Kunden festgestellt wurden. Das ermöglicht nebst der zeitlichen Terminierung die Nachverfolgbarkeit respektive die Rückverfolgbarkeit der verschiedenen Fälle oder Fehler. Bei Fehlerkorrekturen oder anderen Codeänderungen ist auch festgehalten, ob ein sogenannter Code-Review notwendig ist.

Das "Vier-Augen-Prinzip"
Wie beim Redigieren eines Dokuments etwa werden auch die Arbeitsergebnisse der Softwareentwickler durch eine zweite Person im sogenannten Code-Review überprüft. Die Protokollierung der Ergebnisse und Kommentierung des Programmcodes, der nach jeder Review geändert werden muss, wird ebenfalls festgehalten.

Testumgebung der Entwickler
Für jede Änderung, die ein Entwickler an seinem Java-Code vornimmt, seien dies Korrekturen, Verbesserungen oder neue Funktionen, erstellt der Entwickler gleichzeitig eine dafür vorgesehene Testroutine. Testroutinen ermöglichen es den Programmierern, ihre Klassen oder Methoden jederzeit automatisch laufenden Tests zu unterziehen. Die Ergebnisse werden farblich grün oder rot gut erkennbar aufbereitet.

Durch diese beiden qualitätssichernden Massnahmen lassen sich vorhandene Mängel in der Implementierung wie Fehler, Unklarheiten und Nichteinhaltung von Richtlinien bereits im Ansatz erkennen und verbessern.

Versionsverwaltung

Sämtlicher Source- respektive Quellcode wird in einem zentralen Versionsverwaltungsprogramm eingecheckt und darin verwaltet. Eine Versionsverwaltung beinhaltet aber nicht nur Programmcode, sondern auch sämtliche übrigen Dateien, die in Formaten wie beispielsweise xml, doc und pdf für eine bestimmte Version benötigt werden. Der Inhalt dieser Versionsverwaltung dient als Grundlage einer installierbaren Version als Master auf einer DVD oder als Servicepack.

Testen, auflisten und filmen

Je nach Entwicklungsstand und Zeitplanung werden von den aktuellen ABACUS Versionen wöchentlich, bei Bedarf sogar täglich, komplette Versionen als sogenannte interne Test-Master erstellt. Diese werden dazu verwendet, um sämtliche Applikationen und Optionen umfangreichen Tests zu unterziehen. Dafür kommen mehrere Varianten zum Zug.

Individualtest
Der Individualtest ist ein Überprüfungsverfahren, das ein Experte, in der Regel ein Produktverantwortlicher oder ein erfahrener Supporter, händisch durchführt. Damit werden Fehlerkorrekturen überprüft und die Umsetzung von Weiterentwicklungen kontrolliert.

Testen mit Hilfe von Checklisten
Eine Checkliste ist eine detaillierte Beschreibung von Tests und Kontrollen. Dabei wird einerseits zwischen Grundchecklisten unterschieden, welche die Grundfunktionalität einer Applikation abdecken, und andererseits Themen-Checklisten, die sich auf ausgewählte Bereiche konzentrieren und sehr gezielt in die „Tiefe“ gehen. Eine Version wird grundsätzlich erst dann ausgeliefert, wenn sämtliche Checklisten fehlerfrei ausgeführt worden sind.

Eine Checkliste filmen
AbaMovie ist ein von ABACUS in Java programmiertes Werkzeug, mit dem sich händisch erstellte Checklisten aufzeichnen und abspielen lassen. Es besteht aus einzelnen Sequenzen, die der Produktverantwortliche oder Supporter einmal „durchspielt“, indem er beispielsweise in der Lohnsoftware einen Mitarbeiter erfasst oder eine Lohnabrechnung erstellt und dabei gleichzeitig eine Recorder-Funktion aktiviert.
Solche individuell aufgezeichneten Sequenzen werden zu einem oder mehrere „Filme“ zusammengeführt. Dies ermöglicht es, innerhalb der Testumgebung diese Aufnahmen jederzeit zu starten, das Ergebnis mit Ursprungswerten zu vergleichen und allfällige Differenzen zu analysieren. Somit ist eine hohe Testsicherheit selbst bei komplexen und umfangreichen Tests gewährleistet.

Virtuelle Testumgebung

AbaTest ist eine Serverfarm, die auf VMware basiert. Sie ermöglicht es jedem ABACUS Mitarbeitenden, jederzeit eine bestimmte Programmversion auf einer vorgewählten Betriebssystem-Umgebung als virtuelle Maschine zu erstellen.

Er hat somit die Wahl zwischen einer Windows-, Linux,- oder Mac OSX-Version, der ABACUS Version inklusive Servicepack, der Installationsart und Datenbank sowie nach Bedarf zusätzliche spezifische Mandantendaten. Damit ist garantiert, dass innerhalb kürzester Zeit eine virtuelle Maschine mit einer entsprechenden, bereits vorinstallierten ABACUS Umgebung zur Verfügung steht, auf der gearbeitet und getestet werden kann.

Kombinierte Testumgebung

Mit AbaTest in Kombination mit AbaMovie besteht somit eine Testumgebung, mit der sich virtuelle Maschinen mit unterschiedlichen Plattformen und unterschiedlichen ABACUS Versionen erstellen und automatisch die definierten AbaMovies ausführen lassen. Der Benutzer bekommt als Resultat lediglich noch eine Meldung, ob die AbaMovies reibungslos durchgelaufen sind oder Sequenzen Abweichungen aufgezeigt haben.

Vor einer Auslieferung

Einen Monat vor der Auslieferung einer DVD-Version oder eines Gesamt-Servicepacks wird die dafür vorgesehene Version mit sämtlichem Programm-Codes und Dateien von der Entwicklungsumgebung entfernt und in einem separaten Verzeichnis abgelegt. In diese Umgebung darf ab diesem Zeitpunkt keine Neuentwicklung mehr eingecheckt werden. In dem verbleibenden Monat wird die Version umfangreichen weiteren Tests unterzogen, die ebenfalls alle oben beschrieben Testvarianten beinhalten. Während dieser Testphase dürfen nur noch Korrekturen eingecheckt werden, die aus den Testergebnissen und festgestellten Fehlern resultieren.

AbaKundensave

Ein weiteres wichtiges Puzzleteil im QS-Prozess ist die Handhabung von Kundensaves. Das sind Datensicherungen von Kunden, die zwecks Fehlerfeststellung oder Fehleranalyse von ABACUS installiert werden.

Bei einem AbaKundensave handelt es sich um einen strukturierten Prozess zur Entgegennahme, Verwaltung und Ablage von Daten. Jeder Eingang einer Kunden-Datensicherung, sei dies über einen Upload-Account oder via Speichermedium wie USB-Festplatte, -Stick und DVD, wird im Programm AbaKundensave erfasst. In dieser Umgebung werden mit Hilfe eines Workflow Verantwortlichkeiten, Zugriffe, Installationen, Verwendungsdauer und Deinstallationen registriert und kontrolliert. Damit wird sichergestellt, dass nur berechtigte Personen Zugriff auf die Kundendaten haben und die Daten am Ende des Prozesses auch wieder gelöscht werden.

Fazit

Es gibt keine Software ohne Fehler. Diese Erkenntnis gilt ganz generell für alle Programme. Je spezifischer eine Software konzipiert ist, umso weniger fehleranfällig ist sie, weil sie eng umrissene Abläufe unterstützt. Je umfassender, universeller eine Software eingesetzt werden soll, desto umfangreicher muss auch der Programmcode ausgestaltet sein, was die Fehleranfälligkeit entsprechend erhöht. Das bedeutet, dass umfangreiche Anwendungsvarianten einer Software nur mit umfangreichen Testprozeduren kontrolliert werden können. Auch wenn trotz aller Automatisierung die permanenten Anpassungen und Änderungen an den Sequenzen und AbaMovies sehr zeitaufwendig sind, muss es Ziel sein, dass mit dem Ausbau der Testmöglichkeiten jeder neuere Programm-Code weniger Fehler aufweisen sollte als seine Vorgängerversion. Als weiterer Vorteil ergibt sich durch die intensiven Qualitätsanstrengungen von ABACUS, dass neue Programmversionen stabiler sind als ihre Vorgänger.

 

Was für andere Softwarehersteller gilt, das gilt auch für ABACUS: Servicepacks korrigieren etwa hundert Mal mehr Fehler als sie selber neue verursachen. Und, die automatisierte Testumgebung sorgt dafür, dass ein einmal erreichtes Qualitätsniveau eines Programms erhalten bleibt und somit sukzessive weiter erhöht werden kann.

 

Share