Übungsaufgaben zur Testfallerstellung nach Whitebox-Systematik

https://bildung.social/@oerinformatik/111523080351425661

https://oer-informatik.de/whitebox-testfall-uebung-sortierung

tl/dr; (ca. 45 min Bearbeitungszeit): Zu einer gegebenen Funktion (ein Sortieralgorithmus) soll ein Kontrollflussgraph erstellt werden, die McCabe-Zahl berechnet werden (beides optional), die Überdeckungsmetriken für einen bestehenden Test berechnet werden, weitere Tests aus Whitebox-Sicht ergänzt werden und alles mit einem Code-Coverage-Tool implementiert werden. (Zuletzt geändert am 06.12.2023)

Die Aufgaben beziehen sich auf die Inhalte der folgenden Blogposts:

Aufgabe Überdeckungstests Sortieralgorithmus

Im Folgenden ist eine Beispielimplementierung für einen Sortier-Algorithmus abgebildet:

  1. Erstelle für diese Methode einen Kontrollflussgraphen!

Hinweis: in dieser Beispiellösung heißt die FUnktion anderes, der Kontrollflussentwurf passt aber. Kontrollflussgraph mit 9 Knoten

  1. Berechne die Zyklomatische Komplexität (McCabe-Zahl)!

Die McCabe-Zahl M lässt sich am einfachsten über die Anzahl der binären Verzweigungen (b) berechnen: im Kontrollflußgraph oben haben die Knoten 2, 5 und 7 je zwei ausgehende Kanten (b=3)

M = b + 1 = 4

Hintergrund: Artikel zur McCabe-Zahl
  1. Welche Testfälle erhälst Du aus Blackbox-Sicht für diesen Algorithmus? Erstelle für jede Blackbox-Systematik zwei Testfälle und dokumentiere die erforderlichen Informationen für die Testfälle tabellarisch!
Testfall
Nr.
Beschreibender Name der Testklasse / des Testfalls Vor-
bedingungen
Eingabewerte
(Parameter sortieren)
Erwartetes
Resultat
Nach-
bedingungen
Tatsächliches
Resultat
bestanden
/ nicht bestanden
1. ÄK: Unsortiertes Array keine sortiere([2;3;1]) [1;2;3] - ?? ??
2. ÄK: bereits sortiertes Array keine sortiere([3;4;5]) [3;4;5] - ?? ??
3. GW: Leeres Array keine sortiere([]) [] - ?? ??
4. GW: Ungültige Werte keine sortiere(NULL) Exception - ?? ??
  1. Es liegt nur der folgende Testfall vor:

Berechne den Anweisungsüberdeckungsgrad und den Zweigüberdeckungsgrad! Gibt die Werte in der Form xx von yy an (oder als nicht gekürzter Bruch), und nicht als Prozentzahl!

Anhand des Kontrollflussgraphen - am besten selbst nach zeichnen, alle durchlaufenen Anweisungen und Kanten kennzeichnen:
Kontrollflussgraph mit 9 Knoten
Anweisungsüberdeckung: C_0=\frac{9}{9}=100\%
Über Zweige: Zweig 7-6 wird nicht durchlaufen,
Zweigüberdeckung: C_1=\frac{5}{6}=100% Über Kanten: Kante 7-6 wird nicht durchlaufen,
Kantenüberdeckung: C_1=\frac{10}{11} =100%

  1. Übernimm die Methode in eine IDE und erstelle die entworfenen Testfälle. Überprüfe Deine Ergebnisse mit JaCoCo.

Weitere Übungsaufgaben

Links zu weiteren Übungsaufgaben finden sich über das Menü oder am Ende des Artikels zu Whitebox-Tests/Code-Coverage


Hinweis zur Nachnutzung als Open Educational Resource (OER)

Dieser Artikel und seine Texte, Bilder, Grafiken, Code und sonstiger Inhalt sind - sofern nicht anders angegeben - lizenziert unter CC BY 4.0. Nennung gemäß TULLU-Regel bitte wie folgt: Übungsaufgaben zur Testfallerstellung nach Whitebox-Systematik” von Hannes Stein, Lizenz: CC BY 4.0. Der Artikel wurde unter https://oer-informatik.de/whitebox-testfall-uebung-sortierung veröffentlicht, die Quelltexte sind in weiterverarbeitbarer Form verfügbar im Repository unter https://gitlab.com/oer-informatik/qs/code-coverage. Stand: 06.12.2023.

[Kommentare zum Artikel lesen, schreiben] / [Artikel teilen] / [gitlab-Issue zum Artikel schreiben]

Kommentare gerne per Mastodon, Verbesserungsvorschläge per gitlab issue (siehe oben). Beitrag teilen: