Programmieren für technische Aufgaben – Eingaben validieren und Fehler behandeln
Programmieren für technische Aufgaben – Eingaben validieren und Fehler behandeln
Zielgruppe: Ausbildung in technischen und IT-Berufen
Niveau: Grundlagen bis Anwendung
Dauer: ca. 60–90 Minuten
Programmiersprache: Python 3.10 oder neuer
Lernform: Kurze Lerneinheiten, interaktive Aufgaben, lokale Programmierübungen und automatisierte Tests

Einleitung
Was passiert, wenn ein Prüfprogramm statt einer Temperatur die Eingabe „abc“ erhält? Oder wenn ein Messwert außerhalb des erlaubten Bereichs liegt?
Du lernst, Eingaben zu prüfen, Fehler gezielt zu behandeln und verständliche Rückmeldungen zu erzeugen.
Dein Ausbildungsprojekt: Entwickle ein kleines Prüfprogramm für einen fiktiven Temperaturprüfstand.
Wichtig: Du verwendest ausschließlich erfundene Übungswerte. Die Temperaturgrenzen sind keine Grenzwerte realer Maschinen. Das Programm liest keine Sensoren aus und steuert keine Geräte.
Deine Lernziele
Nach dem Kurs kannst Du:
- Eingaben validieren: Fehlende, falsch formatierte und unzulässige Werte erkennen.
- Datentypen: Texte in Zahlen umwandeln und Konvertierungsfehler behandeln.
- Fehler behandeln: Mit try, except und ValueError arbeiten.
- Grenzwerte testen: Gültige und ungültige Werte systematisch unterscheiden.
- Automatisiert testen: Mit unittest wiederholbare Prüfungen durchführen.
- Verständlich kommunizieren: Hilfreiche Fehlermeldungen formulieren.
Ausbildungsfall: Der fiktive Temperaturprüfstand

Ein Ausbildungsbetrieb entwickelt ein Übungsprogramm zur Dokumentation von Temperaturwerten.
Für das Beispiel gelten folgende Anforderungen:
| Merkmal | Übungsvorgabe |
|---|---|
| Eingabe | Temperatur als Text |
| Erlaubter Bereich | 10 bis 60 °C |
| Untergrenze | 10 °C ist erlaubt |
| Obergrenze | 60 °C ist erlaubt |
| Dezimaltrennzeichen | Komma oder Punkt |
| Ungültige Eingabe | Zurückweisen und erklären |
| Testdaten | Ausschließlich fiktiv |
Dein Auftrag: Nur gültige Werte werden bestätigt. Ungültige Werte führen zu einer verständlichen Fehlermeldung und können erneut eingegeben werden.
Datenvisualisierung: Was ist gültig?
| 9,9 °C | 10 °C | 23,5 °C | 60 °C | 60,1 °C |
|---|---|---|---|---|
| ❌ Zu niedrig | ✅ Gültig | ✅ Gültig | ✅ Gültig | ❌ Zu hoch |
Merksatz: Beide Grenzen gehören zum erlaubten Bereich.
Lerneinheit 1: Eingaben verstehen
Lernzeit: 5 Minuten
Eine Tastatureingabe wird in Python mit input() zunächst als Text eingelesen.
eingabe = input("Temperatur eingeben: ")
print("Deine Eingabe:", eingabe)Gib nacheinander die fiktiven Werte 25, abc und eine leere Eingabe ein.
Beobachtung: Ohne Prüfung akzeptiert das Programm jede dieser Eingaben zunächst als Text.
Drei wichtige Prüfungen
| Prüfung | Leitfrage | Beispiel |
|---|---|---|
| Vollständigkeit | Ist etwas eingegeben worden? | Leere Eingabe |
| Format | Lässt sich eine Zahl bilden? | abc |
| Wertebereich | Liegt die Zahl innerhalb der Grenzen? | 75 |
Ablaufdiagramm

Die Grundidee:
Eingabe → Prüfung → Entscheidung → Bestätigung oder Fehlermeldung.
Ein Ablaufdiagramm macht sichtbar, wann ein Programm weiterarbeiten darf und wann eine erneute Eingabe nötig ist.
Basisaufgabe mit Feedback
Aufgabe: Entscheide, ob „abc“, „25“ und eine leere Eingabe als gültige Temperaturen verarbeitet werden dürfen.
Feedback: Nur „25“ darf verarbeitet werden. „abc“ ist keine Zahl und bei der leeren Eingabe fehlt der Wert. Das ist wichtig, weil die spätere Bereichsprüfung eine verwendbare Zahl benötigt.
Lerneinheit 2: Eingaben umwandeln
Lernzeit: 7 Minuten
Das Programm soll sowohl 23.5 als auch 23,5 verstehen.
from decimal import Decimal, InvalidOperation
eingabe = "23,5"
text = eingabe.strip().replace(",", ".")
try:
temperatur = Decimal(text)
print("Zahl:", temperatur)
except InvalidOperation:
print("Fehler: Bitte gib eine Zahl ein.")Das passiert:
- strip() entfernt Leerzeichen am Anfang und Ende.
- replace() vereinheitlicht das Dezimaltrennzeichen.
- Decimal() erzeugt einen Dezimalwert.
- except behandelt eine fehlgeschlagene Umwandlung.
Bei fehlendem Text ist zusätzlich eine eigene Prüfung notwendig.
Video: Fehlerbehandlung in Python
Videoauftrag: Achte darauf, welchen Unterschied try und except machen.
Lerneinheit 3: Bedingungen und Grenzwerte
Lernzeit: 5 Minuten

