Bei meinen Recherchen im Rahmen meiner Masterarbeit zum Thema “Test Driven Development als Maßnahme zur Qualitätssicherung bei der Softwareentwicklung” habe ich versucht, herauszufinden, welche Eigenschaften “gute” Unit-Tests aufweisen sollten. Herausgekommen ist die folgende Liste aus acht Eigenschaften, für die ich leider auch nach mehreren Versuchen mit unterschiedlichen Wörtern kein leicht zu merkendes Akronym finden konnte:
- korrekt: Die Test müssen in sich fehlerfrei sein und zu den Anforderungen passen.
- schnell: Die Tests müssen schnell laufen, um häufig durchgeführt werden zu können.
- abgeschlossen: Die Tests müssen ein klares Ergebnis liefern und dürfen keine Interpretation benötigen.
- isoliert: Die Tests müssen unabhängig von anderen Tests durchführbar sein und dürfen andere Tests nicht beeinflussen.
- sprechend: Die Tests sollten ihre Absicht durch sprechende Benennung kundtun (wie etwa beim BDD).
- wartbar: Die Tests sollten den Regeln für sauberen Code folgen und sich leicht an den veränderten Produktivcode anpassen lassen.
- begrenzt: Die Tests sollten jeweils nur einen kleinen Bereich des Testobjekts prüfen (und nicht etwa mehrere Methoden gleichzeitig).
- einfach durchführbar: Die Tests müssen so einfach wie möglich (am besten auf Knopfdruck) durch einen beliebigen Entwickler durchführbar sein.
Wer hat noch mehr zu bieten?
Quellen
- Roy Osherove: The Art of Unit Testing. Manning Publications, 2008.
- Michael Feathers: A Set of Unit Testing Rules. 2005.
- Kent Beck: Test-Driven Development: by Example. Addison-Wesley, 2003.
- Klaus Meffert: JUnit Profi-Tipps. Entwickler.Press, 2006.
- David Astels: Test Driven Development: A Practical Guide. Prentice Hall International, 2003.
- Robert C. Martin: Clean Code: A Handbook of Agile Software Craftsmanship. Prentice Hall PTR, 2008.
- Arie van Deursen et.al.: Refactoring Test Code. Proceedings of the 2nd International Conference on Extreme Programming and Flexible Processes in Software Engineering, 2001.



