Zum Inhalt springen

Suchen...

Testentwurfsmethoden

25 bis 30 Testdesign-Techniken existieren, doch die meisten Tester nutzen kaum eine. Warum fünf davon für 90 % aller Testaufgaben reichen.

8 Min. Lesezeit
Cover für Testentwurfsmethoden

Testdesign-Techniken sind strukturierte Methoden, mit denen Tester nachweisbare Testabdeckung erzeugen. Sie lassen sich in vier Gruppen einteilen: prozessorientiert, bedingungsorientiert, datenorientiert und erscheinungsorientiert. Wer aus jeder Gruppe mindestens eine Technik beherrscht, deckt rund 90 Prozent der typischen Testsituationen in der Praxis ab.

Das Wichtigste in Kürze

  • Zwischen 25 und 30 Testdesign-Techniken existieren insgesamt, aber die meisten Tester brauchen im Berufsalltag nur etwa zehn davon wirklich.
  • Alle Testdesign-Techniken lassen sich in vier Gruppen einteilen: prozessorientiert, zustandsorientiert, datenorientiert und Erscheinungsbild, und ein Tester sollte aus jeder Gruppe mindestens eine Technik beherrschen.
  • Wer nur Techniken aus einer einzigen Gruppe kennt, läuft in die Falle: Eine zustandsorientierte Technik hilft nicht weiter, wenn das eigentliche Problem datenbasiert ist.
  • Entwickler testen beim Unit-Testing oft nur den Happy Path und vernachlässigen Fehlerfälle, dabei reicht schon Äquivalenzpartitionierung, um diese Lücke zu schließen.
  • Vorlagen für Techniken wie Entscheidungstabellen senken die Einstiegshürde erheblich, weil Lernende die Tabellenstruktur nicht mehr selbst konstruieren müssen, sondern sie direkt befüllen.

Viele Tester kennen Testdesign-Techniken, wenden sie aber nicht an. Rik Marselis unterrichtet diese Techniken seit fast 25 Jahren, und genau diese Lücke zwischen Wissen und Praxis frustriert ihn.

Der erste Grund ist banal: Niemand verlangt von den Testern, eine Technik einzusetzen. Wo keine Erwartung besteht, fällt die strukturierte Vorgehensweise als Erstes weg.

Der zweite Grund hängt an der Qualität des Systems. Ist die Softwarequalität schlecht, braucht es keine ausgefeilte Technik. Du drückst einen Knopf und hast den Fehler gefunden. Erst bei guter Qualität zeigt eine Technik ihren Wert, weil sie belegt, welche Abdeckung tatsächlich erreicht wurde.

Der dritte Grund ist die Hürde des richtigen Lernens. Wer eine Zertifizierungsprüfung besteht, kennt die Grundlagen und kann Antwort A, B, C oder D ankreuzen. Die echte Anwendung ist komplizierter als jede Prüfungsfrage, und genau an dieser Stelle steigen viele aus.

Zu viele Techniken sind selbst Teil des Problems

Wer ISTQB Foundation, Advanced Test Analyst und Technical Test Analyst durchläuft, lernt etwa 15 bis 20 Testdesign-Techniken. Insgesamt existieren rund 25 bis 30, je nachdem, ob man Varianten als eigene Technik zählt.

Diese Menge überfordert. Frühere TMAP-Zertifizierungen verlangten Kenntnisse in 19 Techniken und Ansätzen, in einem dreitägigen Kurs schlicht nicht vermittelbar. Das Ergebnis war eine Prüfung, die man bestand, ohne wirklich etwas gelernt zu haben.

TMAP hat daraus eine Konsequenz gezogen. Der Einstiegskurs vermittelt fünf Techniken und einen Ansatz, dafür mit genug Zeit und Übung, um sie auf Anfängerniveau tatsächlich einzusetzen. Weniger Techniken, dafür anwendbar.

Vier Gruppen ordnen das gesamte Feld

