Lässt es sich mit cremefarbenem Papier, einer Tönung, mehr Kontrast oder größerer Schrift besser lesen? Wählen Sie Ihre Farben und Ihre Schrift, einmalig für alle Seiten.

Kostenlose Lektion

Warum Software getestet wird

Nach dieser Lektion: Ich kann sagen, welche Art von Test welche Art von Fehler findet.

Lektion, 50 Min.5 BefehleLab „Linux im Alltag“: die dreißig Befehle, die Entwickelnde auswendig tippen

Ein Rabatt, der bei 100 Euro fehlt

Softwaretesten heißt, ein Programm mit ausgewählten Eingaben zu starten und zu prüfen, ob es das Richtige tut. So finden Sie Fehler, bevor Kundinnen und Kunden sie finden.

Ein Webshop gibt ab 100 Euro Bestellwert zehn Prozent Rabatt. Ein Warenkorb mit genau 100 Euro bekommt ihn nicht. Bis jemand es merkt, haben Hunderte so bestellt.

Am Ende dieser Lektion

Notiz

Ich kann sagen, welche Art von Test welche Art von Fehler findet.

Schlüsselwörter

BegriffWas er bedeutetBeispiel
Fehlerzustanddie falsche Stelle im Code> statt >=
Fehlerwirkungdas falsche Verhalten, das Nutzende sehen
Testfalleine Eingabe und das Ergebnis, das Sie dafür erwarten
Teststufedie Größe des Teils, den ein Test prüft
Fehlerberichtdie Meldung, die einen Fehler beschreibt

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Fehlerzustand und Fehlerwirkung sind nicht dasselbe

Ein Fehlerzustand ist die falsche Stelle im Code. Eine Fehlerwirkung ist das, was dadurch schiefgeht und was jemand sieht.

Beides ist nicht dasselbe. Ein Fehlerzustand kann lange im Code liegen, ohne dass jemand etwas merkt. Erst eine bestimmte Eingabe weckt ihn und macht aus ihm eine Fehlerwirkung.

Ein Beispiel: der Rabatt im Webshop

FrageAntwort im Beispiel
Die RegelAb 100 Euro gibt es zehn Prozent Rabatt
Der FehlerzustandIm Code steht > 100 statt >= 100
Die FehlerwirkungEin Warenkorb mit genau 100 Euro zahlt 100 statt 90
Eine Eingabe, die nichts verrät50 Euro oder 200 Euro: beide stimmen
Der Testfall, der ihn findetEingabe 100, erwartet 90

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Den Fehler selbst auslösen

Legen Sie im Lab einen Ordner an und darin eine kleine Datei preis.py mit genau diesem Rabatt. Danach rufen Sie die Funktion zweimal auf.

Sagen Sie vor jedem Aufruf voraus, was herauskommen soll. Vergleichen Sie es dann mit dem, was das Terminal ausgibt.

Einen Ordner anlegen

Befehl
mkdir -p ~/testlabor

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

In den Ordner wechseln

Befehl
cd ~/testlabor

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Die Datei preis.py schreiben

Befehl
printf 'def preis_mit_rabatt(preis):\n    if preis > 100:\n        return preis - preis // 10\n    return preis\n' > preis.py

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Mit genau 100 Euro aufrufen

Befehl
python3 -c "from preis import preis_mit_rabatt; print(preis_mit_rabatt(100))"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Mit 200 Euro aufrufen

Befehl
python3 -c "from preis import preis_mit_rabatt; print(preis_mit_rabatt(200))"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Der Fehler zum Ändern

Code: python
# Die Regel: ab 100 Euro gibt es zehn Prozent Rabatt.
def preis_mit_rabatt(preis):
    if preis > 100:
        return preis - preis // 10
    return preis

print(preis_mit_rabatt(100))
print(preis_mit_rabatt(200))
# Ändern Sie > in >= und starten Sie noch einmal.

Ein häufiger Fehler

Warnung

Viele glauben, bestandene Tests zeigten, dass ein Programm fehlerfrei ist. Das stimmt nicht. Ein Test zeigt nur, dass ein Fehler da ist, wenn er ihn findet. Er beweist nie, dass keiner mehr da ist.

Vier Teststufen prüfen vier verschiedene Größen

Ein Programm besteht aus Teilen. Eine Teststufe sagt, wie groß der Teil ist, den ein Test prüft.

Der Unit-Test prüft eine einzelne Funktion. Der Integrationstest prüft, ob zwei Teile zusammenarbeiten. Der Systemtest prüft das ganze Programm. Der Abnahmetest prüft, ob es für die Auftraggebenden brauchbar ist.

Ein Beispiel: vier Stufen im Webshop

TeststufeWas geprüft wirdEin Fehler, den sie findet
Unit-TestDie Funktion für den RabattBei genau 100 Euro fehlt der Rabatt
IntegrationstestWarenkorb und Zahlung zusammenDie Zahlung bekommt Euro statt Cent
SystemtestDer ganze Shop mit DatenbankBei vielen Bestellungen antwortet er nicht mehr
AbnahmetestDer Shop aus Sicht der EinkaufsabteilungDie Rechnung nennt keine Umsatzsteuer

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Späte Fehler sind teuer

Ein Fehler beim Schreiben ist in Minuten behoben. Derselbe Fehler nach der Auslieferung braucht Fehlerbericht, Suche, Korrektur, neuen Test und neue Version.

Die Zahlen der Tabelle sind ein Beispiel, kein Naturgesetz. Sie zeigen die Richtung: Früh finden spart Arbeit.

Beispielrechnung: Aufwand bei 60 Euro je Stunde

Fehler entdecktArbeitsstundenKosten in Euro
Beim Schreiben des Codes160
Im Integrationstest5300
Im Systemtest10600
Nach der Auslieferung503000

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Über dieses Lab und seinen Quellcode: Lab „Linux im Alltag“: die dreißig Befehle, die Entwickelnde auswendig tippen

Sie unterrichten eine Gruppe? Weisen Sie dieses Modul Ihren Studierenden zu, mit Handbuch für Lehrende, automatisch geprüften Aufgaben und einem Lab für jede Person.