An der Liste der Fragen können Sie sehen,
dass wir jetzt mit dem,
dass wir jetzt schon am Ende angekommen sind von dem Abschnitt testen.
Hier gibt es nur noch zu sagen, etwas zum objektorientierten Testen.
Tatsächlich ist das objektorientierte Testen noch ein bisschen anders.
Wo bin ich denn jetzt hier? Genau. Beim Testenobjektorientierter Software
haben wir damit zu kämpfen, dass wir diese Kapselung als störenden Faktor dabei haben.
Kapselung, das war ja das, wo wir über private
Methoden oder privater Sicht eingeschränkte Sichtbarkeit von außen das nicht gleich machen können.
Das heißt, Es gelingt uns nicht so einfach,
dass wir einen bestimmten Zustand erreichen,
von dem wir aus überhaupt das Testen beginnen.
Das können wir, können nicht einfach nur interne Werte irgendwo
hinsetzen und dass wir einen bestimmten Zustand erreichen und dann testen.
Nein, wir müssen das erst schrittweise von Methode zu Methode,
zur Methode machen, bis der Anfangszustand erreicht ist.
Das ist der eine Punkt, wo Kapselung uns nachteilig wirkt
und das andere, wir wollen beobachten.
Testen ist immer ausführen und beobachten, was passiert.
Wir können aber private Sachen nicht beobachten. Wir müssen dann
immer als Methoden aufrufen, um uns die Informationen zu geben.
Das heißt, das behindert das Testen erstmal
Außerdem ist es so, dass die Klassenmethoden-Komponenten,
dass die häufig eine eigene Fehlerbehandlung haben.
Das heißt, dass sie auf Robustheit für Robustheit
vorgesehen sind und dass es in der Kapselung mit drin.
Und diese Robustheit ist natürlich gut, dass der Fehler nicht,
der Benutzer nicht ständig mit Fehlern konfrontiert wird, die Urbudensystem sind.
Aber für Test-Software ist das nicht sinnvoll,
weil die Tests versteckte Fehler versteckt werden, maskiert werden.
Und damit reduzieren wir die Testbarkeit.
Was wir eigentlich erreichen wollten, wäre,
dass wir
die Fehlerwirkung richtig ablesen können
Was uns da helfen würde, wären Zusicherungen, ja,
die können uns, da wird es gleich eine Fehlermeldung geben,
wenn wir das irgendwie etwas überschritten haben,
das würde uns gut helfen.
Ja, wobei wir immer dran denken müssen,
das ist, dass wir keinen zusätzlichen Code,
hier steht es jetzt auch noch falsch,
nicht für die Fehlerbehandlung,
sondern für die Testdurchführung
Also, wenn jetzt jemand von Ihnen auf die Idee käme und sagt,
ach, für den Test wäre es doch ganz gut,
wenn wir die private Sichtbarkeit durch Public-Attribute in Felder machen würden.
Das wäre eine ganz schlechte Idee, weil dann testen wir
ein anderes System, als wir am Ende zum Kunden bringen.
Deswegen, das dürfen wir nicht tun. Das Ziel ist es,
kein zusätzlicher, kein veränderter Code sollte hier den Test irgendwie manipulieren.
Das wäre doch schlecht. Und wir wollen jetzt uns das
mal ein bisschen genauer angucken. Zum Beispiel könnte man
einen Klassentest durchführen, der Pro-Klasse alle Methoden testet.
Natürlich macht man das anhand einer Instanz eines Exemplars dieser Klassen.
Ja, das hat den Vorteil,
dass wir gleich das Zusammenspiel der Methoden mit den Attributen zählen.
Also die Methoden haben da ganz einfache Struktur meistens.
Sie tun nicht so besonders viel,
weil sie geben am überhaupt nur einen Return-Wert, selten,
dass da wirklich ein ganzer Use-Case drin ist.
Und sie sind eigentlich miteinander verbunden. Sie erfüllen die Aufgaben
nur, um Zusammenwirken. Und zwar sind dort die Attribute
von Klassen auch noch drin
Damit wir die Methoden einzeln testen könnten, da müssten wir doch
relativ komplexe Methoden haben und sie deuten relativ unabhängig voneinander sein.
Das wäre eine gute Sache. Wenn wir einzelne Methoden testen,
dann sollte die also diese Komplexität sollte ein bisschen größer sein
und sie sollten eben diese Abhängigkeit nicht erweisen.
Und eigentlich geht es uns um das Zusammenspiel. Das wäre doch
gut und damit sind wir schon mit der Objektontierten Software durch.
Ja, im Prinzip unterscheidet sich das nicht so sehr stark.
Ja, wir machen das nach Funktionen oder nach Kontrollfluss,
wenn wir das machen
Aber von den Vorgehen her können wir
genauso gut im Großen und im Kleinen das machen.
Soweit sind wir fertig mit dem Test.
Vielen Dank