Mit einer Bedingung entscheidet das Programm, ob ein Wert zulässig ist.
temperatur = 23.5
if 10 <= temperatur <= 60:
print("OK: Wert ist gültig.")
else:
print("Fehler: Wert außerhalb des Bereichs.")Wichtig: Die Bedingung verwendet <= und lässt dadurch beide Grenzwerte zu.
Anwendung: Grenzwerttabelle
| Eingabe | Erwartetes Ergebnis | Begründung |
|---|---|---|
| 9.99 | ❌ Abweisen | Unterhalb der Untergrenze |
| 10 | ✅ Akzeptieren | Untergrenze eingeschlossen |
| 35 | ✅ Akzeptieren | Innerhalb des Bereichs |
| 60 | ✅ Akzeptieren | Obergrenze eingeschlossen |
| 60.01 | ❌ Abweisen | Oberhalb der Obergrenze |
Feedback: Teste besonders unmittelbar neben den Grenzen. Dort werden Fehler durch falsche Vergleichsoperatoren häufig sichtbar.
Lerneinheit 4: Das vollständige lokale Prüfprogramm
Lernzeit: 15 Minuten
Jetzt entwickelst Du das Programm mit Eingabevalidierung und gezielter Fehlerbehandlung.
Lokale Testumgebung:
- Erstelle auf Deinem Computer einen neuen Übungsordner.
- Speichere den folgenden Code als pruefwert.py.
- Verwende Python 3.10 oder neuer.
- Nutze ausschließlich fiktive Daten.
- Stelle keine Verbindung zu Maschinen, Sensoren, Kundensystemen oder fremden Netzwerken her.
Datei: pruefwert.py
from decimal import Decimal, InvalidOperation
MIN_C = Decimal("10")
MAX_C = Decimal("60")
def pruefen(eingabe: str) -> Decimal:
text = eingabe.strip().replace(",", ".")
if not text:
raise ValueError(
"Bitte gib einen Temperaturwert ein."
)
if len(text) > 30:
raise ValueError(
"Die Eingabe ist zu lang."
)
try:
wert = Decimal(text)
except InvalidOperation as exc:
raise ValueError(
"Bitte gib eine Zahl an, z. B. 23,5."
) from exc
if not wert.is_finite():
raise ValueError(
"Bitte gib einen endlichen Zahlenwert ein."
)
if not MIN_C <= wert <= MAX_C:
raise ValueError(
"Erlaubt sind nur 10 bis 60 °C."
)
return wert
def main() -> None:
print(
"Lokaler Übungs-Prüfstand "
"(nur fiktive Werte)."
)
while True:
try:
roh = input(
"Temperatur in °C (Ende: q): "
)
except (EOFError, KeyboardInterrupt):
print("\nEingabe beendet.")
break
if roh.strip().lower() == "q":
print("Eingabe beendet.")
break
try:
wert = pruefen(roh)
except ValueError as fehler:
print(f"Fehler: {fehler}")
else:
print(
f"OK: {wert} °C "
"ist im Übungsbereich."
)
if __name__ == "__main__":
main()
Programm lokal starten
Öffne ein Terminal im Übungsordner.
python -I -B pruefwert.py
Unter manchen Systemen heißt der Python-Befehl python3 oder py.
Hinweis: Die Option -I aktiviert einen isolierten Python-Modus. Sie ist kein vollständiger Sicherheits-Sandbox- oder Netzwerkschutz. Das Übungsprogramm benötigt keine Netzwerkverbindung und verwendet ausschließlich die lokale Standardbibliothek.
Interaktive lokale Testkonsole
Gib die folgenden Werte nacheinander ein:
23,5 abc NaN 60,1 q
Erwartete Rückmeldungen:
OK: 23.5 °C ist im Übungsbereich. Fehler: Bitte gib eine Zahl an, z. B. 23,5. Fehler: Bitte gib einen endlichen Zahlenwert ein. Fehler: Erlaubt sind nur 10 bis 60 °C. Eingabe beendet.
Erklärung: Die ursprüngliche Kommaschreibweise wird intern in die Punktschreibweise umgewandelt. Die Prüfung verarbeitet niemals den ungültigen Wert als freigegebenen Messwert.
Fehler erkennen und verbessern
| Eingabe | Meldung | Warum sinnvoll? |
|---|---|---|
| Leere Eingabe | Bitte gib einen Temperaturwert ein. | Zeigt, was fehlt |
| abc | Bitte gib eine Zahl an, z. B. 23,5. | Nennt ein gültiges Beispiel |
| NaN | Bitte gib einen endlichen Zahlenwert ein. | Verhindert die Verarbeitung eines Sonderwerts |
| 75 | Erlaubt sind nur 10 bis 60 °C. | Nennt den zulässigen Bereich |
Merksatz: Eine hilfreiche Fehlermeldung erklärt das Problem und sagt, was als Nächstes zu tun ist.
Gestufte Hilfen
Hilfe 1 – Denkanstoß: Welche Prüfung muss vor dem Zahlenvergleich stattfinden?
Hilfe 2 – Ablauf: Prüfe zunächst leeren Text, dann Umwandlung und Endlichkeit und zuletzt den Wertebereich.
Hilfe 3 – Codehilfe: Verwende if not text für fehlende Eingaben, Decimal für die Umwandlung, is_finite() für Sonderwerte und raise ValueError für ungültige Werte.
Video: try, except und Fehlerarten
Beobachtungsauftrag: Unterscheide Syntaxfehler, Laufzeitfehler und logische Fehler. Welche davon kann eine gezielte Ausnahmebehandlung abfangen?
Lerneinheit 5: Automatisiert testen
Lernzeit: 12 Minuten
Mit Unit-Tests überprüfst Du automatisch, ob eine Funktion die erwarteten Ergebnisse liefert.

