{"beispielaufgaben":[{"artefakt_id":"artefakt.freitextantwort","aufgabe":[{"text":"Sie arbeiten in der IT-Abteilung eines Betreibers von Paketsortieranlagen. Für das Modul zur Berechnung der Zielrutsche eines Pakets liegt ein automatisierter Testlauf vor. Das Testwerkzeug meldet für dieses Modul eine Anweisungsüberdeckung von 100 %. Ein Kollege schließt daraus, dass das Modul vollständig getestet und damit fehlerfrei sei.","typ":"absatz"},{"text":"a) Erläutern Sie, was eine Anweisungsüberdeckung von 100 % über die durchgeführten Tests aussagt. (2 Punkte)","typ":"absatz"},{"text":"b) Erläutern Sie anhand einer Verzweigung ohne else-Zweig, warum eine vollständige Anweisungsüberdeckung noch keine vollständige Zweigüberdeckung bedeutet. (2 Punkte)","typ":"absatz"},{"text":"c) Erläutern Sie, warum auch eine vollständige Zweigüberdeckung nicht garantiert, dass das Modul fehlerfrei arbeitet. (2 Punkte)","typ":"absatz"}],"beispiel_id":"bsp-testabdeckung-erlaeutern-freitextantwort-01","freigabeart":"maschinell","loesung":[{"text":"a) (2 P) Jede Anweisung des Moduls wurde durch mindestens einen Testfall mindestens einmal ausgeführt (1 P); Aussage bezieht sich nur auf die Ausführung, nicht auf die Korrektheit der Ergebnisse (1 P).\nb) (2 P) Bei einer if-Anweisung ohne else genügt ein Testfall mit erfüllter Bedingung, um alle Anweisungen auszuführen (1 P); der Fall der nicht erfüllten Bedingung (Sprung am Block vorbei) bleibt ungetestet, dieser Zweig ist nicht überdeckt (1 P).\nc) (2 P) Überdeckungsmaße messen nur die Ausführung vorhandenen Codes (1 P); fehlende bzw. vergessene Funktionalität, falsche Testdaten/Sollwerte oder ungetestete Kombinationen und Grenzfälle bleiben unentdeckt (1 P). Je Teilaufgabe sind sinngemäß gleichwertige Formulierungen zu akzeptieren.","typ":"absatz"}],"operator_id":"operator.erlaeutern","pruefungszuordnung":{"berufe":["FIAE"],"teil":"AP2"},"punkte":6,"punkterahmen":{"max":12,"min":2},"quellen":["ap2-fiae-2023-sommer-ae2-a03-b-ba","ap2-fiae-2024-sommer-ae2-a03-b","ap2-fiae-2025-winter-ae2-a03-a-ab"]},{"artefakt_id":"artefakt.freitextantwort","aufgabe":[{"text":"In einem Projekt zur Entwicklung einer Lernplattform für Musikschulen wird nach jedem Build automatisch ein Testbericht erzeugt. Darin wird für das Paket \"Kursverwaltung\" eine Zeilenüberdeckung ausgewiesen.","typ":"absatz"},{"text":"Erläutern Sie, wie die Kennzahl Zeilenüberdeckung ermittelt wird und welche Grenze ihrer Aussagekraft die Projektleitung bei der Bewertung des Testberichts beachten muss.","typ":"absatz"}],"beispiel_id":"bsp-testabdeckung-erlaeutern-freitextantwort-02","freigabeart":"maschinell","loesung":[{"text":"(3 P) Ermittlung: Verhältnis der beim Testlauf tatsächlich ausgeführten Codezeilen zur Gesamtzahl der ausführbaren Codezeilen des Pakets (1 P), angegeben in Prozent (1 P).\nGrenze (1 P): Die Kennzahl sagt nur aus, dass Zeilen durchlaufen wurden, nicht ob die Ergebnisse geprüft bzw. korrekt sind; z. B. können Testfälle ohne aussagekräftige Prüfungen (Assertions) oder fehlende Funktionalität eine hohe Überdeckung liefern.\nSinngemäße Formulierungen sind zu akzeptieren.","typ":"absatz"}],"operator_id":"operator.erlaeutern","pruefungszuordnung":{"berufe":["FIAE"],"teil":"AP2"},"punkte":3,"punkterahmen":{"max":12,"min":2},"quellen":["ap2-fiae-2023-sommer-ae2-a03-b-ba","ap2-fiae-2024-sommer-ae2-a03-b","ap2-fiae-2025-winter-ae2-a03-a-ab"]},{"artefakt_id":"artefakt.freitextantwort","aufgabe":[{"text":"Sie entwickeln für einen Hersteller von Zutrittskontrollsystemen die Software einer Türsteuerung. Die Freigabe einer Tür wird über eine zusammengesetzte Bedingung entschieden, die den Ausweisstatus, die Zeitzone und eine Sperrliste in einer einzigen if-Abfrage mit logischen Operatoren verknüpft. Ihr Testwerkzeug weist für diese Funktion eine vollständige Zweigüberdeckung aus. Die Qualitätssicherung verlangt zusätzlich eine Bedingungsüberdeckung und bittet Sie um eine schriftliche Begründung.","typ":"absatz"},{"text":"a) Erläutern Sie, nach welchem Kriterium die Testdaten gewählt werden müssen, damit für diese Funktion eine Bedingungsüberdeckung erreicht wird. (3 Punkte)","typ":"absatz"},{"text":"b) Erläutern Sie am Beispiel der zusammengesetzten Freigabebedingung, warum eine vollständige Zweigüberdeckung Fehler in einzelnen Teilbedingungen unentdeckt lassen kann. (3 Punkte)","typ":"absatz"}],"beispiel_id":"bsp-testabdeckung-erlaeutern-freitextantwort-03","freigabeart":"maschinell","loesung":[{"text":"a) (3 P.) Testdaten so wählen, dass jede atomare Teilbedingung (Ausweisstatus, Zeitzone, Sperrliste) mindestens einmal den Wert wahr und einmal den Wert falsch annimmt (2 P.); Bezug auf die Auswertung innerhalb der zusammengesetzten if-Abfrage (1 P.).\nb) (3 P.) Zweigüberdeckung verlangt nur, dass der Wahr- und der Falsch-Zweig der Gesamtbedingung je einmal durchlaufen werden (1 P.); dies ist bereits mit zwei Testfällen erreichbar, in denen einzelne Teilbedingungen nie umschlagen bzw. durch Kurzschlussauswertung gar nicht ausgewertet werden (1 P.); ein Fehler in einer solchen Teilbedingung, z. B. eine falsch geprüfte Sperrliste, bleibt dann unbemerkt (1 P.). Sinngemäße Formulierungen sind zu akzeptieren.","typ":"absatz"}],"operator_id":"operator.erlaeutern","pruefungszuordnung":{"berufe":["FIAE"],"teil":"AP2"},"punkte":6,"punkterahmen":{"max":12,"min":2},"quellen":["ap2-fiae-2023-sommer-ae2-a03-b-ba","ap2-fiae-2024-sommer-ae2-a03-b","ap2-fiae-2025-winter-ae2-a03-a-ab"]},{"artefakt_id":"artefakt.freitextantwort","aufgabe":[{"text":"Sie testen in einem Online-Shop die Funktion berechneVersand, die die Versandkosten in Euro ermittelt. Es liegt folgender Pseudocode vor:\n01 versand = 0\n02 if gewicht > 30\n03   versand = 12\n04 end if\n05 if zielland != \"DE\"\n06   versand = versand + 20\n07 end if\n08 if eilzustellung == true\n09   versand = versand + 8\n10 end if\n11 return versand\nFuer den Test wird genau ein Datensatz verwendet: gewicht = 45, zielland = \"DE\", eilzustellung = false. Waehrend der Ausfuehrung wird die Anweisungsueberdeckung gemessen. Nennen Sie die beiden Anweisungen (mit Zeilennummer), die mit diesem Testdatensatz nicht durchlaufen werden.","typ":"absatz"}],"beispiel_id":"bsp-testabdeckung-nennen-freitextantwort-01","freigabeart":"maschinell","loesung":[{"text":"Erwartet werden genau zwei Zeilennummern (je 2 Punkte, insgesamt 4 Punkte):\n- Zeile 06 (versand = versand + 20), da zielland == \"DE\" die Bedingung in Zeile 05 nicht erfuellt (2 P).\n- Zeile 09 (versand = versand + 8), da eilzustellung == false die Bedingung in Zeile 08 nicht erfuellt (2 P).\nNur die reine Nennung ist gefordert; eine Begruendung wird nicht bepunktet. Hinweis fuer die Korrektur: Die Anweisungsueberdeckung ist ein beobachtetes Ueberdeckungsmass dieses einen Testlaufs und belegt keine Fehlerfreiheit. Fachlich gleichwertige Bezeichnung der Anweisung ohne Zeilennummer ist anzuerkennen, sofern eindeutig.","typ":"absatz"}],"operator_id":"operator.nennen","pruefungszuordnung":{"berufe":["FIAE"],"teil":"AP2"},"punkte":4,"punkterahmen":{"max":4,"min":4},"quellen":["ap2-fiae-2023-sommer-ae2-a03-b-bb","ap2-fiae-2025-sommer-ae2-a02-b-ba"]},{"artefakt_id":"artefakt.freitextantwort","aufgabe":[{"text":"In einer Zutrittssoftware pruefen Sie die Funktion pruefeZugang, die abhaengig von zwei Eingaben eine Meldung liefert. Gegeben ist folgender Pseudocode:\n01 if kontoGesperrt == true\n02   meldung = \"gesperrt\"\n03 else\n04   if ausweisGueltig == true\n05     meldung = \"Zutritt\"\n06   else\n07     meldung = \"abgelehnt\"\n08   end if\n09 end if\n10 return meldung\nAusgefuehrt wird genau ein Testfall: kontoGesperrt = false, ausweisGueltig = true. Gemessen wird die Zweigueberdeckung. Nennen Sie die beiden Zweige, die mit diesem Testfall nicht ausgefuehrt werden; kennzeichnen Sie jeden Zweig durch die Zeilennummer der jeweils nicht erreichten Anweisung.","typ":"absatz"}],"beispiel_id":"bsp-testabdeckung-nennen-freitextantwort-02","freigabeart":"maschinell","loesung":[{"text":"Erwartet werden genau zwei nicht ausgefuehrte Zweige (je 2 Punkte, insgesamt 4 Punkte):\n- Der wahr-Zweig der Entscheidung in Zeile 01, also Zeile 02 (\"gesperrt\"), da kontoGesperrt == false (2 P).\n- Der falsch-Zweig der Entscheidung in Zeile 04, also Zeile 07 (\"abgelehnt\"), da ausweisGueltig == true (2 P).\nGefordert ist ausschliesslich die Nennung; keine Begruendung noetig. Korrekturhinweis: Die Zweigueberdeckung ist ein beobachtetes Mass des vorgegebenen Testfalls und ersetzt keine vollstaendige Pruefung aller Eingaben. Gleichwertige eindeutige Benennung des Zweiges ohne Zeilennummer ist anzuerkennen.","typ":"absatz"}],"operator_id":"operator.nennen","pruefungszuordnung":{"berufe":["FIAE"],"teil":"AP2"},"punkte":4,"punkterahmen":{"max":4,"min":4},"quellen":["ap2-fiae-2023-sommer-ae2-a03-b-bb","ap2-fiae-2025-sommer-ae2-a02-b-ba"]},{"artefakt_id":"artefakt.freitextantwort","aufgabe":[{"text":"Fuer einen Energieversorger testen Sie die Funktion tarifStufe, die anhand des Jahresverbrauchs eine Stufe zurueckgibt. Der Pseudocode lautet:\n01 if verbrauch <= 100\n02   stufe = \"A\"\n03 else if verbrauch <= 300\n04   stufe = \"B\"\n05 else if verbrauch <= 600\n06   stufe = \"C\"\n07 else\n08   stufe = \"D\"\n09 end if\n10 return stufe\nFuer den Test werden genau zwei Datensaetze verwendet: verbrauch = 50 und verbrauch = 250. Gemessen wird, welche Ergebnisstufen durchlaufen werden. Nennen Sie die beiden Faelle (Ergebnisstufen mit zugehoeriger Zeilennummer), die mit diesen beiden Testdatensaetzen nicht abgedeckt werden.","typ":"absatz"}],"beispiel_id":"bsp-testabdeckung-nennen-freitextantwort-03","freigabeart":"maschinell","loesung":[{"text":"Erwartet werden genau zwei nicht abgedeckte Faelle (je 2 Punkte, insgesamt 4 Punkte):\n- Stufe \"C\" (Zeile 06), abgedeckt erst durch einen Verbrauch von 301 bis 600, der in den Testdaten fehlt (2 P).\n- Stufe \"D\" (Zeile 08), abgedeckt erst durch einen Verbrauch groesser 600, der in den Testdaten fehlt (2 P).\nStufe \"A\" (verbrauch 50) und Stufe \"B\" (verbrauch 250) sind bereits abgedeckt. Gefordert ist nur die Nennung, keine Begruendung. Korrekturhinweis: Die gemessene Ueberdeckung bezieht sich allein auf die vorgegebenen Tests und garantiert weder Fehlerfreiheit noch Pruefung aller moeglichen Verbrauchswerte. Nennung nur der Stufe oder nur der Zeilennummer ist bei Eindeutigkeit anzuerkennen.","typ":"absatz"}],"operator_id":"operator.nennen","pruefungszuordnung":{"berufe":["FIAE"],"teil":"AP2"},"punkte":4,"punkterahmen":{"max":4,"min":4},"quellen":["ap2-fiae-2023-sommer-ae2-a03-b-bb","ap2-fiae-2025-sommer-ae2-a02-b-ba"]},{"artefakt_id":"artefakt.tabelle","aufgabe":[{"text":"Ein Onlineshop testet die Funktion versandBonus, die aus fünf Prüfkriterien Bonuspunkte für den Versandrabatt eines Warenkorbs vergibt. Der folgende Pseudocode ist vollständig vorgegeben; jede Rumpfzeile einer Bedingung ist eine eigene Anweisung:","typ":"absatz"},{"text":"```\n01 function versandBonus(bestellwert, istAbonnent, gutscheinGueltig, appBestellung, klimapaket)\n02   bonus = 0\n03   if bestellwert >= 50 then bonus = bonus + 1\n04   if istAbonnent then bonus = bonus + 1\n05   if gutscheinGueltig then bonus = bonus + 1\n06   if appBestellung then bonus = bonus + 1\n07   if klimapaket then bonus = bonus + 1\n08   return bonus\n```","typ":"absatz"},{"text":"Die Tabelle listet fünf Testfälle mit vollständig vorgegebenen Eingabewerten. Bei jedem Testfall bleibt genau eine Anweisung aus den Zeilen 03 bis 07 nicht durchlaufen. Nennen Sie je Zeile diese eine nicht durchlaufene Anweisung mit ihrer Zeilennummer; Begründungen werden nicht bewertet. Je Zelle zählt genau ein Eintrag einen Punkt. Eine erreichte Anweisungsüberdeckung belegt keine Fehlerfreiheit des Programms.","typ":"absatz"},{"kopf":["Nr","Eingaben (bestellwert, istAbonnent, gutscheinGueltig, appBestellung, klimapaket)","nicht durchlaufene Anweisung (Zeilennummer)"],"typ":"tabelle","zeilen":[["1","40, true, true, true, true",""],["2","80, false, true, true, true",""],["3","80, true, false, true, true",""],["4","80, true, true, false, true",""],["5","80, true, true, true, false",""]]}],"beispiel_id":"bsp-testabdeckung-nennen-tabelle-01","freigabeart":"maschinell","loesung":[{"text":"Lösung (je Zeile 1 Punkt, gesamt 5 Punkte):","typ":"ueberschrift"},{"kopf":["Nr","Eingaben (bestellwert, istAbonnent, gutscheinGueltig, appBestellung, klimapaket)","nicht durchlaufene Anweisung (Zeilennummer)"],"typ":"tabelle","zeilen":[["1","40, true, true, true, true","Zeile 03 (bonus = bonus + 1)"],["2","80, false, true, true, true","Zeile 04 (bonus = bonus + 1)"],["3","80, true, false, true, true","Zeile 05 (bonus = bonus + 1)"],["4","80, true, true, false, true","Zeile 06 (bonus = bonus + 1)"],["5","80, true, true, true, false","Zeile 07 (bonus = bonus + 1)"]]},{"text":"In jeder Zeile scheitert genau eine Bedingung, sodass allein deren Rumpfanweisung nicht ausgeführt wird. Die eindeutige Angabe der Zeilennummer genügt; fachlich gleichwertige eindeutige Bezeichnungen der Anweisung werden anerkannt. Bei Mehrfacheinträgen wird nur der erste Eintrag je Zelle gewertet.","typ":"absatz"}],"operator_id":"operator.nennen","pruefungszuordnung":{"berufe":["FIAE"],"teil":"AP2"},"punkte":5,"punkterahmen":{"max":5,"min":5},"quellen":["ap2-fiae-2024-sommer-ae2-a03-c"]},{"artefakt_id":"artefakt.tabelle","aufgabe":[{"text":"Für eine Fahrplan-App soll die Funktion komfortWert getestet werden, die einer Zugverbindung anhand von fünf Merkmalen einen Komfortwert zuweist. Der Pseudocode ist vollständig vorgegeben; jede Rumpfzeile einer Bedingung gilt als eigene Anweisung:","typ":"absatz"},{"text":"```\n01 function komfortWert(umstiege, wlan, klima, ruhezone, echtzeit)\n02   wert = 0\n03   if umstiege == 0 then wert = wert + 1\n04   if wlan then wert = wert + 1\n05   if klima then wert = wert + 1\n06   if ruhezone then wert = wert + 1\n07   if echtzeit then wert = wert + 1\n08   return wert\n```","typ":"absatz"},{"text":"Die Tabelle enthält fünf Testfälle mit vollständig vorgegebenen Eingabewerten. Bei jedem Testfall wird genau eine Anweisung der Zeilen 03 bis 07 nicht ausgeführt. Nennen Sie je Zeile diese nicht ausgeführte Anweisung mit ihrer Zeilennummer; Beschreibungen werden nicht bewertet. Je Zelle zählt genau ein Eintrag einen Punkt. Vollständige Anweisungsüberdeckung bedeutet nicht, dass damit alle Anforderungen geprüft sind.","typ":"absatz"},{"kopf":["Nr","Eingaben (umstiege, wlan, klima, ruhezone, echtzeit)","nicht ausgeführte Anweisung (Zeilennummer)"],"typ":"tabelle","zeilen":[["1","1, true, true, true, true",""],["2","0, false, true, true, true",""],["3","0, true, false, true, true",""],["4","0, true, true, false, true",""],["5","0, true, true, true, false",""]]}],"beispiel_id":"bsp-testabdeckung-nennen-tabelle-02","freigabeart":"maschinell","loesung":[{"text":"Lösung (je Zeile 1 Punkt, gesamt 5 Punkte):","typ":"ueberschrift"},{"kopf":["Nr","Eingaben (umstiege, wlan, klima, ruhezone, echtzeit)","nicht ausgeführte Anweisung (Zeilennummer)"],"typ":"tabelle","zeilen":[["1","1, true, true, true, true","Zeile 03 (wert = wert + 1)"],["2","0, false, true, true, true","Zeile 04 (wert = wert + 1)"],["3","0, true, false, true, true","Zeile 05 (wert = wert + 1)"],["4","0, true, true, false, true","Zeile 06 (wert = wert + 1)"],["5","0, true, true, true, false","Zeile 07 (wert = wert + 1)"]]},{"text":"Je Testfall trifft genau eine der Bedingungen nicht zu, sodass allein die zugehörige Rumpfanweisung übersprungen wird. Die Angabe der Zeilennummer genügt; fachlich gleichwertige eindeutige Bezeichnungen der Anweisung werden anerkannt. Bei Mehrfacheinträgen wird nur der erste Eintrag je Zelle gewertet.","typ":"absatz"}],"operator_id":"operator.nennen","pruefungszuordnung":{"berufe":["FIAE"],"teil":"AP2"},"punkte":5,"punkterahmen":{"max":5,"min":5},"quellen":["ap2-fiae-2024-sommer-ae2-a03-c"]},{"artefakt_id":"artefakt.tabelle","aufgabe":[{"text":"Ein Betreiber von Ladesäulen testet die Funktion eignung, die einem Ladepunkt aus fünf Merkmalen einen Eignungswert zuordnet. Der Pseudocode ist vollständig vorgegeben; jede Rumpfzeile einer Bedingung ist eine eigene Anweisung:","typ":"absatz"},{"text":"```\n01 function eignung(distanz, schnellladen, ueberdacht, app, mitglied)\n02   punkte = 0\n03   if distanz <= 5 then punkte = punkte + 1\n04   if schnellladen then punkte = punkte + 1\n05   if ueberdacht then punkte = punkte + 1\n06   if app then punkte = punkte + 1\n07   if mitglied then punkte = punkte + 1\n08   return punkte\n```","typ":"absatz"},{"text":"Die Tabelle listet fünf Testfälle mit vollständig vorgegebenen Eingabewerten. Bei jedem Testfall bleibt genau eine Anweisung der Zeilen 03 bis 07 nicht durchlaufen. Nennen Sie je Zeile diese eine nicht durchlaufene Anweisung mit ihrer Zeilennummer; Begründungen werden nicht bewertet. Je Zelle zählt genau ein Eintrag einen Punkt. Eine vollständige Anweisungsüberdeckung belegt nicht die Fehlerfreiheit des Programms.","typ":"absatz"},{"kopf":["Nr","Eingaben (distanz, schnellladen, ueberdacht, app, mitglied)","nicht durchlaufene Anweisung (Zeilennummer)"],"typ":"tabelle","zeilen":[["1","8, true, true, true, true",""],["2","3, false, true, true, true",""],["3","3, true, false, true, true",""],["4","3, true, true, false, true",""],["5","3, true, true, true, false",""]]}],"beispiel_id":"bsp-testabdeckung-nennen-tabelle-03","freigabeart":"maschinell","loesung":[{"text":"Lösung (je Zeile 1 Punkt, gesamt 5 Punkte):","typ":"ueberschrift"},{"kopf":["Nr","Eingaben (distanz, schnellladen, ueberdacht, app, mitglied)","nicht durchlaufene Anweisung (Zeilennummer)"],"typ":"tabelle","zeilen":[["1","8, true, true, true, true","Zeile 03 (punkte = punkte + 1)"],["2","3, false, true, true, true","Zeile 04 (punkte = punkte + 1)"],["3","3, true, false, true, true","Zeile 05 (punkte = punkte + 1)"],["4","3, true, true, false, true","Zeile 06 (punkte = punkte + 1)"],["5","3, true, true, true, false","Zeile 07 (punkte = punkte + 1)"]]},{"text":"In Zeile 1 ist distanz > 5, sodass nur Zeile 03 unausgeführt bleibt; in den übrigen Testfällen scheitert je genau eine der Bedingungen der Zeilen 04 bis 07. Die Angabe der Zeilennummer genügt; fachlich gleichwertige eindeutige Bezeichnungen der Anweisung werden anerkannt. Bei Mehrfacheinträgen wird nur der erste Eintrag je Zelle gewertet.","typ":"absatz"}],"operator_id":"operator.nennen","pruefungszuordnung":{"berufe":["FIAE"],"teil":"AP2"},"punkte":5,"punkterahmen":{"max":5,"min":5},"quellen":["ap2-fiae-2024-sommer-ae2-a03-c"]},{"artefakt_id":"artefakt.freitextantwort","aufgabe":[{"text":"In einer Bibliothekssoftware sollen vier Prüffunktionen vollständige Anweisungsüberdeckung erreichen. Geben Sie zu jedem der vier Fälle genau eine zusätzliche oder geänderte Testeingabe an, sodass jede Anweisung mindestens einmal ausgeführt wird.","typ":"absatz"},{"text":"Fall 1:\nfunktion mahngebuehr(tage):\nwenn tage > 14:\ngebuehr = tage * 2\nvorhandene Eingabe: tage = 9","typ":"absatz"},{"text":"Fall 2:\nfunktion verfuegbarkeit(bestand):\nwenn bestand == 0:\nzeige \"vergriffen\"\nvorhandene Eingabe: bestand = 3","typ":"absatz"},{"text":"Fall 3:\nfunktion ermaessigung(alter):\nwenn alter < 18:\npreis = preis - 3\nvorhandene Eingabe: alter = 40","typ":"absatz"},{"text":"Fall 4:\nfunktion erinnerung(offeneMedien):\nwenn offeneMedien > 0:\nsendeErinnerung()\nvorhandene Eingabe: offeneMedien = 0","typ":"absatz"}],"beispiel_id":"bsp-testabdeckung-anwenden-freitextantwort-01","freigabeart":"maschinell","loesung":[{"text":"Fall 1 (1 Punkt): eine Eingabe mit tage > 14, z. B. tage = 20, führt die Zuweisung gebuehr = tage * 2 aus. Fall 2 (1 Punkt): bestand = 0 löst die Ausgabe \"vergriffen\" aus. Fall 3 (1 Punkt): eine Eingabe mit alter < 18, z. B. alter = 12, führt die Preisminderung aus. Fall 4 (1 Punkt): eine Eingabe mit offeneMedien > 0, z. B. offeneMedien = 5, ruft sendeErinnerung() auf. Fachlich gleichwertige Testeingaben, die die jeweils bisher nicht erreichte Anweisung nachweisbar ausführen, sind anzuerkennen.","typ":"absatz"}],"operator_id":"operator.anwenden","pruefungszuordnung":{"berufe":["FIAE"],"teil":"AP2"},"punkte":4,"punkterahmen":{"max":4,"min":4},"quellen":["ap2-fiae-2023-sommer-ae2-a03-b-bc"]},{"artefakt_id":"artefakt.freitextantwort","aufgabe":[{"text":"In einer Versandsoftware sollen vier Funktionen vollständige Anweisungsüberdeckung erhalten. Geben Sie zu jedem der vier Fälle genau eine zusätzliche oder geänderte Testeingabe an, damit jede Anweisung mindestens einmal ausgeführt wird.","typ":"absatz"},{"text":"Fall 1:\nfunktion versandart(gewicht):\nwenn gewicht > 30:\nart = \"Spedition\"\nsonst:\nart = \"Paket\"\nvorhandene Eingabe: gewicht = 12","typ":"absatz"},{"text":"Fall 2:\nfunktion zuschlag(zone):\nwenn zone == \"Insel\":\naufpreis = 8\nsonst:\naufpreis = 0\nvorhandene Eingabe: zone = \"Insel\"","typ":"absatz"},{"text":"Fall 3:\nfunktion express(stunden):\nwenn stunden <= 24:\ntarif = tarif + 15\nsonst:\ntarif = tarif\nvorhandene Eingabe: stunden = 48","typ":"absatz"},{"text":"Fall 4:\nfunktion sperrgut(laenge):\nwenn laenge >= 200:\nkennzeichne()\nsonst:\nstandard()\nvorhandene Eingabe: laenge = 250","typ":"absatz"}],"beispiel_id":"bsp-testabdeckung-anwenden-freitextantwort-02","freigabeart":"maschinell","loesung":[{"text":"Fall 1 (1 Punkt): gewicht > 30, z. B. gewicht = 45, führt den bislang nicht erreichten Zweig art = \"Spedition\" aus. Fall 2 (1 Punkt): eine Zone ungleich \"Insel\", z. B. zone = \"Festland\", führt aufpreis = 0 aus. Fall 3 (1 Punkt): stunden <= 24, z. B. stunden = 12, führt tarif = tarif + 15 aus. Fall 4 (1 Punkt): laenge < 200, z. B. laenge = 80, führt standard() aus. Fachlich gleichwertige Testeingaben, die die bisher nicht durchlaufene Anweisung ausführen, sind anzuerkennen.","typ":"absatz"}],"operator_id":"operator.anwenden","pruefungszuordnung":{"berufe":["FIAE"],"teil":"AP2"},"punkte":4,"punkterahmen":{"max":4,"min":4},"quellen":["ap2-fiae-2023-sommer-ae2-a03-b-bc"]},{"artefakt_id":"artefakt.freitextantwort","aufgabe":[{"text":"In einer Kassensoftware sollen vier Funktionen vollständige Anweisungsüberdeckung erreichen. Geben Sie zu jedem der vier Fälle genau eine zusätzliche oder geänderte Testeingabe an, sodass jede Anweisung mindestens einmal ausgeführt wird.","typ":"absatz"},{"text":"Fall 1:\nfunktion summe(betraege):\ngesamt = 0\nfuer jeden b in betraege:\ngesamt = gesamt + b\nvorhandene Eingabe: betraege = [] (leere Liste)","typ":"absatz"},{"text":"Fall 2:\nfunktion bonus(punkte):\nwenn punkte >= 100:\ngutschein = true\nvorhandene Eingabe: punkte = 40","typ":"absatz"},{"text":"Fall 3:\nfunktion warnung(fuellstand):\nwenn fuellstand < 10:\nmeldeNachfuellen()\nvorhandene Eingabe: fuellstand = 55","typ":"absatz"},{"text":"Fall 4:\nfunktion rueckgeld(gegeben, preis):\nwenn gegeben > preis:\nzahleAus(gegeben - preis)\nvorhandene Eingabe: gegeben = 20, preis = 20","typ":"absatz"}],"beispiel_id":"bsp-testabdeckung-anwenden-freitextantwort-03","freigabeart":"maschinell","loesung":[{"text":"Fall 1 (1 Punkt): eine nicht leere Liste, z. B. betraege = [5, 8], führt den Schleifenrumpf gesamt = gesamt + b aus. Fall 2 (1 Punkt): punkte >= 100, z. B. punkte = 120, führt gutschein = true aus. Fall 3 (1 Punkt): fuellstand < 10, z. B. fuellstand = 4, ruft meldeNachfuellen() auf. Fall 4 (1 Punkt): gegeben > preis, z. B. gegeben = 50 und preis = 20, führt zahleAus(gegeben - preis) aus. Fachlich gleichwertige Testeingaben, die die jeweils fehlende Anweisung ausführen, sind anzuerkennen.","typ":"absatz"}],"operator_id":"operator.anwenden","pruefungszuordnung":{"berufe":["FIAE"],"teil":"AP2"},"punkte":4,"punkterahmen":{"max":4,"min":4},"quellen":["ap2-fiae-2023-sommer-ae2-a03-b-bc"]},{"artefakt_id":"artefakt.freitextantwort","aufgabe":[{"text":"Sie prüfen ein Modul der Lagerverwaltung eines Baustoffhändlers auf vollständige Anweisungsüberdeckung. In den folgenden vier voneinander unabhängigen Codeausschnitten wurde jeweils eine zuvor nicht ausgeführte Anweisung erst durch eine bereits vorgenommene Änderung der Testeingabe erreicht. Begründen Sie für jeden Fall mit genau einem Grund, warum die geänderte Eingabe den Kontrollfluss so lenkt, dass die genannte Anweisung nun ausgeführt wird.","typ":"absatz"},{"text":"Fall 1: if (bestand < meldebestand) → nachbestellen() (Z4). Vorher bestand=50, meldebestand=20 (Z4 nicht ausgeführt); neu bestand=10 (Z4 ausgeführt). Fall 2: if (menge > maxPalette) → paletteTeilen() (Z8). Vorher menge=30, maxPalette=48 (Z8 nicht ausgeführt); neu menge=60 (Z8 ausgeführt). Fall 3: while (offenePosten > 0) → kommissionieren() (Z12). Vorher offenePosten=0 (Z12 nicht ausgeführt); neu offenePosten=3 (Z12 ausgeführt). Fall 4: if (gesperrt == true) → sperrungMelden() (Z16). Vorher gesperrt=false (Z16 nicht ausgeführt); neu gesperrt=true (Z16 ausgeführt).","typ":"absatz"}],"beispiel_id":"bsp-testabdeckung-begruenden-freitextantwort-01","freigabeart":"maschinell","loesung":[{"text":"Je Fall genau ein Grund mit Bezug auf Bedingung und Verzweigung, je 1 Punkt (gesamt 4 Punkte).\nFall 1 (1 P.): 10 < 20 erfüllt die Bedingung erstmals, der Kontrollfluss verzweigt in den if-Zweig, daher wird Z4 ausgeführt.\nFall 2 (1 P.): 60 > 48 macht die Bedingung wahr, die if-Verzweigung wird betreten und Z8 erreicht.\nFall 3 (1 P.): offenePosten=3 erfüllt die Schleifenbedingung, der Schleifenrumpf wird mindestens einmal durchlaufen und Z12 ausgeführt.\nFall 4 (1 P.): gesperrt=true erfüllt die Bedingung, wodurch der if-Zweig betreten und Z16 ausgeführt wird.\nFachlich gleichwertige Begründungen, die Testeingabe, Kontrollflussbedingung und neu ausgeführte Anweisung verknüpfen, sind anzuerkennen.","typ":"absatz"}],"operator_id":"operator.begruenden","pruefungszuordnung":{"berufe":["FIAE"],"teil":"AP2"},"punkte":4,"punkterahmen":{"max":4,"min":4},"quellen":["ap2-fiae-2023-sommer-ae2-a03-b-bc","ap2-fiae-2025-sommer-ae2-a02-b-ba"]},{"artefakt_id":"artefakt.freitextantwort","aufgabe":[{"text":"In der Zahlungsabwicklung eines Online-Zahlungsdienstleisters soll ein Modul die Anweisungsüberdeckung vollständig erreichen. In den vier voneinander unabhängigen Codeausschnitten wurde eine bisher nicht ausgeführte Anweisung erst durch eine bereits vorgenommene Änderung der Testeingabe durchlaufen. Begründen Sie zu jedem Fall mit genau einem Grund, warum die geänderte Eingabe den Kontrollfluss zur genannten Anweisung führt.","typ":"absatz"},{"text":"Fall 1: if (betrag > tageslimit) → zahlungBlockieren() (Z5). Vorher betrag=200, tageslimit=1000 (Z5 nicht ausgeführt); neu betrag=1500 (Z5 ausgeführt). Fall 2: if (gedeckt == false) → ruecklastschriftSenden() (Z9). Vorher gedeckt=true (Z9 nicht ausgeführt); neu gedeckt=false (Z9 ausgeführt). Fall 3: while (warteschlangeNichtLeer) → buchungVerarbeiten() (Z13). Vorher leere Warteschlange (Z13 nicht ausgeführt); neu zwei Einträge (Z13 ausgeführt). Fall 4: if (waehrung != \"EUR\") → wechselkursAnwenden() (Z17). Vorher waehrung=\"EUR\" (Z17 nicht ausgeführt); neu waehrung=\"USD\" (Z17 ausgeführt).","typ":"absatz"}],"beispiel_id":"bsp-testabdeckung-begruenden-freitextantwort-02","freigabeart":"maschinell","loesung":[{"text":"Je Fall genau ein Grund mit Bezug auf Bedingung und Verzweigung, je 1 Punkt (gesamt 4 Punkte).\nFall 1 (1 P.): 1500 > 1000 erfüllt die Bedingung, der Kontrollfluss verzweigt in den if-Zweig und Z5 wird ausgeführt.\nFall 2 (1 P.): gedeckt=false macht die Bedingung wahr, dadurch wird der if-Zweig betreten und Z9 erreicht.\nFall 3 (1 P.): die gefüllte Warteschlange erfüllt die Schleifenbedingung, der Rumpf wird durchlaufen und Z13 ausgeführt.\nFall 4 (1 P.): waehrung=\"USD\" ist ungleich \"EUR\", damit ist die Bedingung erfüllt und Z17 wird ausgeführt.\nFachlich gleichwertige Begründungen, die Testeingabe, Kontrollflussbedingung und neu ausgeführte Anweisung verbinden, sind anzuerkennen.","typ":"absatz"}],"operator_id":"operator.begruenden","pruefungszuordnung":{"berufe":["FIAE"],"teil":"AP2"},"punkte":4,"punkterahmen":{"max":4,"min":4},"quellen":["ap2-fiae-2023-sommer-ae2-a03-b-bc","ap2-fiae-2025-sommer-ae2-a02-b-ba"]},{"artefakt_id":"artefakt.freitextantwort","aufgabe":[{"text":"Ein Prüfmodul zur Auswertung von Sensormesswerten einer Anlagenüberwachung soll vollständige Anweisungsüberdeckung erreichen. In den folgenden vier voneinander unabhängigen Codeausschnitten wurde eine zuvor nicht ausgeführte Anweisung erst durch eine bereits vorgenommene Änderung der Testeingabe erreicht. Begründen Sie je Fall mit genau einem Grund, warum die geänderte Eingabe den Kontrollfluss so lenkt, dass die genannte Anweisung ausgeführt wird.","typ":"absatz"},{"text":"Fall 1: if (temperatur > grenzwert) → alarmSenden() (Z6). Vorher temperatur=22, grenzwert=80 (Z6 nicht ausgeführt); neu temperatur=95 (Z6 ausgeführt). Fall 2: if (messwert < 0) → messwertVerwerfen() (Z10). Vorher messwert=12 (Z10 nicht ausgeführt); neu messwert=-3 (Z10 ausgeführt). Fall 3: while (pufferGefuellt) → eintragVerarbeiten() (Z14). Vorher leerer Puffer (Z14 nicht ausgeführt); neu zwei Einträge (Z14 ausgeführt). Fall 4: if (kalibrierungFaellig == true) → kalibrierungStarten() (Z18). Vorher kalibrierungFaellig=false (Z18 nicht ausgeführt); neu kalibrierungFaellig=true (Z18 ausgeführt).","typ":"absatz"}],"beispiel_id":"bsp-testabdeckung-begruenden-freitextantwort-03","freigabeart":"maschinell","loesung":[{"text":"Je Fall genau ein Grund mit Bezug auf Bedingung und Verzweigung, je 1 Punkt (gesamt 4 Punkte).\nFall 1 (1 P.): 95 > 80 erfüllt die Bedingung erstmals, der Kontrollfluss betritt den if-Zweig und Z6 wird ausgeführt.\nFall 2 (1 P.): messwert=-3 ist kleiner 0, damit ist die Bedingung wahr und Z10 wird erreicht.\nFall 3 (1 P.): der gefüllte Puffer erfüllt die Schleifenbedingung, der Rumpf wird mindestens einmal durchlaufen und Z14 ausgeführt.\nFall 4 (1 P.): kalibrierungFaellig=true erfüllt die Bedingung, wodurch der if-Zweig betreten und Z18 ausgeführt wird.\nFachlich gleichwertige Begründungen, die Testeingabe, Kontrollflussbedingung und neu ausgeführte Anweisung verknüpfen, sind anzuerkennen.","typ":"absatz"}],"operator_id":"operator.begruenden","pruefungszuordnung":{"berufe":["FIAE"],"teil":"AP2"},"punkte":4,"punkterahmen":{"max":4,"min":4},"quellen":["ap2-fiae-2023-sommer-ae2-a03-b-bc","ap2-fiae-2025-sommer-ae2-a02-b-ba"]},{"artefakt_id":"artefakt.freitextantwort","aufgabe":[{"text":"Ein Entwicklungsteam prüft eine Software zur Lagerbestandsführung und diskutiert die Anweisungsüberdeckung als Whitebox-Kriterium. Erklären Sie zu jeder der folgenden drei Aussagen deren fachlichen Gehalt:\n(1) Eine Anweisungsüberdeckung von 100 % besagt, dass jede Anweisung des Quellcodes durch die Testfälle mindestens einmal ausgeführt wurde.\n(2) Ein Testlauf, bei dem ein else-Zweig zur Fehlerbehandlung nie erreicht wird, erreicht keine vollständige Anweisungsüberdeckung.\n(3) Auch bei vollständiger Anweisungsüberdeckung können falsche Bedingungskombinationen unentdeckt bleiben.","typ":"absatz"}],"beispiel_id":"bsp-testabdeckung-erklaeren-freitextantwort-01","freigabeart":"maschinell","loesung":[{"text":"Je zutreffende Erklärung 1 Punkt (3 Punkte gesamt).\n(1) 1 P: Erklärung der Bedeutung: 100 % Anweisungsüberdeckung heißt, dass die gewählten Testfälle jede einzelne ausführbare Anweisung des Codes wenigstens einmal durchlaufen; keine Anweisung bleibt unausgeführt.\n(2) 1 P: Erklärung des erreichten Zustands: Solange der else-Zweig nicht durchlaufen wird, bleiben die dort liegenden Anweisungen unausgeführt, sodass die Überdeckung unter 100 % bleibt.\n(3) 1 P: Erklärung der Aussagegrenze: Das Kriterium prüft nur die Ausführung einzelner Anweisungen, nicht sämtliche logischen Bedingungs- bzw. Zweigkombinationen; Fehler in nicht getesteten Kombinationen bleiben verborgen. Fachlich gleichwertige Formulierungen sind anzuerkennen.","typ":"absatz"}],"operator_id":"operator.erklaeren","pruefungszuordnung":{"berufe":["FIAE"],"teil":"AP2"},"punkte":3,"punkterahmen":{"max":3,"min":3},"quellen":["ap2-fiae-2022-winter-ae2-a02-a-ac"]},{"artefakt_id":"artefakt.freitextantwort","aufgabe":[{"text":"In einem Verkehrsbetrieb wird die Steuersoftware eines Fahrkartenautomaten mit Whitebox-Tests geprüft. Erklären Sie den fachlichen Gehalt der folgenden drei Aussagen zur Anweisungsüberdeckung jeweils einzeln:\n(1) Die Anweisungsüberdeckung gibt den Anteil der von den Testfällen ausgeführten Anweisungen an der Gesamtzahl aller Anweisungen an.\n(2) Werden von zwanzig Anweisungen sechzehn durch die Tests erreicht, ergibt sich eine Anweisungsüberdeckung von 80 %.\n(3) Eine vollständige Anweisungsüberdeckung stellt nicht sicher, dass jede Verzweigung in beide Richtungen durchlaufen wurde.","typ":"absatz"}],"beispiel_id":"bsp-testabdeckung-erklaeren-freitextantwort-02","freigabeart":"maschinell","loesung":[{"text":"Je zutreffende Erklärung 1 Punkt (3 Punkte gesamt).\n(1) 1 P: Erklärung der Bedeutung: Die Kennzahl setzt die tatsächlich durchlaufenen Anweisungen ins Verhältnis zu allen vorhandenen Anweisungen und drückt so den erreichten Überdeckungsgrad aus.\n(2) 1 P: Erklärung des erreichten Zustands: Sechzehn von zwanzig durchlaufenen Anweisungen entsprechen einem Ausführungsanteil von 80 %; vier Anweisungen wurden von keinem Testfall erreicht.\n(3) 1 P: Erklärung der Aussagegrenze: Es genügt, jede Anweisung einmal auszuführen; ob eine Bedingung auch in ihrer nicht erfüllten Richtung getestet wurde, wird dabei nicht abgesichert. Fachlich gleichwertige Formulierungen sind anzuerkennen.","typ":"absatz"}],"operator_id":"operator.erklaeren","pruefungszuordnung":{"berufe":["FIAE"],"teil":"AP2"},"punkte":3,"punkterahmen":{"max":3,"min":3},"quellen":["ap2-fiae-2022-winter-ae2-a02-a-ac"]},{"artefakt_id":"artefakt.freitextantwort","aufgabe":[{"text":"Bei einem Online-Banking-Dienst prüft das Testteam eine Funktion zur Überweisungsfreigabe hinsichtlich der Anweisungsüberdeckung. Erklären Sie zu jeder der folgenden drei Testsituationen den fachlichen Sachverhalt:\n(1) Bei einer if-Anweisung ohne else-Zweig genügt ein Testfall mit erfüllter Bedingung, damit alle Anweisungen ausgeführt werden.\n(2) Die Anweisungsüberdeckung bewertet die Ausführung einzelner Anweisungen, nicht die Reihenfolge oder Kombination ihrer Ausführung.\n(3) Enthält der Code eine unerreichbare Anweisung (toter Code), lässt sich keine Anweisungsüberdeckung von 100 % erreichen.","typ":"absatz"}],"beispiel_id":"bsp-testabdeckung-erklaeren-freitextantwort-03","freigabeart":"maschinell","loesung":[{"text":"Je zutreffende Erklärung 1 Punkt (3 Punkte gesamt).\n(1) 1 P: Erklärung des erreichten Zustands: Fehlt der else-Zweig, gibt es keine zusätzlichen Anweisungen im nicht erfüllten Fall; ein Durchlauf mit erfüllter Bedingung führt bereits jede vorhandene Anweisung aus.\n(2) 1 P: Erklärung der Bedeutung bzw. Aussagegrenze: Betrachtet wird ausschließlich, ob jede Anweisung mindestens einmal ausgeführt wird; Ausführungsreihenfolge oder Zusammenwirken der Anweisungen bleiben unberücksichtigt.\n(3) 1 P: Erklärung der Aussagegrenze: Eine nie erreichbare Anweisung kann von keinem Testfall ausgeführt werden, wodurch der ausgeführte Anteil dauerhaft unter 100 % bleibt. Fachlich gleichwertige Formulierungen sind anzuerkennen.","typ":"absatz"}],"operator_id":"operator.erklaeren","pruefungszuordnung":{"berufe":["FIAE"],"teil":"AP2"},"punkte":3,"punkterahmen":{"max":3,"min":3},"quellen":["ap2-fiae-2022-winter-ae2-a02-a-ac"]},{"artefakt_id":"artefakt.freitextantwort","aufgabe":[{"text":"In einem Lagerverwaltungssystem sind drei voneinander unabhängige Kontrollflüsse gegeben. Alle übergebenen Werte liegen im angegebenen gültigen Bereich. Ziel ist jeweils die vollständige Anweisungsüberdeckung. Ermitteln Sie für jeden der drei Ausschnitte die minimal benötigte Anzahl an Testfällen.","typ":"absatz"},{"text":"Ausschnitt 1 (menge: Ganzzahl 0..1000):\n  if (menge < 20)\n    meldeNachbestellung()\n  end if\n  aktualisiereAnzeige()","typ":"code"},{"text":"Ausschnitt 2 (gewicht: Ganzzahl 1..500):\n  if (gewicht > 100)\n    markiereSchwer()\n  else\n    markiereLeicht()\n  end if","typ":"code"},{"text":"Ausschnitt 3 (punkte: Ganzzahl 0..1000):\n  if (punkte >= 500)\n    stufeGold()\n  else if (punkte >= 200)\n    stufeSilber()\n  else\n    stufeBronze()\n  end if","typ":"code"}],"beispiel_id":"bsp-testabdeckung-ermitteln-freitextantwort-01","freigabeart":"maschinell","loesung":[{"text":"Ausschnitt 1: 1 Testfall. Mit menge<20 wird meldeNachbestellung() ausgeführt; aktualisiereAnzeige() läuft ohnehin. Der Fall menge>=20 erreicht keine zusätzliche Anweisung. (1 Punkt)\nAusschnitt 2: 2 Testfälle. Je ein Fall gewicht>100 und gewicht<=100, um die Anweisungen beider Zweige (markiereSchwer/markiereLeicht) auszuführen. (1 Punkt)\nAusschnitt 3: 3 Testfälle. Je ein Fall punkte>=500, 200<=punkte<500 und punkte<200 für die drei sich ausschließenden Anweisungen. (1 Punkt)\nFachlich gleichwertige minimale Testsätze sind anzuerkennen.","typ":"absatz"}],"operator_id":"operator.ermitteln","pruefungszuordnung":{"berufe":["FIAE"],"teil":"AP2"},"punkte":3,"punkterahmen":{"max":3,"min":3},"quellen":["ap2-fiae-2022-winter-ae2-a02-a-ac"]},{"artefakt_id":"artefakt.freitextantwort","aufgabe":[{"text":"Für eine Heizungsüberwachung sind drei voneinander unabhängige Kontrollflüsse gegeben. Alle übergebenen Werte liegen im gültigen Bereich. Ziel ist jeweils die vollständige Anweisungsüberdeckung. Ermitteln Sie für jeden der drei Ausschnitte die minimal benötigte Anzahl an Testfällen.","typ":"absatz"},{"text":"Ausschnitt 1 (temp: Ganzzahl 0..120, druck: Ganzzahl 0..10):\n  if (temp > 90)\n    warnungHitze()\n  end if\n  if (druck > 6)\n    warnungDruck()\n  end if","typ":"code"},{"text":"Ausschnitt 2 (fuellstand: Ganzzahl 0..100):\n  if (fuellstand < 10)\n    alarmNiedrig()\n  else if (fuellstand > 90)\n    alarmHoch()\n  end if","typ":"code"},{"text":"Ausschnitt 3 (temp: Ganzzahl 0..120):\n  if (temp > 80)\n    luefterAn()\n    if (temp > 100)\n      notAbschaltung()\n    end if\n  end if","typ":"code"}],"beispiel_id":"bsp-testabdeckung-ermitteln-freitextantwort-02","freigabeart":"maschinell","loesung":[{"text":"Ausschnitt 1: 1 Testfall. Eine Eingabe mit temp>90 und gleichzeitig druck>6 (z. B. temp=100, druck=8) führt beide unabhängigen Anweisungen aus. (1 Punkt)\nAusschnitt 2: 2 Testfälle. Je ein Fall fuellstand<10 und fuellstand>90; der Zwischenbereich enthält keine Anweisung und erfordert keinen dritten Testfall. (1 Punkt)\nAusschnitt 3: 1 Testfall. Mit temp>100 werden luefterAn() und notAbschaltung() ausgeführt. (1 Punkt)\nFachlich gleichwertige minimale Testsätze sind anzuerkennen.","typ":"absatz"}],"operator_id":"operator.ermitteln","pruefungszuordnung":{"berufe":["FIAE"],"teil":"AP2"},"punkte":3,"punkterahmen":{"max":3,"min":3},"quellen":["ap2-fiae-2022-winter-ae2-a02-a-ac"]},{"artefakt_id":"artefakt.freitextantwort","aufgabe":[{"text":"In einer Bestellabwicklung eines Online-Shops sind drei voneinander unabhängige Kontrollflüsse gegeben. Alle übergebenen Werte liegen im gültigen Bereich. Ziel ist jeweils die vollständige Anweisungsüberdeckung. Ermitteln Sie für jeden der drei Ausschnitte die minimal benötigte Anzahl an Testfällen.","typ":"absatz"},{"text":"Ausschnitt 1 (bestellwert: Ganzzahl 0..1000):\n  if (bestellwert >= 50)\n    versandKostenlos()\n  else\n    versandStandard()\n  end if","typ":"code"},{"text":"Ausschnitt 2 (anzahl: Ganzzahl 1..100):\n  i = 0\n  while (i < anzahl)\n    buchePosition()\n    i = i + 1\n  end while\n  schreibeBeleg()","typ":"code"},{"text":"Ausschnitt 3 (lieferzeit: Ganzzahl 1..30):\n  if (lieferzeit <= 2)\n    express()\n  else if (lieferzeit <= 7)\n    standard()\n  else\n    economy()\n  end if","typ":"code"}],"beispiel_id":"bsp-testabdeckung-ermitteln-freitextantwort-03","freigabeart":"maschinell","loesung":[{"text":"Ausschnitt 1: 2 Testfälle. Je ein Fall bestellwert>=50 und bestellwert<50 für die Anweisungen beider Zweige. (1 Punkt)\nAusschnitt 2: 1 Testfall. Da anzahl>=1 gilt, läuft der Schleifenrumpf mindestens einmal (z. B. anzahl=3); buchePosition() und schreibeBeleg() werden ausgeführt. (1 Punkt)\nAusschnitt 3: 3 Testfälle. Je ein Fall lieferzeit<=2, 3<=lieferzeit<=7 und lieferzeit>7 für die drei sich ausschließenden Anweisungen. (1 Punkt)\nFachlich gleichwertige minimale Testsätze sind anzuerkennen.","typ":"absatz"}],"operator_id":"operator.ermitteln","pruefungszuordnung":{"berufe":["FIAE"],"teil":"AP2"},"punkte":3,"punkterahmen":{"max":3,"min":3},"quellen":["ap2-fiae-2022-winter-ae2-a02-a-ac"]}],"konzept_id":"fachkonzept.testabdeckung","schema_version":3}