Entschieden für Entscheidungstabellen

Unsere Berater setzen Entscheidungstabellen sehr gern in ihren Testprojekten ein. Aber Entscheidungstabellen sind kein ausschließliches Werkzeug der Tester.

In Entscheidungstabellen lassen sich komplexe Geschäftslogiken strukturiert und sehr übersichtlich abbilden. 

Aus Sicht des Testanalysten sind Anforderungen, die in Entscheidungstabellen formuliert sind, eine sehr gute Grundlage zur Erstellung von Testfälle. Sie erleichtern seine Arbeit, weil der Testanalyst aus einer Entscheidungstabelle recht einfach Testfälle entwickeln und im Vorfeld gute Schätzungen in Sachen Testaufwand abgeben kann.

Falls die Anforderungen, wie in vielen Projekten üblich, in rein textueller Form bereitgestellt werden, ist es hilfreich, Entscheidungstabellen im Nachgang zu erstellen. So können häufig Auslassungen und Widersprüche in den Anforderungen aufgedeckt werden. Entscheidungstabellen sind somit ein probates Mittel, um die Qualität von Anforderungen in der Reviewphase zu überprüfen und Testfälle zu entwerfen.

Während in Seminaren meist vereinfachte Beispiele herangezogen werden, um die Methode zu erläutern, sind Entscheidungstabellen im Projektalltag häufig sehr viel komplexer. Mit steigender Komplexität sinkt automatisch die Übersichtlichkeit und es fällt schwer zu prüfen, ob die Entscheidungstabelle vollständig und widerspruchsfrei ist. Da der Algorithmus zur Prüfung einer Entscheidungstabelle gut programmiert werden kann, hilft der Einsatz geeigneter Werkzeuge dabei, die Regeln in einer Entscheidungstabelle vollständig und widerspruchsfrei zu beschreiben.

Entscheidungstabellen mit LF-ET

Wir setzen bei Entscheidungstabellen auf die Software LF-ET von unserem Partner LOHRFINK software engineering.

LF-ET hat aus unserer Sicht wesentliche Vorteile gegenüber anderen Werkzeugen am Markt:

  • Bedingungen und Aktionen können mehrere Ausprägungen haben

Bei vielen vergleichbaren Werkzeugen können bei Ausprägungen für Bedingungen nur zwei Werte, wie "Ja" oder "Nein", und bei Aktionen lediglich ein Zeichen, dass signalisiert, dass die Aktion ausgeführt wird, angegeben werden.

Mit LF-ET kann eine Bedingung mehrere Ausprägungen haben, wie z.B. die Bedingung "Warenwert" mit den Ausprägungen "gering", "normal", "hoch" oder "sehr hoch". Diese Flexibilität in der Anzahl der Ausprägungen erlaubt die Beschreibung der Logik mit wenigen Bedingungen und Aktionen, unterstützt die Übersichtlichkeit und vereinfacht die Einführung neuer Ausprägungen.

  • Zahlreiche Prüfungen im Hintergrund helfen bei der Erstellung und bei Änderungen einer Entscheidungstabelle

Während der Benutzung von LF-ET wird z.B. im Hintergrund die Vollständigkeit der Entscheidungstabelle geprüft und wenn Konstellationen fehlen, wird eine Schaltfläche aktiv, über die fehlende Regeln automatisch in der Entscheidungstabelle hinzugefügt werden können. So werden auch bei Änderungen bestehender Regeln in großen Entscheidungstabellen keine Lücken übersehen.

  • Konkrete Testfälle lassen sich weitgehend automatisch generieren

Durch die Ergänzung von Informationen in der Entscheidungstabelle lassen sich Testfälle generieren, die manuell getestet oder von Testautomatisierungstools für die automatische Ausführung übernommen werden können. Durch eine optionale Verknüpfung mit Testdaten werden Testfälle für die entsprechende Testumgebung konkretisiert. 
Bei Änderungen in der Entscheidungstabelle muss der Tester einfach nur die Testfälle erneut generieren lassen.

Für Bedingungen mit Zahlenbereichen können Testfälle mit Grenzwerten erzeugt werden.

  • Konzept der Regelgruppen ermöglicht neue Wege

In LF-ET lassen sich Regeln zu Gruppen zusammenfassen und für jede Regel kann definiert werden, welche Regelgruppe folgen soll. Damit lassen sich mit Regelgruppen mehrere Entscheidungstabellen in einer zusammenfassen. 
Regelgruppen lassen sich auch als Zustand interpretieren. Damit können Zustandsautomaten mit Hilfe von Entscheidungstabellen abgebildet werden. Die Regeln sind dann im Grunde nichts anderes als Zustandsübergänge. Generierte Testfälle bestehen dann aus einer Kette von Regeln, die mit einer Regel der ersten Regelgruppe beginnt und endet, wenn keine weitere Regelgruppe folgt oder eine Schleife erkannt wird.

Testfallgenerierung mit Testdaten

Um konkrete Testfälle generieren zu können, werden konkrete Daten benötigt, die zu der Umgebung, auf der getestet werden soll passen. Um diese unabhängig von der Entscheidungstabelle halten zu können, kann der Testanalyst in LF-ET eine Verknüpfung zu einer externen .csv-Datei anlegen. Auf diese Weise kann der Testdatenbestand unabhängig von der Entscheidungstabelle erzeugt und aktualisiert werden.

In den Testanweisungen kann der Testanalyst zu den Bedingungs- und Aktionswerten Filteranweisungen hinterlegen, die bewirken, dass LF-ET bei der Generierung eines konkreten Testfalls den Testdatenbestand so filtert, dass ausschließlich geeignete Daten zur Testfallgenerierung herangezogen werden. Mit den Werten des ausgewählten Datensatzes werden die Platzhalter gefüllt.

Der Aufwand für die Testdurchführung sinkt signifikant, da der Tester nicht mehr nach Testdaten suchen muss, mit denen er den jeweiligen Testfall ausführen kann. 

Konkrete Testfälle in dieser Genauigkeit sind eine wesentliche Voraussetzung für eine effiziente Testautomatisierung. Wenn die Generierung der Testdaten automatisiert werden kann, dann lassen sich unmittelbar vor der Testausführung die Testfälle aus der aktuellen Entscheidungstabelle und den passenden Testdaten generieren und automatisiert ausführen. Damit gewinnt das Testteam die erforderliche "Geschwindigkeit", um agile Projekte mit Continous Testing unterstützen zu können.