Dass Software vor der Inbetriebnahme ausgiebig getestet werden sollte, ist unumstritten. Die Frage, ob die Entwickler*innen sie auch testgetrieben anfertigen sollten (Test-driven development, TDD), löst hingegen oft kontroverse Diskussionen aus. Selbst Befürworter haben ihre Schwierigkeiten damit.
Nicht wenige machen die Erfahrung, dass Testcode mit der Zeit degeneriert, unleserlich wird und schwer zu pflegen ist. Im schlimmsten Fall schaltet man die Tests einfach ab und erledigt die Entwicklung wieder auf die klassische Art. Es gibt aber Entwickler*innen, die testgetriebene Softwareentwicklung erfolgreich einsetzen. Dieser Vortrag soll zeigen, was diese Gruppe anders macht. Es wird ein in der Praxis erprobtes Vorgehen der testgetriebenen Softwareentwicklung vorgestellt, das die genannten Probleme zu lösen hilft und es ermöglicht, ohne großen Aufwand gut lesbare, pflegbare und robuste Tests zu schreiben. Es wird ein Überblick über die Techniken gegeben, die für testgetriebene Entwicklung essentiell sind: Gute Testframeworks, Akzeptanztests, Test-DSLs, Test-Data-Factories, Backdoors und Continuous Integration.
Ein weiterer Aspekt des Vortrags sind die Auswirkungen, die TDD auf die Entwicklungsgeschwindigkeit und die Softwarearchitektur hat.
Agenda
- Was ist Softwarequalität?
- Welche Vorteile bringt TDD?
- Wie schreibt man Tests?
- Was ist ein Akzeptanztest?
- Was ist ein Walking Skeleton?
- Wie sieht eine Test-DSL aus?
- Wie erzeugt man Testdaten?
- Wie macht man Tests lesbar?
- Wie macht man Tests robust?
Zielgruppe
Software-Entwickler*innen, Projektmanagement
Voraussetzungen
Grundkenntnisse der Software-Entwicklung und im automatisierten Testen