Testplanung und -management

In dieser Lerneinheit erwirbst du grundlegende Kompetenzen zur systematischen Planung und Organisation von Software-Tests durch die Erstellung professioneller Testpläne und -spezifikationen. Du lernst die wichtigsten Bestandteile eines Testplans kennen und erfährst, wie du Testfälle strukturiert dokumentierst und priorisierst. Diese Fähigkeiten ermöglichen dir, Testaktivitäten in deinen Entwicklungsprojekten effizient zu koordinieren und nachvollziehbar zu gestalten.

Einführung

Das neue Feature muss in drei Wochen live gehen. Dein Projektleiter fragt:

Wie viele Tests brauchen wir? Wie lange dauert das? Was kostet uns das?

Ohne systematische Testplanung wird diese Situation zum Ratespiel. Mit einem durchdachten Testplan hingegen kannst du präzise antworten, Risiken benennen und realistische Zeitpläne aufstellen.

In dieser Lerneinheit erfährst du, wie professionelle Testplanung funktioniert und welche Werkzeuge dir dabei helfen.

Lernziele

Nach dieser Lerneinheit lernst du

  • Testpläne strukturieren nach internationalen Standards (IEEE 829 / ISO 29119)
  • Testfälle systematisch erstellen und nachvollziehbar dokumentieren
  • Testaufwand schätzen mit verschiedenen Methoden wie Function Point Analysis
  • Testumgebungen planen und effektiv verwalten
  • CI/CT-Pipelines verstehen und deren Vorteile für kontinuierliches Testen nutzen

Überleitung

Du kennst bereits die verschiedenen Teststufen und Testarten. Jetzt geht es um das “Wie”:

  • Wie organisierst du Tests in der Praxis?
  • Wie planst du Ressourcen und Zeit?
  • Wie stellst du sicher, dass nichts vergessen wird?

Der Testplan als Steuerungsdokument

Ein Testplan ist das zentrale Dokument für alle Testaktivitäten. Er beantwortet drei grundlegende Fragen:

  • WAS wird getestet (und was nicht)?
  • WIE wird getestet (Strategien, Methoden, Tools)?
  • WANN wird getestet (Zeitplan, Meilensteine)?

Internationale Standards wie ISO/IEC/IEEE 29119 (aktueller Standard seit 2013) und sein Vorgaenger IEEE 829 (veraltet, aber historisch wichtig) geben eine bewaehrte Struktur vor, die in der Industrie weitverbreitet ist.

Bestandteile eines Testplans

Ein vollständiger Testplan enthält mehrere essenzielle Komponenten. Die folgende Tabelle zeigt die wichtigsten Bestandteile im Überblick:

KomponenteBeschreibung
TestumfangWas wird getestet? Was ist explizit ausgeschlossen?
TeststrategieWelche Testarten und Techniken kommen zum Einsatz?
RessourcenPersonal, Tools, Hardware, Testumgebungen
ZeitplanMeilensteine, Deadlines, Abhängigkeiten
RisikenIdentifizierte Risiken und geplante Gegenmaßnahmen
Ein-/AustrittskriterienWann starten wir Tests? Wann sind wir fertig?

Je nach Projektgröße und Kontext können einzelne Abschnitte ausführlicher oder knapper ausfallen. Wichtig ist, dass alle Beteiligten den Testplan verstehen und als verbindliche Grundlage akzeptieren.

Testspezifikationen und Testfälle

Testspezifikationen detaillieren die konkreten Tests. Jeder Testfall beschreibt:

  • Vorbedingungen: In welchem Zustand muss das System sein?
  • Testschritte: Welche Aktionen werden durchgeführt?
  • Erwartetes Ergebnis: Was soll passieren?
  • Nachbedingungen: Wie sieht der Systemzustand danach aus?

Gute Testfälle sind eindeutig (keine Interpretationsspielräume), wiederholbar (gleiches Ergebnis bei jedem Durchlauf) und nachvollziehbar (Rückverfolgung zur Anforderung).

Systematische Testfallerstellung

Die Erstellung von Testfällen folgt einem strukturierten Prozess:

  1. Anforderungsanalyse: Spezifikationen und User Stories durcharbeiten
  2. Testbedingungen definieren: Was genau soll geprüft werden?
  3. Testfälle ableiten: Positive und negative Szenarien entwickeln
  4. Priorisierung: Welche Tests sind kritisch, welche optional?

Jeder Testfall sollte an mindestens eine Anforderung gekoppelt sein. So stellst du sicher, dass alle Anforderungen getestet werden und keine Tests überflüssig sind.

Testtechniken für die Testfallerstellung

Für die systematische Ableitung von Testfällen gibt es bewährte Techniken:

  • Äquivalenzklassenbildung: Eingabedaten in Gruppen mit gleichem Verhalten unterteilen
  • Grenzwertanalyse: Werte an den Grenzen der Äquivalenzklassen testen

Diese Techniken werden in der Lerneinheit Testverfahren und Techniken ausführlich behandelt. Hier konzentrieren wir uns auf ihre Anwendung im Rahmen der Testplanung.

Testdatenmanagement

Ohne passende Testdaten sind auch die besten Testfälle wertlos. Wichtige Aspekte:

  • Realistische Daten: Testdaten sollten Produktivdaten möglichst genau abbilden
  • Datenschutz: Personenbezogene Daten müssen anonymisiert oder pseudonymisiert werden
  • Versionierung: Testdaten müssen reproduzierbar und versioniert sein
  • Automatisierung: Testdaten-Generatoren helfen bei großen Datenmengen

Die Qualität der Testdaten beeinflusst direkt die Aussagekraft deiner Tests.

Aufwandsschätzung: Grundlagen

“Wie lange dauert das Testen?” Diese Frage ist schwer zu beantworten, aber entscheidend für die Projektplanung.

Typischerweise entfallen 30 bis 50 Prozent des Gesamtprojektaufwands auf Tests. Unterschätzte Testaufwände führen zu:

  • Zeitdruck und Qualitätseinbußen
  • Überstunden und Teamfrustration
  • Ungeplante Kosten und Projektverzögerungen

Eine realistische Schätzung ist daher keine Nebensache, sondern Kernaufgabe der Testplanung.

Methoden zur Aufwandsschätzung

Es gibt verschiedene Ansätze, um den Testaufwand zu ermitteln. Die Wahl der Methode hängt von der Projektgröße und den verfügbaren Daten ab:

MethodeBeschreibungWann geeignet?
ExpertenurteilErfahrene Tester schätzen basierend auf ErfahrungKleine Projekte, wenig historische Daten
AnalogiemethodeVergleich mit ähnlichen, abgeschlossenen ProjektenWiederkehrende Projekttypen
Function Point AnalysisSchätzung basierend auf FunktionsumfangGrößere Projekte mit messbaren Anforderungen
Test Point AnalysisGewichtete Testfälle nach KomplexitätDetaillierte Testplanung mit bekannten Testfällen

In der Praxis werden oft mehrere Methoden kombiniert, um eine realistischere Schätzung zu erhalten.

Einflussfaktoren auf den Testaufwand

Der tatsächliche Aufwand hängt von vielen Faktoren ab:

  • Komplexität: Komplexe Geschäftslogik erfordert mehr Tests
  • Risiko: Kritische Funktionen brauchen intensivere Tests
  • Teamerfahrung: Erfahrene Tester arbeiten effizienter
  • Toolunterstützung: Automatisierung spart langfristig Zeit
  • Qualitätsanforderungen: Höhere Anforderungen bedeuten mehr Aufwand

Plane immer einen Puffer von 15 bis 20 Prozent für Unvorhergesehenes ein.

Die Testumgebung

Die Testumgebung ist die Infrastruktur, in der Tests durchgeführt werden. Sie sollte die Produktivumgebung möglichst genau abbilden, damit Testergebnisse aussagekräftig sind.

Warum eine separate Testumgebung?

  • Isolation: Keine Störung des Produktivsystems
  • Reproduzierbarkeit: Tests können unter identischen Bedingungen wiederholt werden
  • Sicherheit: Sensible Produktionsdaten bleiben geschützt

Aufbau einer Testumgebung

