Softwaretest

Praktikable Softwaretests für individuelle Softwareprojekte

Wellige Linien Illustration

Warum klassische Testansätze in der Praxis oft scheitern

In vielen Softwareprojekten wird Qualitätssicherung nahezu automatisch mit Unit-Tests gleichgesetzt. Unit-Tests sind ein bewährtes Werkzeug, um einzelne Funktionen oder Komponenten einer Anwendung zu überprüfen. In komplexen Unternehmensanwendungen stoßen sie jedoch häufig an Grenzen.

Gerade bei individuell entwickelter Software entstehen Fehler oft nicht innerhalb einzelner Funktionen, sondern im Zusammenspiel von Frontend, Backend, Datenbank und Geschäftslogik. Ein System kann aus Sicht aller Unit-Tests fehlerfrei erscheinen und dennoch im realen Betrieb nicht funktionieren.

Deshalb verfolgt die SSA SoftSolutions GmbH einen praxisorientierten Ansatz für automatisierte Softwaretests.

Ziel:
Regressionen
frühzeitig erkennen

Ein wesentliches Ziel moderner Softwaretests besteht darin, Regressionen zu verhindern.

Regression bedeutet:
„Eine Funktion hat in der Vergangenheit korrekt gearbeitet, funktioniert nach einer Änderung jedoch nicht mehr wie erwartet.“

Gerade bei langfristig betriebenen Unternehmensanwendungen können solche Fehler hohe Folgekosten verursachen.
Automatisierte Tests sorgen dafür, dass Änderungen kontinuierlich überprüft werden.

Diagramm, wie das Regresstest funktioniert

Der Unterschied zwischen Unit-Tests und Fullstack-Tests

Unit-Tests

Unit-Tests prüfen einzelne Funktionen oder Methoden isoliert.

Vorteile:

  • schnelle Ausführung
  • gute Unterstützung beim Debugging
  • gezielte Fehlersuche

Nachteile:

  • hoher Pflegeaufwand
  • starke Abhängigkeit von der internen Code-Struktur
  • begrenzte Aussagekraft über das Gesamtsystem

Fullstack-Tests

Fullstack-Tests betrachten die Anwendung als Ganzes.

Geprüft wird:

  • Frontend
  • API
  • Backend
  • Datenbanklogik
  • Geschäftsprozesse

Der interne Quellcode wird dabei als Black Box betrachtet. Entscheidend ist
ausschließlich, ob ein fachlicher Anwendungsfall korrekt funktioniert.

Diagramm über die genaueren Unterschiede zwischen Unit- und Fullstack-Tests

Warum HTTP-API-Tests besonders
effizient sind

In modernen Softwarearchitekturen laufen die meisten Geschäftsprozesse über HTTP-Schnittstellen.
Ein API-basierter Test prüft deshalb gleichzeitig:

  • Authentifizierung
  • Frontend-Service-Schicht
  • API-Endpunkte
  • Backend-Logik
  • Datenbankzugriffe

Dadurch entsteht ein sehr hoher Testnutzen bei vergleichsweise geringem Wartungsaufwand.

Die Herausforderung mit Testdaten

Eine häufig unterschätzte Schwierigkeit automatisierter Tests sind die zugrunde liegenden Daten.
Produktive Entwicklungsdatenbanken verändern sich
laufend:

  • neue Datensätze
  • geänderte Werte
  • Migrationen
  • Produktivdatenimporte

Dadurch können Tests instabil werden.

Der SSA-Ansatz: Eigene Testdatenbank

Das von SSA eingesetzte TestFramework verwendet eine separate Datenbank mit kontrollierten Testdaten.
Eigenschaften:

  • identisches Datenbankschema
  • identische Datenbanklogik
  • reproduzierbare Ergebnisse
  • stabile Testfälle

Die Anwendung arbeitet während der Tests mit denselben Mechanismen wie im regulären Betrieb. Lediglich die Datenbasis wird
gezielt kontrolliert.

Diagramm über die Architektur der SoSo TestFramework mit Vorteilen

Beispiel für einen automatisierten Endpunkt-Test

Ein Testfall überprüft beispielsweise:

  1. Aktuellen Zustand eines Datensatzes abrufen
  2. Änderung über einen API-Endpunkt ausführen
  3. Geänderten Zustand erneut abrufen
  4. Erwartetes Ergebnis validieren

Dadurch wird nicht nur geprüft, ob ein Endpunkt erreichbar ist, sondern ob die zugrunde liegende
Geschäftslogik korrekt arbeitet.

Ablauf eines API-Endpunkt-Tests

Vorteile des SoSo TestFrameworks

Das von SSA SoftSolutions entwickelte Vorgehensmodell bietet:

  • hohe Praxisnähe
  • geringe Wartungskosten
  • realitätsnahe Testbedingungen
  • zuverlässige Regressionserkennung
  • einfache Erweiterbarkeit
  • Nutzung echter Backend- und Datenbanklogik

Fazit

Für individuelle Unternehmenssoftware reichen isolierte Unit-Tests häufig nicht aus. Entscheidend ist, dass Geschäftsprozesse auch nach Änderungen weiterhin funktionieren.

Durch Fullstack-Tests auf Basis realer API-Aufrufe und kontrollierter Testdaten entsteht eine robuste Qualitätssicherung, die technische Stabilität und langfristige Wartbarkeit gleichermaßen unterstützt.

SSA SoftSolutions GmbH setzt dabei auf einen pragmatischen Ansatz, der reale Geschäftsanforderungen in den Mittelpunkt stellt und Softwarequalität messbar macht.

Fachlicher Beitrag von Harald Reuber, B. Sc. Informatik, Developer Experience Engineer bei der SSA SoftSolutions GmbH