Testbarkeit
Testbarkeit ist der Grad, zu dem ein Software-Artefakt (ein Software-System, ein Software-Modul, ein Anforderungs- oder Entwicklungsdokument) den Test in einem gegebenen Testkontext unterstützt.
Testbarkeit ist keine intrinsische Eigenschaft von Software-Artefakten und kann nicht direkt (wie z.B. der Software-Umfang) gemessen werden. Stattdessen ist Testbarkeit eine extrinsische Eigenschaft, die sich aus der Wechselwirkung der Software und den Testzielen, Test-Ressourcen und eingesetzten Testverfahren (d.h. dem Testkontext) ergibt.
Je geringer die Testbarkeit ist, desto höher ist der Testaufwand. Im Extremfall ist bei schlechter Testbarkeit der Test von Teilen der Software-Anforderungen gar nicht möglich.
Hintergrund
Der Aufwand und die Effektivität eines Software-Tests hängt u.a. von den folgenden Faktoren ab:
- Eigenschaften der Software-Anforderungen
- Eigenschaften der Software (z.B. Umfang, Komplexität und Testbarkeit)
- Eigenschaften der eingesetzten Testmethoden
- Eigenschaften des Entwicklungs- und Testprozesses
- Qualifikation und Motivation der am Test beteiligten Personen
Testbarkeit von Software
Die Testbarkeit von Software wird u.a. durch folgende Faktoren bestimmt:
- Kontrollierbarkeit: Das Testobjekt kann in den für den Test erforderlichen Zustand gebracht werden.
- Beobachtbarkeit: Das Testergebnis kann beobachtet werden.
- Isolierbarkeit: Das Testobjekt kann isoliert getestet werden.
- Trennung der Verantwortlichkeit: Das Testobjekt hat eine wohldefinierte Verantwortlichkeit.
- Verständlichkeit: Das Testobjekt ist selbsterklärend bzw. gut dokumentiert.
- Automatisierbarkeit: Die Tests lassen sich automatisieren.
- Heterogenität: Unterschiedliche Technologien erfordern den gleichzeitigen Einsatz von unterschiedlichen Testverfahren und -Werkzeugen.
Die Testbarkeit der Software wird verbessert durch:
- Testgetriebene Entwicklung
- Entwurf für Testbarkeit
Testbarkeit von Anforderungen
Anforderungen sind testbar, wenn sie folgende Kriterien erfüllen:
- konsistent
- vollständig
- eindeutig: Die Anforderung kann nicht unterschiedlich interpretiert werden.
- quantitativ formuliert: Eine Anforderung wie "schnelle Antwortzeit" kann nicht verifiziert werden.
- praktisch verifizierbar: Der Test ist nicht nur theoretisch möglich, sondern auch mit begrenztem Aufwand in der betrieblichen Praxis durchführbar.
Weblinks
- www.testbarkeit.de Website mit Hinweisen und Literatur zum Thema Software-Testbarkeit
Literatur
- Stefan Jungmayr: Improving testability of object-oriented systems, ISBN 3-89825-781-9
- Johannes Link: Softwaretests mit JUnit - Techniken der testgetriebenen Entwicklung, ISBN 3-89864-325-5
- Frank Westphal: Testgetriebene Entwicklung mit JUnit und FIT, ISBN 3-89864-220-8