O desenvolvimento dirigido por testes (TDD) é uma prática que visa melhorar a qualidade do código e a confiabilidade do sistema através da escrita de testes antes da implementação das funcionalidades. Além dos benefícios diretos como melhor cobertura de código e documentação automática, o TDD facilita a detecção precoce de defeitos e simplifica a depuração. Considerando essas vantagens e o conceito do TDD, é correto apontar que um dos benefícios adicionais do TDD é de que:
Questão
O desenvolvimento dirigido por testes (TDD) é uma prática que visa melhorar a qualidade do código e a confiabilidade do sistema através da escrita de testes antes da implementação das funcionalidades. Além dos benefícios diretos como melhor cobertura de código e documentação automática, o TDD facilita a detecção precoce de defeitos e simplifica a depuração. Considerando essas vantagens e o conceito do TDD, é correto apontar que um dos benefícios adicionais do TDD é de que:
Alternativas
A) a execução de testes de regressão é eliminada, visto que o TDD garante que todas as alterações no código estejam sempre corretas e livres de erros.
B) a documentação do sistema se torna desnecessária, pois o código é autoexplicativo e não necessita de documentação adicional.
C) a tempo de desenvolvimento é reduzido significativamente, pois o TDD automatiza todos os processos de codificação e testes, eliminando a necessidade de revisões manuais.
D) a depuração se torna mais simples, pois o código recentemente escrito será verificado e modificado, facilitando a localização e correção de problemas.
E) a complexidade do design do sistema é aumentada, visto que o TDD exige a escrita de testes detalhados que cobrem todos os possíveis cenários de uso.
Explicação
No TDD (Test-Driven Development), o ciclo clássico é escrever um teste que falha, implementar o mínimo para passar e refatorar (red-green-refactor). Como os testes são executados com alta frequência e cada pequena mudança no código é imediatamente verificada, quando surge um defeito fica mais fácil:
- Identificar em que mudança o erro apareceu (pois as alterações são incrementais);
- Reproduzir o problema rapidamente (o teste falhando serve como evidência objetiva);
- Isolar a causa (o escopo do código modificado é pequeno e recém-escrito);
- Corrigir e validar a correção (rodando novamente o conjunto de testes).
Analisando as alternativas:
- A é falsa: TDD não elimina testes de regressão; na prática, ele fortalece a regressão automatizada (os testes viram uma suíte de regressão).
- B é falsa: TDD ajuda a documentar comportamento via testes, mas não torna desnecessária toda documentação.
- C é falsa: TDD não “automatiza todos os processos”; pode até aumentar o tempo no curto prazo e reduzir retrabalho depois, mas não garante redução “significativa” sempre.
- D é verdadeira: a depuração tende a ficar mais simples pela detecção precoce e pelo feedback rápido a cada pequena alteração.
- E é falsa: em geral, TDD tende a melhorar o design (mais modular e testável), não a aumentar a complexidade por si.
Alternativa correta: (D).
Travou em outra questão? A gente resolve.
Crie sua conta grátis e resolva 3 questões por dia com explicação passo a passo, por texto ou foto.