Die Testpyramide zeigt verschiedene Testebenen. Im Ausbildungsprojekt untersuchst Du nur die einzelne Funktion pruefen(), ohne externe Geräte oder Dienste.
Lokale Testdatei
Speichere die zweite Datei im selben Übungsordner.
Datei: test_pruefwert.py
import unittest
from decimal import Decimal
from pruefwert import pruefen
class PruefwertTest(unittest.TestCase):
def test_gueltige_werte(self):
faelle = [
("10", "10"),
("23,5", "23.5"),
("60", "60"),
(" 25 ", "25"),
]
for text, soll in faelle:
with self.subTest(text=text):
self.assertEqual(
pruefen(text),
Decimal(soll)
)
def test_ungueltige_werte(self):
faelle = [
"",
"abc",
"9.99",
"60.01",
"NaN",
"Infinity",
"1" * 31,
]
for text in faelle:
with self.subTest(text=text):
with self.assertRaises(ValueError):
pruefen(text)
def test_verstaendliche_meldung(self):
with self.assertRaisesRegex(
ValueError, "10 bis 60"
):
pruefen("61")
if __name__ == "__main__":
unittest.main()
Test lokal ausführen
python -B test_pruefwert.py
Bei unverändertem Beispielcode lautet das erwartete Testergebnis:
Ran 3 tests OK
Beachte: Die drei Testmethoden enthalten insgesamt mehrere Testfälle. Die Untertests prüfen weitere einzelne Werte.
Datenvisualisierung: Zehn fiktive Eingaben
Für diese Demonstration werden vier gültige und sechs ungültige Werte betrachtet:
| Gruppe | Anzahl | Visualisierung |
|---|---|---|
| Gültig: 10, 23,5, 42, 60 | 4 | 🟩🟩🟩🟩 |
| Ungültig: leer, abc, 9,9, 60,1, NaN, Infinity | 6 | 🟥🟥🟥🟥🟥🟥 |
Interpretation: Die sechs ungültigen Eingaben werden korrekt zurückgewiesen. Die Verteilung ist ein künstlich erzeugtes Testszenario und keine echte Messstatistik.
Video: Unit-Tests mit Python
Arbeitsauftrag: Erkläre nach dem Video, warum automatisierte Tests besonders nach Änderungen am Programm hilfreich sind.
Lerneinheit 6: Transfer in technische Anwendungen
Lernzeit: 10 Minuten
Das gleiche Prinzip lässt sich auf weitere technische Eingaben übertragen.
| Anwendungsbereich | Zu prüfende Eingabe | Prüfidee |
|---|---|---|
| Lagerverwaltung | Stückzahl | Ganze Zahl und zulässiger Bereich |
| Qualitätsprüfung | Messwert | Zahlenformat und Grenzwerte |
| Wartung | Betriebsstunden | Nichtnegativer Zahlenwert |
| Fertigungstechnik | Sollmaß | Zulässige Toleranzen |
Alle Beispiele sind hypothetisch. Für reale Anwendungen müssen Anforderungen, Einheiten, Grenzwerte und Sicherheitsmaßnahmen fachlich festgelegt und geprüft werden.
Transferaufgabe mit Feedback
Aufgabe: Plane die Validierung einer fiktiven Stückzahl für einen Montageauftrag. Erlaubt sind ganze Zahlen von 1 bis 100.
Feedback: Eine gute Lösung lehnt Dezimalzahlen, Buchstaben, negative Zahlen, Null und Werte über 100 ab. Sie unterscheidet ausdrücklich zwischen einem gültigen Ganzzahlformat und der anschließenden Bereichsprüfung.
Interaktive Aufgaben
Quiz: Teste Dein Wissen
Warum sollten Eingaben vor der Verarbeitung geprüft werden? (Um unzulässige Werte zu erkennen und Fehler zu vermeiden) (!Um alle Eingaben automatisch zu speichern) (!Um die Programmiersprache zu wechseln) (!Um jeden beliebigen Wert zu erlauben)
Was liefert input in Python zunächst zurück? (Einen Text) (!Eine geprüfte Dezimalzahl) (!Eine fertige Fehlermeldung) (!Eine automatische Bereichsprüfung)
Welche Aufgabe erfüllt strip? (Entfernen von Leerzeichen am Anfang und Ende) (!Automatisches Runden von Zahlen) (!Starten einer Netzwerkverbindung) (!Vergleichen zweier Temperaturen)
Warum wird im Beispiel ein Komma durch einen Punkt ersetzt? (Um das Dezimaltrennzeichen zu vereinheitlichen) (!Um negative Zahlen immer zu erlauben) (!Um Werte automatisch zu verdoppeln) (!Um alle Fehler zu unterdrücken)
Welche Eingabe muss das Prüfprogramm zurückweisen? (NaN) (!25) (!10) (!60)
Welche Aufgabe erfüllt except? (Eine passende Ausnahme gezielt behandeln) (!Eingaben ohne Prüfung freigeben) (!Das Programm automatisch installieren) (!Alle Werte in Text umwandeln)
Was bewirkt raise ValueError im Beispiel? (Es meldet einen ungültigen Wert als Ausnahme) (!Es verändert automatisch die Temperatur) (!Es startet einen externen Server) (!Es akzeptiert jeden Zahlenwert)
Welcher Wert liegt im erlaubten Übungsbereich? (60) (!61) (!75) (!100)
Wozu dient unittest? (Zur automatisierten Überprüfung von Programmfunktionen) (!Zur Steuerung echter Temperatursensoren) (!Zum Ersetzen aller Fehlermeldungen) (!Zur Übertragung von Kundendaten)
Welche Testumgebung ist für diesen Kurs geeignet? (Ein lokaler Übungsordner mit fiktiven Daten) (!Eine fremde Produktionssteuerung) (!Ein ungefragt abgefragter Firmenserver) (!Eine Datenbank mit echten Kundendaten)
Quiz-Feedback: Bei Fehlern prüfst Du, ob Du Formatprüfung, Bereichsprüfung und Ausnahmebehandlung auseinanderhalten kannst. Wiederhole anschließend die passende Lerneinheit.
Memory
Verbinde jeweils einen Fachbegriff mit der passenden Bedeutung.
| Eingabevalidierung | Prüfung auf zulässige Eingabewerte |
| Normalisierung | Vereinheitlichung der Schreibweise |
| Dezimalzahl | Zahlenwert mit möglichem Nachkommateil |
| Grenzwert | Grenze eines erlaubten Wertebereichs |
| Ausnahme | Signal für einen besonderen Fehlerzustand |
| Unit-Test | Automatische Prüfung einer einzelnen Programmeinheit |
| Fehlermeldung | Verständlicher Hinweis auf ein Problem |
Drag and Drop
Ordne die Eingabesituation dem passenden Prüfresultat zu.
| Ordne die richtigen Begriffe zu. | Prüfresultat |
|---|---|
| Leere Eingabe | Fehlender Eingabewert |
| Text statt Zahl | Ungültiges Zahlenformat |
| Nicht endlicher Wert | Unzulässiger Sonderwert |
| Wert außerhalb des Bereichs | Grenzwertverletzung |
| Wert innerhalb des Bereichs | Erfolgreiche Validierung |
Kreuzworträtsel
| EINGABE | Was wird vor der weiteren Verarbeitung überprüft? |
| AUSNAHME | Wie heißt ein besonderer Fehlerzustand in Python? |
| GRENZWERT | Wie heißt der Rand eines erlaubten Wertebereichs? |
| FEHLERMELDUNG | Welcher Hinweis erklärt dem Benutzer einen Fehler? |
| ZAHLENFORMAT | Was muss bei der Umwandlung eines Textes in eine Zahl stimmen? |
| UNITTEST | Wie heißt ein automatisierter Test für eine einzelne Programmeinheit? |
LearningApps
Hier findest Du weitere interaktive Übungen zu diesem Themenbereich.
Hinweis: Die Suchergebnisse stammen von einem externen Anbieter und sind nicht Bestandteil der lokalen Python-Testumgebung. Verwende dort keine vertraulichen Daten.
Lückentext
Aufgaben mit gestuften Hilfen und Feedback
Basis: Eingaben prüfen
Auftrag: Ergänze das Programm so, dass eine leere Eingabe erkannt wird.
Hilfe 1: Überlege, wann ein Text keinen Inhalt besitzt.
Hilfe 2: Verwende eine Bedingung mit if not text.
Feedback: Richtig ist die Lösung, wenn eine leere Eingabe eine konkrete Meldung erzeugt und nicht als Temperatur verarbeitet wird. Dadurch werden unvollständige Daten früh zurückgewiesen.
Anwendung: Grenzwerte verändern
Auftrag: Ändere die fiktiven Grenzen auf 20 bis 50 °C. Passe die automatisierten Tests an.
Hilfe 1: Suche die beiden Konstanten für Unter- und Obergrenze.
Hilfe 2: Teste mindestens die beiden Grenzen und ihre unmittelbaren Nachbarwerte.
Feedback: Die Lösung ist nachvollziehbar, wenn die Tests die neuen Grenzwerte bestätigen und die Meldung den neuen Bereich nennt. Nur Konstanten zu verändern reicht nicht, wenn Tests und Rückmeldungen anschließend veraltet sind.
Transfer: Neue Eingabeart
Auftrag: Entwickle eine Funktion zur Prüfung einer fiktiven Stückzahl von 1 bis 100.
Hilfe 1: Eine Stückzahl sollte ganzzahlig sein.
Hilfe 2: Prüfe zuerst das Zahlenformat und anschließend den Bereich.
Hilfe 3: Nutze int zur Umwandlung und ValueError zur gezielten Fehlerbehandlung.
Feedback: Eine überzeugende Lösung weist 0, 101, Buchstaben und Dezimalzahlen zurück, akzeptiert aber 1 und 100. So zeigst Du, dass die Prüflogik auf andere technische Datenarten übertragbar ist.
Offene Aufgaben
Leicht
- Eingabe: Erstelle eine Skizze, die den Weg vom Eingabetext bis zur Bestätigung zeigt. Feedback: Die Skizze ist vollständig, wenn auch der Fehlerweg dargestellt wird, weil ungültige Werte nicht weiterverarbeitet werden dürfen.
- Datentyp: Sammle fünf fiktive gültige und fünf ungültige Eingaben für den Temperaturprüfstand. Feedback: Die Auswahl ist gut, wenn verschiedene Fehlerarten vorkommen und nicht nur zu große Zahlen.
- Fehlermeldung: Formuliere drei verständliche Fehlermeldungen für unterschiedliche Eingabefehler. Feedback: Gute Meldungen benennen das Problem und eine Handlungsmöglichkeit, statt nur „Fehler“ auszugeben.
- Ablaufdiagramm: Zeichne ein Ablaufdiagramm mit Eingabe, Zahlenprüfung und Bereichsprüfung. Feedback: Kontrolliere, ob jeder Entscheidungszweig ein eindeutiges Ergebnis hat.
Standard
- Python: Starte das lokale Prüfprogramm und dokumentiere sechs unterschiedliche Testeingaben. Feedback: Ein brauchbares Protokoll enthält Eingabe, erwartetes Ergebnis und beobachtetes Ergebnis.
- Grenzwertanalyse: Erstelle Tests knapp unterhalb, auf und oberhalb beider Grenzwerte. Feedback: Diese Fälle sind besonders aussagekräftig, weil sie falsche Vergleichsoperatoren sichtbar machen.
- Ausnahmebehandlung: Vergleiche eine Programmversion mit und eine ohne gezielte Fehlerbehandlung. Feedback: Beschreibe, warum die behandelte Version bei erwartbaren Eingabefehlern verständlicher reagiert.
- Softwaretest: Ergänze die lokale Testdatei um drei eigene Testfälle. Feedback: Ein guter zusätzlicher Test deckt ein bisher ungeprüftes Verhalten ab und nennt eine klare Erwartung.
Schwer
- Softwarequalität: Untersuche, warum ein allgemeines except ohne Fehlerart problematisch sein kann. Feedback: Eine überzeugende Analyse erklärt, dass unerwartete Programmierfehler verdeckt werden könnten.
- Validierung: Entwickle einen Validator für fiktive Stückzahlen, der ausschließlich ganze Zahlen akzeptiert. Feedback: Begründe getrennt die Formatprüfung und die Bereichsprüfung.
- Testautomatisierung: Erstelle eine Testmatrix und automatisiere die wichtigsten Fälle. Feedback: Bewerte auch nicht getestete Risiken, denn bestandene Tests beweisen keine vollständige Fehlerfreiheit.
- Technische Dokumentation: Produziere ein kurzes Erklärvideo oder ein digitales Handbuch für andere Auszubildende. Feedback: Die Darstellung ist gelungen, wenn Beispiele, Fehlermeldungen, Grenzfälle und sichere lokale Testbedingungen korrekt erklärt werden.


