Pelo que entendi, o Desenvolvimento Orientado a Testes trata de escrever testes para definir as especificações do programa (você pode me corrigir se eu estiver errado).
Se houver alguém responsável por escrever as especificações (incluindo uma API pública) para o software (vamos chamá-lo de arquiteto de software), isso significa que o arquiteto de software deve escrever todos os testes?
Ou o arquiteto de software escreve as especificações e as entrega aos desenvolvedores para que testem?
Ou você permite que as especificações cresçam organicamente, permitindo que todos os desenvolvedores escrevam seus próprios testes e se esqueçam de ter um arquiteto de software?
architecture
tdd
Robert Harvey
fonte
fonte
Respostas:
Você não escreve testes para definir a especificação, as descrições de teste, histórias de usuário e descrições de recursos são a especificação, no sentido de 'árvores mortas'.
Para revisar, o processo TDD em poucas palavras é:
quanto design, arquitetura, documentação de suporte etc. você não faz parte do TDD. Você pode ler sobre algumas das "melhores práticas" práticas, mas lembre-se de que essas são as "melhores" práticas no workshop de outra pessoa , não na sua.
observe que o ponto é o cliente e o desenvolvedor apresentar os recursos e escrever as histórias e as descrições dos testes juntos , para entendimento mútuo
então, com isso fora do caminho, a pergunta original era:
E a resposta curta é:
EDIT: A resposta longa é: o arquiteto desempenha as funções habituais de visionário / investigador / irritante / suporte / suporte durante todo o processo, conforme necessário.
EDIT 2: desculpe, eu perdi o ponto das sub-perguntas! Todos são responsáveis por escrever as especificações; todos os desenvolvedores, incluindo o arquiteto, se / quando apropriado, mais o cliente . Os desenvolvedores também codificam os testes.
fonte
O arquiteto de software não está escrevendo todos os testes. Isso seria colocar muito nos ombros de uma pessoa na minha mente.
O arquiteto de software deve ser capaz de esboçar um formulário inicial para a API, para que os desenvolvedores gravem testes e depois criem a API. No entanto, o arquiteto de software pode ter vários padrões de código que não são necessariamente testáveis, por exemplo, documentação ou convenções de nomenclatura. Há também o potencial de a API inicial estar ausente de algumas chamadas que, à medida que a implementação é concluída, novas chamadas são adicionadas à API. Portanto, haverá algum crescimento orgânico na API à medida que a base de código crescer, mas o papel do Arquiteto é fornecer diretrizes de alto nível e tentar garantir que elas sejam seguidas.
Certamente, pode haver casos em que uma equipe pode decidir não ter um arquiteto de software, mas dependendo da escala da API e da empresa envolvida, isso pode ou não ser uma boa idéia.
fonte