Executando verificação de segurança...
7

Teste de software: O que é TDD?

O Desenvolvimento Orientado a Testes é um processo de desenvolvimento de software que segue os seguintes passos:

  1. Escreva um teste com falha para um requisito.
  2. Implemente apenas código suficiente para fazer o teste passar.
  3. Refatore com confiança (se necessário).

TDD é como o método científico, mas para software. O método científico é como aprendemos coisas sobre o mundo.
O fator chave tanto no método científico quanto no TDD é a previsão. Usando a previsão, eliminamos a possibilidade de viés de retrospectiva. Depois que o resultado já é conhecido, as pessoas muitas vezes acreditam que poderiam ter previsto o resultado: que eles sabiam o tempo todo. No código, o viés de retrospectiva pode ter um efeito mais insidioso: seu código pode produzir a saída errada, mas você pode acreditar que é a saída correta.

O TDD nos obriga a fazer um cálculo preditivo da saída esperada porque o código que produzirá a saída real ainda não existe. Não há oportunidade para o viés de retrospectiva obscurecer nosso julgamento.

Custos de TDD:
Os usuários sem experiência em TDD podem descobrir que se movem 15% a 30% mais devagar, mas com 1 a 2 anos de prática, o processo de feedback em tempo real do TDD pode aumentar a produtividade.

E você já conhecia o TDD? O que acha desse método de desenvolvimento de software?

Carregando publicação patrocinada...
6

Eu acho TDD ótimo, só me preocupo com essa parte:

O TDD nos obriga a fazer um cálculo preditivo da saída esperada porque o código que produzirá a saída real ainda não existe. Não há oportunidade para o viés de retrospectiva obscurecer nosso julgamento.

A criatividade não necessariamente funciona assim para todo mundo e quando você tem um burst de criatividade, ela pode atropelar certas regras. Inclusive, no meu caso eu deixo atropelar total e isso sempre me trouxe resultados melhores. Vejo que muitas vezes preciso cutucar o meu cérebro por um ângulo fora do proposto pelo TDD para ele começar a se movimentar e daí sim tentar montar de volta no cavalo do TDD.

Eu imagino que tem pessoas que consigam ser puristas em seguir os 3 passos do TDD, eu não consigo e me faz mal quando analiso de forma macro tudo que acontece no desenrolar de um projeto.

Por fim, eu falo que num geral sigo TDD, mas numa visão purista eu não sigo.. eu vou e volto, sendo que as vezes eu consigo especular o resultado, as vezes não 🤝

2

Já tinha ouvido a respeito, mas desconhecia os detalhes mencionados. Artigo muito útil!

Baseado na explicação, me parece que o desempenho do desenvolvedor, no aspecto criativo, pode ficar engessado.

Na minha opinião, seria apropriado aplicar o TDD depois da etapa de criação. Mas quando a etapa de criação termina?