Bei der testgetriebenen Entwicklung geht es darum, Tests zu schreiben, um die Programmspezifikationen zu definieren
Sie schreiben keine Tests, um die Spezifikation zu definieren. Die Testbeschreibungen, User Stories und Funktionsbeschreibungen sind die Spezifikation im Sinne von "toten Bäumen".
Zur Überprüfung ist der TDD-Prozess auf den Punkt gebracht:
- Definieren Sie ein Projekt in Bezug auf Funktionen
- Beschreiben Sie die Stakeholder, das Verhalten und das Ziel der einzelnen Funktionen mithilfe von User Stories
- Geben Sie die erwarteten Vorgaben an, die Ereignisse / Bedingungen und Verhaltensweisen / Ergebnisse auslösen, die mit einer User Story verbunden sind, indem Sie Testbeschreibungen verwenden [und dies vervollständigt die 'Spezifikation'].
- Wählen Sie für jede Iteration eine Reihe von Funktionen aus. Iterationen sollten kurz sein [ich lasse die Planungs- und Schätzungsschritte der Kürze halber weg]
- Codieren Sie einen Test für eine Funktion (er schlägt fehl, aber Sie mussten API-Entscheidungen treffen, um den Test zu codieren.)
- Implementieren Sie genug von der Funktion, damit der Test erfolgreich ist
- Refactor den Code, falls erforderlich
- Wiederholen Sie diesen Vorgang mit dem nächsten Test, bis die Funktion abgeschlossen ist
- Wiederholen Sie diesen Vorgang mit der nächsten Funktion, bis die Iteration abgeschlossen ist
- Wiederholen Sie diesen Vorgang mit der nächsten Iteration, bis das Projekt abgeschlossen ist
Wie viel Design, Architektur, unterstützende Dokumentation usw. Sie auswählen, ist nicht Teil von TDD. Es gibt einige praktische „Best Practices“, über die Sie lesen können. Beachten Sie jedoch, dass dies die „Best Practices“ in der Werkstatt eines anderen sind , nicht in Ihrer.
Beachten Sie, dass es für den Kunden und den Entwickler wichtig ist, die Funktionen zu entwickeln und die Geschichten und Testbeschreibungen zum gegenseitigen Verständnis zusammen zu schreiben
Nachdem dies aus dem Weg war, lautete die ursprüngliche Frage:
Welche Rolle spielt ein Softwarearchitekt bei TDD?
Und die kurze Antwort lautet:
So wie es immer war, so wie es immer war. - David Byrne
EDIT: Die lange Antwort lautet: Der Architekt spielt bei Bedarf während des gesamten Prozesses die üblichen Rollen des Visionärs / Ermittlers / Irritanten / Unterstützers / Rückstopps.
EDIT 2: Entschuldigung, ich habe den Punkt der Unterfragen verpasst! Jeder ist dafür verantwortlich, die Spezifikationen zu schreiben. Alle Entwickler, gegebenenfalls einschließlich des Architekten, sowie des Kunden . Die Entwickler auch codieren die Tests.