Eu estava pensando em desenvolvimento de software e escrevendo testes de unidade. Eu tenho a seguinte ideia:
Vamos supor que temos pares de desenvolvedores. Cada par é responsável por uma parte do código. Um do par implementa um recurso (código de escrita) e o segundo escreve um teste de unidade para ele. Os testes são escritos após o código. Na minha ideia, eles se ajudam, mas funcionam separadamente. Idealmente, eles trabalhariam em dois recursos de tamanho semelhante e depois trocariam pela preparação do teste.
Eu acho que essa ideia tem algumas vantagens:
- testes são escritos por alguém que pode ver mais sobre a implementação,
- o trabalho deve ser feito um pouco mais rápido do que a programação em pares (dois recursos ao mesmo tempo),
- os testes e o código são responsáveis por isso,
- o código é testado por pelo menos duas pessoas e
- talvez procurar erros no código escrito por alguém que está testando seu código daria uma motivação especial para escrever um código melhor e evitar desvios.
Talvez também seja uma boa ideia adicionar outro desenvolvedor para revisão de código entre o desenvolvimento de códigos e testes.
Quais são as desvantagens dessa idéia? Já é descrito como uma metodologia desconhecida para mim e usada no desenvolvimento de software?
PS. Não sou gerente profissional de projetos, mas sei algo sobre processos de desenvolvimento de projetos e conheço as poucas metodologias mais populares - mas essa ideia não me parece familiar.
assert true
como testes e chamarem de dia porque todos os testes estavam passando. Um passo importante estava faltando: os testes deveriam falhar primeiro e deveriam passar pela alteração do código, não dos testes.