unittests-entwicklung

Die Bedeutung von Unit- und Integrationstests

In der Welt der Programmierung treten immer wieder Fehler auf, die sowohl durch die Technik, als auch durch den Menschen verursacht werden können. Dabei ist es irrelevant wie schwerwiegend ein Bug erscheint, am Ende häufen sie sich und können nur durch viel Fleißarbeit und hohe Kosten bereinigt werden.

Mit den Unit- und Integrationstests lassen sich Probleme bereits während der Entwicklung von Projekten identifizieren und beheben. Auch wenn diese Tests häufig eine preisliche Herausforderung darstellen können, lohnen sie sich im Endeffekt immer, denn das Projekt kann somit ein termingerechtes Ende finden und die Kundenzufriedenheit bleibt auf einem hohen Niveau.

Unittest vs. Integrationstest

Sowohl Unit- als auch Integrationstests haben eine große Bedeutung für die Qualitätssicherung in der Softwareentwicklung.

Beim Unittest geht es darum, die kleinstmöglichen Code-Bestandteile in verschiedenen Szenarien zu testen. Genauer gesagt, versucht man hierbei kleinstmögliche Komponente, also bestimmte Klassen wie Module, auf ihre Funktionalität zu prüfen. Um eine Klasse zu testen, isoliert man diese vom übrigen Code. Dies geschieht meist mithilfe des sogenannten Mockings, bei dem einzelne Abschnitte der Module durch abstrakte, genau definierte Objekte, ohne Logik, ersetzt werden.

Beim Integrationstest wird ebenfalls das Verhalten der Module untersucht. Allerdings ist es nicht wie bei einem Unittest nur auf eine Klasse beschränkt, denn bei dieser Testart werden mehrere Klassen und Module in Verbindung gebracht, um diese als Gruppe zu überprüfen. Der größte Unterschied hierbei ist, dass man nicht auf das Mocking zurückgreifen muss, sondern man versucht, komplexe Szenarien zu erzeugen, um mögliche Fehler früh identifizieren und beseitigen zu können. Der Integrationstest fokussiert sich auf das Testen des Zusammenspiels der Module, anstatt einzelne Module im Detail.

redbots – Testen geht auch einfach!

redbots hat es sich zur Aufgabe gemacht mithilfe von verschiedenen Möglichkeiten diese Tests zu vereinfachen. Unit- und Integrationstests können unter Umständen sehr aufwendig und kostspielig sein, weshalb sie des Öfteren in der Entwicklungsphase verschoben werden. Dadurch kommt jedoch das bereits beschriebene Szenario zustande, bei dem jedem Entwickler Angst und bange wird. Im Portfolio von redbots finden sich unter anderem einige Testautomatisierungslösungen. Der Testbedarf des Kunden wird untersucht und er erhält eine Empfehlung über die tatsächlich notwendige Art und Weise der Tests. Wir setzen die optimale Lösung mithilfe unserer bereits existierenden und selbst entwickelten IT-Tools für unsere Kunden um.

Darüber hinaus bietet redbots Sicherheitstests an, um bereits während der Programmierung die Sicherheitslücken effizient zu schließen. Der Code kann durch verschiedene Tools in jeder seiner Entwicklungsphasen auf solche Probleme untersucht werden, um ein Sicherheitsrisiko zu vermeiden. Auch Last- und Performancetests dürfen hierbei nicht fehlen. Durch diese kann die Performance der Software optimal gemessen und perfektioniert werden.

Durch die verschiedenen Tools und Testarten, die wir verwenden, können also bereits in der Entwicklung mögliche Probleme erkannt und behoben werden.

Autor: Dustin Porth

Bild: Fabian Grohs, Unsplash