Was sind Unit Tests?  

Unit Tests testen die kleinsten Einheiten (Units) einer Software Anwendung auf ihre Funktionalität. Das Ziel ist jede einzelne Komponente unabhängig und isoliert von anderen Daten und externen Einflüssen nach jeder Modifikation zu prüfen. Zur Erreichung dieses Ziels werden Unit Tests automatisiert, damit ihre Ausführung selbstständig erfolgt. Diese sind primär nur auf das Finden lokaler Fehler ausgerichtet.  Eine umfassende bereichsübergreifende Fehlerkontrolle ist nicht möglich, da durch die autonome Analyse einzelner Elemente mittels Unit Tests jeweils nur ein kleiner Ausschnitt des Gesamtsystems überprüft wird und die möglichen Probleme beim komplexen Zusammenspiel dieser Einheiten i.d.R. nicht entdeckt werdenDennoch sind solche Tests für das schnelle Feststellen von lokalen Fehlern während der Entwicklung von neuen Features und Funktionen sowie Code-Anpassungen bestens geeignet. Unit Tests positionieren sich auf der ersten (niedrigsten) Teststufe der Test Pyramide. 

  Unit Tests

Umsetzung 

Die Unit Tests werden in der Regel durch die Entwickler geschrieben, da die Tests die einzelnen feingranularen Code-Einheiten aufrufen, was ein fundiertes Wissen über die Code-Basis voraussetzt. Um die Tests authentischer zu gestalten empfiehlt sich die Pair-Programming Praxis, bei der der Code durch einen Entwickler-Kollegen geschrieben wird.  

Unabhängig von der Frage, wer die Tests schreibt, stellt sich häufig die Frage nach dem Zeitpunkt, also wann man diese schreiben sollte. Hierbei unterscheidet man zwischen 2 Methodiken.  

Nach der klassischen Methodik werden die Tests unmittelbar nach dem Abschluss der Implementierung des jeweiligen Code-Stücks umgesetzt. Dabei werden die positiven und negativen Use Cases für die Tests anhand von Code-Abläufen analytisch konstruiert (sogenanntes “White-Box” Testing). 

In agilen Teams erfolgt die Umsetzung der Unit Tests häufig nach der zweiten Methodik, dem sogenannten “Test Driven Development”. Nach diesem Prinzip werden zuerst die Tests anhand von fachlichen Anforderungen abgeleitet und umgesetzt – noch bevor der eigentlich Geschäftscode entsteht. Die so entstehenden TDD Tests schlagen zuerst wie erwartet fehlt, solange die eigentlichen zu testenden Funktionen nicht implementiert wurden. Sobald alle Funktionen richtig implementiert sind und die gewünschte Anforderung berücksichtigt sindlaufen alle TDD Unit Tests erfolgreich durch, was dem Entwickler höher Sicherheit bezüglich der korrekten fachlichen Implementierung schenkt. 

Die Ausführung der Unit Tests erfolgt entweder im Rahmen der lokalen Entwicklung automatisiert aus der Entwicklungsumgebung (IDE) des Entwicklers oder mittels Continuous Integration auf zentralem Server auf Basis des committeten Codes.  

 

Einsatzfelder  

Unit Tests gehören heutzutage zum Quasi-Standard bei der qualitativen Implementierung von Software Code und sollten stehts entwicklungsbegleitend umgesetzt werden. Die hohe Code Coverage (Testabdeckung) durch Unit Tests verhilft den Entwicklern zuversichtlich Code-Refactorings durchzuführen und kann im Rahmen von Code-Änderungen oft unbedachte Regressionsfehler zum frühestmöglichen Zeitpunkt finden. Dadurch sind die Tests vor allem in agilen Projekten essentiell, da sie schnelle Feedback-Schleife unterstützten und wertvolle Zeit bis zur Fehlerfindung (der grundlegenden Fehler in der Implementierung) minimieren. 

Viele weitere Details zum Thema Unit Testing finden Sie in unserem Blog unter folgendem Link: https://www.testautomatisierung.org/tutorial-testautomatisierung-unit-tests/ 

 

Vorteile- und Nachteile 

Vorteile 

Nachteile 

Schreiben und Implementierung erfolgt während der frühen Software-Entwicklungsphase   Fehleranfälligkeit, da nicht jedes Problem analysiert werden kann  
Noch nicht fertige Komponente können getestet werden  Testen nur auf Softwarefunktionalität möglich (z.B. kein Performance 
Schnelligkeit, geringe Flaky-Rate   Begrenzte Anzahl der Testdaten, die der Entwickler zur Überprüfung des Quellcodes verwenden kann 

 Für weitere Informationen, klicken Sie auf folgenden Link: www.inwerken.de

Verwandte Themen