Softwaretests & Qualität
Anforderungen in Testfälle übersetzen, Grenzfälle finden und Ergebnisse nachvollziehbar bewerten.
Qualität beginnt bei Anforderungen
Definiere prüfbare Akzeptanzkriterien. Statt „schnell“ muss eine Antwortzeit unter festgelegten Bedingungen beschrieben werden. Funktionale Anforderungen sagen, was ein System tut; nichtfunktionale Anforderungen betreffen Eigenschaften wie Benutzbarkeit, Sicherheit oder Leistung. Tests können Fehler zeigen, aber allgemeine Fehlerfreiheit nicht beweisen.
Ein reproduzierbarer Testfall
Ein Testfall beschreibt Vorbedingungen, Eingaben, Schritte und erwartete Ergebnisse. Ist-Ergebnis und Umgebung werden bei der Ausführung ergänzt. Erwartete Werte sollten unabhängig von der getesteten Implementierung begründet werden. Ein Test, der den gleichen Fehler im Erwartungswert wiederholt, bietet wenig Schutz.
Vorbedingung: Konto gesperrt. Schritt: Anmeldung mit korrektem Passwort. Erwartung: Zugriff abgewiesen; keine neue Sitzung.
Äquivalenzklassen und Grenzwerte
Teile den Eingabebereich in Klassen mit vergleichbarem Verhalten. Ergänze Werte direkt unter, auf und über Grenzen. Bei zulässigem Alter 18 bis 65 sind beispielsweise 17, 18, 19, 64, 65 und 66 sinnvoll. Prüfe auch fehlende Werte und falsche Datentypen, soweit die Schnittstelle sie zulässt.
Unit, Integration und System
Unit-Tests prüfen kleine Einheiten; Integrationstests prüfen deren Zusammenspiel, etwa Anwendung und Datenbank. Systemtests betrachten das Gesamtsystem. Akzeptanztests bewerten vereinbarte Nutzeranforderungen. Die genaue Grenze einer Unit ist eine bewusste Designentscheidung. Ein Mock kann Isolation ermöglichen, bestätigt aber nicht die echte Schnittstellenkompatibilität.
Black Box und White Box
Black-Box-Tests leiten Fälle aus Anforderungen und beobachtbarem Verhalten ab. White-Box-Tests berücksichtigen die innere Struktur. Anweisungsabdeckung und Zweigabdeckung messen unterschiedliche Dinge. Hohe Abdeckung allein beweist weder richtige Anforderungen noch sinnvolle Assertions. Ein durchlaufener Codepfad kann ohne Ergebnisprüfung unbemerkt falsch sein.
Regression, Fehlerbericht und Nachtest
Ein Nachtest prüft die konkrete Korrektur eines gemeldeten Fehlers. Regressionstests suchen unbeabsichtigte Auswirkungen auf bereits funktionierende Bereiche. Ein Fehlerbericht braucht reproduzierbare Schritte, Erwartung, Ist-Ergebnis, Version und Auswirkung. Schweregrad und Behebungspriorität müssen nicht identisch sein.
Automatisierung und Versionsverwaltung
Automatisiere stabile, wiederholbare Prüfungen mit hohem Nutzen. Halte Testdaten getrennt von Produktion und räume sie zuverlässig auf. In einer CI-Pipeline können Lint, Tests und Build vor einer Veröffentlichung laufen. Git dokumentiert Änderungen; kleine nachvollziehbare Commits und Reviews helfen bei der Fehlersuche. Geheimnisse gehören nicht ins Repository.
Sicherheit und Leistung prüfen
Sicherheitstests kontrollieren beispielsweise Authentifizierung, Berechtigungen, Eingabegrenzen und Datenfreigabe. Leistungstests brauchen realistische Last und messbare Ziele. Führe belastende Tests nur in einer dafür vorgesehenen Umgebung durch. In FISIBase trainierst du die Auswahl und Bewertung von Testfällen; die Übungen starten keine Angriffe gegen fremde Systeme.