Zum Inhalt springen

Glossar · U

Unit-Test

Test, der eine kleine isolierte Einheit (Methode, Klasse, Funktion) prüft. Ohne externe Abhängigkeiten wie Datenbank oder Netzwerk.

Definition

Ein Unit-Test ist eine Software-Testmethode, bei der einzelne, kleinste Einheiten eines Programms isoliert überprüft werden. Diese Einheiten können Funktionen, Methoden oder Klassen sein. Ziel ist es, die korrekte Funktionalität dieser einzelnen Komponenten sicherzustellen, ohne dass externe Abhängigkeiten wie Datenbanken, Netzwerke oder Dateisysteme beteiligt sind.

Unit-Tests sind Bestandteil des Softwareentwicklungsprozesses und dienen dazu, Fehler frühzeitig zu erkennen. Sie werden meist automatisiert ausgeführt und bilden die Grundlage für weiterführende Testverfahren wie Integrationstests oder Systemtests. Durch die Isolation der getesteten Einheit soll die Ursache von Fehlern klar identifizierbar sein.

Was bedeutet das für Ihr Unternehmen?

Unit-Tests sichern kleine Bausteine Ihrer Software ab, etwa eine Preisberechnung oder eine Fristenlogik, und laufen in Sekunden bei jeder Änderung. Sie sind das günstigste Sicherheitsnetz gegen Fehler, die sich sonst erst im Betrieb zeigen. Allein reichen sie nicht aus, denn das Zusammenspiel mit Datenbank, Schnittstellen und Oberfläche muss in weiteren Testarten geprüft werden.

Hintergrund und Geschichte

Die Idee von Unit-Tests stammt aus der Softwareentwicklung der 1970er und 1980er Jahre, als die Notwendigkeit entstand, die Qualität von Software systematisch zu verbessern. Kent Beck popularisierte Unit-Tests in den 1990er Jahren im Rahmen der Extreme Programming (XP) Methodik, die automatisierte Tests als festen Bestandteil der Entwicklung vorsah.

Mit dem Aufkommen von Test-Frameworks wie JUnit für Java (veröffentlicht 1997) wurde das Schreiben und Ausführen von Unit-Tests deutlich vereinfacht. Seitdem sind Unit-Tests ein fester Bestandteil von agilen Methoden und Continuous Integration (CI) Prozessen geworden.

Funktionsweise

Ein Unit-Test prüft eine einzelne Funktion oder Methode, indem er definierte Eingaben bereitstellt und das Ergebnis mit dem erwarteten Output vergleicht. Dabei werden externe Abhängigkeiten häufig durch sogenannte Mock-Objekte oder Stubs ersetzt, um die Isolation der Einheit sicherzustellen.

Das Testen erfolgt meist automatisiert durch Test-Frameworks, die Testfälle definieren, ausführen und die Resultate protokollieren. Erfolgreiche Tests bestätigen die erwartete Funktionalität, während fehlschlagende Tests auf Fehler oder unerwartetes Verhalten hinweisen.

Einsatzgebiete

Unit-Tests werden in nahezu allen Bereichen der Softwareentwicklung eingesetzt, besonders in der objektorientierten Programmierung. Sie sind besonders nützlich bei der Entwicklung von Bibliotheken, Frameworks und komplexen Anwendungen, bei denen einzelne Komponenten unabhängig voneinander entwickelt und getestet werden.

Darüber hinaus unterstützen Unit-Tests die Wartbarkeit von Software, da Änderungen an einer Komponente durch automatisierte Tests schnell auf Fehler überprüft werden können. Sie sind auch integraler Bestandteil von Continuous Integration und Continuous Delivery (CI/CD) Pipelines.

Abgrenzung zu anderen Testarten

Unit-Tests unterscheiden sich von Integrationstests, die das Zusammenspiel mehrerer Komponenten oder Systeme überprüfen. Während Unit-Tests isoliert einzelne Einheiten testen, prüfen Integrationstests die Kommunikation und Datenflüsse zwischen diesen Einheiten.

Ebenso grenzen sich Unit-Tests von Systemtests ab, die das gesamte System aus Nutzersicht testen. Unit-Tests sind feingranular und fokussieren auf interne Logik, während Systemtests funktionale Anforderungen und Benutzerinteraktionen validieren.

Verwandte Begriffe

Passende Leistung

Sie möchten wissen, was das für Ihr Projekt bedeutet? Sprechen Sie uns an.

Zur Leistung: Webapps & Software