Skip to content
Informatik · Klasse 10

Ideen für aktives Lernen

Software-Testing

Software-Testing ist ein Kernstück der Softwareentwicklung, das durch aktives Tun am besten verstanden wird. Durch das direkte Anwenden von Testmethoden entwickeln Lernende ein tiefes Verständnis für Qualitätssicherung und Fehleranalyse, was weit über reines Auswendiglernen hinausgeht.

KMK BildungsstandardsKMK: STD.03KMK: STD.05
30–50 Min.Partnerarbeit → Ganze Klasse4 Aktivitäten

Aktivität 01

Problemorientiertes Lernen45 Min. · Partnerarbeit

Paarprogrammierung: Unit-Tests schreiben

Schülerinnen und Schüler arbeiten in Paaren an einer gemeinsamen Funktion, schreiben Unit-Tests mit einem Framework wie JUnit und führen diese aus. Sie besprechen fehlgeschlagene Tests und passen den Code an. Abschließend teilen Paare Ergebnisse im Plenum.

Kann man die Fehlerfreiheit einer Software beweisen?

ModerationstippBeim Paarprogrammieren ist es wichtig, darauf zu achten, dass beide Partner aktiv am Code und den Tests beteiligt sind, um einseitige Übernahme zu vermeiden.

Worauf zu achten istDie Schüler erhalten ein kleines Code-Snippet mit einer absichtlichen Fehlfunktion. Sie sollen einen Unit-Test schreiben, der diesen Fehler aufdeckt, und kurz begründen, warum ihr Test erfolgreich wäre.

AnalysierenBewertenErschaffenEntscheidungsfähigkeitSelbststeuerungBeziehungsfähigkeit
Komplette Unterrichtsstunde erstellen

Aktivität 02

Problemorientiertes Lernen50 Min. · Kleingruppen

Gruppenrotation: Test-Arten erkunden

Richten Sie Stationen für Unit-Tests, Integrationstests, manuelle Tests und automatisierte Tests ein. Gruppen rotieren alle 10 Minuten, testen vorgegebenen Code und protokollieren Beobachtungen. Am Ende diskutieren sie Vor- und Nachteile jeder Methode.

Warum ist automatisiertes Testen effizienter als manuelles?

ModerationstippWährend der Gruppenrotation sollten Sie sicherstellen, dass die Lernenden die spezifischen Merkmale jeder Teststation (Unit, Integration, manuell, automatisiert) erfassen und dokumentieren.

Worauf zu achten istStellen Sie die Frage: 'Warum ist es oft effizienter, einen automatisierten Test zu schreiben, der bei jedem Update erneut läuft, anstatt denselben Test manuell durchzuführen?' Sammeln Sie Antworten und diskutieren Sie die Aspekte Zeitersparnis, Konsistenz und Fehleranfälligkeit.

AnalysierenBewertenErschaffenEntscheidungsfähigkeitSelbststeuerungBeziehungsfähigkeit
Komplette Unterrichtsstunde erstellen

Aktivität 03

Problemorientiertes Lernen40 Min. · Ganze Klasse

Klassenbewerbung: Bug-Hunt-Challenge

Die Klasse testet eine fehlerhafte Software gemeinsam. Jede Schülerin und jeder Schüler meldet Bugs mit Screenshots und Reproduktionsschritten. Die meisten fundierten Meldungen gewinnen. Schließen Sie mit einer Debriefing-Runde ab.

Was unterscheidet einen Bug von einem Feature?

ModerationstippBei der Klassenbewerbung zur Bug-Hunt-Challenge ermutigen Sie alle Lernenden, ihre gefundenen Bugs klar und präzise zu beschreiben, um die Kommunikation zu üben.

Worauf zu achten istZeigen Sie zwei Szenarien: A) Ein Benutzer meldet, dass die Schaltfläche zum Speichern nicht funktioniert. B) Ein Benutzer meldet, dass die Schaltfläche zum Speichern nach dem letzten Update manchmal nicht reagiert. Lassen Sie die Schüler entscheiden, ob es sich wahrscheinlich um einen Bug oder ein Feature handelt und begründen Sie kurz.

AnalysierenBewertenErschaffenEntscheidungsfähigkeitSelbststeuerungBeziehungsfähigkeit
Komplette Unterrichtsstunde erstellen

Aktivität 04

Problemorientiertes Lernen30 Min. · Einzelarbeit

Individuell: Test-Suite erweitern

Jede Schülerin und jeder Schüler erweitert eine gegebene Test-Suite um Edge-Cases und negativen Tests. Sie commiten in ein Repository und peer-reviewen die Tests der Mitschüler. Feedbackrunde schließt ab.

Kann man die Fehlerfreiheit einer Software beweisen?

ModerationstippWenn Lernende individuell eine Test-Suite erweitern, beobachten Sie, ob sie systematisch an Edge-Cases und negative Tests denken und diese auch dokumentieren.

Worauf zu achten istDie Schüler erhalten ein kleines Code-Snippet mit einer absichtlichen Fehlfunktion. Sie sollen einen Unit-Test schreiben, der diesen Fehler aufdeckt, und kurz begründen, warum ihr Test erfolgreich wäre.

AnalysierenBewertenErschaffenEntscheidungsfähigkeitSelbststeuerungBeziehungsfähigkeit
Komplette Unterrichtsstunde erstellen

Vorlagen

Vorlagen, die zu diesen Informatik-Aktivitäten passen

Nutzen, bearbeiten, drucken oder teilen.

Einige Hinweise zum Unterrichten dieser Einheit

Der pädagogische Ansatz für Software-Testing sollte auf Problemlösung und praktischer Anwendung basieren. Vermeiden Sie es, ausschließlich trockene Theorie zu vermitteln. Stattdessen sollten Lernende durch das Schreiben von Tests und das Suchen nach Fehlern die Prinzipien selbst entdecken. Methoden wie Problem-Based Learning eignen sich hervorragend, um komplexe Teststrategien zu erforschen.

Erfolgreiches Lernen zeigt sich darin, dass Schülerinnen und Schüler die Notwendigkeit verschiedener Testarten begründen und selbstständig einfache Unit-Tests schreiben können. Sie erkennen die Grenzen von Tests und können Fehler von Features unterscheiden.


Vorsicht vor diesen Fehlvorstellungen

  • Während der Aktivität zur individuellen Test-Suite-Erweiterung achten Sie darauf, ob Lernende glauben, dass sie durch das Hinzufügen weniger Testfälle die absolute Fehlerfreiheit beweisen können.

    Leiten Sie die Lernenden dazu an, zu erkennen, dass auch eine erweiterte Test-Suite keine absolute Fehlerfreiheit garantiert, sondern lediglich die Wahrscheinlichkeit von Fehlern verringert und die Testabdeckung erhöht. Diskutieren Sie die Grenzen des Testens anhand ihrer erstellten Edge-Cases.

  • Beim Gruppenrotations-Activity zu Testarten sollten Sie beobachten, ob Lernende pauschal annehmen, automatisiertes Testen sei immer überlegen.

    Fordern Sie die Gruppen auf, die Vor- und Nachteile von automatisierten versus manuellen Tests für spezifische Szenarien (z.B. UI-Tests, exploratives Testen) zu diskutieren, basierend auf ihren Erfahrungen an den jeweiligen Stationen.

  • Während der Klassenbewerbung zur Bug-Hunt-Challenge könnten Lernende dazu neigen, jeden unerwarteten Verhalten sofort als Bug zu bezeichnen.

    Regen Sie eine Diskussion an, ob das gemeldete Verhalten tatsächlich von den Anforderungen abweicht oder ob es sich um ein Missverständnis der Funktionalität handelt. Nutzen Sie die gemeldeten 'Bugs' als Anlass, den Kontext von Anforderungen und Fehlern zu beleuchten.


In dieser Übersicht verwendete Methoden