Kennst du die 7 Prinzipien des Softwaretestings?

Testing

Die 7 Prinzipien der Softwaretestings

Im Bereich Softwaretesting haben sich in den letzten 40 Jahren einige Grundsätze herauskristallisiert, die sich in der Praxis bewährt haben – auch bei uns. Heute werden sie als Leitlinien angesehen und sollten in der Softwareentwicklung und insbesondere beim Testen im Hinterkopf behalten werden:

  1. Testen zeigt die Anwesenheit von Fehlern
    Mit Testing wird die Anwesenheit, nicht die Abwesenheit von Fehlern aufgezeigt. Ausführliches Testing reduziert die Wahrscheinlichkeit, dass eine Software unentdeckte Fehler enthält und mit diesen in Produktion geht. Es lässt sich jedoch nicht nachweisen, dass ein System fehlerfrei ist, selbst wenn beim Testing keine Fehler aufgedeckt werden.
  2. Vollständiges Testen ist nicht möglich
    Die Komplexität heutiger Systeme ist so gross, dass es fast unmöglich ist, einen vollständigen Test durchzuführen, der alle Eingabewerte in allen Kombinationen und unter Berücksichtigung aller Vorbedingungen enthält. Die benötigte Zeit und Kosten wären enorm. Das Testing sollte sich daher auf jene Bereiche fokussieren, bei welchen die Priorität für den Kunden oder das Risiko für Fehler hoch ist.
  3. Frühes Testen
    Je später Fehler in einer Software gefunden werden, desto aufwändiger und teurer wird es, sie zu beheben. Mit frühzeitigem Testing können Fehler früh aufgedeckt und kostengünstig behoben werden. Testing sollten also möglichst früh im Projekt eingesetzt werden.
  4. Häufung von Fehlern
    In der Regel enthalten einige wenige Module einer Software die meisten Fehler. Dabei handelt es sich meist um die komplexeren Module, welche beim Testing vertieft geprüft werden sollten. Man kann davon ausgehen, dass da, wo bereits viele Fehler aufgedeckt wurden, noch weitere Fehler vorhanden sind. Der Testaufwand pro Modul richtet sich daher nach der erwarteten und der tatsächlichen Fehlerdichte.
  5. Wiederholungen zeigen keine Wirkung
    Durch das Wiederholen der gleichen Tests auf der gleichen Software werden keine neuen Fehler aufgedeckt. Tests müssen regelmässig überprüft und angepasst werden, um ihre Effektivität zu erhalten.
  6. Testen ist kontextabhängig
    Testing ist immer kontextbezogen und muss der Software und deren Einsatzgebiet angepasst werden. So sind beispielsweise Sicherheitsaspekte in manchen Systemen sehr wichtig, in anderen dagegen überhaupt nicht. Eine Buchhaltungssoftware ist anders zu testen als eine Spiele-App und ein Onlineshop ist anders zu testen als eine Flugzeugsoftware.
  7. Trugschluss: „Keine Fehler“ bedeutet ein brauchbares System
    Testing und Bugfixing garantieren nicht, dass die Software am Ende den Vorstellungen des Kunden entspricht und er damit zufrieden ist. Ein frühzeitiger Einbezug des Kunden in den Entwicklungs- und in den Testprozess sind daher unerlässlich.

Quelle: Spillner/ Linz «Basiswissen Softwaretest» (5. Auflage), Heidelberg, 2012