Überblick

In der Softwareentwicklung werden insbesondere in agilen Projekten diverse Unit Tests im Qualitätssicherungsprozess intensiv eingesetzt. Die Unit Tests werden aber häufig erst mit der Realisierung einer Funktionalität erstellt und stehen nicht im direkten Zusammenhang mit dem Backlog, welches die zu realisierenden Anforderungen beschreibt, oder mit weiteren Projektmanagement-Tools. 

Weiterhin werden Unit Tests üblicherweise nur von Entwicklerinnen und Entwicklern, hier mit Entwickler bezeichnet, durchgeführt. Einige Unit Tests, welche fachlich anspruchsvolle Sachverhalte überprüfen, sollten aber von Entwicklern und auch Personen mit fachlicher Expertise, beispielsweise Softwaretesterinnen und Softwaretester, hier mit Wissensträger bezeichnet, gemeinsam durchgeführt werden. Diese sollten dafür so früh wie möglich in den Prozess des Softwaretestens eingebunden werden, am besten gleich zusammen mit den Entwicklern bei der Durchführung von Unit Tests. In der Praxis steigen aber die Wissensträger 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 – Erhalt von Unit Tests

Es besteht die Möglichkeit, sich aus diversen Projektmanagement-Tools entweder JUnit Tests oder parametrisierte JUnit Tests und jeweils zu ergänzenden Sourcecode erzeugen zu lassen. Informationen zu JUnit Tests oder parametrisierten JUnit Tests können an eine Auswahl der Projektmanagement-Tools übermittelt werden.


Schritt 1 - Vorbereitung der Unit Tests

Die Entwickler implementieren eine Funktionalität und zu dieser einen JUnit Test, welcher einen Testfall überprüft. Soll dieser von Wissensträgern um Testfälle ergänzt werden, transferieren die Entwickler den JUnit Test in einen parametrisierten JUnit Test. Er enthält diejenigen Parameter, die von Wissensträgern variiert werden sollen. 


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 parametrisierten JUnit Tests zu und erstellen in Absprache mit dem Kunden weitere Testfälle, die aus ihrer Sicht geprüft werden müssen, indem sie die Werte der Parameter variieren und Testfälle generieren lassen. Sie können sämtliche Testfälle auch abspielen. 


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 parametrisierte JUnit Tests generieren lassen.


Schritt 6 - Transparenz

Es besteht zusätzlich die Möglichkeit, sich den Stand zu den Softwaretests anzeigen zu lassen. Weiterhin besteht die Möglichkeit, sich den Stand der Überdeckung des Quellcodes anzeigen zu lassen, welchen man durch die vorhandenen Testfälle erhält. Ein Feedback zu Softwaretests und deren Überdeckung kann an die Entwickler gemeldet werden.


Hier geht es zum KBUnit Download.