Fehler und Schwachstellen finden

Software erfolgreich testen

| Autor / Redakteur: Robert Gast * / Stephan Augsten

Beim Schreiben von Testfällen hilft es, sich in eine dritte Person hineinzuversetzen, die sich mit der Software nicht auskennt.
Beim Schreiben von Testfällen hilft es, sich in eine dritte Person hineinzuversetzen, die sich mit der Software nicht auskennt. (Bild: startupstockphotos.com / CC0)

Um eine Software stabil und erfolgreich einsetzen zu können, gilt es, möglichst viele Fehler und Schwächen vor dem Produktivbetrieb zu finden. Wie erfolgreich ein Bug Hunter ist, hängt dabei maßgeblich von den definierten Testfällen ab.

Beim Erstellen der Testfälle für eine Software sollte man überlegen, wie die Jagd nach Bugs effektiv gestaltet werden kann. Nur jeder bekannte Fehler und jede bekannte Anfälligkeit lassen sich beheben. Jedes behobene Problem stellt letztlich einen Fortschritt in Richtung des Produktivbetriebs der Software dar.

Damit das gelingt, sollten Tests möglichst umfassend spezifiziert werden. Ob man dabei die Bug Hunter vor Ort arbeiten lässt, auf einen Dienstleister vertraut oder sich in einer Community wie Testeron.io engagiert, ist dabei unerheblich. Im Folgenden befassen wir uns damit, wie ein Testfall aussehen kann.

Beispiel Zimmervermietung online

Schauen wir uns anhand einer Zimmervermietung online an, was das genau bedeutet. Bis der Interessent eine Buchung erfolgreich abschließen kann, muss er einige Schritte durchführen. Jeder Schritt sollte kritisch dahingehend hinterfragt werden, wo es vielleicht Probleme geben könnte.

Zuerst wird anhand einer Ortsangabe und des Datums angefragt, welche Zimmer verfügbar sind. Dementsprechend ist es wichtig, folgendes zu wissen:

  • Wie geht das System mit falschen Ortsangaben um?
  • Werden die Datumseingaben auf Plausibilität überprüft?
  • Ist die Eingabe der Ortsangabe immer zielführend?

Im nächsten Schritt werden Angaben wie Anzahl der Gäste und weitere Parameter für den Aufenthalt abgefragt. Es stellt sich also die Frage:

  • Sind alle weiteren denkbaren Parameter abgebildet? Hierzu könnten separate Betten und Kinderbetten ebenso zählen wie ein Kfz-Stellplatz, die Unterbringung von Fahrrädern, Raucher oder Nichtraucher, Küche, Wifi oder Angaben zur öffentlichen Verkehrsanbindung. Fragen Sie den Tester auch, was aus seiner Sicht vielleicht fehlt.

Die Zahlung und damit der erfolgreiche Abschluss der Buchung ist aus Sicht des Betreibers das Wichtigste. Der Interessent sollte aus verschiedenen Bezahlformen wählen können. Im Rahmen der Testfälle gilt es zu klären:

  • Ist der Bezahlprozess einfach und transparent?
  • Unter welchen Umständen kommt es zum Abbruch bei einer Zahlung?
  • Wie ist die Akzeptanz der angebotenen Zahlmethoden?

Die angeführten Punkte sind eine erste Grundlage, um Testfälle zu formulieren.

Struktur Testfall

Ein Testfall hat sollte grundsätzlich diese Felder haben:

Vorbedingungen – Was benötigt der Tester, um diesen Testfall durchführen zu können?

Beschreibung – Geben Sie dem Tester eindeutige und einfache Anweisungen, was er zu machen hat.

Erwartetes Ergebnis – wie soll sich das System verhalten nachdem der Testfall durchgeführt wurde.

Je nach Anforderungen und Bedarf lassen sich Testfälle mit weiteren Feldern versehen.

Gruppieren Sie Testfälle zu einem Plan mit maximal 20 bis 25 Testfällen. Der Testplan sollte allerdings nicht mit zu vielen Testfällen überladen sein, sonst droht ein Abbruch beim Testen.

Testfälle offen formulieren

Beim Schreiben der Testfälle hilft es, sich in eine dritte Person zu versetzen, welche die Software nicht kennt. Geben Sie alle nötigen Informationen und Anweisungen, so dass diese Person in der Lage ist, mit Ihrer Software zu arbeiten und die Tests durchzuführen.

