Você foi contratado para liderar uma equipe de DevOps. Um dos objetivos da sua liderança é aumentar a velocidade das entregas e a qualidade de novos recursos das aplicações utilizando o desenvolvimento orientado a testes. Assinale a opção que indica a ordem que descreve corretamente o ciclo de desenvolvimento orientado a testes.
- A)Refatorar - > Escrever um código funcional
Errada, porque refatorar não vem antes da implementação nem substitui a escrita do teste no ciclo de TDD.
- B)Escrever um caso de teste -> Refatorar
Errada, porque falta a etapa de escrever o código funcional antes da refatoração.
- C)Refatorar - > Escrever um código funcional - > Escrever um caso de teste
Errada, porque começa pela refatoração, o que contraria completamente o ciclo de TDD.
- D)Escrever um caso de teste -> Escrever um código funcional -> Refatorar
Certa, pois segue a sequência clássica do TDD: teste, código funcional e refatoração.
- E)Escrever um código funcional -> Escrever um caso de teste -> Refatorar
Errada, porque coloca a implementação antes do teste, invertendo a lógica do desenvolvimento orientado a testes.
Gabarito: D
No desenvolvimento orientado a testes, a lógica é quase um ritual de três passos: primeiro você escreve um caso de teste para definir o comportamento esperado, depois escreve o código suficiente para fazer esse teste passar, e por fim refatora para melhorar a estrutura sem quebrar o que já funciona. É o famoso ciclo Red-Green-Refactor: o teste falha primeiro, depois fica verde, e só então vem a limpeza do código. A graça do método é justamente obrigar você a pensar antes de codar e a validar cada pequena evolução com testes automatizados. Isso aumenta a qualidade e reduz retrabalho, o que combina muito com ambiente DevOps e entrega contínua. Por isso o gabarito D está correto: ele traz exatamente a sequência do TDD, começando por escrever um caso de teste, passando pela implementação do código funcional e encerrando com a refatoração. Se a ordem embaralha esses passos, já saiu da trilha do TDD. Em doutrina de engenharia de software, o TDD é descrito assim mesmo: teste primeiro, implementação mínima depois, refatoração por último. A banca costuma cobrar essa ordem clássica, sem invenção de moda.