Aktionen

Erfahrungsbasiertes Testen durchführen

Aus PQWiki


Schnelligkeit
★★☆
Einfachheit
★★☆
Agilität
★★★

Ziele

Die Ziele dieses B.P. sind:
  • Vertrauen in die Qualität der Software erhöhen
  • Informationen über das Qualitätsniveau gewinnen
  • Fehler finden

Motivation/Problemstellung

Neben Testaktivitäten, die für die Durchführung der Tests zunächst systematisch Testfälle aus Artefakten wie Code, Modellen oder Anforderungen ableiten, können Tests auch basierend auf Erfahrung durchgeführt werden. Dafür wird keine weitere Dokumentation über das System benötigt, so dass schneller mit dem Testen begonnen werden kann. Die Qualität solcher Tests hängt jedoch stark vom Wissen des Testers ab, sowohl über das System als auch über mögliche Fehlerbilder. Zum Teil können dadurch Fehler und Probleme entdeckt werden, die sich sonst schwierig finden lassen.

Kurzbeschreibung

Lesebrille.jpg
Das erfahrungsbasierte Testen beschreibt eine Art des Testens, bei der Testfälle nicht anhand einer Testbasis im Voraus spezifiziert werden, sondern von der testenden Person direkt bei der Ausführung der Applikation / Software entworfen werden. Bei dieser Vorgehensweise wird oft keine Dokumentation der Testfälle vorgenommen, sondern es werden lediglich die zu testenden Bereiche der zu testenden Applikation / Software beschrieben. Neben dem rein explorativen Testen, bei dem ein Tester während des Testens intuitiv durch die Software navigiert, um Probleme zu finden, kann auch eine Checkliste genutzt werden, die beispielsweise gewisse Fehlerbilder enthält, auf die geprüft wird. Eine Testcharta, welche Anweisungen oder Ideen für den erfahrungsbasierten Test enthält, kann genutzt werden, um Bereiche für den erfahrungsbasierten Test festzulegen, und somit diese Art des Testens grob zu steuern.

Input

* Das zu testende Programm * Optional Testcharta oder Checklisten

Output

* Testergebnisse, Fehlerberichte

Rahmenbedingungen

Rolle (Ausführender)

Tester

Werkzeuge, Hilfsmittel

Das zu testende Programm

Vorkenntnisse und Erfahrungen

Vorerfahrungen in der Domäne, über das Programm oder über das Testen und Fehlerschwerpunkte allgemein

Ort und Umgebung

Büro

Weitere Teilnehmer

Optional Personen, die das System sehr gut kennen und mögliche Schwachpunkte antizipieren können

Voraussichtliche Dauer

Je nach Komplexität der Anwendung, bzw. der geplanten Zeitdauer

Vorgehensweise

Vorbereitung

Das System und dessen Eigenheiten sollten vor Ausführung bekannt sein – in agilen Teams ist das durch die enge Integration von Testern häufig gegeben. Eine Testcharta kann definiert werden, um den Fokus für das erfahrungsbasierte Testen festzulegen. Zu beantwortende Fragen hier sind u.a. was getestet werden soll, mit welcher Methode getestet werden soll, wie lange getestet werden soll, und auf welche Probleme ein Fokus gelegt werden soll.

Durchführung


Das erfahrungsbasierte Testen ist eine Vorgehensweise, die umso besser funktioniert, je mehr die testende Person über die Eigenheiten des Systems weiß. Idealerweise ist der Tester bereits frühzeitig bei der Planung, dem Design, und der Entwicklung des Systems eingebunden. Es empfehlen sich weiterhin Gespräche mit Entwicklern, um die Bereiche mit dem größten Risikopotential zu identifizieren. Ebenso hilft es, Vorgänger-Versionen der zu testenden Software oder ähnliche Anwendungen und deren Schwachstellen zu kennen. Beim erfahrungsbasierten Testen wird anschließend gezielt versucht, das zu testende Programm mit diesem Wissen zu Fehlverhalten zu bewegen.

Nachbereitung

Die gefundenen Fehler werden dokumentiert und an die Entwickler übergeben. Erfahrungen über gefundene Probleme sollten auch im Team besprochen werden, um Wissen zu streuen.

Gütekriterien/Empfehlungen

Je erfahrener die Tester sind, desto besser funktioniert die Fehlerfindung, da es bei dieser Art des Testens darauf ankommt, ein Gespür für mögliche Probleme zu haben und zu nutzen. Erfahrungsbasiertes Testen sollte in der Regel nicht als einzige Testmethodik eingesetzt werden, sondern lediglich ergänzend. Schwerpunktmäßig wird diese Art des Testens auf höheren Systemebenen eingesetzt (beispielsweise im Systemtest), da auf niederen Teststufen in der Regel ausreichend Informationen für systematische Testmethoden vorliegen.

Risiken

Die Best Practice eignet sich nur bedingt bei unerfahrenen Testern oder bei wenig vorhandenem Wissen über die Domäne der Anwendung. Oftmals wird diese Best Practice mit einem undifferenzierten und wenig effizienten ungezielten Ausprobieren verwechselt. Tests, die durchgeführt werden, sind nicht immer wiederholbar, da sich der Tester durch seine Intuition leiten lässt und die Dokumentation über den Verlauf der Tests in der Regel nur eine untergeordnete Rolle spielt. Zudem ist häufig nur eine unvollständige Aussage zur Überdeckung der Tests möglich, da es keine Testbasis gibt.

Schlagworte

Interne Validierung, Qualitätssicherung, Test

Weiterführende Informationen

Informationen im Internet

Literatur

* C. Kaner, J. Bach, and B. Pettichord: Lessons Learned in Software Testing, Wiley Computer Publishing, 2002.