What is Unit Testing
Agil Automatisierung Bewährte Methoden
9 min lesen
September 9, 2023

Unit Testing: Alles, was Sie wissen müssen

Unit-Tests sind die kleinste und gleichzeitig eine der größten Arten von Softwaretests. Schauen wir uns an, warum Unit-Tests so wichtig sind und welche Techniken sie auf das nächste Level heben können.

photo
photo
Robert Weingartz
Denis Matusovskiy

Die Definition von Unit-Tests ist einfach: Sie testen den kleinsten Teil Ihrer Software, der isoliert werden kann. Sie kann so klein wie eine einzige Codezeile oder so groß wie ein Modul sein. Dies ist jedoch einer der Fälle, in denen kleiner besser ist, selbst wenn man an einem Großprojekt arbeitet.

Software Unit-Tests werden in der Regel von den Entwicklern selbst durchgeführt. In der Tat haben sie nicht die Zeit oder das Fachwissen zur Qualitätssicherung, um einen angemessenen Unit-Test Plan zu erstellen. Die Entwickler jedoch kennen ihren eigenen Code besser als jeder QA-Spezialist ihn verstehen könnte. Das Testen von Code vor der Weitergabe an die Qualitätssicherung ist seit Jahren ein bewährtes Verfahren.

Vorteile von Unit-Tests

Der Zweck von Unit-Tests lässt sich nicht auf eine einzige Sache eingrenzen. Entwickler zu haben, die kleine Codeeinheiten durchgehen, hat mehrere Vorteile:

    • Verbessert das Verständnis der Codebasis durch den Entwickler. Dies ist vor allem für Neuzugänge im Team von Bedeutung. Ganz gleich, wie viel Dokumentation man neuen Entwicklern zur Verfügung stellt, Übung macht immer alles einfacher.
    • Selbständig-nachhaltig, d. h. weder die Entwickler noch die QS-Spezialisten warten darauf, dass andere ihren Code zuerst fertigstellen
    • Erleichtert gute Regressionstests oder vielmehr eine gute Nachbereitung von Regressionstests. Wenn sie ein Problem aufdecken, ist es viel einfacher, die Ursache einzugrenzen und den Fehler zu beheben, wenn kleine Teile des Codes durch individuelle Testfälle abgedeckt werden
    • Verbessert die Qualität des Codes. Die Entwickler nicht in die Tests einzubeziehen, ist in vielerlei Hinsicht fehlerhaft und dem Projekt einen besseren Code vorzuenthalten, ist einer davon. Hastiges Umschreiben und Fehlerbeheben in letzter Minute tragen zur technischen Verschuldung bei und machen die Software anfälliger für Fehler als echte Lösungen. Regelmäßiges Testen in kleinen Abschnitten erhöht die Aufmerksamkeit zum Detail und verhindert die Anhäufung von Fehlern
    • Spart Zeit und Geld. Es ist ganz einfach: Gute automatisierte Unit-Tests bedeutet, dass viele Probleme ohne menschlichen Aufwand erkannt werden. Eine einmalige Investition plus einige Wartungsarbeiten entlasten den Zeitplan von Entwicklern und Testern erheblich

Advantages of unit testing

image
3zbdcc601729bfa1d4e33335cfb5176b61c737a68bafd4b4a38a8ef653a7771392
testing strategy template

Holen Sie sich eine Vorlage für eine Teststrategie, die es uns ermöglicht, Software 2 Mal so schnell zu veröffentlichen

Unit-Testing-Techniken

Die Unit-Testing-Techniken entsprechen den allgemeinen Testtechniken.

  • Black-Box-Technik deckt das Softwareverhalten aus der Sicht der Benutzer ab: der QS-Spezialist weiß nicht, wie die Lösung konzipiert ist
  • White-Box-Technik bezieht sich auf das Testen mit dem Wissen, wie die Software entwickelt wurde, um zu funktionieren
  • Die Grey-Box-Technik stellt einen Mittelweg dar: Sie testet die benutzerseitigen Funktionen wie Black-Box-Tests, jedoch mit dem Wissen um die Architektur der Lösung

