No TDD (Desenvolvimento orientado a testes), os testes são escritos antes do código e guiam o desenvolvimento. Esse método garante que o software seja desenvolvido com um alto grau de confiabilidade, evitando defeitos após a implementação. Qual é um dos principais benefícios de escrever os testes antes do desenvolvimento de código no TDD?
Questão
No TDD (Desenvolvimento orientado a testes), os testes são escritos antes do código e guiam o desenvolvimento. Esse método garante que o software seja desenvolvido com um alto grau de confiabilidade, evitando defeitos após a implementação. Qual é um dos principais benefícios de escrever os testes antes do desenvolvimento de código no TDD?
Alternativas
A) Aumenta o tempo de desenvolvimento devido à necessidade de testar antes de codificar.
B) Garante que o código desenvolvido atenda perfeitamente aos requisitos do cliente.
C) Reduz a necessidade de realizar testes de integração no final do projeto.
D) Impede a criação de código desnecessário, mantendo o foco no que é realmente importante para o software.
E) Facilita a alteração do escopo do projeto sem comprometer a qualidade do código.
Explicação
No TDD, primeiro se escreve um teste que falha descrevendo um comportamento desejado. Em seguida, escreve-se apenas o código mínimo necessário para fazer o teste passar e, por fim, refatora-se mantendo os testes verdes.
Com isso, um benefício central do TDD é que ele evita implementar funcionalidades “a mais” (gold plating), pois o desenvolvimento é guiado por testes que representam necessidades/funcionalidades específicas. Se não há teste pedindo aquele comportamento, não há incentivo para criar código extra.
Analisando as alternativas:
- A) Não é um benefício; além disso, TDD pode até aumentar a disciplina inicial, mas o objetivo não é “aumentar tempo”.
- B) TDD ajuda a atender requisitos, mas não garante perfeitamente (há interpretação, requisitos incompletos, testes mal definidos etc.).
- C) TDD não elimina a necessidade de testes de integração; eles continuam importantes.
- D) Correta: força foco no necessário, evitando código desnecessário.
- E) TDD ajuda a mudar com segurança (regressão), mas “facilita alteração de escopo” não é um benefício principal nem uma garantia.
Alternativa correta: (D).