WikiDer > Unit-Testing

Unittesten

Unit-Tests ist eine Methode der SoftwareModule oder Stücke Quellcode (Einheiten) getrennt zu zu testen. Beim Unit Test werden für jede Unit ein oder mehrere Tests entwickelt. In diesem Fall verschiedene Testfälle durchlaufen. Idealerweise sind alle Testfälle unabhängig von anderen Tests. Gegebenenfalls sogenannte Scheinobjekte entwickelt, um Unit-Tests separat durchzuführen.

Zielsetzung

Der Zweck des Unit-Tests besteht darin, Funktionseinheiten selbstständig auf korrekte Funktion zu testen. Dieser Gedanke stammt von modularSoftware-Entwicklung.

Unit-Test versus User-Test

Unit-Tests ist in der Regel eine Aufgabe für die Softwareentwickler oder Testteam. Dies steht im Gegensatz zu Endbenutzertests. Auch das Ziel ist anders.

  • Beim Unit-Test prüft der Entwickler, ob Teile der Software richtig funktionieren oder bei bestimmten Eingaben (richtig oder falsch) weiterarbeiten.
  • Beim Benutzertest wird in Zusammenarbeit mit dem Benutzer (oder nur dem Benutzer) überprüft, ob die Software so reagiert, wie der Benutzer es erwartet.

Wann Vorteile?

Wo zeigen sich die Vorteile von Unit-Tests?

Beim Anpassen in der Software

Unit-Tests basieren auf der Verwendung von Testfällen. Diese werden vor dem Test erstellt, meist schon während der Softwareentwicklung. Auf diese Weise bilden die verschiedenen Testfälle eine Beschreibung der ordnungsgemäßen Funktion des Geräts. Wenn zu einem späteren Zeitpunkt Anpassungen oder Korrekturen am Gerät vorgenommen werden müssen, kann der Entwickler relativ einfach überprüfen, ob die Änderungen das Verhalten des Geräts nicht beeinflusst haben. Der dann durchgeführte Test heißt Regressionstest.

Bei der Integration von Softwaremodulen

Unit-Tests werden für einzelne Units durchgeführt, normalerweise vom Entwickler. Ist der Entwickler zufrieden, wird das Gerät ausgeliefert. Der nächste Schritt besteht darin, die integrierten Einheiten in der Integrationstests.

Bei der Aktualität der Dokumentation

Die Dokumentation von Software ist eine der kniffligsten und mühsamsten Aufgaben. Dies wird in der Regel nicht richtig durchgeführt, was zu großen Unterschieden zwischen der Dokumentation und der Software führt. Unit-Tests und Testfallbeschreibungen können als "Live"-Dokumentation betrachtet werden. Jede Änderung (groß oder klein, Designänderung oder Bugfix) muss getestet werden. Wenn dies auf Basis von Unit-Tests erfolgt, sind die Testfälle die aktuellsten Beschreibungen des korrekten Betriebs einer Unit und damit die aktuellste Dokumentation der Software.

Einschränkungen

Ein Unit-Test beschränkt sich auf die Unit selbst. Dies bedeutet, dass nicht ordnungsgemäß getestet wurde, wie gut das System funktioniert, wenn die Einheiten miteinander integriert sind. Andere Testmethoden müssen dieses Manko des Unit-Tests kompensieren.Außerdem ist es wie bei jeder Testmethode nie möglich, Testfälle für alle möglichen Szenarien aufzustellen und für diese zu testen.

Unterstützung für Komponententests auf Sprachebene

Einige Programmiersprachen bieten direkte Unterstützung für Unit-Tests. Ihre Grammatik ermöglicht die direkte Zuweisung von Unit-Tests ohne den Import zusätzlicher Bibliotheken. Darüber hinaus können boolesche Bedingungen innerhalb der Einheit in derselben Notation wie ein boolescher Ausdruck in regulärem Code ausgedrückt werden, wie wenn und während Anleitung.

Programmiersprachen mit Unterstützung für Unit-Tests sind:

Siehe auch

Externe Links