Übungsaufgabe zur Blackbox-Testfallerstellung für eine Verzinsungsfunktion

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

https://oer-informatik.de/blackbox-testfall-uebung-

tl/dr; (ca. 10 min Bearbeitungszeit): Übungsaufgabe zur Erstellung von Blackbox-Testfällen zu einer Funktion, die Guthaben/Soll eines Kontos verzinst. (Zuletzt geändert am 06.12.2023)

Die Aufgaben beziehen sich auf die Inhalte der folgenden Blogposts:

Es sollen Blackbox-Testfälle erstellt werden für eine Methode zur Verzinsung eines Girokontos

Die Methode erhält als Parameter den zu verzinsenden Betrag (in Euro) und die Verzinsungsdauer (in Jahren). Rückgabewert sind die resultierenden Zinsen (in Euro). Die Auftraggeberin übergibt als Anforderung folgende Liste:

  • Guthaben bis zu (inkl.) einer Höhe von 3000€ werden mit 0% verzinst.

  • Guthaben oberhalb 3000€ werden mit einem Strafzins von -1% verzinst.

  • Negative Guthaben von bis zu (inkl.) -1500€ werden mit dem Zinssatz 5% verzinst (geduldete Kontoüberziehungen).

  • Bei negative Guthaben unterhalb von -1500€ soll eine Ausnahme (Exception) geworfen werden.

  • Die Verzinsung erfolgt jährlich einmal, bei mehreren Jahren ergeben sich so Zinseszinsen.

  1. Die Methode double verzinse(double betrag, int jahr) soll fachgerecht mit Testfällen nach Blackboxsystematik versehen werden. Bereite eine fachgerechte tabellarische Testfalldokumentation vor und trage darin vier Testfälle (zwei je Blackbox-Systematik) ein mit allen Daten, die bereits bekannt sind (die anderen Zellen können vorbereitet, aber leer bleiben).Nenne auch die zugrunde gelegte Systematik.

Allein über die Kombinatorik der beiden Parameter sind hier viele Testfälle möglich. Um effizient zu testen sollte jeweils der Base-Case (die Standardanwendung) des einen Parameters mit den Grenzwerten des zweiten Kombiniert werden.

Typ Name Eingabewerte Erwartetes
Ergebnis(*)
Tats.
Erg.(*)
Best-
anden?(*)
GW1a kein Guthaben verzinse(0.00, 1) 0
GW1b kein Guthaben verzinse(0.01, 1) 0
GW1c kein Guthaben verzinse(-0.01, 1) 0.0005
GW2a geduldet, Untergrenze verzinse(-1500.00, 1) 75
GW2b geduldet, Untergrenze verzinse(-1500.01, 1) Exception
GW2c geduldet, Untergrenze verzinse(-1499.99, 1)
GW3a Strafzins, Untergrenze verzinse(3000.00, 1) 0
GW3b Strafzins, Untergrenze verzinse(3000.01, 1) 30
GW3c Strafzins, Untergrenze verzinse(2999.99, 1) 0
GW4 kein Zeitraum verzinse(500, 0) 0
ÄQ1 ein Jahr verzinse(500, 1) 0
ÄQ2 viele Jahre verzinse(500, 10) 0
ÄQ3 geduldet verzinse(-500, 5) -138,14
ÄQ4 Strafzins verzinse(4000, 5) -196,04
ÄQ5 Überzogen verzinse(-2000, 5) Exception

(*) Wird später ausgefüllt.

  1. Welche Spezifikationslücken fallen beim erstellen der Testfälle auf? Wie können diese gefüllt werden?

Es gibt keine Festlegung, was bei Eingabe von negativen Zeiten passieren soll. Ausserdem ist ungenau formuliert, was passiert, wenn der Wert im ersten Jahr oberhalb eines Grenzwerts liegt, in den Folgejahren aber unterhalb (z.B. Testfall GW3b oben: im ersten Jahr oberhalb der 3000, dann mit 2970 unterhalb).

Was soll an den Grenzen des Definitionsbereichs passieren? Muss das Verhalten bei MAX_DOUBLE und MIN_DOUBLE bzw. wenn der Rückgabewert aus den Definitionsbereich geht getestet werden?

Weiter Übungsaufgaben

Links zu weiteren Übungsaufgaben finden sich über das Menü oder am Ende des Artikels zu Blackbox-Tests


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: Übungsaufgabe zur Blackbox-Testfallerstellung für eine Verzinsungsfunktion” von Hannes Stein, Lizenz: CC BY 4.0. Der Artikel wurde unter https://oer-informatik.de/blackbox-testfall-uebung- veröffentlicht, die Quelltexte sind in weiterverarbeitbarer Form verfügbar im Repository unter https://gitlab.com/oer-informatik/qs/blackboxtest. 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: