Pular para o conteúdo principal

Questão de Engenharia de Software — Teste de Software — FGV 2025

Engenharia de SoftwareTeste de Software
Código
fg105418
Banca
FGV
Órgão
AL-AM
Ano
2025
Nível
Superior
Cargo
Analista Legislativo - Programador
Em um teste unitário para o método GerarProtocolo(Doc doc), o Analista de Programação precisa garantir que a lógica de negócio do método funcione corretamente. No entanto, o método GerarProtocolo depende da classe PersistenciaBD, que acessa o banco de dados.O objetivo do uso de objetos Mock ou Stub para substituir a classe PersistenciaBD durante o teste unitário é:
  1. ATestar a conexão real entre a aplicação e o banco de dados.
  2. BGarantir o Isolamento da unidade de código em teste, eliminando dependências externas e não-determinísticas
  3. CMedir o tempo de execução da query SQL para identificar gargalos de performance.
  4. DAutomatizar o preenchimento de formulários no frontend.
  5. EValidar o contrato da API REST que o sistema consome.
Revelar gabarito e comentário

GabaritoB — Garantir o Isolamento da unidade de código em teste, eliminando dependências externas e não-determinísticas

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

Teste unitário e uso de mocks/stubs

Gabarito: letra B. O objetivo do uso de objetos Mock ou Stub em teste unitário é garantir o isolamento da unidade de código em teste, eliminando dependências externas (como banco de dados) e não-determinísticas, permitindo que a lógica de negócio seja testada de forma controlada e repetível.

O conteúdo de apoio reforça que "os testes de unidade ou testes unitários focalizam cada componente individualmente, garantindo que ele funcione adequadamente como uma unidade" e que "enfoca a lógica interna de processamento e as estruturas de dados dentro dos limites de um componente". O uso de mocks/stubs substitui dependências reais (como a classe PersistenciaBD) para que o teste não dependa de fatores externos (banco de dados, rede, etc.), tornando-o rápido e determinístico.

Alternativa A — ❌ Incorreta

Testar a conexão real com o banco de dados é objetivo de teste de integração, não de teste unitário. No teste unitário, a conexão real deve ser substituída por um mock/stub para isolar a unidade.

Alternativa B — ✅ Correta ⟵ GABARITO

Exatamente como descrito: eliminar dependências externas e não-determinísticas garante que o teste da unidade seja confiável e independente de ambiente. É o princípio fundamental do uso de mocks e stubs.

Alternativa C — ❌ Incorreta

Medir tempo de execução de query SQL é objetivo de teste de performance, não de teste unitário. O mock não avalia performance, apenas simula o comportamento da dependência.

Alternativa D — ❌ Incorreta

Automatizar preenchimento de formulários no frontend é tarefa de teste de interface (UI testing), não de teste unitário de backend.

Alternativa E — ❌ Incorreta

Validar contrato de API REST é objetivo de teste de contrato (como testes de integração ou consumer-driven contracts), não de teste unitário. O mock pode ser usado para simular a API, mas o foco não é validar o contrato.

NÃO CAIA NESSA!

A banca pode tentar confundir o candidato com opções que parecem relacionadas a testes (como validar API ou testar conexão), mas que são de integração, não de unidade. Lembre-se: o mock isola a unidade; a dependência real só aparece no teste de integração.

Gabarito: letra B.

Link permanente: /questoes/fg105418