Erfahrungsbasiertes Testen

R 2.0.0

Was ist erfahrungsbasiertes Testen?

Was ist erfahrungsbasiertes Testen?

Testen, das auf der Erfahrung, dem Wissen und der Intuition des Testers basiert.

Anwendungsbeispiel

Anwendungsbeispiel
ALT MISSING

Eddy und Theo besprachen die nächsten Schritte bis zur anstehenden Inbetriebnahme. „Was unsere Testaktivitäten betrifft, sind wir gut aufgestellt", fasste Theo zusammen, „Wir haben unsere Qualitätsziele alle erreicht und sind bei allen wichtigen Metriken, wie beispielsweise den Abdeckungsgraden, über unseren Mindestanforderungen. Trotzdem möchte ich unseren letzten Testzyklus um einige neue Techniken erweitern. Ich denke da an das erfahrungsbasierte Testen."

ALT MISSING

Eddy versuchte unbemerkt mithilfe seines Smartphones nach dem Begriff zu googeln. Gehört hatte er den Ausdruck schon einmal. Aber war das nicht nur ein Euphemismus für wildes, unsystematisches Herumklicken auf der Benutzeroberfläche? Sogleich fiel ihm eine unangenehme Begegnung mit einem Urgestein des Fachbereiches ein, Claudia, die, nachdem Theo bei einer früheren Gelegenheit seine elaborierte Testmethodik vorgeführt und erklärt hatte, bräsig die Backen aufblies und so etwas wie „Was soll der Kokolores" schnaubte. Anschließend zeigte sie Eddy ihr gewohntes Vorgehen: Die am häufigsten benutzten Anwendungsfälle kannte sie natürlich auswendig, schließlich hatte sie großen Anteil an der Erstellung der fachlichen Spezifikation.

ALT MISSING

Schnell glitten damals ihre Finger über die Tastatur und präzise steuerte sie den Mauszeiger um durch die Eingabefelder und Ergebnislisten der Anwendung zu navigieren. Scheinbar fehlerfrei wanderte sie so durch die unterschiedlichen Prozesse und arbeitete schnell ein halbes Dutzend Anwendungsfälle ab. Eine Stunde war das so gegangen. Theo saß mucksmäuschenstill neben Claudia, deren Ruf als unangefochtene Expertin auf ihrem Fachgebiet legendär war. Einerseits versuchte er möglichst viel von ihrer Vorgehensweise aufzuschnappen, andererseits wurde jede Frage und Anmerkung von seinem Gegenüber lediglich mit einem Grunzen quittiert, dessen genauer Bedeutung Eddy lieber nicht auf den Grund gehen wollte.

ALT MISSING

Plötzlich ließ die Spannung im Körper der Sachbearbeiterin nach und sie sackte auf ihrem Drehstuhl zurück. „Fertig", meinte Eddy zu verstehen. „Der Abnahmetest ist fertig, alles okay". „Wo sind denn die Testfälle dokumentiert'’, fragte er vorsichtig, „ich sehe da nur ein paar Notizen auf Ihrem Schreibtisch". „Das sind nur ein paar Stichworte, von Dingen, die mir beim Testen aufgefallen sind. Ich rufe gleich in der Entwicklung an damit das heute noch geändert wird." „Und was schreiben Sie in den Testbericht?" bohrte Eddy unvorsichtigerweise nach. „Testbericht?", entgegnete ihm sein Gegenüber fragend, „Sag ich doch, es ist alles okay!". Eddy lag noch eine Bemerkung auf der Zunge, aber dann sah er, wie sich Claudias Gesichtsfarbe bedenklich ins Tiefrote veränderte und er biss sich auf die Zunge. Als wenige Tage nach der damaligen Inbetriebnahme noch zahlreiche Abweichungen in weniger häufig benutzten Anwendungsfällen gemeldet wurden, schien ihm diese Testtechnik verbesserungswürdig zu sein.

ALT MISSING

