Module einzeln testen
Jedes Modul wird für sich getestet, bevor man alles zusammensetzt. So findet man Fehler dort, wo sie entstehen.
Das lernst du heute
- Ich kann Testfälle für ein Modul aufstellen.
- Ich kann erwartete und tatsächliche Ergebnisse vergleichen.
- Ich kann einen Fehler in einem Modul eingrenzen.
Das brauchst du schon: Vielleicht hilft dir zuerst diese Lektion: Ein Programm aus Modulen bauen
Wenn ein zusammengesetztes Programm ein falsches Ergebnis liefert, ist die Fehlersuche schwer. Deshalb testet man jedes Modul zuerst allein. Für jeden Test legst du eine Eingabe und das erwartete Ergebnis fest. Dann rufst du das Modul auf und vergleichst. Gute Testfälle decken auch Sonderfälle ab: eine leere Liste, einen einzelnen Wert, den Wert 0. Die Tabelle zeigt vier Tests für ein Modul summe. Das richtige Modul besteht alle. Ein fehlerhaftes Modul, das den letzten Wert überspringt, fällt bei drei Tests durch. So weißt du: Der Fehler liegt in diesem Modul, nicht im Hauptprogramm.
| Eingabe | erwartet | richtiges Modul | fehlerhaftes Modul |
|---|---|---|---|
| [3, 5, 8] | 16 | 16 | 8 |
| [] (leere Liste) | 0 | 0 | 0 |
| [7] | 7 | 7 | 0 |
| [2, 2] | 4 | 4 | 2 |
Ein Modul testen
- Lege Testfälle fest: Eingabe und erwartetes Ergebnis.
- Rufe das Modul mit jeder Eingabe auf.
- Vergleiche das Ergebnis mit der Erwartung.
- Bei Abweichung: das Modul genauer ansehen und den Fehler beheben, dann alle Tests wiederholen.
Ich verstehe das noch nicht
Such dir aus, was dir hilft.
Noch einfacher erklärt
Eingabe festlegen.
Erwartung aufschreiben.
Ergebnis vergleichen.
Ein Beispiel
Bevor ein Auto fährt, wird jede Bremse einzeln geprüft. Erst danach testet man das Auto als Ganzes.
Schritt für Schritt
Wir testen das fehlerhafte Modul summe mit der Eingabe 3, 5, 8.
- Erwartet: 3 + 5 + 8 = 16.
- Das fehlerhafte Modul liefert 8.
- 8 ist nicht 16. Der Test schlägt fehl.
- Der Fehler liegt im Modul summe: Der letzte Wert wird übersprungen.
Mit einem Bild erklärt
| Eingabe | erwartet | tatsächlich |
|---|---|---|
| [3, 5, 8] | 16 | 8 |
Zur Grundlage zurück
- Ein Programm aus Modulen bauen – Du kannst Programme aus Modulen bauen.
Jetzt zusammen
Wir lösen die Aufgabe gemeinsam. Nutze die Hilfen, wenn du sie brauchst.
Zeig mir den ersten Schritt
Vergleiche erwartetes und tatsächliches Ergebnis.
Lösung ansehen
Lösung: Im Modul summe steckt ein Fehler.
Jetzt du
Jetzt probierst du es allein.
Das richtige Modul rabatt wird mit rabatt(40, 10) getestet. Welches Ergebnis erwartest du?
Zeig mir den ersten Schritt
10 Prozent von 40 abziehen.
Lösung ansehen
Lösung: 36
40 − 4 = 36.
Tipp: Teste auch einen Sonderfall, zum Beispiel die leere Liste oder den Wert 0. Dort stecken oft Fehler.
Merksatz: Modul einzeln testen: Eingabe, erwartetes Ergebnis, tatsächliches Ergebnis vergleichen. Bei Abweichung: im Modul suchen.
Typischer Fehler: Viele testen erst das fertige Gesamtprogramm. Dann weiß man nicht, welches Modul den Fehler verursacht.
Mini-Quiz
5 kurze Fragen, ohne Noten. Bei jeder Frage kannst du dir die Lösung ansehen.
Lösung ansehen
Lösung: Die leere Liste
Lösung ansehen
Lösung: Stimmt nicht
Frage 3 Das fehlerhafte Modul summe wird mit vier Testfällen geprüft. Es besteht nur einen. Bei wie vielen Tests gibt es Abweichungen?
Zeig mir den ersten Schritt
4 minus 1.
Lösung ansehen
Lösung: 3
4 − 1 = 3.
Frage 4 Das fehlerhafte Modul rabatt_fehler(40, 10) zieht preis · prozent : 10 ab. Welchen Wert liefert es?
Zeig mir den ersten Schritt
40 − 40 · 10 : 10.
Lösung ansehen
Lösung: 0
40 · 10 : 10 = 40, also 40 − 40 = 0.
Lösung ansehen
Lösung: Alle Tests wiederholen
Geschafft
Man testet jedes Modul einzeln mit Testfällen. Abweichungen zeigen, wo ein Fehler im Programm steckt.
Kannst du das schon?
Hake ab, was du schon kannst. Was noch fehlt, schaust du dir einfach noch einmal an.
Übungsheft Programme in Teilen bauen
Kurz erklärt, 52 Aufgaben in drei Stufen und alle Lösungen. Kostenlos.
Das Heft ist für alle kostenlos – auch, wenn gerade kein Geld dafür da ist. Wer es einrichten kann, unterstützt DYS+ Campus mit einem selbst gewählten Betrag. Freiwillig unterstützen