Testgetriebene Entwicklung
ist eine bewährte Methodik, um bessere Software schneller zu entwickeln. Das Schreiben von automatisierten Tests und das Schreiben von Code sowie die Verbesserung des Softwaredesigns durch Refactoring sind hierbei eng miteinander verzahnt.
Der Red-Green-Refactor-Zyklus beginnt mit dem Schreiben eines fehlschlagenden Tests. Dann wird genau soviel Code geschrieben, damit der neue Test nicht mehr fehlschlägt. Schließlich kann die Struktur des Codes verbessert werden.
Testgetriebene Entwicklung reduziert das Risiko, unnötigen Code zu schreiben. Auch gibt es keinen Code, der nicht durch mindestens einen Test abgedeckt ist. Änderungen am Produktionscode können so nicht zu unerwarteten Nebeneffekten führen. Schließlich wird sichergestellt, dass der geschriebene Code auch für Menschen verständlich ist und nicht nur für den Computer.
Die Hauptaufgabe von Softwareentwicklung ist nicht das Schreiben von Code, sondern das Verstehen von Problemen. Das Aufschreiben von Zielvorgaben als automatisierte Tests , hilft, ein Problem Schritt für Schritt zu durchdringen. Die Tests treiben die Entwicklung also nicht als Selbstzweck, sondern tun dies, indem sie die notwendigen Denkprozesse anstoßen.