Zusammen mit Theo verbrachte er die folgenden Tage damit ein Konzept zu entwickeln, mit dem sie Claudias durchaus beachtliche Erfahrung mit einem systematischen, nachvollziehbaren Vorgehen vereinbaren konnten. Das konnte nur eine Kombination von anforderungsbasiertem Testen, rückverfolgbaren Einzelprüfungen von Akzeptanzkriterien und der fachlichen Tiefe bestehen. Das wollten sie gar nicht großartig ändern. Nur der Zeitpunkt, an dem erfahrungsbasiert getestet wurde, war viel zu spät. „Wir müssen den Fachbereich davon überzeugen, früher in die Testzyklen mit einzusteigen", meinte Theo. Dann könnten wir beispielsweise durch Paartesten, durch Zusammenarbeit von Fachbereich und IT direkt während der Tests also, sicherstellen, dass die Testfälle zumindest stichwortartig erfasst werden und die Fehler oder Änderungen über unser Ticketsystem auch dokumentiert werden. Somit kann der gesamte Entwicklungszyklus davon profitieren."

Beschreibung

Das erfahrungsbasierte Testen nutzt die Erfahrung von Testern, Entwicklern und (Fach-)Anwendern zur Ableitung der Testfälle, Testbedingungen und Testdaten. Verwendet wird auch die Kenntnis über die erwartete Nutzung der Software, ihrer Umgebung sowie wahrscheinliche Fehlerzustände und deren Verteilung im Testobjekt. Insbesondere als Ergänzung zu systematischen Testverfahren können erfahrungsbasierte Ansätze ihre volle Wirksamkeit entfalten.

Bei erfahrungsbasierten Testverfahren steht das Können, die Intuition und das Fachwissen im Vordergrund. Zum Beispiel:

  • Die Erfahrung mit ähnlichen Applikationen und Technologien

  • Fehlersammlungen/Fehlermodelle zu den verwendeten Technologien bzw. Programmiersprachen

  • Kenntnis von Vorgängersystemen und deren Schwächen

  • Kenntnis über die Rahmenbedingungen der Softwareentwicklung z.B. Komponenten, die unter starkem Zeitdruck erstellt werden

Bei den spezifikationsbasierten und strukturbasierten Testverfahren gibt es bestimmte Techniken (siehe auch Testentwurfsverfahren), die man als eine "Schritt-für-Schritt-Anleitung" anwenden kann, um Testfälle zu erstellen. Das heißt, wenn unterschiedliche Tester die Techniken gekonnt auf dieselben Anforderungen anwenden, werden sie auf die gleichen Testfälle kommen.

Erfahrungsbasierte Testverfahren

Intuitive Testfallermittlung

Häufig können Tester aufgrund ihrer Erfahrung bestimmte Fehler erahnen. Bei der intuitiven Testfallermittlung erstellen die Tester intuitiv im ersten Schritt eine Liste möglicher Fehlerzustände. Darauf basierend werden dann Testfälle entworfen, die auf diese Fehlerzustände abzielen.

  • Erstellen einer Liste mit möglichen Fehlhandlungen, Fehlerzuständen und Fehlerwirkungen, um daraus Tests abzuleiten.

  • Diese Liste wird erstellt aufgrund von

    • Erfahrungen

    • Informationen über Fehler

    • allgemeiner Kenntnis darüber, warum Software fehlschlägt

Exploratives Testen

Beim explorativen Testen startet der Tester fast ohne vorherige Vorbereitung mit der Testdurchführung.

  • „Die einfachste Definition von explorativem Testen ist Lernen, Testfallerstellung und Testfallausführung gleichzeitig.“ - James Bach

  • Ein Testansatz, bei dem die Tests dynamisch entworfen und ausgeführt werden, basierend auf Wissen, der Erkundung des Testelements und den Ergebnissen früherer Tests.

Checklistenbasiertes Testen

Checklistenbasiertes Testen ist eine etwas formellere Variante des explorativen Tests. Es wird eine Liste von Kontrollpunkten genutzt, welche beachtet, überprüft oder beim Testen in Erinnerung gerufen werden muss. Alternativ nutzt man eine Menge von Regeln und Kriterien, gegen welche das zu testende Produkt verifiziert werden muss.

