Pular para o conteúdo principal

Questão de Engenharia de Software — Teste de Software — INSTITUTO AOCP 2025

Engenharia de SoftwareTeste de Software
Código
qg540906
Banca
INSTITUTO AOCP
Órgão
MPE-RS
Ano
2025
Nível
Médio
Cargo
Técnico do Ministério Público - Informática
O TDD (Test Driven Development) é uma prática de desenvolvimento de software que visa garantir que o código esteja sempre alinhado com os requisitos especificados, através da criação de testes automatizados que validam continuamente o funcionamento do sistema. A abordagem segue uma sequência de etapas específicas para promover um ciclo de desenvolvimento iterativo e eficaz. Nesse contexto, assinale a alternativa que apresenta a primeira etapa do ciclo TDD.
  1. AExecutar testes.
  2. BEscrever o código.
  3. CDesenvolver a interface.
  4. DEscrever um teste.
  5. ERefatorar o código.
Revelar gabarito e comentário

GabaritoD — Escrever um teste.

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”.

TDD (Test Driven Development): a primeira etapa do ciclo

Gabarito: letra D. No TDD, a primeira etapa do ciclo é escrever um teste que ainda vai falhar, antes de qualquer código de produção — só depois se escreve o código mínimo para fazer o teste passar e, por fim, refatora-se. Essa é a essência do Desenvolvimento Orientado a Testes, prática ligada ao XP (eXtreme Programming) e difundida por Kent Beck.

O TDD (Test Driven Development), ou Desenvolvimento Orientado a Testes, é uma técnica de desenvolvimento de software que inverte a ordem tradicional: em vez de escrever o código e depois testar, o desenvolvedor primeiro escreve o teste automatizado que define o comportamento esperado da nova funcionalidade, depois escreve o código mínimo para fazer esse teste passar e, por fim, refatora o código para melhorar sua qualidade interna sem alterar seu comportamento externo. O ciclo é conhecido como Red-Green-Refactor: no estado Red, o teste falha (porque o código ainda não existe); no Green, o teste passa (após escrever o código); no Refactor, o código é melhorado mantendo os testes verdes.

A lógica por trás dessa ordem é garantir que o teste realmente valide algo: se o teste passar antes de existir o código, ele não está testando nada. Além disso, escrever o teste primeiro força o desenvolvedor a pensar nos requisitos e no design da solução antes de implementar, alinhando o código ao que realmente é necessário. O TDD é uma prática central do XP, metodologia ágil criada por Kent Beck, e também é adotada em outras abordagens ágeis.

Na prática, o ciclo funciona assim: imagine que você precisa implementar uma função que soma dois números. No TDD, você primeiro escreve um teste que chama essa função (que ainda não existe) e verifica se o resultado é o esperado. Ao executar, o teste falha (Red). Então você escreve o código mais simples possível para fazer o teste passar (Green). Depois, você refatora o código, melhorando sua estrutura, e executa os testes novamente para garantir que nada quebrou (Refactor). Esse ciclo se repete para cada nova funcionalidade.

A pegadinha que a banca explora aqui é justamente a inversão da ordem: muitos candidatos, acostumados com o fluxo tradicional (código → teste), marcam "escrever o código" ou "executar testes" como primeira etapa. Mas no TDD, o teste vem antes do código. Guarde o ciclo: teste (falha) → código (passa) → refatoração. É exatamente essa sequência que as alternativas tentam confundir.

  1. 1Escrever teste (falha)
  2. 2Escrever código mínimo
  3. 3Refatorar código
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

Executar testes é uma etapa do ciclo, mas não é a primeira. No TDD, os testes são executados logo após serem escritos (e devem falhar), mas a escrita do teste precede a execução. A alternativa confunde a ordem: primeiro se escreve o teste, depois se executa.

Alternativa B — ❌ Incorreta

Escrever o código é a segunda etapa do ciclo TDD, não a primeira. No TDD, o código só é escrito depois que o teste (que falha) já existe, e deve ser o mínimo necessário para fazer o teste passar. A alternativa inverte a lógica central do TDD, que é "teste primeiro, código depois".

Alternativa C — ❌ Incorreta

Desenvolver a interface não é uma etapa do ciclo TDD. O TDD foca na lógica de negócio e no comportamento do sistema, não na interface do usuário. A interface pode ser desenvolvida em paralelo ou depois, mas não faz parte do ciclo Red-Green-Refactor. A alternativa foge completamente do escopo do TDD.

Alternativa D — ✅ Correta ⟵ GABARITO

Escrever um teste é a primeira etapa do ciclo TDD. O desenvolvedor escreve um teste automatizado que define o comportamento esperado da funcionalidade, antes de qualquer código de produção. Esse teste deve falhar inicialmente (Red), pois o código ainda não existe. Essa é a essência do TDD: o teste guia o desenvolvimento.

Alternativa E — ❌ Incorreta

Refatorar o código é a terceira etapa do ciclo TDD, não a primeira. Após o teste passar (Green), o código é refatorado para melhorar sua qualidade interna, mantendo o comportamento externo. A alternativa coloca a refatoração como etapa inicial, o que contraria a sequência Red-Green-Refactor.

Gabarito: letra D — a primeira etapa do ciclo TDD é escrever um teste.

Link permanente: /questoes/qg540906