Según tengo entendido, Test-Driven Development se trata de escribir pruebas para definir las especificaciones del programa (puede corregirme si me equivoco).
Si hay alguien responsable de escribir las especificaciones (incluida una API pública) para el software (llamémoslo el Arquitecto de software), ¿eso significa que el Arquitecto de software debe escribir todas las pruebas?
¿O el Arquitecto de software escribe las especificaciones y luego las entrega a los desarrolladores para que escriban las pruebas?
¿O permite que las especificaciones crezcan orgánicamente al permitir que todos los desarrolladores escriban sus propias pruebas y se olviden de tener un Arquitecto de software?
architecture
tdd
Robert Harvey
fuente
fuente
Respuestas:
No escribe pruebas para definir la especificación, las descripciones de las pruebas, las historias de los usuarios y las descripciones de características son la especificación, en el sentido de 'árboles muertos'.
Para revisar, el proceso de TDD en pocas palabras es:
la cantidad de diseño, arquitectura, documentación de respaldo, etc., que elija hacer no forma parte de TDD. Hay algunas 'mejores prácticas' prácticas sobre las que puede leer, pero tenga en cuenta que esas son las 'mejores' prácticas en el taller de otra persona , no en las suyas.
tenga en cuenta que el punto es que el cliente y el desarrollador presenten las características y escriban las historias y las descripciones de las pruebas juntas , para un entendimiento mutuo
entonces, con eso fuera del camino, la pregunta original fue:
Y la respuesta corta es:
EDITAR: La respuesta larga es: el arquitecto desempeña los roles habituales de visionario / investigador / irritante / apoyo / respaldo durante todo el proceso, según sea necesario.
EDIT 2: lo siento, perdí el punto de las subpreguntas! Todos son responsables de escribir las especificaciones; todos los desarrolladores, incluido el arquitecto, si corresponde, más el cliente . Los desarrolladores también codifican las pruebas.
fuente
El arquitecto de software no está escribiendo todas las pruebas. Eso sería poner demasiado sobre los hombros de una persona en mi mente.
El Arquitecto de software debería poder esbozar un formulario inicial para la API para que los desarrolladores escriban pruebas para eso y luego creen la API. Sin embargo, el Arquitecto de software puede tener varios estándares de código que no son necesariamente verificables, por ejemplo, documentación o convenciones de nomenclatura. También existe la posibilidad de que la API inicial pierda algunas llamadas que, a medida que se realiza una implementación, se agregan nuevas llamadas a la API. Por lo tanto, habrá un crecimiento orgánico en la API a medida que crezca la base del código, pero el papel del Arquitecto es proporcionar pautas de alto nivel e intentar asegurarse de que se sigan.
Ciertamente, puede haber casos en los que un equipo puede decidir no tener un Arquitecto de software, pero dependiendo de la escala de la API y la compañía involucrada, esto puede o no ser una buena idea.
fuente