Questão nº 38
Questão de Tecnologias da Informação · FCC SEFAZ-SC 2018 - Conhecimentos Específicos (P3) (nº 38)
O Test-Driven Development (TDD) é uma abordagem para o desenvolvimento de programas em que se intercalam testes e desenvolvimento de código. As etapas do processo fundamental de TDD são mostradas abaixo em ordem alfabética:
I. Escrever um teste para a funcionalidade identificada e implementá-lo como um teste automatizado.
II. Executar o teste, junto com os demais testes já implementados, sem implementar a nova funcionalidade no código.
III. Identificar e implementar uma outra funcionalidade, após todos os testes serem executados com sucesso.
IV. Identificar uma nova funcionalidade pequena para ser incrementada com poucas linhas em um código.
V. Implementar a nova funcionalidade no código e reexecutar o teste.
VI. Refatorar o código com melhorias incrementais até que o teste execute sem erros.
VII. Revisar a funcionalidade e o teste, caso o código execute sem falhar.
Considerando o item IV a primeira etapa e o item III a última etapa, a sequência intermediária correta das etapas do processo é:
- AI − II − VII − V e VI. (alternativa correta)
- BI − V − II − VII e VI.
- CI − VI − V − VII e II.
- DV − I − II − VII e VI.
- EV − I − VI − VII e II.
Resposta comentada
Gabarito Alternativa A
O Test-Driven Development (TDD) é uma forma de construir software onde você escreve um teste automatizado que falha antes de escrever o código que faz esse teste passar. O ciclo principal é conhecido como "Red-Green-Refactor" (Vermelho-Verde-Refatorar).
- Red (Vermelho): Escreva um teste que falhe para uma nova funcionalidade.
- Green (Verde): Escreva o mínimo de código necessário para fazer o teste passar.
- Refactor (Refatorar): Melhore o código, mantendo todos os testes passando.
(A) Correta: A sequência correta é I − II − VII − V e VI.
- IV (Início): Identificar uma nova funcionalidade pequena.
- I (Red - Escrever Teste): Escrever um teste que falhe para essa funcionalidade.
- II (Red - Executar Teste): Executar o teste para confirmar que ele falha (vermelho). Isso prova que a funcionalidade ainda não existe e que o teste está correto.
- VII (Red - Validar Falha): Revisar o teste e a funcionalidade se o teste não falhar inesperadamente. Este passo garante que temos um teste falhando antes de escrever o código de produção, essencial para o TDD.
- V (Green - Implementar Código): Implementar o código mínimo para fazer o teste passar e reexecutá-lo para confirmar que agora está verde.
- VI (Refactor - Refatorar): Melhorar a qualidade do código (refatorar) enquanto todos os testes continuam passando.
- III (Fim/Próximo): Identificar a próxima funcionalidade, reiniciando o ciclo.
(B) Incorreta: A ordem I − V − II − VII e VI está errada porque o passo V (implementar a funcionalidade) vem antes do passo II (executar o teste para ver falhar) e VII (revisar a falha). Em TDD, você deve ver o teste falhar antes de escrever o código de produção.
(C) Incorreta: A ordem I − VI − V − VII e II está errada porque o passo VI (refatorar) vem antes do passo V (implementar a funcionalidade). A refatoração só acontece depois que o teste passa (código verde).
(D) Incorreta: A ordem V − I − II − VII e VI está errada porque o passo V (implementar a funcionalidade) vem antes do passo I (escrever o teste). Isso não é TDD, pois o teste não está dirigindo o desenvolvimento.
(E) Incorreta: A ordem V − I − VI − VII e II está errada porque o passo V (implementar a funcionalidade) vem antes do passo I (escrever o teste). Isso inverte completamente a lógica do TDD.
Fonte: FCC SEFAZ-SC 2018 - Conhecimentos Específicos (P3) Tecnologia da Informação (Caderno Tipo 1). Reproduzida para fins de estudo.