Entscheidungstabellentest – Effektivität trifft Präzision

Ein effizientes Werkzeug zur Überprüfung der Funktionalität von Software und zur Identifizierung von Testfällen ist der Entscheidungstabellentest. In diesem Blog-Beitrag beschäftige ich mich mit diesem Testverfahren, dessen Ursprüngen, Anwendungen und Vorteilen.

Was ist der Entscheidungstabellentest?

Der Entscheidungstabellentest, auch bekannt als Decision Table Testing, ermöglicht die systematische Überprüfung von Systemverhalten auf Basis unterschiedlicher Eingaben. Hierbei steht die Kombination verschiedener Eingabeparameter und die resultierenden Ausgaben im Fokus.

Ursprung des Entscheidungstabellentests

Die Wurzeln des Entscheidungstabellentests liegen in den 1960er Jahren. Entwickler suchten nach einer Möglichkeit, die Verarbeitungslogik von Informationssystemen zu dokumentieren und zu verifizieren. Sie fanden in den Entscheidungstabellen ein effizientes Mittel, komplexe Geschäftsregeln und Entscheidungslogiken übersichtlich darzustellen.

Wie geht man den Entscheidungstabellentest an?

  1. Identifikation der Entscheidungsparameter: Zuerst identifiziert man die relevanten Eingangsparameter und Ausgaben für den zu testenden Prozess oder das System.
  2. Erstellung der Tabelle: Für jeden Eingangsparameter wird eine Zeile angelegt. Zusätzlich gibt es Zeilen für die jeweiligen Ausgaben. In den Spalten werden verschiedene Kombinationen der Eingaben und die dazugehörigen erwarteten Ausgaben dargestellt.
  3. Ausarbeitung der Testfälle: Anhand der Tabelle lassen sich Testfälle erstellen, die alle möglichen Kombinationen von Eingaben abdecken.
  4. Testdurchführung: Jeder Testfall wird nun gegen das System oder den Prozess ausgeführt und die tatsächlichen Ausgaben mit den erwarteten Ergebnissen verglichen.

Beispiele für den Einsatz vom Entscheidungstabellentest

  • Online-Bestellsysteme: Bei einem Bestellsystem können verschiedene Parameter wie Artikelverfügbarkeit, Versandoptionen und Zahlungsmethoden kombiniert werden, um verschiedene Szenarien zu testen.
  • Kreditsysteme in Banken: Banken können Entscheidungstabellen nutzen, um verschiedene Kreditantrags-Szenarien durchzuspielen, z.B. bei unterschiedlichen Einkommen, Kreditbeträgen oder Laufzeiten.
  • Heizungssysteme: Bei der Entwicklung von intelligenten Heizungssystemen können unterschiedliche Temperatureinstellungen, Uhrzeiten und Modi kombiniert werden, um das Verhalten des Systems unter verschiedenen Bedingungen zu testen.

Genereller Überblick über die Struktur

  1. Eingangsbedingungen (oben links): Dieser Bereich listet alle möglichen Eingabebedingungen oder -parameter auf.
  2. Ausgabehandlungen (unten links): Hier werden die möglichen Ausgaben oder Aktionen des Systems aufgeführt.
  3. Entscheidungsregeln (oben rechts): In diesem Abschnitt werden verschiedene Kombinationen der Eingabebedingungen aufgeführt. Jede Spalte repräsentiert einen Testfall.
  4. Ergebnisse der Entscheidungsregeln (unten rechts): Hier werden die erwarteten Ausgaben für jede Regelkombination dargestellt.

Beispiel: Einfaches Online-Bestellsystem

Angenommen, wir haben ein einfaches Bestellsystem, in dem die Kunden entweder per Kreditkarte oder PayPal bezahlen können und es gibt eine Überprüfung, ob der Artikel vorrätig ist.

Eingangsbedingungen/AusgabehandlungenRegel 1Regel 2Regel 3Regel 4
Artikel verfügbar?JaJaNeinNein
Zahlungsmethode = Kreditkarte?JaNeinJaNein
Zahlungsmethode = PayPal?NeinJaNeinJa
Bestellung akzeptieren?JaJaNeinNein
Hinweis „Artikel nicht verfügbar“ anzeigen?NeinNeinJaJa

Für Regel 1 ist der Artikel verfügbar, und die Zahlung erfolgt per Kreditkarte. Für die Bestellung erfolgt die Akzeptanz und es gibt keinen Hinweis zur Nichtverfügbarkeit des Artikels. Bei Regel 3 ist der Artikel jedoch nicht verfügbar, und es spielt keine Rolle, welche Zahlungsmethode der User gewählt hat: Die Bestellung ist inakzeptabel und es erfolgt der Hinweis auf Nichtverfügbarkeit.

Auf diese Weise kann man verschiedene Kombinationen von Eingabeparametern testen und die erwarteten Ausgaben systematisch darstellen.

Konkrete Anwendung in der Praxis

Die vorherige Erklärung bietet einen generellen Überblick über die Struktur einer Entscheidungstabelle. Für eine konkrete Anwendung in der Praxis muss man oft spezifischere Details berücksichtigen. Nachfolgend ein detaillierteres Beispiel, um das Konzept besser zu illustrieren.

Rabattsystem eines Online-Shops

Ein Online-Shop bietet seinen Kunden Rabatte an, die auf der Gesamtmenge der gekauften Artikel und dem Kundenstatus basieren.

Regeln:

  1. Standardkunden erhalten bei einer Bestellung von mehr als 10 Artikeln einen Rabatt von 5%.
  2. Premiumkunden erhalten immer einen Rabatt von 5%.
  3. Bei einer Bestellung von mehr als 20 Artikeln erhalten alle Kunden einen Rabatt von 10%.

