✅ The verified answer to this question is available below. Our community-reviewed solutions help you understand the material better.
Für das vorige Beispiel wurde ein erster Programmentwurf mit folgendem Quellcode geschrieben:
| import |
Wenn man mit dem obigen Programm die einzelnen Testfälle im Testprotokoll durchgeht, dann ist folgendes Ergebnis zu sehen:
Nr.
| NF/GF/FF
| Eingabe:
anzahl
| Eingabe:
zahl
| Erwartetes Ergebnis:
| Ok?
|
1
| NF
| 5
| beliebig
| 5 Zahlen können eingegeben werden
| X
|
2
| GF
| 1
| beliebig
| 1 Zahl kann eingegeben werden.
| X
|
3
| GF
| 0
| ---
| Fehlermeldung, das Programm wird danach beendet
| X
|
4
| FF
| -1
| ----
| Fehlermeldung, das Programm wird danach beendet
| Ok
|
5
| NF
| 1
| 5
| Ausgabe: "1 positive Zahl(en), 0 negative Zahl(en)"
| X
|
6
| NF
| 1
| -7
| Ausgabe: "0 positive Zahl(en), 1 negative Zahl(en)"
| X
|
7
| GF
| 1
| 1
| Ausgabe: "1 positive Zahl(en), 0 negative Zahl(en)"
| X
|
8
| GF
| 1
| -1
| Ausgabe: "0 positive Zahl(en), 1 negative Zahl(en)"
| X
|
9
| GF
| 1
| 0
| Ausgabe: "0 positive Zahl(en), 0 negative Zahl(en)"
| X
|
10
| NF
| 5
| 1,-1,2,-3,0
| Ausgabe: "2 positive Zahl(en), 2 negative Zahl(en)"
| X
|
Die fehlgeschlagenen Testfälle liefern statt des erwarteten Ergebnisses folgendes Ergebnis:
Aus der Fehlerart kann man unter Umständen schnell auf den Fehler schließen. So funktioniert offenbar die Wiederholung der Eingabe nicht richtig und es wird die Eingabe zu oft wiederholt. Die Zeile, die für das Wiederholen der Eingabe zuständig ist, ist der Schleifenkopf in Zeile 20. Hier kann mit der Korrektur angesetzt werden. Die neue Zeile 20 sieht folgendermaßen aus ( >
statt >=
):
for(;anzahl > 0; anzahl--) {
Nach Ausbessern dieses Fehlers muss das Testen wiederholt werden. Im Testprotokoll wird der Erfolg oder Misserfolg neuerlich festgehalten:
Nr.
| NF/GF/FF
| Eingabe:
anzahl
| Eingabe:
zahl
| Erwartetes Ergebnis:
| Ok?
|
1
| NF
| 5
| beliebig
| 5 Zahlen können eingegeben werden
| Ok
|
2
| GF
| 1
| beliebig
| 1 Zahl kann eingegeben werden.
| Ok
|
3
| GF
| 0
| ---
| Fehlermeldung, das Programm wird danach beendet
| X
|
4
| FF
| -1
| ----
| Fehlermeldung, das Programm wird danach beendet
| Ok
|
5
| NF
| 1
| 5
| Ausgabe: "1 positive Zahl(en), 0 negative Zahl(en)"
| Ok
|
6
| NF
| 1
| -7
| Ausgabe: "0 positive Zahl(en), 1 negative Zahl(en)"
| Ok
|
7
| GF
| 1
| 1
| Ausgabe: "1 positive Zahl(en), 0 negative Zahl(en)"
| Ok
|
8
| GF
| 1
| -1
| Ausgabe: "0 positive Zahl(en), 1 negative Zahl(en)"
| Ok
|
9
| GF
| 1
| 0
| Ausgabe: "0 positive Zahl(en), 0 negative Zahl(en)"
| X
|
10
| NF
| 5
| 1,-1,2,-3,0
| Ausgabe: "2 positive Zahl(en), 2 negative Zahl(en)"
| X
|
Tatsächliche Ergebnisse:
Testfall 3: keine Fehlermeldung, statt dessen Ausgabe: "0 positive
Zahl(en), 0 negative Zahl(en)"
Das Ergebnis dieses Testablaufs ist schon besser, aber das Programm ist offenbar noch immer fehlerhaft. Es sind also noch weitere Korrekturen mit nachfolgenden Tests notwendig. Der Prozess wird so lange wiederholt, bis keine Fehler mehr auftreten.
In professionellen Programmierumgebungen werden solche Tests möglichst automatisiert abgearbeitet. Damit wird vermieden, dass das Ausbessern eines Bugs, eine Reihe weiterer neuer Bugs nach sich zieht.
Beim Test Driven Development werden solche Tests auch entworfen, bevor noch der Quellcode begonnen wird. Das Ziel ist dann mit jedem Entwicklungsschritt mehr Testfälle auf "OK" bzw. grün zu setzen. Auch abseits davon entspricht es guter Programmierpraxis, die Testfälle zu entwerfen bevor mit der eigentlichen Programmentwicklung begonnen wird. Durch das Entwerfen der Testfälle werden bestimmte Bereiche der Aufgabenstellung bereits gründlich analysiert und auf besonders zu berücksichtigende Fälle eingegangen. Dies kann bei der Programmentwicklung helfen.
Welche Programmzeile muss geändert werden, um den verbleibenden Fehler, der durch Testfall 3 erkannt wird, zu beheben?
Was muss statt der fehlerhaften Zeile geschrieben werden, um den Fehler, der durch Testfall 3 erkannt wird, zu beheben (ohne führende Leerzeichen/Tabs)?
Welche Programmzeile muss geändert werden, um den verbleibenden Fehler, der durch die Testfälle 9 und 10 erkannt wird, zu beheben (es gibt natürlich mehrere Lösungsvarianten, aber nur eine, wo nur eine Programmzeile geändert werden muss)?
Was muss statt der fehlerhaften Zeile geschrieben werden, um den Fehler, der durch die Testfälle 9 und 10 erkannt wird, zu beheben (ohne führende Leerzeichen/Tabs)?
Wie nennt man die Herangehensweise beim Programmieren, bei der zuerst die Testfälle entworfen werden, und dann bei jedem weiteren Schritt versucht wird, einen weiteren Testfall auf "OK" zu setzen?
Get Unlimited Answers To Exam Questions - Install Crowdly Extension Now!