Eine gut geplante Testumgebung umfasst:

  • Hardware: Server, Netzwerke, Endgeräte (ähnlich zur Produktion)
  • Software: Betriebssysteme, Datenbanken, Applikationsserver
  • Testdaten: Realistische, aber anonymisierte Daten
  • Tools: Testautomatisierung, Fehlerverfolgung, Build-Management
  • Zugriffssteuerung: Nur autorisierte Personen haben Zugang

Best Practice: Automatisiere das Setup und Teardown der Testumgebung, um Zeit zu sparen und Fehler zu vermeiden.

Continuous Integration und Continuous Testing

Continuous Integration (CI) und Continuous Testing (CT) automatisieren den Build- und Testprozess. Bei jedem Code-Commit werden automatisch Tests ausgeführt.

Der typische Ablauf:

  1. Entwickler pusht Code ins Repository
  2. CI-System erkennt Änderung und startet Build
  3. Automatisierte Tests laufen (Unit, Integration, ggf. E2E)
  4. Ergebnis wird sofort an das Team gemeldet

Dies ermöglicht Shift Left Testing: Fehler werden früh erkannt, wenn sie noch günstig zu beheben sind.

Vorteile von CI/CT

Die Einführung von CI/CT bringt zahlreiche Vorteile für das gesamte Entwicklungsteam:

VorteilBeschreibung
Schnelles FeedbackFehler werden in Minuten statt Tagen erkannt
AutomatisierungKeine manuellen Build- und Testschritte nötig
RegressionssicherheitAutomatische Tests verhindern, dass alte Fehler zurückkehren
DokumentationBuild-History dient als Qualitätsnachweis
Team-EffizienzEntwickler können sich auf Code konzentrieren

Gängige CI-Tools sind Jenkins, GitLab CI, GitHub Actions und Azure DevOps.

Die Test Automation Pyramid

Die Test Automation Pyramid (Mike Cohn) zeigt die optimale Verteilung automatisierter Tests:

         /\
        /  \     UI-Tests (wenige, langsam, teuer)
       /----\
      /      \   Integrationstests (mittel)
     /--------\
    /          \  Unit-Tests (viele, schnell, günstig)
   /------------\
  • Basis (Unit-Tests): Schnell, günstig, zahlreich
  • Mitte (Integrationstests): Prüfen das Zusammenspiel von Komponenten
  • Spitze (UI-Tests): Langsam, teuer, daher sparsam einsetzen

Diese Verteilung optimiert Feedback-Geschwindigkeit und Wartungsaufwand.

Zusammenfassung und Ausblick

Zusammenfassung

Testpläne und Testspezifikationen

In dieser Lerneinheit hast du die Grundlagen der Testplanung und des Testmanagements kennengelernt.

  • Ein Testplan ist das zentrale Steuerungsdokument und beantwortet WAS, WIE und WANN getestet wird
  • Internationale Standards wie IEEE 829 und ISO 29119 geben eine bewährte Struktur vor
  • Testfälle beschreiben Vorbedingungen, Testschritte, erwartete Ergebnisse und Nachbedingungen
  • Gute Testfälle sind eindeutig, wiederholbar und nachvollziehbar

Aufwandsschätzung und Testumgebung

  • Typischerweise entfallen 30 bis 50 Prozent des Projektaufwands auf Tests
  • Schätzungsmethoden wie Expertenurteil, Analogie oder Function Point Analysis helfen bei der Planung
  • Eine isolierte Testumgebung ermöglicht reproduzierbare Tests ohne Störung des Produktivsystems

CI/CT und Testautomatisierung

  • Continuous Integration (CI) und Continuous Testing (CT) automatisieren Build- und Testprozesse
  • Die Test Automation Pyramid zeigt die optimale Verteilung: viele Unit-Tests, wenige UI-Tests
  • Shift Left Testing bedeutet: Fehler früh erkennen, wenn sie noch günstig zu beheben sind

Ausblick

In der nächsten Lerneinheit Testautomatisierung vertiefst du das Thema automatisierte Tests. Du lernst konkrete Tools und Frameworks kennen und erfährst, wie du eine effektive CI/CT-Pipeline aufbaust.