Testen

Das Testen von Software ist die wichtigste Methode der Qualitätssicherung und dient dazu, Fehler in einem Softwaresystem zu finden und seine Gebrauchstauglichkeit sicherzustellen.

Eine gängige Unterteilung verschiedener Teststufen ist die folgende:

  • Häufig auf Auftraggeberseite wird ein Akzeptanz- oder Abnahmetest durchgeführt, um den tatsächlichen Gebrauchswert der Software zu testen.
  • Der Systemtest vergleicht den tatsächlichen mit dem geforderten Stand der Anforderungen an die Software.
  • Im Integrationstest wird das korrekte Zusammenspiel von Komponenten der Software überprüft.
  • Im Komponenten- oder Unit-Test wird eine Komponente der Software (unit) isoliert auf korrekte Funktionalität überprüft.

Sowohl gegen Funktionalität als auch nicht-funktionale Anforderungen wie Performance oder Usability kann getestet werden bzw. können auch diese Anforderungen selbst validiert werden.

Testautomatisierung dient dazu, Tests effizient und wiederholbar zu machen. Für Komponententests entspricht sie inzwischen dem Standard, mit xUnit gibt es eine ganze Familie von Tools, die Entwickler dabei unterstützen. Testautomatisierung ist aufwändig, aber sie hat einen stark positiven Einfluss auf die Änderbarkeit bzw. das Änderungsrisiko von Software.