Was wissen Sie über Unit-Tests?

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

21. September 2022

 

Was sind Unit-Tests?

Diese Testmethodik wird während des Entwicklungsprozesses von den Softwareentwicklern* und manchmal auch von Mitarbeitern* der Qualitätssicherung (Quality Assurance, QA) durchgeführt. Das Hauptziel von Unit-Tests besteht darin, den zu testenden Code zu isolieren und festzustellen, ob er wie beabsichtigt funktioniert.

Unit-Tests sind ein wichtiger Schritt im Entwicklungsprozess, denn wenn sie korrekt durchgeführt werden, können sie dazu beitragen, frühzeitig Fehler im Code aufzudecken, die in späteren Testphasen möglicherweise schwieriger zu finden sind.

 

Arten von Unit-Tests

Unit-Tests können manuell oder automatisiert ablaufen. Diejenigen*, die eine manuelle Methode anwenden, können ein Dokument anfertigen lassen, in dem jeder Schritt im Prozess detailliert beschrieben wird.

Automatisierte Tests sind jedoch die gebräuchlichere Methode für Unit-Tests. Bei automatisierten Ansätzen wird üblicherweise ein Test-Framework zur Entwicklung von Testfällen verwendet. Diese Frameworks sind so eingestellt, dass sie alle fehlgeschlagenen Testfälle kennzeichnen und melden, und gleichzeitig eine Zusammenfassung der Testfälle liefern.


Vor- und Nachteile von Unit-Tests

Zu den Vorteilen von Unit-Tests gehören:

  • Je früher ein Problem erkannt wird, desto weniger zusammengesetzte Fehler treten auf.
  • Die Kosten für die frühzeitige Behebung eines Problems können die Kosten für die spätere Behebung schnell aufwiegen.
  • Debugging-Prozesse werden erleichtert.
  • Entwickler* können schnell Änderungen an der Codebasis vornehmen.
  • Entwickler* können auch Code wieder verwenden und ihn in neue Projekte migrieren.

Zu den Nachteilen gehören:

  • Unit-Tests testen nur Datensätze und deren Funktionalität – es werden keine Fehler bei der Integration entdeckt.
  • Möglicherweise müssen mehr Zeilen Testcode geschrieben werden, um eine Zeile Code zu testen – was eine potenzielle Zeitinvestition darstellt.
  • Unit-Tests können eine steile Lernkurve haben, da man zum Beispiel lernen muss, wie man bestimmte automatisierte Tools benutzt.

 

Sind Unit-Tests rentabel?

Unit-Tests werden vom Tester/Testautomatisierer* während der Implementierung erstellt. Es gibt keinen günstigeren Zeitpunkt, um Fehler zu finden und zu beheben.
Warum?
Weil das Wissen über die entwickelte Lösung frisch im Gedächtnis haftet. Der Tester/Testautomatisierer* testet den Code zu dem Zeitpunkt, wo er den Entwickler inhaltlich mit den Anforderungen beschäftigt und die Kurve des Vergessens erst beginnt. Dadurch reduziert sich der Aufwand für die Fehlersuche auf ein Minimum. Natürlich benötigt die Erstellung der Testfälle Zeit, aber das ist minimal im Vergleich zu dem notwendigen Aufwand für die Fehlersuche. Außerdem kann man die Erstellung der Testfälle erlernen und der Aufwand reduziert sich zunehmend mit der gewonnenen Erfahrung und somit können Fehler schon in einem frühen Projektstand behoben werden und es erhöht sich entsprechend die Softwarequalität.

 

Fazit

Allein aus dem Aspekt des Aufwands ist das frühzeitige Erstellen von Unit-Tests wirtschaftlich rentabel. Es ist erstaunlich, das in so wenigen Projekten, die einen agilen Ansatz haben Unit-Tests durchgeführt werden. Das frühe Testen ist keine „wasted time“ – Zeit, die man mit langer Fehlersuche befüllt.

Neben dem Aufwandsaspekt der Fehlersuche gibt es weitere Gründe, um Unit-Tests durchzuführen. An erster Stelle steht die Fokussierung auf die tatsächlichen Anforderungen. Um Testfälle zu implementieren, müssen die Anforderungen klar formuliert werden und es wird eher vermieden, dass nicht geforderte Anforderungen umgesetzt werden. Außerdem unterstützen Unit-Tests den Entwickler bei der Suche nach besseren Lösungen und Design.

 

Sie wollen vorbereitet sein und Unittests aufsetzen oder Sie haben Fragen, ob die Umsetzung in Ihrem Projekt eher automatisiert oder manuell am sinnvollsten ist?
Wir unterstützen Sie gerne und freuen uns auf den unverbindlichen Austausch mit Ihnen

Kontaktieren Sie uns einfach.

 

* Um einen besseren Lesefluss zu ermöglichen, nennen wir hier nur eine Form, meinen aber alle Geschlechter (m/w/d) und möchten Niemanden ausschließen.