Chat with us, powered by LiveChat
zurück zum blog

Eine Einführung in die Softwaretest-Methode Modified Condition Decision Coverage (MCDC)


Last updated: 30.05.22
Eine Einführung in die Softwaretest-Methode Modified Condition Decision Coverage (MCDC)

Bedingungsüberdeckung, nicht nur für Entwickler

Viele Tester/innen erwägen oder nutzen bereits Testentwurfstechniken, die es ihnen ermöglichen, den Testaufwand zu reduzieren und trotzdem einen guten Einblick in die Qualität von Systemen und Software zu erhalten. Wenn man sich die Möglichkeiten und die verfügbare Literatur ansieht, wird oft eine Kategorisierung vorgenommen, um die Auswahl der Testmethode für bestimmte Situationen zu erleichtern.

 

White-box-Tests für die Struktur, Black-box für die Spezifikationen

White-Box-Techniken unterstützen die Formulierung von Testfällen auf der Grundlage einer Struktur und galten daher lange Zeit als etwas, das ausschließlich für Entwickler gedacht ist, da sie mit Code arbeiten, der als eine solche Struktur angesehen wird. Im Gegensatz dazu unterstützen Blackbox-Techniken die Entwicklung von Testfällen auf der Grundlage von Anforderungen oder Spezifikationen. Das passt natürlich gut zu den Business-Testern, da sie hauptsächlich Anforderungen und andere Spezifikationen verwenden, um zu zeigen, dass sich das System so verhält, wie es soll und die erwarteten Ergebnisse liefert.

Diese Schwarz-Weiß-Unterscheidung ist keine gute und definitiv keine richtige Perspektive. Kategorisierungen als solche helfen uns zwar insofern, als dass sie uns die Konversation erleichtern und unseren Fokus bei der Entwicklung von Testfällen aufzeigen, aber die Kategorisierung sollte keinesfalls dogmatisch behandelt werden. Professionelle Tester/innen kombinieren oder integrieren heutzutage sogar die entsprechenden Techniken im explorativen Testen.

 

Die Perspektive erweitern: White Box's "Bedingungsüberdeckung" für alle 

Um die Perspektive der Business-Tester/innen zu erweitern, werfen wir einen Blick auf die Bedingungsüberdeckung als eine der sogenannten White-Box-Techniken. Bei dieser Technik geht es darum, komplexe Bedingungen, die die zugrundeliegenden Regeln für eine Entscheidung in einem Kontrollflussdiagramm darstellen, eingehender zu prüfen. Während wir uns Kontrollflussgraphen ansehen (die die Struktur eines Codes oder eines Teils der Architektur darstellen), sind wir uns der Tatsache bewusst, dass Kontrollflussgraphen vergleichbare Syntaxelemente verwenden wie z. B. Geschäftsprozesse (in denen Anweisungen Aktivitäten und Entscheidungen … kaum zu glauben ... Entscheidungen sind), so dass der Geschäftsprozess als solcher bereits den Einsatz von White-Box-Techniken wie Anweisungsüberdeckung oder Entscheidungsüberdeckung ermöglicht. Innerhalb der Geschäftsprozesse können die Regeln, die den Entscheidungspunkten zugrunde liegen, sogar komplexe Bedingungen enthalten.

Überdeckungsmaße (aus den White-Box-Techniken) werden in der Regel auf sehr theoretische, fast wissenschaftliche Weise erklärt. Sie sind schwer zu verstehen, und deshalb werden diese Techniken nicht häufig angewendet. Das gilt insbesondere für die MCDC-Technik. MCDC steht für Modified Condition Decision Coverage, zu deutsch: Mehrfach-Bedingungs-Entscheidungsüberdeckung, eine der Bedingungsüberdeckungstechniken. Diese starke Vorgehensweise reduziert die Anzahl der Testfälle von 2N auf N+1, wobei N die Anzahl der atomaren Bedingungen ist. Atomare Bedingungen sind die einzelnen Bedingungen, die Teil der komplexen Bedingung sind, z. B. wenn die komplexe Bedingung "A>18 AND B<60" lautet, sind "A>18" und "B<60" die atomaren Bedingungen.

 

