Ich lese Refactoring von Martin Fowler noch einmal. In Kapitel 4, Gebäudetests, bin ich auf die folgende Passage gestoßen.
Tatsächlich ist es am nützlichsten, Tests zu schreiben, bevor Sie mit dem Programmieren beginnen. Wenn Sie eine Funktion hinzufügen müssen, schreiben Sie zunächst den Test. Das ist nicht so rückwärts, wie es sich anhört. Wenn Sie den Test schreiben, fragen Sie sich, was zu tun ist, um die Funktion hinzuzufügen. Das Schreiben des Tests konzentriert sich auch auf die Schnittstelle und nicht auf die Implementierung (immer eine gute Sache). Dies bedeutet auch, dass Sie einen klaren Punkt haben, an dem Sie mit dem Codieren fertig sind - wenn der Test funktioniert.
Obwohl ich jetzt ein Verfechter der testgetriebenen Entwicklung bin, konnte ich mich nicht erinnern, dass ich in das Konzept eingeführt worden war, als ich dieses Buch vor fast 5 Jahren ursprünglich gelesen hatte.
Laut Amazon.com wurde dieses Buch ursprünglich am 8. Juli 1999 veröffentlicht. Ist dies der erste veröffentlichte Verweis auf Test-First-Programmierung oder gibt es etwas noch früher?
Antworten:
Testgetriebene Entwicklung ähnelt Design by Contract, bei dem Sie Vorbedingungen, Invarianten und Nachbedingungen haben.
Formale Methoden stammen aus mindestens 1983 und wurden für sicherheitskritische Systeme wie die fahrerlose Pariser U-Bahn nach der B-Methode verwendet:
Dies könnten einige der Dinge sein, von denen Kent Beck "Pionierarbeit geleistet hat ... die Wiederentdeckung der Test-First-Programmierung".
Mehr auf den Punkt gebracht: Anscheinend war Nasas Projekt Mercury aus den frühen 1960er Jahren das erste Softwareprojekt, das testgetriebene Entwicklung und andere agile Praktiken verwendete. Ich konnte keine frühe Dokumentation finden, aber hier ist ein Bericht aus dem Jahr 2003 , in dem die Kommunikation der Projektmitglieder zitiert wird:
Der Rest des Berichts ist ebenfalls interessant, heißt es weiter:
Zusätzlich zu den automatisierten Tests befürwortet der Bericht von 1968 die parallele Codierung und das Testen, wenn nicht das erste Testen:
quelle
Jon Bently in Programming Pearls (ursprünglich 1986 veröffentlicht) erwähnt die Test-First-Programmierung nicht ausdrücklich. Im Kapitel "Schreiben korrekter Programme" beschreibt er das Schreiben eines Algorithmus, indem er zuerst die Vorbedingungen, Invarianten und Nachbedingungen definiert, und im nächsten Kapitel beschreibt er ein automatisiertes Testframework.
Es ist nicht ganz der erste Test, aber er hat definitiv einige Grundlagen geschaffen.
Ebenfalls,
CIO Magazine, März 1993, Bug Busters , von Lucie Juneau, S. 84 :
quelle
Das war Kent Beck in seinem Buch Extreme Programming , das ebenfalls 1999 veröffentlicht wurde .
quelle