Questão nº 38

Questão de Tecnologias da Informação · FCC SEFAZ-SC 2018 - Conhecimentos Específicos (P3) (nº 38)

FCC2018Tecnologia da InformaçãoTecnologias da Informação
Gabarito: Aver comentário ↓

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 é:

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.

  1. IV (Início): Identificar uma nova funcionalidade pequena.
  2. I (Red - Escrever Teste): Escrever um teste que falhe para essa funcionalidade.
  3. 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.
  4. 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.
  5. 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.
  6. VI (Refactor - Refatorar): Melhorar a qualidade do código (refatorar) enquanto todos os testes continuam passando.
  7. 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.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho