Skip to content

Software-TestingAktivitäten & Unterrichtsstrategien

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.

Klasse 10Digitale Welten Gestalten: Informatik in der Praxis4 Aktivitäten30 Min.50 Min.

Lernziele

  1. 1Demonstrieren Sie die Anwendung von Unit-Tests zur Überprüfung der Funktionalität einzelner Code-Module.
  2. 2Analysieren Sie das Zusammenspiel mehrerer Module durch die Durchführung von Integrationstests.
  3. 3Bewerten Sie die Effizienz von automatisierten Teststrategien im Vergleich zu manuellen Testverfahren.
  4. 4Erklären Sie die Kriterien, die einen Softwarefehler (Bug) von einer gewünschten Funktionalität (Feature) unterscheiden.
  5. 5Erstellen Sie einfache Testfälle, um spezifische Fehlerbedingungen in einem gegebenen Code-Snippet zu identifizieren.

Möchten Sie einen vollständigen Unterrichtsentwurf mit diesen Lernzielen? Mission erstellen

45 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.

Vorbereitung & Details

Kann man die Fehlerfreiheit einer Software beweisen?

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

Setup: Gruppentische mit Zugang zu Recherchequellen

Materials: Dokumentation des Problemszenarios, KWL-Tabelle (Wissen, Wollen, Lernen) oder Inquiry-Framework, Ressourcenpool / Handapparat, Vorlage für die Ergebnispräsentation

AnalysierenBewertenErschaffenEntscheidungsfähigkeitSelbststeuerungBeziehungsfähigkeit
50 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.

Vorbereitung & Details

Warum ist automatisiertes Testen effizienter als manuelles?

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

Setup: Gruppentische mit Zugang zu Recherchequellen

Materials: Dokumentation des Problemszenarios, KWL-Tabelle (Wissen, Wollen, Lernen) oder Inquiry-Framework, Ressourcenpool / Handapparat, Vorlage für die Ergebnispräsentation

AnalysierenBewertenErschaffenEntscheidungsfähigkeitSelbststeuerungBeziehungsfähigkeit
40 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.

Vorbereitung & Details

Was unterscheidet einen Bug von einem Feature?

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

Setup: Gruppentische mit Zugang zu Recherchequellen

Materials: Dokumentation des Problemszenarios, KWL-Tabelle (Wissen, Wollen, Lernen) oder Inquiry-Framework, Ressourcenpool / Handapparat, Vorlage für die Ergebnispräsentation

AnalysierenBewertenErschaffenEntscheidungsfähigkeitSelbststeuerungBeziehungsfähigkeit
30 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.

Vorbereitung & Details

Kann man die Fehlerfreiheit einer Software beweisen?

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

Setup: Gruppentische mit Zugang zu Recherchequellen

Materials: Dokumentation des Problemszenarios, KWL-Tabelle (Wissen, Wollen, Lernen) oder Inquiry-Framework, Ressourcenpool / Handapparat, Vorlage für die Ergebnispräsentation

AnalysierenBewertenErschaffenEntscheidungsfähigkeitSelbststeuerungBeziehungsfähigkeit

Dieses Thema unterrichten

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.

Was Sie erwartet

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.

Diese Aktivitäten sind ein Ausgangspunkt. Die vollständige Mission ist das Erlebnis.

  • Vollständiges Moderationsskript mit Lehrkraft-Dialogen
  • Druckfertige Schülermaterialien, bereit für den Unterricht
  • Differenzierungsstrategien für jeden Lerntyp
Mission erstellen

Vorsicht vor diesen Fehlvorstellungen

Häufige FehlvorstellungWä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.

Was Sie stattdessen lehren sollten

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.

Häufige FehlvorstellungBeim Gruppenrotations-Activity zu Testarten sollten Sie beobachten, ob Lernende pauschal annehmen, automatisiertes Testen sei immer überlegen.

Was Sie stattdessen lehren sollten

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.

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

Was Sie stattdessen lehren sollten

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.

Ideen zur Lernstandserhebung

Lernstandskontrolle

Nach der Paarprogrammierung: Die 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.

Diskussionsfrage

Während der Gruppenrotation: Stellen 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.

Kurze Überprüfung

Nach der Klassenbewerbung: Zeigen 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.

Erweiterungen & Unterstützung

  • Challenge: Erweitern Sie die Test-Suite um Performance-Tests oder Sicherheitstests.
  • Scaffolding: Stellen Sie eine Vorlage für die Testfälle bereit oder geben Sie konkrete Beispiele für Edge-Cases.
  • Deeper: Recherchieren Sie verschiedene Testautomatisierungs-Frameworks und stellen Sie ihre Vor- und Nachteile vor.

Schlüsselvokabular

Unit-TestEin Test, der die kleinste testbare Einheit eines Softwarecodes isoliert prüft, typischerweise eine Funktion oder Methode.
IntegrationstestEin Test, der das Zusammenspiel und die Kommunikation zwischen verschiedenen Modulen oder Komponenten einer Software überprüft.
BugEin Fehler im Programmcode, der dazu führt, dass die Software nicht wie erwartet funktioniert oder abstürzt.
Test-Driven Development (TDD)Ein Entwicklungsansatz, bei dem zuerst Tests geschrieben werden, die dann fehlschlagen, bevor der eigentliche Code geschrieben wird, um die Tests zu erfüllen.
RegressionstestEin Test, der sicherstellt, dass durch neue Codeänderungen keine bereits funktionierenden Teile der Software beeinträchtigt wurden.

Bereit, Software-Testing zu unterrichten?

Erstellen Sie eine vollständige Mission mit allem, was Sie brauchen

Mission erstellen