Alle Testdesign-Techniken lassen sich vier Gruppen zuordnen. Diese Einteilung, von Rik und seinem Kollegen Bert erarbeitet, macht das Feld überschaubar.

  • Prozessorientiert: Pfadtest mit verschiedenen Stufen der Pfadabdeckung, Zustandsübergangstest.
  • Zustandsorientiert (bedingungsorientiert): Entscheidungstabellen, bei denen Bedingungen die Testfälle festlegen.
  • Datenorientiert: Äquivalenzpartitionierung, wenn ein Datenelement mehrere Partitionen hat.
  • Erscheinungsbild (Appearance): syntaktische Prüfungen wie Schaltflächen, Schriftarten, Farben sowie nicht-funktionale Aspekte wie Leistung und Benutzerfreundlichkeit.

Die praktische Konsequenz ist klar: Beherrsche mindestens ein bis zwei Techniken pro Gruppe. Wer nur Techniken aus einer einzigen Gruppe kennt, läuft in die Falle.

Ein Team, das Rik als Coach begleitete, entschied sich für den Einfachen Vergleichstest als Standard, weil dieser hohe Effizienz und Wirksamkeit verspricht. In der Praxis funktionierte es nicht. Das Team hatte ein datenbezogenes Problem, und eine bedingungsorientierte Technik ist dafür die falsche Wahl.

Welche Techniken die Grundausstattung bilden

Der Einstiegskurs deckt mit fünf Techniken und einem Ansatz alle vier Gruppen ab. Konkret sind das Äquivalenzpartitionierung und Randwertanalyse aus der Datengruppe, Pfadtest aus der Prozessgruppe, die Entscheidungstabelle aus der Bedingungsgruppe und der syntaktische Test aus der Gruppe Erscheinungsbild. Dazu kommt exploratives Testen als erfahrungsbasierter Ansatz.

Ein zweiter Kurs zu Hochleistungsqualität ergänzt je eine weitere Technik pro Gruppe. Zusammen ergibt das etwa zehn Techniken und zwei Ansätze.

Diese Toolbox reicht für den Großteil der Arbeit. Rund 90 Prozent der Tester brauchen über ihre gesamte Laufbahn nicht mehr als das.

Wie du die passende Technik auswählst

Vier Kriterien entscheiden, welche Testdesign-Technik passt.

  1. Die Art des Testproblems: Aus welcher der vier Gruppen wählst du?
  2. Das Qualitätsmerkmal: Geht es etwa um Leistung, landest du schnell in der Gruppe Erscheinungsbild.
  3. Das Risiko: Hohes Risiko verlangt mehr Abdeckung.
  4. Die Fähigkeiten der Beteiligten: Kennt das Team eine Technik nicht, wählst du entweder eine bekannte oder du schulst die Leute.

Beim Risiko genügen drei Stufen: niedrig, mittel, hoch. Prozentangaben führen in die Irre. Wer 72 Prozent fordert, muss erklären, warum nicht 69. Da die Techniken meist ohnehin nur drei Abdeckungsoptionen bieten, passen drei Risikostufen genau dazu.

Vorlagen senken die Einstiegshürde

Vorlagen machen Techniken lernbar, die vorher als schwierig galten. Eine TMAP-Trainerin gab zu, dass Entscheidungstabellen über Jahre schwer zu unterrichten waren. Mit einer frei verfügbaren Vorlage änderte sich das.

Der Grund ist einfach. Mit Vorlage musst du nicht mehr erklären, wie die Tabelle entsteht. Du zeigst die fertige Struktur, und die Lernenden füllen sie aus: Bedingungen festlegen, Aktionen festlegen, über Wahr-Falsch-Kombinationen das erwartete Ergebnis bestimmen. Das erwartete Ergebnis ist der Kern jedes Testfalls.

Nicht jede Technik braucht eine Vorlage. Die Randwertanalyse ist so intuitiv, dass Leute sie oft schon anwenden, ohne den Begriff je gehört zu haben.

Pfadtest ist die unterschätzte Technik

