Wir haben darüber gesprochen, worin Äquivalenzklassen bestehen und um den Zusammenhang nochmal herzustellen,
das war auf dieser Folie die Frage,
dass wir testen mit einem extrem hohen Aufwand haben und gleichzeitig,
und wegen diesem Aufwand versuchen wir, die Anzahl der Testfälle zu verringern.
Und dabei trotzdem noch eine große Abdeckung zu erreichen, also dass wir trotzdem noch den Zustand,
den Ereignisraum abdecken und dafür waren die Äquivalenzklassen ja hilfreich.
Die nächste Frage, die wir jetzt haben, sind jetzt,
wie sieht denn das oder was ich Ihnen jetzt noch vorstellen möchte,
ist eine Erweiterung dessen, nämlich die Grenzwert Methode oder Grenzwertanalysen dafür.
Wir starten mal wieder, wir hatten also diese,
sie erinnern sich vom letzten Mal, diese Entscheidungs-,
diese Felder mit Fällen, ja, also die Fälle hier,
wo es Päckchen sind und die Fälle,
wo es Paket sind,
mit einfach nur schwerer oder Paket einfach nur größer oder beides und das sind die Fälle,
die dann nicht erlaubt sind und in denen wir dann Testfälle festlegen.
Das ist eine mit Möglichkeit, mit einer geringen Anzahl
von Testfällen das zu machen, das waren die Äquivalenzklassen
Und jetzt kam man auf die Idee,
dass man sagt, oder vom Programmieren her wissen wir,
dass an den Grenzen von Schleifen zum Beispiel,
zwischen gültig und ungültig, dass wir dort häufig Fehler haben.
Das heißt, es wäre gut, vor und nach einer Grenze etwas zu testen.
Und das ist die nächste Methode, die wir besprechen wollen,
nämlich Grenzwertanalyse. Die Beobachtung ist, dass die Fehlerwahrscheinlichkeit
sehr viel höher ist an der Grenze einer Äquivalenzklasse als innen.
Und deswegen versuchen wir, Testen erfolgreicher an den Grenzen zu machen.
Erfolgreicher Test bedeutet, wir haben die Chance,
wirklich Fehlverhalten auch zu entdecken
Das heißt, wir würden in Testfälle an den Grenzen von gültigen oder einem Kunden gültigen Äquivalenzklassen machen.
Das würde also in unserem Bild, was wir hier haben,
eben bedeuten, dass wir den Punkt nicht hierlegen, sondern vielleicht dichter an der Grenze.
Ja, ich habe dafür ein neues Beispiel und zwar hier etwas aus dem Verkehr. Diejenigen unter ihnen,
die gerne mal schnell fahren, die wissen schon,
okay, da gibt es Punkte und da gibt es Geldstrafen,
ja, und vielleicht noch Fahrverbot, ja, so die,
wir haben, ich habe hier mal was aufgestellt,
das stimmt nach den neuesten Verschärfungen schon lange nicht mehr,
aber es geht ja erstmal nur darum, dass wir Fälle haben.
Ja, also wir nehmen mal an,
wir hätten ein Programm zum Berechnen von solchen,
von den Strafen für Geschwindigkeitsüberschreitungen, ja,
und da gibt es also für geringe Schlafen 10 Euro,
dann 20, 30,
70 und dann hier schon ein Punkt und wenn man mehr als 30 kmh hat,
dann hat man hier schon mehr als 40 kmh,
dann hat man schon ein Fahrverbot oder zwei Monate Fahrverbot und wenn es noch schlimmer wird,
dann gibt man,
muss man vielleicht sogar noch zur medizinisch-psychologischen Untersuchung.
Ja, so und daraufhin kann man jetzt
Testfälle erstellen
Testfälle könnte man so erstellen, dass man zum Beispiel mit
einer Negativgeschwindigkeit macht und das sollte es eine Fehlermeldung geben,
weil das gibt es keine Strafe für.
Oder wenn man hier sagt, okay,
Geschwindigkeit zwischen 1 und 9, nahe der Grenze,
man macht, das ist jeweils ja hier eine Äquivalenzklasse.
Ja, also das, was wir hier haben,
sind Listen von Äquivalenzklassen.
Und daraus machen wir,
das sind hier Testfälle
Also wir machen hier zwei Testfälle, ja,
für die erste Äquivalenzklasse bis 10 kmh,
zwei Testfälle oder auch für diese hier 40 bis 50,
160 Euro Strafe, ein Monat Fahrverbot,
zwei Punkte im Register.
Da machen wir zwei Tenzfälle an der zwei Testfälle an der Grenze.
Das heißt, an den Grenzen 39,41, da testen wir etwas dichter.
Und das ist die Methode, die man hier versucht zu machen.
Ja, und dass wir versuchen,
also sich in Testfälle dann an den Grenzen zu machen,
um mit wenigen Tests häufiger erfolgreicher Fehler zu finden.
Ja, also das wäre jetzt
ein Beispiel
Für diese Frage, ich finde sie gleich, hier sind
die Fragen, ja, also worin dieser Grenzwertanalyse besteht.
Ja, so, das ist also auch wiederum eine Methode,
die Testfälle aufstellt. Jetzt ein, ja, ich könnte mal,
ich könnte mal wieder ein kleines Quiz machen mit ihnen und da
gehen wir jetzt mal zu der Seite, wo das hingehört,
hier diese Testfälle,
ja,
oder das,
was wir hier hatten und ich füge jetzt mal
der Seite mit einem Quiz ein
Und zwar möchte ich gerne von Ihnen wissen, ob diese Testmethoden,
die beiden, die wir jetzt haben, ob die zum Blackbox- oder Whitebox-Test-Verfahren gehören.
Und zwar haben wir die Gig, ich schreibe es mal richtig, Equivalenz.
Ich lasse Methode, ich nenne das jetzt mal Testmethode,
Und dann können Sie mal sagen, Whitebox,
Equalenzklassenmethode und die Grenzwert, Methode, ob die jetzt,
ob wir jetzt im Kreuzchen hier machen sollten bei Blackbox oder ist das eine von den Whitebox-Methoden,
das Gleiche für die Grenzwertmethode,
ist die Blackbox oder ist die Whitebox.
Bitte überlegen Sie sich das mal,
ohne der Fragerunde nach der Vorlesung können wir das kleine
Rätsel auflösen
Okay, wir gehen mal weiter.
Und ich möchte Ihnen noch als weitere Methode etwas vorstellen,
was ebenfalls eine gute Strukturierung nach Tests, auch nach Entscheidungstabellen, ermöglicht.
Und was uns aber auch eine leichte Formalisierung von Fällen auch darstellt.
Und zwar Entscheidungstabellen. Diese Entscheidungstabellen, die wir hier haben,
die sind entstanden aus der oder stammen aus den Ingenieurdisziplinen,
zum Beispiel bei dem Bau von Steuerungen.
Und man macht das so,
dass man die verwendet,
um logische Fälle voneinander abzutrennen
Zu grenzen. Und diese Abgrenzung, nimmt man so vor,
so ähnlich wie sie das vielleicht von einer Logiktabelle,
aus den ganz Anfangsphasen der Informatikausbildung mit und und oder,
was den logischen Verknüpfungen kennen, so ähnlich sieht das aus.
Wir haben eine Tabelle,
in der wir solche Kombinationen zusammenstellen und sagen,
was passiert denn da und das können wir dann verwenden,
um daraus Testfälle zu erstellen.
Das ist hier alles ein bisschen sehr vage,
deswegen fangen wir mal mit einem Beispiel an.
Ich mache mal hier so ein kleines Beispiel
und dann gehen wir das gemeinsam durch
Wir können, ich gebe Ihnen kurz Zeit,
das mal, das mal zu lesen.
Und dabei werden Sie das lesen, mache ich hier,
ohne weiterzureden,
so ein paar Hervorhebungen
. . . . So,
wir haben den Text gelesen und was wir hier drin haben,
sind ja Bedingungen, unter denen passiert etwas.
Ja, also irgendwie gibt es Bedingungen, die,
wenn der Patient eben eine einsteckende Krankheit hat, dann passiert das und das.
Wenn er Fieber hat, passiert das und das.
Wenn der Besuch aussah, also diese Bedingungen, das ist das eine.
Das habe ich jetzt hier mal schon grün markiert.
Ich habe uns das ein bisschen vorgegriffen, das zu suchen.
Ja, also hier die ansteckende Krankheit ist eine Bedingung.
Fieber, ja oder nein sind Bedingungen. Besuchszeit,
ja oder nein, das sind Bedingungen. Ja,
und diese Bedingungen, Habe ich hier mit Grün gekennzeichnet,
um was ist das jetzt mit Rot?
Das mit Rot ist doch das jetzt gekennzeichnet, was am Ende passiert.
Also das sind, dass sich zum Beispiel,
man kann ohne Einstellung besucht werden, man braucht eine Schwester als Begleitung,
Besuche werden ganz abgelehnt oder Besuchszeit ist zeitlich begrenzt.
Ja, also diese Dinge gibt es hier auch als,
ja, das sind am Ende
die Aktionen
Ja, soweit in unserem kleinen Beispiel. Und jetzt wollen
wir gerne daraus angenommen, wir hätten ein System,
wir wollen ein Software-System bauen, was Testfälle dafür baut.
Und da würden wir nicht alle möglichen Kombinationen,
deswegen klingt ja erstmal ein bisschen unstrukturiert,
denn für solche Fälle ist eine Entscheidungstabelle gut.
Sie hilft uns, die logischen Abhängigkeiten in die Bezug zu Aktionen
zu über, besser über zu überschauen.
Und am Ende hilft uns das auch, Testaktionen,
sowas wie Equivalenzklassen
zu finden
So, also diese Entscheidungstabelle, die enthält Bedingungen und die enthält Aktionen.
Grundsätzlich ist sie also erst mal in so vier Bereiche eingeteilt.
Nicht nur diese vier Felder, aber vier Bereiche,
Bedingungen, Aktionen. Und die Aktionen sind die Möglichen,
die Bedingungen sind die möglichen Zustände, die es hat.
Also wir hatten jetzt den Zustand, Fieber, kein Fieber.
Besuchst halt keine Besuchszeit zurück. Das waren die Bedingungen.
Und dann haben wir die Aktionen, wo wir,
wo wir dann sagen, was ist denn was?
Und wir nutzen können das zum Beispiel nutzen, alle möglichen Aktionen, Kombinationen zusammenzustellen.
Man kann sowas auch nutzen, um zu sagen, sagen,
haben wir jetzt alles komplett erfasst oder gibt es da noch Fälle,
für die irgendwie das nicht definiert sind?
Und wir brauchen uns jetzt für den dritten Fall,
wir wollen Äquivalenzklassen aufstellen, nachdem wir unseren Test mögen,
mit minimalem Aufwand betreiben können.
So, lassen wir uns diese Tabelle mal fühlen.
Und zwar gehen wir in dieser Reihenfolge vor,
dass wir zunächst erstmal die Bedingungen ermitteln. Hier steht festlegen,
also in die Tabelle eintragen, dann die Aktionen in die
Kapelle eintragen und dann diese Regeln und die Aktionsanzeiger einsetzen.
Das haben wir jetzt noch nicht hier, genauer genannt.
Diejenigen stehen hier rechts um die Aktionsanzeiger,
stehen hier unter
Ja, so, also lassen Sie uns damit mal starten.
Ich habe hier so eine, wir gehen dann hier wieder
zurück und ich schreibe uns das nochmal ein.
Ich habe hier mal so eine Tabelle schon vorbereitet.
Ja, also ich habe jetzt hier schon mal zusammengetragen,
was sind ja die Bedingungen? Ja, ansteckende Krankheit,
ja oder nein? Wir suchen innerhalb der Besuchszeit ja oder nein,
Fieber, ja oder nein? Ja, so,
da wir hier drei Bedingungen haben, brauchen wir die Bedingungskombinationen,
jeweils ja und nein, also zwei Fälle, mal drei,
das ergibt 2, hoch 8 Kombinationen, also 8 Kombinationen.
Diese 8 Kombinationen tragen wir hier als Beispiel ein.
Also diese Felder, die wir eben gesehen haben,
war dieser Bereich und dieser Bereich, das ist also hier die Bedingungen.
Hier haben wir die, was von Regeln hieß,
hier haben wir die Aktionen eingetragen.
Hier werden wir dann eintragen, wann tritt denn was zu?
Erstmal, das erste ist auch so, die Aktionen haben
wir auch noch hier gleich mit aufgeschrieben aus dem Text.
Ja, das war jetzt die Besuchszeit maximal 30 Minuten oder der Besuch findet nicht statt,
ist nicht erlaubt oder in Begleitung einer Schwester oder ganz normal in der Besuchszeit.
Man kann so blank bleiben, wie man will,
solange Besuchszeit ist. So, Wir schauen uns,
wir fühlen als nächstes erstmal die Bedingungskombinationen hier vorne in dem Bereich ein.
Das machen wir so in der Form,
dass wir das so kombinieren, die ja, ja,
nein, nein, dass jede Kombination von einer anderen unterschiedlich ist,
wenn ich Ihnen was empfehlen darf, fangen Sie mit einer Reihe an,
indem Sie es abwechselnd machen.
Hier also ja, nein, ja, nein,
ja, nein, ja, nein.
Und der nächste machen Sie immer zwei. Ja, ja,
nein, nein, ja, ja, nein, nein.
Und hier oben machen Sie immer vier. Und wenn Sie noch eine weitere hätten,
müssen Sie es halt achtmal machen, acht Jahre, dann acht,
nein, auf diese Weise kriegen Sie das schön regelmäßig hin,
dass alle Fälle einmal vorkommen.
Ansonsten muss man immer überlegen, wer fehlt denn noch
Das mit Hinblick auf eine Klausur. Ja, sowas ist
eine schöne Aufgabe und man sollte nicht so viel Zeit verbringen.
Der Teil ist ja nicht der kreative Teil.
Der kreative Teil kommt jetzt. Ja, also der Kreative,
das ist erst mal so, das macht man,
also hier müssen Sie die Entscheidung erst mal fällen,
ja, wir haben acht Dinger.
Ja, und das war dadurch gekommen,
dass wir festgestellt haben, okay, drei Bedingungen,
wir zwei Möglichkeiten, zwei hoch drei bis acht.
So, damit haben wir das erst mal dargestellt und
jetzt müssen wir anhand des Textes die unteren Fälle füllen.
Ja, also wenn jemand, wann wird denn der Besuch abgelehnt?
Ja, das gucken wir uns noch mal an
Ja, also Besuch, falls eine Patientin
eine ansteckende Krankheit hat, werden Besuche ganz abgelehnt.
Also nehmen wir uns in dieser Tabelle hier,
können wir sagen, okay, einsteckende Krankheit,
das sind die Spalten 1 bis 4 und dann wird der Besuch ganz abgelehnt.
Ja, da gibt es auch nichts anderes. Die anderen
Fälle sind alle nicht zutreffend. Besuch abgelehnt, fertig. So,
jetzt schauen wir uns das Gleiche für das Nächste an.
Besuch in Begleitung einer Schwester oder wir hatten ja hier
die erste Besuchszeit 30 von mehr als 30 Minuten.
Wann ist denn das möglich
Uns die Fälle an und haben hier mit den 30 Minuten,
ja, wenn eine Patientin Fieber hat, darf der Besuch maximal 30 Minuten sein.
Nicht ansteckend, aber Fieber, maximal 30 Minuten.
Okay, das tragen wir hier ein. So, nicht ansteckend,
das ist hier nein, das sind die erstmal die Felder.
Kein Fieber, das wäre hier,
hier und hier und da kann die Besuchszeit maximal 30 Minuten,
also hier ist sie maximal 30 Minuten, Hier, hier und hier.
Aber warum geht, das müssen wir uns nochmal anschauen.
Also vielleicht machen wir es doch wieder andersrum. So gehen wir jetzt,
ich möchte es nur mal zeigen, wem gehen wir vor.
Am Ende können Sie auch gleich die Fälle hier anschauen,
also wie für die ersten vier wissen wir es ja schon.
Da gibt es auf jeden Fall gar keinen Besuch,
egal was passiert, weil einsteckend geht vor,
also irgendwie so eine böse, entsteckende Krankheit hat.
Diese Wirrstation ist das früher ganz altmotisch. So,
und jetzt müssen wir mal halt mal schauen,
wie die anderen Fälle aussehen und ich hätte das jetzt hier gleich eingetragen.
Also wenn es keine einsteckende Krankheit ist es ist außerhalb der Besuchszeit dann und kein Fieber da,
dann darf man zwar rein, aber nur, wenn die Schwester dabei ist,
dass man sieht, ist da niemand gestört oder wie auch immer.
Ja, so dann hatten wir noch den Fall,
wenn ein Fieber da ist, ja,
da gibt es die Fälle, entweder der jemand ist,
wenn es außerhalb innerhalb der Besuchszeit ist und man hat Fieber,
okay,
dann eingeschränkt 30 Minuten und wenn jemand Fieber hat und es ist außerhalb der Besuchszeit,
das wäre hier die Spalte,
dann darf man gar nicht
in zum Besuch kommen
So, und das haben wir noch. Dann gab es
hier noch den Fall, dass jemand keine ansteckende Krankheit hat,
innerhalb der Besuchszeit ist und auch kein Fieber.
Und dann darf man irgendwie alles, die ganze Besuchszeit lang.
So sieht das jetzt aus. Wir haben diese Tabelle fertig
. Was sagt uns diese Tabelle? Die Tabelle sagt uns
erst mal, es gibt acht verschiedene Fälle.
Also das sehen wir hier erst mal. Dann sagen wir,
wissen wir, okay, alle Fälle sind irgendwie definiert.
Das ist auch schon mal gut. Das war es
dem Text hier nicht so leicht daraus zu erkennen.
Versuchen Sie mal hier aus diesem Text erkennen,
ob das jetzt vollständig ist
Weißt du, also die Stärke, diese Entscheidungstabelle schon mal ist,
sie ist vollständig, sie ist in gewisser Weise formalisiert.
Sie erlaubt uns einen guten Überblick. Sie müssen es einfach
nur zwei-, dreimal geübt haben, dann werden sie das,
wird ihnen das nicht so schwer fallen.
Damit, was haben wir damit? Wir hätten jetzt tatsächlich
acht Äquivalenzklassen, eins, zwei, drei, vier,
fünf, sechs, sieben, acht.
Damit können wir acht Testfälle aufstellen und damit haben wir schon
das ziemlich genau das gesamte Verhalten abgedeckt,
Tatsächlich können wir das noch ein bisschen verbessern. Wir schauen
mal auf die vorgehende Folie, wo wir geschrieben haben,
hier diese, wo wir sagen können,
es gibt noch die Möglichkeit, also wir haben jetzt hier,
wenn wir die Entscheidungstabelle aufgestellt haben, schon mal alle Fälle erfasst.
Das ist schon mal super. Aber wir können es auch
noch vereinfachen. Und zwar wird dieses Vereinfachen konsolidieren als Konsolidieren
bezeichnet. Das heißt, wir suchen Gruppen mit Regeln,
die eine, die irgendwie zusammenfassbar sind.
Und fassen die
zusammen zu einer Equivalenzklasse
Und das ja auch noch machen können. Wir können prüfen
, ist das Ganze denn widerspruchsfrei und vollständig?
Das kann man allerdings auch schon beim Aufstellen,
beim Eintragen, wenn man hier gerade mehr drittens macht,
kann man das auch schon prüfen.
Wir gucken uns jetzt vor allem dieses Konsolidieren an.
Und dann ist das Ziel natürlich, je Äquivalenzklasse einen Testfall bilden,
das muss man dann auch noch tun.
So, was können wir hier zusammenfassen? Wir haben ja gesehen,
diese ansteckende Krankheit übersteigt alles und da ist dann fast egal,
was hier unten ist.
Und das tatsächlich können wir dann so machen,
dass wir das hier zusammenfassen
Beispiel, da gibt es so die Formulierung, don't care.
Ist eigentlich egal, was da passiert. Ja,
das ist ja dieses Don't care, wäre hier für Ort Besuchszeit
oder nicht, ob Fieber oder nicht, anstrengende Krankheit.
Er ist Isolierstation, sie kriegen keinen Besuch,
wenn sie in dem Krankenhaus sind. Ja, so,
das heißt, die kann ich eigentlich zusammenfassen,
weil das ist, das ist im Prinzip der gleiche Testfall.
Hier, wenn wir jetzt sagen, okay,
Besucher ablehnen ist das gleiche Verhalten,
dann könnte jemand auf die Idee kommen und sagen,
ja, es ist der Mittelfall 7.
Der hat doch auch das gleiche Verhalten.
Was meinen Sie
Tatsächlich ist es so, dass das gleiche Verhalten hier,
aber aus ganz anderen Bedingungen resultiert. Nämlich nicht daraus,
zum Beispiel, dass sie eine anstrengende Krankheit hat,
sondern nur daraus, dass jemand Fieber hat.
Und kein Besuchssätze, also ein anderer Fall,
den können wir also nicht mit dem hier zusammenfassen.
Es gibt nicht hier irgendwie Sachen, wo wir sagen können, das ist gemeinsam,
weil es unterschiedliche oben in der Oberspalte, für obenzeitliche unterschiedlich ist.
So, jetzt aber noch mal zu diesem Zusammenfassen,
diese vier Fälle können wir zu einem zusammenfassen,
ja,
und ich habe dann hier steht also das Jahr drin und hier ist es egal,
was wir haben und damit ist das aus den Fällen 1
bis 4
nur ein Fall übers Geblieben
Wir haben nur 5 Äquivalenzfälle, 5 Äquivalenzklassen,
das 1 bis 4 ist die eine, dann 5,
6 und 7 und 8 sind jeweils weitere.
Also 5 Äquivalenzklassen. Und jetzt müssen wir, und jetzt
ist unsere Aufgabe, dafür jeweils einen Testfall zu entwickeln.
Ja, also wir würden dann immer diese Bedingungen zusammenstellen.
Also hier wäre auf den Testfall 1 einsteckende Krankheit und muss rauskommen, Besuchungsabgelehnt.
Bei den nächsten kommt das und er muss daraus kommen,
Besuchszeit, darf mir erst 30 Minuten betragen und so weiter.
Damit haben wir die Möglichkeit, Das mit fünf Test-Fans abzudecken,
wenn wir die Grenzwerte wählen. Also hier zum Beispiel,
da müssen wir natürlich für das Don't Care,
müssen wir natürlich einen Wert vorgeben. Ist egal,
ob ja oder nein, es muss ein Wert sein,
auch wenn wir uns am Ende nicht kümmern.
Sie können nicht sagen, lass dich offen. Es muss
einen Wert geben. Genauso, wenn sie eine Aufgabe haben,
wo es hier nicht ja, nein gibt, sondern ein Wertebereich.
Zum Beispiel zwischen drei und fünf oder mit den Kilos für die Pakete voll.
Dann wählen sie einen Wert. Testfall festlegen heißt tatsächlich,
sie müssen einen Wert festlegen. Wenn wir das vorgehende lassen,
Hier, ich spreche jetzt mal für die Klausur.
Wenn da jemand das nicht verstanden hat,
schreibt doch einen Handlung und hier und denkt, ach super,
schön, dass mir das noch eingefallen ist, es ist kein Testfall.
Testfall ist erst, wenn sie tatsächlich einen Wert vorgeben.
Und wenn wir das mit dem, ich mache mal hier
was mit dem, geh noch mal zu den Paketen zurück.
Hier war so das Bild mit den Paketen, ja.
Also hier hätten wir ja 1, 2, 3,
4 Testfälle, ja,
und da könnten wir die beiden vielleicht zusammenfassen zu einer Äquivalenzklasse oder die beiden können wir zusammenfassen zu einer Äquivalenzklasse,
dann müssen sie tatsächlich wirklich die Werte hier,
wie sie hier drinstehen,
eben tatsächlich auch angeben
Okay, nochmal, wir gehen wieder zurück zu unseren Werten hier.
Und wenn wir die Äquivalenzklassenmethode anwenden, wie viel brauchen wir deine Testfälle pro Äquivalenzklasse?
Genau einen, ja. Aber wir können auch zwei wählen,
wenn wir zum Beispiel eine Skala haben,
könnten wir sagen, an den beiden Grenzen.
Das wären dann Sachen nahe der Grenzen. Ja,
in dem Fall, wenn wir ja, nein haben,
ist einfach irgendein Leer. Soweit. Soweit. Dazu,
das ist eine Methode, die uns ermöglicht,
dass wir Testfälle strukturieren,
die logischen Bedingungen genügen und dann auch ermöglichen,
dass wir nach der Äquivalenzklassenmethode oder nach der Testfahrenmethode
etwas Testfälle erstellen