Vorteile von MCDC Modified Condition Decision Coverage

MCDC ist viel einfacher anzuwenden als z. B. Entscheidungstabellen, da es den Ansatz verfolgt, die minimale Menge an Testfällen direkt zu definieren, während Entscheidungstabellen den Ansatz verfolgen, die Gesamtzahl der möglichen Testfälle zu definieren und dann die Anzahl auf strukturierte Weise zu reduzieren. 

Bei MCDC lautet die Regel für den Entwurf von Testfällen, dass jede der atomaren Bedingungen in der komplexen Bedingung zu einem falschen und einmal zu einem wahren Ergebnis für die komplexe Bedingung beitragen sollte. Das bedeutet, dass eine Änderung des Wertes der atomaren Bedingungen direkt zu einer Änderung des Ergebnisses der komplexen Bedingung führt.

 

Nehmen wir das Beispiel der komplexen Bedingung A UND B:

Somit bleiben uns 3 Testfälle (N+1) anstelle von 4 (2N) Testfällen.

 

Um dies nun auf noch komplexere Bedingungen anzuwenden, nutzen wir einen "Trick", um schnell die entsprechenden Kombinationen zu finden, indem wir die sequentielle Kombination von atomaren Bedingungen analysieren. Für die komplexe Bedingung "A UND B UND C" analysieren wir also zuerst A UND B, dann B UND C und wenn die komplexe Bedingung noch länger wäre, würden wir mit denselben Schritten für die aufeinanderfolgenden Paare fortfahren:

Um nun die gesamte komplexe Bedingung abzudecken, müssen wir noch Werte für die atomaren Bedingungen "A" in den "Testfällen" 4 - 6 und "C" in den "Testfällen" 1 - 3 (rot dargestellt) wie folgt hinzufügen:  

Es gilt die folgende Regel:

Wenn die analysierte Beziehung mit der anderen atomaren Bedingung mit einer "UND"-Verknüpfung kombiniert wird, dann fügen wir eine "1" hinzu, während wir bei einer "ODER"-Verknüpfung eine "0" hinzufügen würden, um das Ergebnis der komplexen Bedingung nicht zu verändern.

 

Jetzt können wir noch die Dopplungen streichen:

Somit bleiben uns N+1 gleich 4 Testfälle

Der gleiche Lösungsansatz hilft uns in Situationen, die sogar Kombinationen von UND und ODER und möglicherweise auch mit Klammern beinhalten. Wie folgt:

 Entsprechend werden die Lücken gefüllt:

Und die Dopplungen entfernt:

Wenn die Anzahl der atomaren Bedingungen höher ist, setzen wir diesen Ansatz einfach fort und haben am Ende N+1 Testfälle (statt 2n Testfälle).

Fazit

Die Zuordnung bestimmter (Gruppen von) Testentwurfstechniken zu verschiedenen Arten von praktischen Problemen klingt nach einer guten Unterstützung für den Tester im Allgemeinen, um zu entscheiden, was er verwenden soll, um nicht nur die Testüberdeckung, sondern auch die Tester Skills zu stärken. Wenn die Kategorisierung jedoch zu einer unnötigen Einschränkung der Möglichkeiten für Tester/innen führt, sollten wir diese Kategorien nicht mehr verwenden. Kategorien sollten unterstützend wirken, nicht eine Wissenschaft für sich sein.

Die Verwendung von MCDC ist in vielen Situationen einfacher und effektiver als die Verwendung von Entscheidungstabellen oder anderen Techniken. Wir sollten uns für die Techniken und Überlegungen öffnen, die in der Community verfügbar sind, ohne uns an den Barrieren zu stören, die einige immer noch versuchen, uns aufzuerlegen.


Please enable JavaScript to view the comments powered by Disqus.