Komponententests |
![]() |
||||||||||||||||
|
Komponententests werden für verschiedene Zwecke eingesetzt. Spezifiziert werden die Komponententests von den Programmierern im Rahmen des paarweisen Programmierens. Nachdem ein Komponententest implementiert wurde, wird der Quelltext des Systems so lange modifiziert (ergänzt oder verändert), bis der Komponententest erfolgreich abläuft. Komponententests können einzelne Funktionen testen, aber auch ganze Klassen oder auch Systemmodule (in sich abgeschlossener Teil, meist Objektcode, des Systems). Typischerweise werden Komponententest wie oben beschrieben erstellt. Es gibt aber noch ein anderes Szenario, wo die Komponententests hilfreich sind. Rahmenwerke für das TestenBeim Schreiben von Komponententests stellt man sehr schnell fest, dass es ein paar Dinge gibt, die sich immer wiederholen. Es müssen für jeden Test ein paar Testobjekte erzeugt werden, dann müssen die zu testenden Methoden aufgerufen werden und schließlich müssen die Testobjekte restlos aufgeräumt (gelöscht) werden. Letzteres wird zwar von vielen Programmiersprachen wie z.B. Java, Smalltalk und C# automatisch gemacht. Wenn jedoch Datensätze in eine Tabelle eingetragen wurden, werden diese auch von diesen Sprachen nicht automatisch gelöscht. Eine weitere Gemeinsamkeit, die man sehr schnell herausfindet ist, daß es mehrere Komponententests geben kann, die gegen dieselbe Menge von Testobjekten arbeiten können. In diesem Falle würde es natürlich wenig Sinn machen, nach jedem einzelnen Tests alle Testobjekte aufzuräumen, und für den nächsten Test die gleichen Testobjekte wieder zu erzeugen. Weiterhin ist es sehr günstig, wenn man sowohl einzelne Tests als auch Gruppen von Tests ausführen kann. Und noch schöner wäre es, wenn man dies sowohl von einer grafischen Benutzerschnittstelle als auch von der Kommandozeile (Shell) aus aufrufen könnte. Für alle diese Fragen gibt es eine preiswerte Antwort: das xUnit Rahmenwerk, wobei das "x" für verschiedene Sprachen steht. JUnit ist in das Rahmenwerk in Java geschrieben, SUnit das für Smalltalk, NUnit für Microsoft .NET-Anwendungen, HTTPUnit für HTML-Anwendungen und so weiter. Ein Rahmenwerk für C# (englisch!) kann von dieser Website heruntergeladen werden. Wenn man also Komponententests schreibt, sollte man also in jedem Fall die Verwendung eines dieser Rahmenwerke in Betracht ziehen. Komponententests als RegressionstestHin und wieder kommt es vor, daß ein Fehler vom Anwender entdeckt wird (auch XP ist hier nicht perfekt!). In diesem Falle wird die Behebung dieses Fehlers als separate Aufgabe für die nächste Iteration eingeplant. Wichtig ist dann, daß dann zunächst ein Komponententest implementiert wird, der den Fehler reproduziert. Dieser Komponententest hätte eigentlich vom Programmierpaar implementiert werden müssen, aber wer von uns ist schon perfekt. Nachdem der Komponententest implementiert ist - der dann natürlich fehlschlägt - wird wieder beim normalen Vorgehen der Quelltext solange modifiziert, bis der Komponententest funktioniert. Der veränderte Quelltext wird dann wieder normal integriert und steht dann sofort zur Verfügung. Tipps
|
|
||||||||||||||||
© Copyright 2001-2002 Manfred Lange, Alle Rechte vorbehalten. Nutzungsbedingungen.
Letzte Änderung dieser Seite: |