Was die Art und Weise der Durchführung von Unit-Tests betrifft, so sind sowohl manuelle als auch automatisierte Ansätze sehr erfolgreich. Genau wie bei anderen Testarten ist letzteres nur dann sinnvoll, wenn Sie wissen, warum Sie QS automatisieren. Die Rolle der Entwickler beim Unit-Testing bedeutet, dass die QS-Arbeitsbelastung für Nicht-Tester steigt, so dass eine verstärkte Automatisierung kosteneffektiver denn je sein könnte.


Interessieren Sie sich für die verschiedenen Arten von Tests?

Lesen Sie unseren Artikel über Benutzer Akzeptanz Tests Definition, Verwendung und Herausforderungen


Es kann schwierig sein, Entwickler dazu zu bringen, in Unit-Tests zu investieren. Alan Mellor, der Autor von Java OOP Done Right mit mehr als 30 Jahren Erfahrung in der Software-Engineering, beschreibt die Vorteile für Entwickler folgendermaßen:

Ein Unit-Test besteht immer aus drei Teilen: Arrangieren, Handeln, Bestätigen. Die letzten beiden sind immer Einzeiler. Sie drücken auch ein Stück Designdenken aus, mit dem Sie vertraut sein werden: Die API Ihres Codes und wie sie mit dem Aufrufer kommuniziert. Unit-Tests sind nur in der Phase des Arrangierens wirklich schwierig zu schreiben. Hier erstellen Sie den Graphen von Objekten und Anfangszuständen, die für die Durchführung des Tests benötigt werden. Wenn sich in Ihr Code Fehler eingeschlichen hat, kann dies sehr schwierig sein. Dies ist das erste Anzeichen dafür, dass Ihr Design schlecht ist.

Ein Unit-Test besteht immer aus drei Teilen: Arrangieren, Handeln, Bestätigen. Die letzten beiden sind immer Einzeiler. Sie drücken auch ein Stück Designdenken aus, mit dem Sie vertraut sein werden: Die API Ihres Codes und wie sie mit dem Aufrufer kommuniziert. Unit-Tests sind nur in der Phase des Arrangierens wirklich schwierig zu schreiben. Hier erstellen Sie den Graphen von Objekten und Anfangszuständen, die für die Durchführung des Tests benötigt werden. Wenn sich in Ihr Code Fehler eingeschlichen hat, kann dies sehr schwierig sein. Dies ist das erste Anzeichen dafür, dass Ihr Design schlecht ist. Wahrscheinlich haben Sie immer wieder Teile zusammengefügt, herumgeschrieben und zu viel auf einmal gemacht. Das tun wir alle. Die Antwort ist, diesen Teil des Codes neu zu gestalten. Teilen Sie einige Objekte so auf, dass jedes einzelne einen kleineren Teil der Arbeit erledigt. Dies verringert die Komplexität des Anordnungsschritts und auch des Produktionscodes. Wenn Sie Tests früher schreiben, verkürzen Sie den Feedback-Zyklus. Man wird sich der Unordnung früher bewusst. Außerdem bekommen Sie ein Gespür dafür, wie Sie Ihren Code von vornherein richtig aufteilen können, was auch das Testen erleichtert.

Alan Mellor, Autor von Java OOP Done Right,

Bewährte Praktiken

Hier finden Sie einige Ideen für Unit-Tests, damit Sie von den Versuchen und Fehlern anderer lernen können.

  • Wenden Sie das Protokoll „Geben/Wenn/Dann“ für die Organisation von Einheitstests an. Dieser Ansatz ist auch bekannt als Arrangieren (der Testaufbau), Handeln (auf der Unit für den Test), Bestätigen(das Ergebnis verifizieren), beschrieben von Alan Mellor
  • Halten Sie die Tests einfach. Wenn Sie zum Beispiel versuchen, alle möglichen Eingaben in einem Testfall zu berücksichtigen, haben Sie möglicherweise einen Test geschrieben, der den zu testenden Code weitgehend wiederholt.
  • Legen Sie sich eine gute Namenskonvention zurecht. Die Navigation all Ihrer Tests kann manchmal entmutigend sein, vor allem, wenn auch Entwickler an den Tests beteiligt sind. Mit der Namensgebung auf einer Wellenlänge zu sein, ist ein langer Weg