Es gibt verschiedene Möglichkeiten, Testfälle so zu formulieren, dass der Tester durch seine Eingaben und Verhalten am System auf Fehler kommt. Wie erwähnt braucht ein Tester genaue Anweisungen, was er machen soll. Jedoch sollten die Möglichkeiten, wie er dabei vorgehen soll, möglichst vage bzw. offen formuliert werden. Gibt man dem Tester alles genau vor, inklusive Testdaten, so wird er sehr wahrscheinlich auf das gleiche Testergebnis kommen wie Sie.

Für das Beispiel oben, also ein Zimmer online mieten, sollte man überhaupt keine genauen Daten mitgeben. Besser ist es, den Tester dazu aufzufordern, eigene Daten einzugeben. Bei einigen Themen ist dies sicher leichter als bei sehr speziellen. Bei komplizierten Szenarien könnte ein Tester auch damit überfordert sein, sich eigene Daten auszudenken. Versuchen Sie immer, die Balance zwischen offener Vorgehensweise und sehr genauen Vorgaben zu halten. Letztlich soll eine Vielzahl von Testern ihre Tests auch durchführen können.

Interessant wird es, wenn der Tester für seinen Testfall ein Ziel vorgegeben bekommt, aber er selber sich den Weg suchen muss. Schafft er es nicht, eigenständig zum Ziel zu kommen, bedeutet das möglicherweise, dass die Benutzerführung einige Schwächen hat. Fordern Sie den Tester auf, Abweichungen und subjektive Eindrücke im Ergebnis zu dokumentieren.

Vorbedingungen zum Testen

Achten Sie immer darauf, dass ein Tester alles hat, was er für seine Arbeit benötigt. Hierfür gilt es neben dem Zugang zu Systemen und Testdaten auch zu klären, welche Software zur Verfügung stehen muss.

Möglichst viele Tester bekommen

Sorgen Sie dafür, dass ihre Testfälle von möglichst vielen Prüfern durchgeführt werden. Es erhöht die Wahrscheinlichkeit, interessante Testergebnisse zu bekommen.

Ergebnisse auswerten und Fehler beheben

Sammeln Sie alle Testergebnisse strukturiert und werten diese nach Fehlern und Kommentaren aus. Fehler sollte man mit einem Bug Tracking Tool verwalten. Es gibt eine Reihe von kommerziellen Angeboten oder Open-Source-Programmen wie Bugzilla, Redmine oder Mantis.

Folgetests

Ist ein Fehler oder Problem behoben, muss auch das sorgfältig nachgetestet werden. Erst bei einem erfolgreichen Test kann der Vorgang abgeschlossen werden. Stellen Sie dem Tester also die berichtigte Version zur Verfügung und bitten Sie um einen Folgetest. Je nach Komplexität der Anforderung kann es sein, dass ein Fehler erst nach 2 oder 3 Durchgängen vollständig behoben ist.

Regelmäßiges Testing

Die Pläne und Testfälle dienen natürlich nicht nur zur Prüfung von neuen System. Ebenso sollte man regelmäßig testen, beispielsweise bei Erweiterungen an der Software oder Aktualisierungen des Grundsystems.

Hat sich die Software geändert, so prüfen Sie, ob die Ziele und Inhalte ihrer Testfälle noch den aktuellen Anforderungen entsprechen. Wenn nicht, so passen Sie die Testfälle an. Ändern sich beispielsweise Komponenten der Server, so sollte im Rahmen neuer Tests geklärt werden, ob sich das System aus Anwendersicht genauso wie vor der Aktualisierung verhält.

Erfolg Ihrer Software

Ein Geschäft, das sich auf Softwaresysteme stützt, muss unter allen Umständen zuverlässig arbeiten. Unzureichend getestete Software kann für Unternehmen katastrophale Folgen haben, der jährlich verursachte Schaden geht in die Milliarden Euro jedes Jahr. Akribisch getestete Software trägt daher wesentlich zum Erfolg bei. Der Aufwand, den sie in Tests stecken, macht sich immer bezahlt.

* Robert Gast ist Projektverantwortlicher bei Testeron.io.

Kommentare werden geladen....

Kommentar zu diesem Artikel

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 44953598 / Testing)