Pular para o conteúdo principal

Questão de Engenharia de Software — Teste de Software — FCC 2015

Engenharia de SoftwareTeste de Software
Código
fc023338
Banca
FCC
Órgão
TRE-AP
Ano
2015
Nível
Superior
Cargo
Analista Judiciário - Análise de Sistemas
O TDD − Test Driven Development (Desenvolvimento orientado a teste)
  1. Aé parte das metodologias ágeis UP − Unified Process e XP − Extreme Programming, tendo sido criado para ser usado em metodologias que respeitam os 4 princípios do Manifesto Ágil.
  2. Btransforma o desenvolvimento, pois deve-se primeiro implementar o sistema antes de escrever os testes. Os testes são utilizados para facilitar no entendimento do projeto e para clarear o que se deseja em relação ao código.
  3. Cbaseia-se em um ciclo simples: escreve-se um código -> cria-se um teste para passar no código -> refatora-se.
  4. Dpropõe a criação de testes que validem o código como um todo para reduzir o tempo de desenvolvimento.
  5. Ebeneficia-se de testes que seguem o modelo FIRST: F (Fast) I (Isolated) R (Repeatable) S (Self-verifying) T (Timely).
Revelar gabarito e comentário

GabaritoE — beneficia-se de testes que seguem o modelo FIRST: F (Fast) I (Isolated) R (Repeatable) S (Self-verifying) T (Timely).

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Test Driven Development (TDD)

Gabarito: letra E. O TDD é uma prática de desenvolvimento onde se escreve primeiro o teste automatizado, depois o código mínimo para passar no teste e, em seguida, refatora-se. O modelo FIRST (Fast, Isolated, Repeatable, Self-verifying, Timely) descreve as características de bons testes unitários, sendo exatamente a alternativa que a FCC considerou correta.

A questão exige conhecimento do ciclo básico do TDD e do acrônimo FIRST, bastante cobrado em provas de engenharia de software.

  1. 1Escreve o teste
  2. 2Código mínimo para passar
  3. 3Refatora
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

Afirma que o TDD faz parte das metodologias ágeis UP (Unified Process) e XP. Embora o TDD seja fortemente associado ao XP, ele não faz parte do UP, que é um processo unificado e não uma metodologia ágil como as que seguem o Manifesto Ágil. UP não é considerado um método ágil no mesmo sentido.

Alternativa B — ❌ Incorreta

Diz que “deve-se primeiro implementar o sistema antes de escrever os testes”. Isso é o oposto do TDD. No TDD, os testes são escritos antes do código de produção. A descrição dada corresponde ao desenvolvimento tradicional (testes após codificação).

Alternativa C — ❌ Incorreta

Apresenta o ciclo como “escreve-se um código -> cria-se um teste para passar no código -> refatora-se”. A ordem correta no TDD é: escreve-se o testeescreve-se o código que faz o teste passarrefatora-se. A alternativa inverte as duas primeiras etapas.

Alternativa D — ❌ Incorreta

Propõe “criação de testes que validem o código como um todo para reduzir o tempo de desenvolvimento”. O TDD trabalha com testes pequenos e incrementais, não com validação do sistema como um todo de uma só vez. Essa descrição se aproxima mais de testes de sistema ou de aceitação, não do TDD.

Alternativa E — ✅ Correta ⟵ GABARITO

Afirma que o TDD se beneficia de testes que seguem o modelo FIRST: F (Fast), I (Isolated), R (Repeatable), S (Self-verifying), T (Timely). Esse é exatamente o acrônimo consagrado na literatura de TDD (segundo Robert C. Martin e outros autores) para descrever as características desejáveis de testes unitários. Portanto, correta.

PEGA ESSA DICA!

Memorize o acrônimo FIRST e lembre-se de que no TDD o teste é escrito antes do código. Nas questões de FCC, é comum inverter a ordem para confundir. O ciclo correto é: Teste → Código → Refatoração.

Gabarito: letra E

Link permanente: /questoes/fc023338