aqua tool für Unit-Tests

Testmanagementsysteme und Lösungen für das Application Lifecycle Management wie aqua werden nicht unbedingt für Unit-Tests verwendet. Die Entwickler schreiben die Tests und führen sie in einer IDE (integrierte Entwicklungsumgebung) aus, die nicht mit dem Server der Testmanagementlösung verbunden ist.

Auf der anderen Seite hilft ein Fehler-Reporting-Tool dabei, viele Konzepte zu erreichen und zu verstärken, die beim Unit-Testing angestrebt werden. Ein gutes Beispiel ist die Verfolgung der Testabdeckung. aqua bietet das schon seit Jahren, aber wir haben es nur mit einer übersichtlichen Spalte auf dem Anforderungsbildschirm visualisiert. Es gibt noch viele andere Funktionen, die die Zusammenarbeit zwischen Entwicklern und QA fördern, ähnlich wie bei den Unit-Tests.

aqua tool of unit testing

Schlussfolgerung

Unit-Tests sind ein großer Gewinn für jedes Softwareprojekt. Entwickler dazu zu bringen, ihren eigenen Code frühzeitig zu testen, hat sowohl kurz- als auch langfristige Vorteile für Ihr Unternehmen. Auch wenn Testmanagementlösungen wenig mit Unit-Tests zu tun haben, helfen sie Ihnen, die gleiche Zusammenarbeit zwischen Entwicklung und Qualitätssicherung sowie die Gründlichkeit und Prägnanz zu kultivieren, die Unit-Tests mit sich bringen.

Unit-Tests ersparen der QS die Zeit, sich mit Routinefehlern und kleinen Patzern zu beschäftigen. Künstliche Intelligenz macht das Gleiche, wenn es um die Erstellung neuer Tests geht. Sie müssen nicht zu viel Zeit damit verbringen, dieselben einfachen Fehlfunktionen von einer Funktion zur anderen zu behandeln.

aqua’s KI-Copilot gibt Ihnen die Flexibilität, bei Routinetests Zeit zu sparen. Sie können es bitten, ganze Tests nur auf der Grundlage einer Beschreibung zu erstellen oder Testschritte auszufüllen, die auf dem basieren, was Sie in anderen Testfällen verwendet haben. Ursprünglich im Jahr 2013 auf den Markt gebracht, verfügt aqua auch über eine Reihe von Funktionen für das Testmanagement außerhalb der KI.

Sparen Sie Zeit bei der QS-Routine mit KI-Tests

Testen Sie aqua
Auf dieser Seite:
Sehen Sie mehr
Beschleunigen Sie Ihre Releases x2 mit aqua
Gratis starten
step
FAQ
Was sind Unit-Tests?

Beim Unit-Testing werden die kleinstmöglichen Codeabschnitte getestet, bevor der Build überhaupt zur regulären Qualitätssicherung übergeben wird. Es hilft den Entwicklern, Probleme zu erkennen und sofort zu lösen, noch bevor sie den Testern vorgelegt werden. Unit-Tests werden in der Regel von den Entwicklern geschrieben, was Zeit spart, da die Qualitätssicherung nicht in die Vorabtests einbezogen wird.

Was ist ein Unit-Testing-Tool?

Es gibt keine herausragenden Tools, speziell für Unit-Tests. Solche Tests werden in der Codeumgebung erstellt.

Was sind die Arten von Unit-Tests?

Unit-Tests können entweder manuell oder automatisiert durchgeführt werden. Manuelle Tests regen die Entwickler dazu an, über ihre Herangehensweise an den Code nachzudenken, und auf diese Weise können sie sowohl saubereren Code schreiben als auch Probleme erkennen. Automatisierte Tests sind hilfreich, um Fehler in großem Umfang zu finden.

Wer wird die Einheitstests durchführen?

Sie möchten, dass die Entwickler Unit-Tests durchführen, da der Hauptzweck darin besteht, Probleme zu beheben, bevor der Code an die Qualitätssicherung geschickt wird. Je nach Fachwissen und Arbeitsbelastung des Entwicklers können QS-Spezialisten in die Erstellung von Unit-Tests einbezogen werden.

closed icon