Pfadtest deckt alle Pfade in einem Geschäftsablauf ab und eignet sich besonders für Abnahmetests. ISTQB lehrt als einzige prozessorientierte Methode den Zustandsübergangstest, der Zustände voraussetzt. Doch nicht viele Systeme haben Zustände.

Bei Abnahmetests willst du Geschäftsabläufe prüfen, keine Zustände. Genau dafür ist der Pfadtest gemacht, auch bekannt als Prozesszyklustest.

In einem aktuellen Projekt führen Business-Analysten die funktionalen Abnahmetests durch. Weil sie gute Prozessabläufe hatten, schlug Rik ihnen den Pfadtest vor. Nach anderthalb Stunden Erklärung mit Übung und einer zweistündigen Sitzung an einem echten Prozessablauf standen die ersten Testfälle, schrittweise über eine Vorlage erstellt.

Abdeckung und Erfahrung gehören zusammen

Eine Technik allein reicht nicht. Sie belegt, dass du alles abgedeckt hast, was für dein Risikoniveau wichtig ist. Vertrauen entsteht aber erst aus der Kombination von Abdeckung und Erfahrung.

In jenem Projekt fanden die Analysten eine Situation, die ihre Testfälle nicht abdeckten, obwohl alle Pfade behandelt waren. Riks Rat: Füge auf Basis deiner Erfahrung einen Testfall hinzu. Aber wirf keinen weg, denn die abgedeckten Fälle brauchst du für den Nachweis.

Hier trifft deckungsbasiertes Testen auf praxisorientiertes Testen. Füge einen Testfall aus deiner Erfahrung hinzu, aber wirf keinen weg, denn den brauchst du für deine Abdeckung.

Rik Marselis

Je höher das Risiko, desto gründlicher die Testplanung. Erfahrungsbasierte Techniken wie exploratives Testen sollten immer mit geplanten Techniken kombiniert werden.

Auch Entwickler profitieren von einfachen Techniken

Beim Unit-Testing zählt für Entwickler oft die Codeabdeckung, doch “100 Prozent Abdeckung” sagt wenig, solange unklar bleibt, welche Art gemeint ist.

Linienabdeckung ist die schwächste Aussage. Manche Entwickler packen fünf Anweisungen in eine Zeile, eine ausgeführte Anweisung erzeugt schon 100 Prozent Abdeckung dieser Zeile. Besser ist Anweisungsabdeckung, sodass jede Anweisung geprüft wurde.

Am wertvollsten ist Entscheidungsabdeckung, denn Entscheidungen sind die wichtigsten Anweisungen im Code. Eine Move-Anweisung funktioniert mit hoher Wahrscheinlichkeit. Bei if-Anweisungen und while-Schleifen aber willst du wissen, ob die Logik den guten Fall und den Fehlerfall trifft.

Hier hilft schon Äquivalenzpartitionierung, die einfachste datenorientierte Technik. Viele Entwickler testen nur den Happy Path und vergessen den Fehlerfall. Diese Technik liefert für jede Klasse einen Testfall, den richtigen und den falschen.

Der eigentliche Hebel ist Bewusstsein, nicht Unterricht. Sagt man Entwicklern, sie sollten auch testen, was bei falscher Eingabe passiert, leuchtet das ein. Die Reaktion: Dann habe ich doppelt so viele Testfälle. Stimmt, hast du.

Die Technik bleibt, die Anwendung wandert in neue Hände

Neue Testdesign-Techniken sind nicht in Sicht. Alle bekannten Techniken stehen in Büchern, die über 20 Jahre alt sind.

Das früheste ist “The Art of Software Testing” von Glenford Myers, rund 45 Jahre alt, mit Randwertanalyse und Äquivalenzpartitionierung. Dazu kommen das Werk von Boris Beizer und die alten TMAP-Bücher. ISTQB beruft sich häufig auf Beizer und teils auf Myers.

Was sich ändert, ist nicht der Kanon, sondern wer die Techniken nutzt. Wenn Business-Analysten den Pfadtest auf ihre Geschäftsabläufe anwenden, entspricht das genau ihrer Sicht auf das System. Die Technik ist alt, der Anwender neu.

