Inhaltsverzeichnis |
Modultestsoftware dient zur Verifikation der Korrektheit von Modulen einer Software, z. B. von einzelnen Klassen. Als Voraussetzung für Refactoring kommt ihm besondere Bedeutung zu. Nach jeder Änderung sollte durch Ablauf aller Testfälle nach Programmfehlern gesucht werden.
Testrahmen bzw. Testframeworks für den Modultest gibt es mittlerweile für fast jede Programmiersprache. Oft haben die Namen dieser Frameworks die Form xyzUnit (z. B. JUnit für Java, siehe unten). Testrahmen dienen dazu, den Quelltext besser und automatisch testen zu können. Damit kann nach Modifikationen am Quelltext relativ schnell festgestellt werden, ob die vorher erstellten Tests immer noch dieselben Ergebnisse haben.
ABAP Unit ist die Implementierung des Frameworks für ABAP und steht ab SAP NetWeaver Release 2004 zur Verfügung.
Für die Programmiersprache C gibt verschiedene Implementationen, die sich hauptsächlich in ihrem Funktionsumfang, Lizenzen und Einsatzgebieten unterscheiden:
DUnit ist eine Portierung von JUnit für Borland Delphi. In der Version „Delphi 2005“ wurde es von Borland (heute CodeGear) als fester Bestandteil in die Entwicklungsumgebung aufgenommen.
JUnit wurde für die Programmiersprache Java von Erich Gamma und Kent Beck geschrieben. (weitere Werkzeuge für Modultests: TestNG, HttpUnit, Cactus, ...)
JSUnit wurde nach dem Vorbild JUnit gebaut und bietet manuelle wie auch komplett integrierte Tests für JavaScript mit Browser- und Betriebssystemübergreifenden Testservern.
Für die interpretierte Skriptsprache Lingo in Macromedias Autorensystem Director gibt es das Framework LingoUnit, welches ebenfalls unter SourceForge geführt wird.
NUnit ursprünglich eine 1:1 Portierung von JUnit auf die Plattform .NET, insbesondere für C# und Visual Basic .NET. Wurde mittlerweile mit spezifischen .NET Features erweitert neu geschrieben und unterstützt alle .NET Sprachen.
Perl hat eine weit zurückreichende Geschichte automatischer Tests. Perl selbst wird automatisch getestet und zur Perldistribution gehören eine Reihe von Testmodulen. Hier beginnt man am besten mit Test::Simple, arbeitet sich zu Test::More vor und taucht dann in die Tiefen von Test::Class und den weiteren Modulen ab.
PHPUnit ist die Portierung von JUnit auf PHP und wurde von Sebastian Bergmann geschrieben.
Simpletest ist ebenfalls eine Portierung von JUnit, die um weitere Funktionen wie Mock Objects und Funktionen zum Testen von Web-Seiten erweitert wurde.
utPLSQL ist ein UnitTest-Framework für PL/SQL welches ebenfalls unter SourceForge geführt wird. Quest Code Tester for Oracle ist ein kommerzielles Produkt zur Defininion und Durchführung Unit Tests für PL/SQL. Es handelt sich um eine Weiterentwicklung von utPLSQL und wird von der Firma Quest vertrieben.
Unittest ist fester Bestandteil der Python Standard-Bibliothek
Unittest ist bei Ruby in der Standard-Bibliothek als Test::Unit oder RUnit verfügbar.
RSpec ist ein verhaltensgetriebenes Entwicklungs- und Testframework für Ruby.
Das vermutlich erste Framework zum Erstellen von Komponententests (SUnit) wurde von Kent Beck für die Programmiersprache Smalltalk geschrieben. Die Idee wurde schnell auf andere Programmiersprachen übertragen.
Tcl enthält das Modul tcltest für Modultests. Auch andere Test-Frameworks wurden in Tcl geschrieben, bekannt ist etwa DejaGnu, mit dem der gcc getestet wird. Zudem kann man in wenigen Zeilen ein „Framework“ selbst erstellen:
proc test {command expected} {
catch {uplevel 1 $command} res
if {$res ne $expected} {puts "$command->$res, not $expected"}
}
Tests (in eigenen Quelldateien, oder direkt beim Code) sehen dann so aus: man gibt eine Anweisung und das erwartete Ergebnis an. Wenn ein unerwartetes Ergebnis ausgewertet wird, so wird dies angezeigt:
test {expr 3 + 4} 7
Die deutsche Firma Maaß Computertechnik aus Bochum hat das xUnit Framework für Visual Basic 6 implementiert.
vbUnit ist nicht vollkommen Open Source. In der kostenpflichtigen Version 3 Professional erhält man das Unit Testing Framework für Visual Basic 6 inklusive einem Microsoft Visual Studio 6 Add-on.
Die Basic Version von vbUnit wird unter der GNU Lesser General Public License (LGPL) angeboten. D. h. dass man zu dieser Version sowohl die kompilierten Komponenten als auch den Quellcode erhält. Der TestRunner und das Add-on für Microsofts Visual Studio 6 in der Professional Version sind kostenpflichtig und nicht Open Source.