Questão nº 109
Questão de Tecnologia da Informação · FGV CGE-SP 2025 (nº 109)
O Test-Driven Development (TDD) é uma prática de Extreme Programming (XP) que integra o desenvolvimento com a qualidade de software, seguindo o ciclo rigoroso de Red, Green, Refactor.
Assinale a opção que indica a principal atividade realizada na fase Refactor do TDD e o seu objetivo primário em relação à qualidade do código.
- AEscrever o teste de unidade que falha; e garantir que a cobertura de testes seja 100% confiável.
- BEscrever o código de produção mínimo para o teste passar e provar que o teste é válido no domínio aplicado e no problema tratado.
- CCriar um novo feature branch no Git e isolar as alterações de forma segura e atômica.
- DReestruturar o código de produção e o código de teste sem alterar seu comportamento funcional e melhorar a legibilidade, reduzir a duplicação e otimizar o design interno. (alternativa correta)
- EIniciar a integração contínua e o deployment automático e entregar valor rapidamente ao cliente.
Resposta comentada
Gabarito Alternativa D
O Test-Driven Development (TDD) é uma abordagem de desenvolvimento onde você escreve primeiro um teste que falha (Red), depois o código mínimo para o teste passar (Green), e por fim, melhora a estrutura do código sem mudar seu comportamento (Refactor). A fase de Refactor é dedicada a limpar e otimizar o código que já funciona.
(A) Incorreta: Escrever o teste de unidade que falha é a atividade principal da fase Red do TDD, não da fase Refactor. A cobertura de testes é um resultado e uma métrica, não a atividade primária de refatoração.
(B) Incorreta: Escrever o código de produção mínimo para o teste passar é a atividade principal da fase Green do TDD, não da fase Refactor. Esta é a armadilha mais tentadora, pois descreve outra fase essencial do TDD, mas não a que foi perguntada.
(C) Incorreta: Criar um feature branch no Git é uma prática de controle de versão e gerenciamento de fluxo de trabalho, não uma atividade específica da fase Refactor do TDD.
(D) Correta: A fase Refactor no TDD consiste em reestruturar o código (tanto o de produção quanto o de teste) para melhorar sua qualidade interna – como legibilidade, design e remoção de duplicação – sem alterar seu comportamento funcional externo, que é garantido pelos testes que continuam passando.
(E) Incorreta: Iniciar a integração contínua e o deployment automático são práticas de DevOps e entrega de software, que podem ser complementares ao TDD, mas não são a atividade principal da fase Refactor.
Fonte: FGV CGE-SP 2025 Auditor Estadual de Controle - Tecnologia da Informação (Caderno Tipo 1). Reproduzida para fins de estudo.