So wie ich es verstehe, geht es bei Test-Driven Development darum, Tests zu schreiben, um die Programmspezifikationen zu definieren (Sie können mich korrigieren, wenn ich falsch liege).
Wenn jemand für das Schreiben der Spezifikationen (einschließlich einer öffentlichen API) für die Software verantwortlich ist (nennen wir ihn den Software-Architekten), bedeutet dies, dass der Software-Architekt alle Tests schreiben muss?
Oder schreibt der Software-Architekt die Spezifikationen und übergibt sie dann den Entwicklern, um Tests zu schreiben?
Oder lassen Sie die Spezifikationen organisch wachsen, indem Sie allen Entwicklern erlauben, ihre eigenen Tests zu schreiben, und vergessen, einen Software-Architekten zu haben?
architecture
tdd
Robert Harvey
quelle
quelle
Antworten:
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:
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:
Und die kurze Antwort lautet:
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.
quelle
Der Software-Architekt schreibt nicht alle Tests. Das würde mir zu viel auf die Schultern einer Person legen.
Der Software-Architekt sollte in der Lage sein, ein erstes Formular für die API zu skizzieren, das Entwickler dann testen und dann die API erstellen. Der Software-Architekt kann jedoch verschiedene Codestandards haben, die nicht unbedingt testbar sind, z. B. Dokumentations- oder Namenskonventionen. Es besteht auch die Möglichkeit, dass der anfänglichen API einige Aufrufe fehlen, die nach Abschluss der Implementierung der API neue Aufrufe hinzufügen. Daher wird die API mit zunehmender Codebasis organisch wachsen, aber die Rolle des Architekten besteht darin, Richtlinien auf hoher Ebene bereitzustellen und sicherzustellen, dass diese eingehalten werden.
Es kann sicherlich Fälle geben, in denen sich ein Team möglicherweise dafür entscheidet, keinen Software-Architekten zu haben. Abhängig von der Größe der API und des beteiligten Unternehmens kann dies jedoch eine gute Idee sein oder auch nicht.
quelle