1.3. Allgemeine Test-Konzepte

Dieser Abschnitt liefert einen kurzen Überblick über allgemeine Test-Begriffe und –Konzepte, um ein gemeinsames Grundverständnis für Tests zu vermitteln. Des Weiteren erfolgt die Einordnung des checkerberry test centers in die dargestellten Test-Landschaft.

1.3.1. Test-Arten

Bei der Erstellung von Tests werden verschiedene Test-Arten unterschieden. Die Arten beschreiben, was getestet werden soll. Im Folgenden werden die für das checkerberry test center relevanten Test-Arten beschrieben.

1.3.1.1. Unit-Tests

Komplexe Systeme wie z.B. ein CD-Player oder eine Web-Anwendung bestehen häufig aus vielen einzelnen Komponenten, die zu einem Gesamtsystem integriert werden. Das Ziel eines Unit-Tests besteht darin, die korrekte Funktionsweise einer einzelnen Komponente sicherzustellen. Für das Beispiel des CD-Players könnte diese Komponente das Display sein. Das Testen von integrierten Komponenten ist hingegen nicht die Aufgabe eines Unit-Tests.

Die Granularität der zu testenden Komponente ist variabel. In der Software-Entwicklung kann sich der Unit-Test auf eine einzelne Java-Klasse beziehen. Es ist jedoch auch möglich, dass sich der Unit-Test auf eine Menge von Java-Klassen bezieht, die zusammen ein Modul bilden, das eine bestimmte Funktionalität zur Verfügung stellt.

1.3.1.2. Integrationstests

Die Aufgabe eines Integrationstests besteht im Gegensatz zu einem Unit-Test darin, das korrekte Zusammenspiel von verschiedenen Modulen in einer integrierten Umgebung sicherzustellen.

Als Beispiel kann eine einfache Software zum Speichern von Kreditkarten-Informationen dienen. Das Gesamtsystem besteht aus zwei Komponenten: Die erste Komponente validiert die Angaben der Kreditkarte, während die zweite Komponente die Information in der Datenbank speichert. Die korrekte Funktionsweise der ersten Komponente kann über einen Unit-Test gewährleistet werden.

Die Erstellung eines Unit-Tests für die zweite Komponente ist nicht möglich, da zu diesem Zweck eine externe Komponenten, die Datenbank, erforderlich ist. In diesem Fall muss ein Integrationstest erstellt werden, der die zweite Komponente mit integrierter Datenbank testet.

1.3.1.3. GUI-Tests

GUI-Tests werden verwendet, um grafische Oberflächen von Anwendungen zu testen. Da diese Tests eine laufende Anwendung benötigen, handelt es sich um eine spezielle Art von Integrationstests.

1.3.1.4. Abgrenzung Unit- und Integrationstests

Zwischen Unit- und Integrationstests gibt es nur theoretisch eine scharfe Abgrenzung. In der Praxis ist eine genaue Klassifizierung nicht immer möglich. Dies liegt daran, dass der Begriff „Integration“ nicht eindeutig festgelegt ist.

In der Praxis spricht man von Unit-Tests, wenn eine Klasse oder eine Menge von Klassen in der selben Java Virtual Machine (JVM) getestet wird. Sobald weitere externe Systeme erforderlich sind wie z.B. Datenbanken, spricht man hingegen von Integrationstests.