Unit Testing in Java Teil 1: Grundlagen
/ Autor: Thomas, 15 Aug 2008Testen ist bei einem Softwareprojekt ein wichtiger Schritt. Häufig wird dieser Schritt am Schluss und zu kurz gemacht, dabei ist Softwareentwicklung, gerade größere Projekte, immer fehleranfällig. Im Gegensatz dazu bedeutet Unit-Testing das Testen während der Implementierung. Die Tests werden sogar vor der eigentlichen Implementierung geschrieben. Das hat den Vorteil das man durch das Schreiben der Test den größten Teil des Codes automatisch schreibt.
Ein Unit-Test beschreibt einen Test der den logischen Teil einer Software testet, der nicht syntaktisch oder aufgrund implementierter Fehlererkennung zu Fehlern führen kann. Ein Beispiel ist ein Algorithmus der 2 Zahlen addiert. Ein Unit-Test kann nun zum Beispiel überprüfen, ob richtig addiert wird, indem man dem Test Eingabeparameter und das zu erwartende Ergebnis mitgibt. Stimmt das errechnete Ergebnis nun mit dem zu erwartenden Ergebnis überein, so wird der Test erfolgreich durchlaufen. So können automatsich Zustände abgefangen werden, die häufige Fehlerquellen sind. Zum Beispiel die Eingabe von negativen Werten, Duplikaten oder null. Das Ergebniss kann entweder ein OK, ein Failure oder ein Error sein. Failures treten am häufigsten auf und beschreiben das “Fehlschlagen” des Tests. Dabei werden die Erwartungswerte des Tests nicht erfüllt. Ein Error tritt auf wenn ein Fehler auftritt, der ein “richtiger Softwarefehler” ist. So werden nach und nach alle Komponenten getestet. Ziel sollte es sein, das keine Funktion und Klasse als Produktionscode gesehen werden soll, bis nicht alle Tests erfolgreich durchlaufen werden.
Unit-Testing beeinflusst durch seine Modularität den gesamten Entwicklungsprozess. Fügt ein Entwickler weitere Änderungen zum Code hinzu, dann prüft er zuerst ob die Software alle Tests erfolgreich durchläuft und stellt somit sicher das später auftretende Fehler höchstwahrscheinlich an seiner Implementierung liegen.
Ich verwende in diesen Artikeln Eclipse das JUnit schon mit sich führt. Arbeitet man ohne Eclipse müssen die entsprechenden Klassenpfade und Bibliotheken angepasst werden. Auf www.junit.org kann man sich die aktuelle Version herunterladen und weitere Informationen zu JUnit erhalten.
In Teil 2 dieses Artikels werden wir nächste Woche unseren ersten Unit-Test schreiben und anwenden.


Leave a Reply