Entscheidungstabelle:

Eingangsbedingungen/AusgabehandlungenRegel 1Regel 2Regel 3Regel 4
Anzahl der Artikel > 10?JaJaNeinNein
Anzahl der Artikel > 20?NeinJaNeinNein
Kundenstatus = Premium?JaJaJaNein
Rabatt = 5%?JaNeinJaNein
Rabatt = 10%?NeinJaNeinNein
Kein Rabatt?NeinNeinNeinJa

In dieser Tabelle:

  • Regel 1 repräsentiert einen Premiumkunden, der 11-20 Artikel kauft. Dieser erhält einen Rabatt von 5%.
  • Regel 2 repräsentiert einen Premiumkunden, der mehr als 20 Artikel kauft. Dieser erhält einen Rabatt von 10% (da der 5%-Rabatt für Premiumkunden in diesem Fall vom höheren Mengenrabatt überschrieben wird).
  • Regel 3 repräsentiert einen Premiumkunden, der 10 oder weniger Artikel kauft. Dieser erhält den standardmäßigen 5%-Rabatt für Premiumkunden.
  • Regel 4 repräsentiert einen Standardkunden, der 10 oder weniger Artikel kauft. Dieser erhält keinen Rabatt.

Durch die Entscheidungstabelle stellt man klar, welchen Rabatt man unter welchen Bedingungen gewährt. Sie bietet einen systematischen Ansatz, um sicherzustellen, dass man alle Kombinationen von Bedingungen testet.

In der nachfolgenden Tabelle gilt es, die möglichen Testfälle für alle Aktionen zu ermitteln:

Bedingungen:IIIIIIIVVVIVII
Bedingung Axxxx
Bedingung Bxxxx
Bedingung Cxxxx
Aktionen:
Aktion 1x
Aktion 2xx
Aktion 3xxxx
Aktion 4x

Zur Ermittlung der Anzahl von Testfällen, die alle Aktionen abdecken, wird die Tabelle analysiert:

  • Aktion 1 wird in Spalte VI abgedeckt.
  • Aktion 2 wird in den Spalten II und IV abgedeckt.
  • Aktion 3 wird in den Spalten I, III, V und VII abgedeckt.
  • Aktion 4 wird ebenfalls in Spalte VI abgedeckt.

Durch Analyse der Tabelle ergeben sich die folgenden Testfälle:

  1. Spalte I deckt Aktion 3 ab.
  2. Spalte II deckt Aktion 2 ab.
  3. Spalte VI deckt Aktion 1, Aktion 3 und Aktion 4 ab.

Insgesamt werden 3 Testfälle benötigt, um alle Aktionen abzudecken.

Welche Software kann man dafür nutzen?

Für den Entscheidungstabellentest und andere Softwaretest-Aktivitäten gibt es eine Reihe von Werkzeugen, die auf dem Markt verfügbar sind. Die Wahl des besten Tools hängt von den spezifischen Anforderungen, dem Budget und der Komplexität des Projekts ab. Hier sind einige der populären Werkzeuge, die in der Softwaretest-Community weit verbreitet sind:

  1. JIRA + Zephyr: Atlassian’s JIRA, in Kombination mit dem Zephyr-Plugin, bietet eine umfassende Testmanagement-Lösung, die es Teams ermöglicht, Testfälle zu erstellen, zu verwalten und Berichte zu erstellen.
  2. TestRail: Ein beliebtes Testmanagement-Tool, das nahtlose Integrationen mit anderen gängigen Tools wie JIRA, Selenium und mehr bietet.
  3. Selenium: Ein Open-Source-Tool für automatisierte Webanwendungstests. Es ist nicht speziell für den Entscheidungstabellentest entwickelt, man kann es aber zum Automatisieren von Testfällen verwenden, die man aus der Entscheidungstabelle ableitet.
  4. HP Quality Center (jetzt Teil von Micro Focus): Ein umfassendes Testmanagement-Tool, das das Erstellen, Verwalten und Ausführen von Testfällen unterstützt.
  5. QTest: Eine moderne Testmanagement-Plattform, die Agile-Teams bei der Planung, Verfolgung und Ausführung von Testfällen unterstützt.
  6. SpecFlow: Ein Behavior-Driven Development (BDD) Tool, das man in Kombination mit der Gherkin-Syntax verwendet. Es kann zur Definition von Szenarien basierend auf Entscheidungstabellen und zur Automatisierung dieser Szenarien eingesetzt werden.
  7. Confluence: Auch wenn es primär ein Team-Kollaborations-Werkzeug ist, nutzen einige Teams Confluence, um Entscheidungstabellen zu erstellen und zu verwalten.
  8. Excel oder Google Sheets: Man kann auch einfache Tabellenkalkulationsprogramme verwenden, um Entscheidungstabellen zu entwerfen und zu verwalten. Sie bieten Flexibilität, sind aber nicht speziell für das Testen entwickelt.

Es gibt viele weitere spezialisierte Tools auf dem Markt. Die Wahl hängt letztlich von den spezifischen Bedürfnissen des Testteams und den vorhandenen Technologie-Stacks ab. Es empfiehlt sich, eine gründliche Bewertung durchzuführen und möglicherweise einige Demos oder Testversionen auszuprobieren, bevor man sich für ein bestimmtes Tool entscheidet.

Fazit

Der Entscheidungstabellentest bietet eine strukturierte und systematische Methode, um komplexe Systeme oder Prozesse zu testen. Durch die umfassende Berücksichtigung aller möglichen Kombinationen von Eingaben gewährleistet dieser Test eine hohe Abdeckung und ermöglicht eine qualitativ hochwertige Qualitätssicherung.

Schreibe einen Kommentar

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.