Testaufwand
# Testaufwand

Als Testaufwand gelten die Kosten, die für das Testen anfallen.

## Allgemeines

Der Testaufwand gehört zu den so genannten Qualitätskosten des zu prüfenden Produkts. Er wird zum Aufwand für präventive Maßnahmen gezählt. Diese schließen auch die Kosten für die Qualität in der Softwareerstellung (siehe „statisches Testen“) ein. Ebenso gehören im Besonderen die aktiv ausgeführten Tests (= „dynamische Testarten“) – aus Sicht des Projektziels „Produktivsetzung“ – zur Fehlervermeidung.
Diesem präventiven steht nach der Aufwand für reaktive Maßnahmen gegenüber, die Kosten der Fehlerbeseitigung. Im engeren Sinn zählen sie nicht zum Testaufwand, sondern zum Aufwand für die Implementierung. Trotzdem werden sie, falls sie während des Testens auftreten, häufig zum Testaufwand gezählt. Hierzu gehören auch Kosten und Schäden, die (durch nicht entdeckte Fehler) erst nach der Produktivsetzung auftreten. Sie können auch außerhalb des Unternehmens (bei Kunden, in der Umwelt etc.) wirken und (in dramatischen Fällen) sogar die Existenz des Unternehmens gefährden.
Hierzu gilt die Faustformel Je später Fehler entdeckt werden, desto aufwändiger ist ihre Behebung, woraus sich auch der Umkehrschluss ableitet: Qualität muss (im ganzen Projektverlauf) implementiert, nicht 'eingetestet' werden.
Faktoren, die den Testaufwand beeinflussen, sind: Reifegrad des Entwicklungsprozesses, Qualität und Testbarkeit der Testobjekte, die Testinfrastruktur, Mitarbeiter-Qualifikation, Qualitätsziele und die Teststrategie.

## Softwaretests
### Ansätze zur Schätzung des Testaufwandes

Alle Faktoren zu analysieren ist schwierig, da sich die meisten Faktoren gegenseitig beeinflussen. Es können folgende Ansätze zur Schätzung benutzt werden: metrikbasierte (im englischen genannt: top-down estimation) und expertenbasierte (im englischen: bottom-up estimation) Ansätze.
Die Metrik-basierten Techniken (als Controlling-Instrumentarium) sind formelbasiert und werden meist relativ zum Entwicklungsaufwand angegeben: dazu zählen unter anderem das Function-Point-Verfahren (FPA) und die Test-Punkt-Analyse (TPA). Dabei können entsprechende Informationen (z. B. Aufwand je Projektphase oder je Testobjekt, Abweichung Plan / Ist, Anzahl gefundener Fehler, Anzahl erforderlicher Retests usw.) ermittelt und dargestellt werden, um die Qualität und die Effizienz des Testprozesses nachzuweisen.
Die Experten-basierten Techniken basieren auf ausführlichen Informationen und involvieren oft Experten. Folgende Techniken gehören dazu: Projektstrukturplan (im englischen: Work Breakdown Structure (WBS)) und Wide Band Delphi (WBD).

### Testaufwand aus der Literatur

Der Testaufwand (in Softwareprojekten) liegt je nach Autor zwischen 20 % und 70 % der Gesamtkosten. Pol, Koomen und Spillner beziffern sie in mit 30 % bis 40 % des Gesamtbudgets. Die Streubreite wird von projektspezifischen Gegebenheiten bestimmt.
Wenn der Testaufwand für einzelne Phasen des Testprozesses betrachtet wird, ist er unterschiedlich verteilt: Mit je circa 40 % sind häufig die Test-Spezifikation und die Test-Durchführung beteiligt. Der Rest wäre für die Planung, Auswertung und den Testabschluss zu veranschlagen.
Nach den „Prinzipien des Softwaretestens“ (ISTQB), Grundsatz 2, ist vollständiges Testen nicht möglich (*); denn Testen kann zwar die Anwesenheit von Fehlern zeigen, nicht aber deren Abwesenheit (Grundsatz 1) – (*) weil alle Einflussgrößen, in allen möglichen Kombinationen, praktisch nicht prüfbar sind (außer bei trivialen Funktionen). Deshalb müssen die Testaktivitäten strategisch geplant werden, um die Testintensität, somit auch den Testaufwand, „angemessen“ zu wählen. Nach Juran, referenziert in, soll der Testaufwand so hoch sein, dass die Gesamtkosten (Testaufwand plus potenzielle Fehlerfolgekosten) auf einem möglichst niedrigen Niveau liegen. Wie die Grafik schematisch zeigt, entstehen bei zu geringer Testintensität überproportional hohe Fehlerfolgekosten, bei zu hoher Testintensität (deren Kosten linear verlaufen) sind die Testkosten im Verhältnis zur erwartbaren Reduzierung von Fehlerfolgekosten (aus noch vorhandenen Fehlern) zu hoch.
Nach ISTQB soll die Höhe des Testaufwands so bemessen sein, dass die Tests genug Informationen liefern, um über die Freigabe (der Software) entscheiden zu können.