Lernkontrolle
Bearbeite mindestens fünf Aufgaben. Begründe Deine Entscheidungen.
- Anforderungsanalyse: Ein fiktiver Prüfstand soll statt Temperaturwerten Druckwerte erfassen. Beschreibe, welche Teile der Validierung allgemein wiederverwendbar sind und welche neu festgelegt werden müssen.
- Softwarefehler: Ein Programm akzeptiert fälschlich seinen oberen Grenzwert nicht. Analysiere die mögliche Ursache und entwickle einen Test, der diesen Fehler aufdeckt.
- Benutzerschnittstelle: Vergleiche die Meldungen „Ungültig“ und „Bitte gib einen Wert zwischen 10 und 60 °C ein“. Beurteile, welche im Übungsfall hilfreicher ist und weshalb.
- Fehlerbehandlung: Eine Anwendung fängt jede Ausnahme ab und zeigt immer „Alles in Ordnung“. Erkläre die technischen und organisatorischen Risiken dieser Vorgehensweise.
- Softwaretest: Nach einer Programmänderung funktionieren die Standardwerte weiterhin, ein Sonderwert führt jedoch zu einem Fehler. Entwickle eine sinnvolle Vorgehensweise zur Fehlersuche.
- Qualitätssicherung: Entscheide, ob ein Programm nach drei bestandenen Tests freigegeben werden kann. Begründe, welche zusätzlichen Anforderungen und Tests für eine reale technische Anwendung erforderlich wären.
Lernnachweis
Für Deinen Lernnachweis erstellst Du ein kleines, nachvollziehbar getestetes Softwareprojekt.
Abzugeben sind:
- Die lokal ausführbare Python-Datei mit Eingabevalidierung.
- Eine separate Datei mit automatisierten Tests.
- Eine Testtabelle mit gültigen, ungültigen und grenznahen Eingaben.
- Mindestens drei verständliche Fehlermeldungen.
- Eine kurze Erklärung der Prüfreihenfolge.
- Eine begründete Einschätzung, welche Grenzen die eigene Lösung hat.
- Eine Bestätigung, dass ausschließlich fiktive Daten und keine realen Anlagen verwendet wurden.
Bewertungskriterien
| Bereich | Punkte | Begründung |
|---|---|---|
| Korrekte Validierung | 30 | Verhindert unzulässige Weiterverarbeitung |
| Gezielte Fehlerbehandlung | 20 | Macht erwartbare Fehler kontrollierbar |
| Verständliche Rückmeldungen | 15 | Unterstützt die selbstständige Korrektur |
| Systematische Tests | 25 | Macht Ergebnisse wiederholbar und überprüfbar |
| Dokumentation und sichere Testumgebung | 10 | Ermöglicht Nachvollziehbarkeit ohne reale Systeme zu gefährden |
| Gesamt | 100 |
Orientierung für Dein Feedback: Eine Lösung ist nicht schon deshalb gut, weil sie bei einem gültigen Wert funktioniert. Entscheidend ist, wie sie bei fehlerhaften, fehlenden und grenznahen Eingaben reagiert.
OERs zum Thema
Wikipedia: Datenvalidierung
Fachlich geprüfte Quellen
Die folgenden Quellen unterstützen die verwendeten Grundlagen:
- Wikipedia: Datenvalidierung – Prüfung von Eingaben, Plausibilität und Wertebereichen.
- Wikipedia: Ausnahmebehandlung – Fehlerzustände und deren strukturierte Behandlung.
- Wikipedia: Softwaretest – Testfälle, Anforderungen und Grenzen von Softwaretests.
- Python-Dokumentation: Fehler und Ausnahmen – try, except und raise.
- Python-Dokumentation: decimal – Decimal, InvalidOperation und is_finite.
- Python-Dokumentation: unittest – Automatisierte Tests und Testmethoden.
- Python-Dokumentation: Kommandozeile – Bedeutung der Optionen -I und -B.
Bildquellen und Medienrechte
Die folgenden Abbildungen wurden anhand ihrer Wikimedia-Commons-Dateiseiten ausgewählt:
- Python-logo-notext.svg – Quelle: python.org; einfache Logogeometrie als gemeinfrei gekennzeichnet. Markenrechte bleiben zu beachten.
- Thermometer - The Noun Project.svg – Marco Olgio; CC0 1.0.
- Flowchart example.svg – Manuela knoop; CC BY-SA 3.0.
- Flowchart Decision.svg – DevinCook; CC BY-SA 4.0.
- Testing Pyramid.svg – Abbe98; CC BY-SA 4.0.
Videonachweise:
- Python Tutorial: Try & Except – Dennis Jan Vogt.
- Ausnahmebehandlung in Python – Binärverkehr.
- Python Tutorial: Code testen mit Unittest – Datamics.
Die Videos werden über YouTube eingebunden, nicht als frei lizenzierte Kopien bereitgestellt. Ihre Urheberrechte bleiben bei den jeweiligen Rechteinhabern. Beim Laden externer Medien und iFrames können technische Nutzungsdaten an die Anbieter übertragen werden. Gib dort keine vertraulichen oder personenbezogenen Daten ein. Die lokalen Python-Übungen benötigen keine externen Dienste.
Verknüpfte Lernbereiche
Weiterführende Themen
- Defensive Programmierung: Fehler durch sorgfältige Prüfungen vermeiden.
- Testgetriebene Entwicklung: Anforderungen zunächst durch Tests ausdrücken.
- Versionsverwaltung: Änderungen am Programm nachvollziehbar dokumentieren.
- Softwarearchitektur: Eingabe, Prüflogik und Ausgabe trennen.
- Informatiksicherheit: Vertrauensgrenzen verstehen und externe Daten nicht ungeprüft verarbeiten.
- Messtechnik: Messwerte, Einheiten und fachlich definierte Toleranzen unterscheiden.
aiMOOC-Projekte
Schulfach+


aiMOOCs


aiMOOC Projekte


MOOCwiki · Deutsch
Nach dem Lernen ist vor dem Lernen
Entdecke direkt den nächsten Lernkurs. Weitere Inhalte erscheinen, wenn Du weiter nach unten scrollst.
Zur MOOCwiki-HauptseiteMediathek
Mediathek wird aus dem Wiki geladen ...
Keine passenden Inhalte gefunden. Bitte ändere Suche oder Filter.
NEWSLernweltNOAH fragen