Boundary Value Analysis
Eine strukturierte Testtechnik, die Eingabe- und Ausgabegrenzwerte systematisch auswählt, um Fehler an den Rändern von Wertebereichen zu finden.
Klassifikation
- KomplexitätMittel
- AuswirkungTechnisch
- EntscheidungstypDesign
- OrganisationsreifeFortgeschritten
Technischer Kontext
Prinzipien & Ziele
Use Cases & Szenarien
Kompromisse
- Falsche Grenzwertdefinitionen führen zu irreführenden Tests
- Übermäßiges Vertrauen führt zu Vernachlässigung anderer Testarten
- Fehlende Automatisierung erhöht manuellen Aufwand bei Regressionen
- Kombiniere Boundary Value Analysis immer mit Äquivalenzklassen
- Automatisiere Grenzwerttests früh und integriere in CI
- Dokumentiere Annahmen zu Rändern in Anforderungen
I/O & Ressourcen
- Anforderungsspezifikation mit Wertebereichen
- Zugängliche Testumgebung oder Staging-System
- Testdaten oder Daten-Generator
- Getestete Grenzfall-Testsuite
- Fehlerberichte und reproduzierbare Fälle
- Verbesserte Anforderungs- oder Validierungsbeschreibungen
Beschreibung
Boundary Value Analysis ist eine Testtechnik, die sich auf Grenzwerte und -bereiche konzentriert, um Fehler an den Rändern von Eingabeparametern zu finden. Sie wird in Unit-, Integrations- und Systemtests eingesetzt und reduziert Testumfang durch gezielte Auswahl kritischer Werte. Dabei identifiziert sie typische Off-by-One- und Bereichsfehler effizient.
✔Vorteile
- Hohe Fehlerentdeckungsrate bei geringem Aufwand
- Reduziert Anzahl erforderlicher Testfälle signifikant
- Leicht zu automatisieren und in Test-Suites zu integrieren
✖Limitationen
- Deckt nicht alle inneren Zustände oder Kombinationen ab
- Wenig hilfreich bei nicht-numerischen oder nicht-bereichsbasierten Daten
- Erfordert klare Spezifikationen der Grenzwerte
Trade-offs
Metriken
- Grenzwert-Abdeckungsquote
Anteil der definierten Grenzwerte, die durch Tests abgedeckt sind.
- Fehlerentdeckungsrate pro Testfall
Anzahl gefundener Fehler bezogen auf die Anzahl der ausgeführten Grenzwertfälle.
- Automatisierungsgrad der Grenzwerttests
Anteil der Grenzwerttests, die automatisiert in CI/CD laufen.
Beispiele & Implementierungen
Login-Formular Passwortlänge
Testfälle für minimale und maximale Passwortlänge inklusive Off-by-One-Grenzen.
Alterseingabe für Registrierung
Prüfung von Einträgen am Mindestalter, darunter und darüber sowie ungültigen Formaten.
Pagination-Parameter in API
Tests für Page-Size und Page-Index an unteren und oberen Grenzen inklusive 0 und negativen Werten.
Implementierungsschritte
Analysiere Anforderungen und identifiziere Wertebereiche
Leite Min/Max und benachbarte Werte ab und kombiniere mit Äquivalenzklassen
Implementiere Tests, automatisiere sie und integriere in CI
⚠️ Technische Schulden & Engpässe
Tech Debt
- Unzureichende Automatisierung führt zu veralteten manuellen Fällen
- Keine klare Dokumentation der Grenzdefinitionen
- Testdatenmanagement für Grenzfälle ist veraltet
Bekannte Engpässe
Beispiele für Missbrauch
- Annahme, dass Grenzwerttests alle Randfälle abdecken
- Verwendung von BVA bei qualitativen, nicht-bereichsbasierten Daten
- Ignorieren von Nebenbedingungen und Interdependenzen
Typische Fallen
- Grenzwerte sind in unterschiedlichen Komponenten unterschiedlich definiert
- Off-by-one-Fehler bei inklusiven vs. exklusiven Grenzen
- Unklare Anforderungen führen zu falschen Testannahmen
Erforderliche Fähigkeiten
Drivers (Architectural Drivers)
Constraints
- • Benötigt definierte Min-/Max-Werte in Anforderungen
- • Einschränkungen bei nicht-diskreten oder externen Systemwerten
- • Automatisierung kann durch Testumgebung limitiert sein