19. Testautomatisierung und testgetriebene Entwicklung

Themen
Grundüberlegungen zur Testautomatisierung
Grundregeln testgetriebener Entwicklung
Auswirkungen testgetriebener Entwicklung
Wichtige Aspekte von Tests
Folien
PDF


Zentrale Aspekte

Weiterführende Literatur

Eine kommentierte und handverlesene Liste mit weiterführender Literatur zum Thema. Die Auswahl ist zwangsläufig subjektiv.

Testautomatisierung ist ein vergleichsweise altes Thema und als solches unabhängig vom verwendeten Programmierparadigma. Gute allgemeine Hinweise finden sich in Kapitel 6 in [Kernighan, 1999Kernighan, Brian W.; Pike, Rob (1999): The Practice of Programming, Addison Wesley, Boston]. Auch Whittaker [Whittaker, 2000Whittaker, James A. (2000): What is software testing? And why is it so hard?, IEEE Software 17:70-79] diskutiert Testautomatisierung in einem breiteren Kontext. Hunt und Thomas [Hunt, 1999Hunt, Andrew; Thomas, David (1999): The Pragmatic Programmer, Addison-Wesley, Boston] (Abschnitt 43) führen die Bedeutung der Automatisierung von Tests sehr deutlich vor Augen.

Eine sehr lesbare Einführung mit dem Fokus auf Programmierung in der Wissenschaft, Python und ein einfach nutzbares Test-Framework findet sich in Kapitel 18 von [Scopatz, 2015Scopatz, Anthony; Huff, Kathryn D. (2015): Effective Computation in Physics, O'Reilly, Sebastopol].

Das vielleicht einflussreichste Buch über testgetriebene Entwicklung ist Kent Becks flammendes Plädoyer inklusive praktischer Beispiele [Beck, 2003Beck, Kent (2003): Test-Driven Development By Example, Addison-Wesley, Boston]. Aber auch Robert C. Martin betont dessen Bedeutung immer wieder, u.a. in [Martin, 2008Martin, Robert C. (2008): Clean Code. A Handbook of Agile Software Craftmanship, Prentice Hall, Upper Saddle River, New Jersey] (Kapitel 9) und [Martin, 2003Martin, Robert C. (2003): Agile Software Development. Principles, Patterns, and Practices, Prentice Hall, Upper Saddle River, New Jersey] (Kapitel 4). Eine sehr kurz gefasste, lesbare und ausgewogene Beschreibung ist [Martin, 2007Martin, Robert C. (2007): Professionalism and test-driven development, IEEE Software 24:32-36].

Die Qualität des Testcodes ist mindestens genauso wichtig wie die von Produktivcode. Allerdings gelten für Testcode zumindest teilweise unterschiedliche Kriterien. Eine gute und eher kurze Einführung in die Kunst, gute Unittests zu schreiben, ist [Osherove, 2014Osherove, Roy (2014): The Art of Unit Testing, Manning, Shelter Island]. Sehr viel ausführlicher ist [Meszaros, 2007Meszaros, Gerard (2007): xUnit Test Patterns, Addison-Wesley, Boston].