Whiteboxtest-Übungsaufgabe “Rabatt”

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

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

tl/dr; (ca. 15 min Bearbeitungszeit): Übungsaufgabe zur Whitebox-Testfall-Erstellung und Berechnung der Codeüberdeckung am Beispiel einer “Rabatt”-Funktion. (Zuletzt geändert am 06.12.2023)

Die Aufgaben beziehen sich auf die Inhalte der folgenden Blogposts:

Überdeckungstests-Übungsaufgabe Rabattrechner

Gegeben ist die folgende Methode, die Rabatte errechnet in Abhängigkeit der Positionskosten (über 100€ -> 5€ Rabatt) und Gesamtkosten (über 1000€ -> 5% Rabatt auf die rabattierte Gesamtsumme):

  1. Welchen Anweisungsüberdeckungsgrad und Zweigüberdeckungsgrad erhältst Du mit dem folgenden Testfall (Gibt die Werte in der Form xx von yy an (oder als nicht gekürzter Bruch), und nicht als Prozentzahl!):

Testfall im Kontrollflußgraph: 1->2->3->4->5->6->3->4->6->3->7->8->9

Ausgabe von JaCoCo: C0: 100%, C1= 83%

Anweisung 1 + 2 kann zusammengefasst werden.

C0 = durchlaufende Anweisungen / mögliche Anweisungen = 9/9 = 100% (bei Zusammenfassung von 1+2: 8/8 = 100%)

C1 = durchlaufende Zweige / mögliche Zweige = 5/6 = (83%)

Berechnung über Kanten statt Zweige:

C1 = durchlaufende Kanten / mögliche Kanten = 9/10 = 90%

Ausgabe von JaCoCo: C0: 100%, C1= 83%
Ausgabe von JaCoCo: C0: 100%, C1= 83%
  1. Ergänze so wenige Testfälle wie möglich, um eine 100%ige Zweigüberdeckung zu erhalten. (Erwartete Ergebnisse sind nicht erforderlich – lediglich die zu testenden Parameter sollen angegeben werden. Die Testfälle können abgekürzt werden nach dem Muster assertEquals(result, expected), für den obigen Testfall also - weil das erwartete Resultat ja nicht berechnet werden muss, z.B.: assertEquals(rabattAusgeben({ 1000, 10 }), ??);)

summe-rabatt muss unter 1000 bleiben, damit else-Zweig genommen wird, also:
Testfall im Kontrollflußgraph: 1->2->3->4->6->3->7->9
assertEquals(rabattAusgeben({10 }), ??);

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: Whiteboxtest-Übungsaufgabe "Rabatt"” von Hannes Stein, Lizenz: CC BY 4.0. Der Artikel wurde unter https://oer-informatik.de/whitebox-testfall-uebung-rabatt 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: