Questão de Engenharia de Software — Teste de Software — FCC 2015
Engenharia de Software›Teste 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)
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.
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.
Cbaseia-se em um ciclo simples: escreve-se um código -> cria-se um teste para passar no código -> refatora-se.
Dpropõe a criação de testes que validem o código como um todo para reduzir o tempo de desenvolvimento.
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.
1Escreve o teste
2Código mínimo para passar
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 teste → escreve-se o código que faz o teste passar → refatora-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.