Qual das alternativas a seguir não é uma desvantagem do Test-Driven Development (TDD)?
Questão
Qual das alternativas a seguir não é uma desvantagem do Test-Driven Development (TDD)?
Alternativas
A) O TDD pode aumentar o tempo de desenvolvimento devido à necessidade de criação de testes automatizados para cada funcionalidade.
B) A abordagem TDD garante que o código esteja funcionando corretamente desde o início, resultando em menos erros e um código mais confiável.
C) O TDD pode levar a uma ênfase excessiva na cobertura de teste e a testes mal escritos, que não detectam erros críticos.
D) O TDD pode aumentar a complexidade do código devido às validações adicionais necessárias para os testes.
E) O TDD pode exigir maior habilidade do desenvolvedor, sendo um desafio para programadores com menos experiência.
Explicação
A questão pede a alternativa que não é uma desvantagem do TDD.
- A) Pode aumentar o tempo inicial de desenvolvimento, pois é necessário escrever testes antes/para cada funcionalidade. Isso é comumente citado como desvantagem (especialmente no curto prazo).
- B) Afirma que o TDD traz benefícios: maior correção desde o início, menos erros e mais confiabilidade. Isso caracteriza uma vantagem, não uma desvantagem.
- C) É uma possível desvantagem: foco exagerado em cobertura pode gerar testes ruins (que passam, mas não capturam falhas importantes).
- D) Também pode ser visto como desvantagem em alguns contextos: necessidade de tornar o código mais testável pode introduzir camadas/abstrações e aparentar maior complexidade.
- E) É uma desvantagem plausível: TDD exige disciplina e experiência para escrever bons testes e evoluir o design corretamente.
Logo, a única que claramente não é desvantagem é a letra B.
Alternativa correta: (B).