Unterschiedliche Tests für unterschiedliche Aufgaben

Im folgenden Beitrag werden Testarten vorgestellt, die möglichst vollständig automatisiert ablaufen sollten, um Fehler frühzeitig zu identifizieren. Die Testarten bauen aufeinander auf, sowohl hinsichtlich der Entwicklungskosten als auch der Ausführungsdauer – wie es in der Testpyramide veranschaulicht wird.

Unit-Tests

Unit-Tests validieren einzelne Funktionen oder Methoden isoliert, um elementare Fehler in der Implementierung früh zu erkennen.
Wesentliche Merkmale:

  • Schnelle Erstellung und Ausführung
  • Fokussiert auf die kleinste Einheit des Codes
  • Erfordert oft das Einbinden von Mock-Objekten, um Abhängigkeiten zu isolieren

Durch das Schreiben von Unit-Tests wird häufig auch ein Refactoring bestehender, unübersichtlicher Methoden notwendig, was letztlich zu einer höheren Codequalität und besseren Lesbarkeit führt.

Integrationstests

Integrationstests erweitern den Fokus über einzelne Methoden hinaus und überprüfen das Zusammenspiel mehrerer Komponenten oder Module.
Wesentliche Merkmale:

  • Testen die kombinierte Funktionalität von Klassen
  • Aufwendiger in der Implementierung als Unit-Tests
  • Erfordert den Aufbau von Testumgebungen, die Abhängigkeiten zwischen Komponenten simulieren

Die Komplexität wächst mit der Anzahl der eingebundenen Komponenten, was zu höheren Entwicklungskosten und längeren Testdurchläufen führt.

Systemtests

Systemtests betreffen die gebaute, lauffähige Anwendung.
Wesentliche Merkmale:

  • Testen das komplette System in der realen Laufzeitumgebung
  • Erfordern den Deploy- und Startprozess der gesamten Applikation
  • Oft Implementierung von End-to-End-Tests (z. B. über das User-Interface)

Aufgrund der notwendigen Initialisierung und Wartezeiten (z. B. Ladezeiten) können diese Tests zeitintensiver und kostenintensiver in der Wartung werden.

Akzeptanztests

Akzeptanztests (User Acceptance Tests, UAT) evaluieren, ob die Implementierung den definierten Anforderungen entspricht.
Wesentliche Merkmale:

  • Fokussieren sich auf die Erfüllung der Kundenanforderungen und Geschäftsprozesse
  • Können manuell oder automatisiert über die grafische Benutzeroberfläche durchgeführt werden
  • Binden in der Regel den Auftraggeber ein und sammeln direktes Feedback

Da Akzeptanztests häufig auf Benutzerinteraktion beruhen, sind sie weniger für eine vollautomatisierte Ausführung geeignet und liegen im Bereich des Requirements Engineerings.

Tags

TestartenUnitTestIntegrationTestSystemTestAkzeptanzTestTestpyramide

Devops-Overview