ISTQB definiert dieses Vorgehen als „ein erfahrungsbasiertes Testentwurfsverfahren, bei dem der erfahrene Tester eine Liste von Kontrollpunkten nutzt, die beachtet, überprüft oder in Erinnerung gerufen werden müssen, oder eine Menge von Regeln oder Kriterien, gegen die ein Produkt verifiziert werden muss.“

Der Entwurf der Checklisten basiert auf Erfahrung, Know-How sowie Fehlerverständnis bezüglich des Testobjekts und bietet als Hilfestellung insbesondere für wiederholbare Aktionen einen strukturierten Ansatz, mit dem verhindert wird, dass wichtige Elemente übersehen werden.

Nachvollziehbarkeit und Effizienz können gesteigert werden und die Checklisten kombinieren auf diese Weise den flexiblen sowie ansatzweise formellen Charakter bei den erfahrungsbasierten Tests.

Angefügt befindet sich ein mögliches Beispiel für den GUI Test einer typischen Login-Seite:

Testobjekt Inhalt Erledigt

Login-Seite

Ist das Logo an der richtigen Stelle gemäß Anforderungen?

Wird der Kopfzeilentext korrekt angezeigt?

Akzeptiert das „Benutzername/E-Mail-Feld“ gültige Eingaben?

Wird eine Fehlermeldung bei ungültigen Eingaben im „Benutzername/E-Mail-Feld“ ausgegeben?

Wird das Feld „Passwort“ korrekt angezeigt?

Erscheint bei Eingabe falscher Passwörter eine Fehlermeldung?

Werden Fehlermeldungen in der spezifizierten Farbe angezeigt?

Wird der Text der „Anmelden“ Schaltfläche korrekt angezeigt?

Ist die „Anmelden“ Schaltfläche anklickbar und funktioniert?

Wird der Text des Links „Passwort vergessen“ korrekt dargestellt?

Funktioniert der Link „Passwort vergessen“ auf die spezifizierte Weise?

Wird der Text des Links „Neues Konto erstellen“ korrekt dargestellt?

Funktioniert der Link „Neues Konto erstellen“ auf die spezifizierte Weise?

…​

Sitzungsbasiertes Testen

Eine höhere formale Stufe des erfahrungsbasierten Tests ist das sitzungsbasierte Testen. Mithilfe einer vorbereiteten Test-Charta, Session Sheets sowie zeitlicher Begrenzung werden in den Testsitzungen Erkenntnisse gewonnen und reproduzierbar erfasst.

Vor- und Nachteile des erfahrungsbasierten Testens

Das erfahrungsbasierte Testen ist eine schnell einsetzbare und flexible Möglichkeit Software zu testen und eignet sich hervorragend, um im agilen Umfeld Test-Aktivitäten in den Entwicklungszyklus hineinzunehmen. Die einzige Voraussetzung ist, dass genügend Erfahrungswissen verfügbar ist. Diese Tests lassen sich zumindest stichwortartig, oder anhand einer Testcharta, was Ihre Durchführung und Ergebnisse betrifft, dokumentieren und sind daher genauso Teil des Testvorgehens und auswertbar wie alle anderen Testaktivitäten auch.

Dennoch gibt es auch Nachteile beim erfahrungsbasierten Testen. Das Vorgehen verführt oft zu Nachlässigkeiten, was die Dokumentation betrifft. Dann wird es schwierig, die Ergebnisse des Tests zu reproduzieren und die Kommunikation mit der Entwicklung beispielsweise wird erschwert. Darüber hinaus haben die Fachexperten oft einen vollen Terminkalender und sind nicht so zuverlässig einplanbar wie etwas automatisierte Unit- oder Fachtests. Dann braucht man einen Plan B.

Insgesamt kann das erfahrungsbasierte Testen ein wertvoller Bestandteil der jeweils eingesetzten Testmethodik sein, aber es sollte nicht als Ersatz für formale Methoden verwendet werden. Ein optimales Testvorgehen wird daher darin bestehen beide Verfahren miteinander zu kombinieren, sodass sich Stärken und Schwächen gegenseitig aufheben.

Quellen