Blackboxtest- und Algorithmus-Übungsaufgabe “IHK-Abschlussnote”

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

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

tl/dr; (ca. 25 min Bearbeitungszeit): Übungsaufgaben zur Erstellung von Testfällen nach Blackboxsystematik für eine Methode, die die IHK-Abschlussnote berechnet. Es werden systematisch Äquivalenzklassen und Grenzwerte bestimmt und abschließend der Algorithmus mit Pseudocode formuliert. (Zuletzt geändert am 27.09.2024)

Die Aufgaben beziehen sich auf die Inhalte der folgenden Blogposts:

Für eine Funktion zur Berechnung der IHK-Abschlussnote der IT-Berufe sollen Blackbox-Tests entwickelt werden.

Die Funktion abschlussnote(note[]: HashMap): int soll die Note des Berufsabschlusses aus den Einzelnoten (Wertung von 0 bis 100 Punkte) berechnet. Die Einzelergebnisse werden in einer Hashmap (einem Dictionary nach Python-) note übergeben und können über die in der Tabelle unten genannten Keys angesprochen werden (z.B. note["T2P"] = 84 ). Die Values (die Punkte der Teilleistungen) sind jeweils vom Typ int.

Nach gleichem Muster werden die Gewichtungen in einer Hashmap hinterlegt – diese ist global verfügbar und unveränderlich (z.B. gewichtung["PJ"] = 25).

Als Anforderungen ist gegeben:

  • Die Rückgabe der Funktion soll die gewichtete Durchschnittsnote sein (0 bis 100 Punkte), wenn die Prüfung bestanden wurde.

  • Die Funktion soll eine Exception werfen, wenn die Berechnung aufgrund ungültiger Eingaben/Werte nicht möglich ist.

  • Die Rückgabe soll der Wert 0 sein, wenn die Prüfung nicht bestanden wurde.

  • Die Bestehensregeln sind folgende1:

    • Im Gesamtergebnis (gewichteter Durchschnitt Teil 1 und Teil 2 zusammen) müssen mindestens 50 Punkte erreicht werden.

    • Im Ergebnis von Teil 2 (gewichteter Durchschnitt von allem, bis auf die erste Prüfungsleistung) müssen mindestens 50 Punkte erreicht werden.

    • In mindestens drei Prüfungsbereichen von Teil 2 müssen jeweils mindestens 50 Punkte erreicht werden.

    • In keinem Prüfungsbereich von Teil 2 dürfen weniger als 30 Punkte erreicht werden.

Ein beispielhaftes Prüfungsergebnis besteht aus den folgenden Prüfungsleistungen:

Prüfungsbestandteil Key in Hashmap Gewichtung Beispiel Punkte
Teil 1 Einrichten eines IT-gestützten Arbeitsplatzes T1 20% 56
Teil 2 Planen eines Softwareprodukts T2P 10% 84
Entwicklung und Umsetzung von Algorithmen T2A 10% 60
Wirtschaft und Sozialkunde T2W 10% 81
Projektarbeit PJ 25% 78
Präsentation und Fachgespräch FG 25% 85
Gesamtergebnis: 74

Ein vereinfachter Funktionsaufruf kann für die Testfälle mit JSON-Notation erfolgen, für obiges Beispiel also:

Die Funktion abschlussnote(note[]: HashMap): int soll fachgerecht mit Testfällen nach Blackboxsystematik versehen werden.

  1. 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.
Typ Name Eingabewerte Erwartetes
Ergebnis
Tats.
Erg.(*)
Bestanden?(*)
GW Knapp Bestanden abschlussnote({"T1":50, "T2P":50, "T2A":50, "T2W":50, "PJ":50, "FG":50}) 50
GW Beste Note abschlussnote({"T1":100, "T2P":100, "T2A":100, "T2W":100, "PJ":100, "FG":100}) 100
ÄQ Bestanden abschlussnote({"T1":65, "T2P":65, "T2A":65, "T2W":65, "PJ":65, "FG":65}) 65
ÄQ Nicht Betstanden
wg. sechs
abschlussnote({"T1":65, "T2P":65, "T2A":25, "T2W":65, "PJ":65, "FG":65}) 0

(*) Wird später ausgefüllt.

  1. Vervollständige die Testsuite, in dem Du Grenzwerttests für alle extremen Notenwerte ergänzt. Bilde darüber hinaus Äquivalenzklassen für jede Art, die Prüfung nicht zu bestehen. Ergänze auch ungültige Eingaben gemäß Spezifikation. Fasse dabei gleichartige tabellarische Testfalldokumentation zusammen und nenne jeweils die zugrunde gelegte Systematik.