Drei Techniken, die in der Praxis tragen

Aus Riks Sicht stechen drei Techniken heraus.

Der Pfadtest steht oben, weil er Geschäftsabläufe vollständig abdeckt und in der Praxis funktioniert. Die Entscheidungstabelle prüft jede einzelne Möglichkeit zuverlässig, gerät aber bei mehr als fünf Bedingungen außer Kontrolle, weil sie zu groß wird. In den meisten Fällen reichen weit weniger Bedingungen, deshalb funktioniert sie gut.

Der Einfache Vergleichstest ist die komplexeste der drei und liefert die umfassendste Abdeckung. Er testet mehrere Entscheidungspunkte, jeder mit modifizierter Bedingungs-Entscheidungs-Abdeckung. Aus diesen Testsituationen werden Testfälle von Anfang bis Ende eines Prozesses kombiniert.

Sein Vorteil zeigt sich dort, wo der Pfadtest nicht genug abdeckt. Wenn verschiedene Kombinationen von Ausgängen zu denselben Pfaden führen, liefert der Pfadtest nur einen Testfall, der Einfache Vergleichstest dagegen alle Möglichkeiten. Das ergibt einige Testfälle mehr, aber die höchste erreichbare Abdeckung. Besteht ein System diese Testfälle, kannst du darauf vertrauen, dass es funktioniert.

Für das richtige Erlernen dieser Technik braucht es allerdings einen ganztägigen Workshop. Die passende Vorlage existiert.

Häufig gestellte Fragen

Um Testentwurfsverfahren erfolgreich in agile Entwicklungsprozesse zu integrieren, sollten sie frühzeitig im Entwicklungszyklus eingeplant werden. Teams müssen gemeinsam Tests erstellen, um Anforderungen und Akzeptanzkriterien zu klären. Automatisierung von Tests fördert schnelle Rückmeldungen und Anpassungen. Regelmäßige Reviews und Retrospektiven helfen, die Testentwurfsverfahren kontinuierlich zu optimieren. Ein enges Zusammenspiel zwischen Entwicklern und Testern stellt sicher, dass Qualität von Anfang an berücksichtigt wird.

Häufige Herausforderungen beim Einsatz von Testentwurfsverfahren sind unklare Testziele und unzureichende Anforderungen, die zu ineffektiven Tests führen können. Außerdem besteht oft ein Mangel an Ressourcen, was die Durchführung umfangreicher Tests erschwert. Die Auswahl des geeigneten Testentwurfsverfahrens ist ebenfalls kritisch, da nicht alle Verfahren für jedes Projekt passen. Schließlich kann die Integration der Testverfahren in bestehende Entwicklungsprozesse und die Schulung der Mitarbeiter zusätzliche Schwierigkeiten mit sich bringen.

Um das richtige Testentwurfsverfahren auszuwählen, analysiere zunächst die Projektanforderungen und -ziele. Berücksichtige Faktoren wie Komplexität, Risikostufen, Testumfang und verfügbare Ressourcen. Bei einfachen Projekten sind Verfahren wie Äquivalenzklassenbildung oder Grenzwertanalyse ausreichend. Komplexe Projekte erfordern möglicherweise strukturierte Methoden wie Testfallbasierte Ansätze oder Exploratives Testen. Achte auch auf Feedback von Stakeholdern und das verfügbaren Fachwissen im Team, um die Effizienz und Effektivität der Tests zu maximieren.

Spezifikationsbasierte Testentwurfsverfahren bieten den Vorteil, dass sie direkt auf den Anforderungen und Spezifikationen eines Systems basieren. Dadurch wird sichergestellt, dass alle funktionalen und nicht-funktionalen Aspekte getestet werden. Sie ermöglichen eine systematische Identifikation von Testfällen, reduzieren das Risiko, wichtige Szenarien zu übersehen, und fördern die Nachvollziehbarkeit der Tests. Zudem können Fehler frühzeitig erkannt und behoben werden, was die Qualität des Endprodukts verbessert.

Die Testentwurfsverfahren für modellbasiertes Testen beinhalten Techniken zur Generierung von Testfällen aus Modellen, die das Systemverhalten darstellen. Zu den häufigsten Verfahren gehören Zustandsdiagramme, Entscheidungsbaumtests und Aktivitätsdiagramme. Diese Verfahren ermöglichen es, verschiedene Szenarien systematisch abzudecken und erleichtern die Identifikation von Testfällen, die auf den spezifizierten Anforderungen basieren. Die Verwendung dieser Testentwurfsverfahren erhöht die Effizienz und Effektivität der Tests, indem sie automatisierte Testgenerierung und frühzeitige Fehlererkennung unterstützen.

Risikobasiertes Testen im Rahmen von Testentwurfsverfahren fokussiert sich auf die Identifikation und Priorisierung von Risiken. Dadurch werden Tests gezielt auf die problematischsten Bereiche ausgerichtet. Wichtige Prinzipien sind: Verstehen des Anwendungsbereichs und seiner Risiken, Priorisierung der Testfälle nach Risikohöhe sowie kontinuierliche Risikoüberprüfung während des Testprozesses. Ziel ist es, Ressourcen effizient einzusetzen und die Wahrscheinlichkeit schwerwiegender Fehler zu minimieren. So wird die Qualität der Software gezielt und mesbar verbessert.

Erfahrungsbasierte Testentwurfsverfahren bieten den Vorteil, dass sie auf praktischen Erfahrungen und realen Nutzungsszenarien basieren, wodurch sie oft realistische Fehlerquellen identifizieren. Sie sollten eingesetzt werden, wenn keine umfassenden Spezifikationen verfügbar sind oder die Software bereits in Gebrauch ist. Diese Verfahren fördern effektives Testen, indem sie Wissen aus vorherigen Tests und Nutzerfeedback integrieren, was die Qualität der Tests verbessert und die Testeffizienz erhöht.

Black-Box-Testverfahren prüfen die Funktionalität eines Systems ohne Kenntnis des Codes, wobei Fokus auf Eingaben und Ausgaben liegt. Im Gegensatz dazu analysiert das White-Box-Testverfahren den internen Code und die Struktur, um Fehlerquellen zu identifizieren. Während Black-Box-Tests Nutzerperspektiven simulieren, zielen White-Box-Tests darauf ab, die Programmtechnik zu verfeinern. Beide Testentwurfsverfahren sind wichtig, bieten jedoch unterschiedliche Blickwinkel auf die Qualität der Software.

Es gibt verschiedene Testentwurfsverfahren, die sich in ihrer Methodik unterscheiden. Zu den Hauptarten gehören äquivalente Klassen, Grenzwertanalyse, Zustandsübergangstests und exploratives Testen. Äquivalente Klassen gruppieren ähnliche Eingaben, während Grenzwertanalyse die Extremwerte untersucht. Zustandsübergangstests visualisieren Systeme als Zustandsdiagramme, und exploratives Testen fördert kreative Ansätze. Jedes Verfahren hat seine eigenen Stärken und ist für bestimmte Testziele geeignet. Die Auswahl des richtigen Testentwurfsverfahrens hängt von den spezifischen Anforderungen des Projekts ab.

Testentwurfsverfahren sind systematische Ansätze zur Erstellung von Testfällen, um Softwarefehler effektiv zu finden. Es gibt verschiedene Methoden, darunter die äquivalente Partitionierung, bei der Eingabewerte in Klassen geteilt werden, und die Grenzwertanalyse, die sich auf Randfälle konzentriert. Weitere Methoden sind die Entscheidungsbaumtechnik und die Fehlermöglichkeits- und Einflussanalyse (FMEA). Diese Verfahren helfen, die Testabdeckung zu maximieren und die Effizienz der Tests zu steigern.

Diese Seite teilen

Ähnliche Beiträge