Überblick

In der Softwareentwicklung werden insbesondere in agilen Projekten diverse Unit Tests im Qualitätssicherungsprozess intensiv eingesetzt. Ebenso ist die Notwendigkeit erkannt worden, Personen mit fachlicher Expertise so früh wie möglich in den Prozess des Softwaretestens einzubinden, am besten gleich zusammen mit den Entwicklerinnen und Entwicklern, hier mit Entwickler bezeichnet,  bei der Durchführung von Unit Tests. Ziel ist es, Anforderungen wie kurze Projektentwicklungszyklen und Flexibilität gegenüber Kundenwünschen erfüllen zu können. In der Praxis steigen aber Personen mit fachlicher Expertise wie beispielsweise Softwaretesterinnen und Softwaretester, hier mit Wissensträger bezeichnet, häufig wegen fehlender Programmierkenntnisse frühestens bei der Durchführung von Akzeptanztests in den Prozess des Softwaretestens ein, zu spät, um auf die entdeckten Fehler ohne größeren Zeitverlust reagieren zu können. Es besteht zusätzlich das Interesse, dass die Transparenz in der Qualitätssicherung erhöht wird.

Um die Situation entscheidend zu verbessern, wird hier der folgende Prozess für die Durchführung von Unit Tests vorgestellt, welcher beschreibt, wie Entwickler und Wissensträger gemeinsam Unit Tests erstellen können und jeweils ihre Expertise, Programmierkenntnisse auf der einen Seite und fachliches Know How auf der anderen Seite, einfließen lassen können.

Zur Unterstützung dieses Prozesses wurde die Java-Anwendung KBUnit (Knowledge Based Unit Testing Application) entwickelt, welche hier als Download zur Verfügung steht. Diese Anwendung bietet zusätzlich eine Möglichkeit der Testfallgenerierung an. Der für die Generierung zugrundeliegende Algorithmus wurde in Anlehnung an Äquivalenzklassentests und Grenzwertbetrachtung entwickelt.

Prozess zur Durchführung von Unit Tests

Schritt 0 – BDT (Behavior Driven Testing)

Es besteht die Möglichkeit, sich aus den Backlogs agiler Testmanagement Tools neue Unit Tests generieren zu lassen.


Schritt 1 - Vorbereitung der Unit Tests

Die Entwickler implementieren eine Funktionalität und zu dieser einen JUnit Test, welcher einen Testfall überprüft. Dieser JUnit Test enthält diejenigen Parameter, die von dem Wissensträger variiert werden sollen. Die Entwickler brauchen zu jeder Funktion beziehungsweise Methode nur einen Unit Test zu schreiben.


Schritt 2 - Einfache Verteilung der Unit Tests

Der Sourcecode wird zusammen mit den parametriesierten Unit Tests den Wissensträgern zugänglich gemacht.


Schritt 3 - Formulierung und Ausführung neuer Tests

Die Wissensträger greifen auf die von den Entwicklern entworfenen Testfälle zu und erstellen weitere Testfälle, die aus ihrer Sicht geprüft werden müssen, indem sie die Werte der Parameter variieren. Sie können auch Testfälle generieren lassen.


Schritt 4 - Verwaltung von Testfällen

Die Wissensträger speichern die neuen Testfälle inklusive deren Ergebnis in einer Datenbank und können diese auch verwalten, beispielsweise erneut abspielen.


Schritt 5 - Erweiterung der Unit Tests

Die Entwickler haben die Möglichkeit, auf die neuen Testfälle zuzugreifen und diese zu verwalten. Sie können diese in ihrer Entwicklungsumgebung abspielen und entsprechende Logdateien erstellen lassen. Sie können ebenfalls sich zu den neuen Testfällen Unit Tests generieren lassen.


Schritt 6 - Transparenz

Es besteht zusätzlich die Möglichkeit, sich den Stand zu den Softwaretests anzeigen zu lassen.


Hier geht es zum KBUnit Download.