Allein über die Kombinatorik sind hier viele Testfälle möglich. Um effizient zu testen, sollte jedoch jede Bestehens-Anforderung einmal erfüllt und einmal (isoliert) nicht erfüllt sein. Kombinationen aus unterschiedlichen Nicht-Bestehens-Kriterien sollten vermieden werden (jedenfalls so lange die einzelnen Kriterien noch nicht isoliert getestet wurden).

Typ Name Eingabewerte Erwartetes
Ergebnis
Tats.
Erg.(*)
Best-
anden?(*)
GW1 Schlechteste Note abschlussnote({"T1":0, "T2P":0, "T2A":0, "T2W":0, "PJ":0, "FG":0}) 0
GW2 Alles knapp
nicht bestanden
abschlussnote({"T1":49, "T2P":49, "T2A":49, "T2W":49, "PJ":49, "FG":49}) 49
GW3 Alles knapp
bestanden
abschlussnote({"T1":50, "T2P":50, "T2A":50, "T2W":50, "PJ":50, "FG":50}) 50
GW4 Beste Note abschlussnote({"T1":100, "T2P":100, "T2A":100, "T2W":100, "PJ":100, "FG":100}) 100
ÄQ1 Alles bestanden abschlussnote({"T1":65, "T2P":65, "T2A":65, "T2W":65, "PJ":65, "FG":65}) 65
ÄQ2 Alles nicht
bestanden
abschlussnote({"T1":40, "T2P":40, "T2A":40, "T2W":40, "PJ":40, "FG":40}) 0
ÄQ3 Nicht bestanden
wg. sechs
abschlussnote({"T1":85, "T2P":25, "T2A":85, "T2W":85, "PJ":85, "FG":85}) 0
ÄQ4 Nicht bestanden
Gesamtergebnis <50
abschlussnote({"T1":51, "T2P":51, "T2A":51, "T2W":51, "PJ":51, "FG":32}) 0
ÄQ5 Nicht bestanden
Teil 2 <50
abschlussnote({"T1":90, "T2P":55, "T2A":55, "T2W":55, "PJ":55, "FG":35}) 0
ÄQ6 Nicht bestanden
nicht mind 3xT2 >=50
abschlussnote({"T1":90, "T2P":48, "T2A":48, "T2W":48, "PJ":55, "FG":55}) 0
ÄQ7 Knapp bestanden
trotz T2 5
abschlussnote({"T1":85, "T2P":31, "T2A":53, "T2W":53, "PJ":53, "FG":53}) 57
ÄQ8 Knapp bestanden
trotz T1 0P
abschlussnote({"T1":0, "T2P":65, "T2A":65, "T2W":65, "PJ":65, "FG":65}) 52
ÄQ9 Ungültig
Einzelnote über 100P
abschlussnote({"T1":65, "T2P":65, "T2A":65, "T2W":65, "PJ":65, "FG":101}) Exception
ÄQ10 Ungültig
Einzelnote kleiner 0
abschlussnote({"T1":75, "T2P":65, "T2A":65, "T2W":65, "PJ":-1, "FG":65}) Exception
ÄQ11 Ungültig
Einzelnote leer
abschlussnote({"T1":85, "T2P":65, "T2A":65, "T2W":, "PJ":65, "FG":65}) Exception
ÄQ12 Ungültig
Einzelnote Gleitkomma
abschlussnote({"T1":85, "T2P":65, "T2A":65.5, "T2W":, "PJ":65, "FG":65}) Exception
ÄQ13 Ungültig
Einzelnote fehlt
abschlussnote({"T1":85, "T2A":65.5, "T2W":, "PJ":65, "FG":65}) Exception
GW5 Ungültig
leere Hashmap
abschlussnote({}) Exception

(*) Wird später ausgefüllt.

  1. Die Funktion, für die in der vorigen Aufgabe Blackboxtestfälle erstellt wurden, soll nun mit Pseudocode als Algorithmus entworfen werden. Setze die Anforderungen aus der vorigen Aufgabe zur Berechnung der Note und zu den Bestehensregeln um.

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: Blackboxtest- und Algorithmus-Übungsaufgabe "IHK-Abschlussnote"” von Hannes Stein, Lizenz: CC BY 4.0. Der Artikel wurde unter https://oer-informatik.de/blackbox-testfall-uebung-berechnungIHKAbschluss veröffentlicht, die Quelltexte sind in weiterverarbeitbarer Form verfügbar im Repository unter https://gitlab.com/oer-informatik/qs/blackboxtest. Stand: 27.09.2024.

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


  1. Siehe Verordnung über die Berufsausbildung zum/zur Fachinformatiker*in, §16

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