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
qg540688
Banca
INSTITUTO AOCP
Órgão
MPE-RS
Ano
2025
Nível
Superior
Cargo
Analista do Ministério Público - Informática
Considerando os testes de software, ao trabalhar com o TDD (Test Driven Development), é possível utilizar uma técnica que propõe a substituição do código que define as funcionalidades por implementações falsas que emulam o código real, tornando possível que os testes sejam escritos para qualquer objeto, simplificando, assim, a estrutura dos testes e evitando a poluição do código em produção com elementos de testes propriamente ditos. Qual é o nome dessa técnica?
  1. ANagios Test.
  2. BWCAG.
  3. CMock Development.
  4. DZabbix.
  5. EMock Objects.
Revelar gabarito e comentário

GabaritoE — Mock Objects.

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

Mock Objects no TDD

Gabarito: letra E. A técnica descrita no enunciado — substituir o código real por implementações falsas que emulam o comportamento, permitindo escrever testes para qualquer objeto sem poluir o código de produção — é exatamente o conceito de Mock Objects (objetos simulados). Essa é uma prática comum no TDD para isolar a unidade sob teste das suas dependências.

O TDD (Test Driven Development) é uma técnica de desenvolvimento que inverte a ordem tradicional: primeiro escreve-se o teste, depois o código mínimo para fazê-lo passar, e por fim refatora-se. O ciclo é conhecido como Red-Green-Refactor: o teste falha (vermelho), o código é escrito para passar (verde) e então é melhorado sem mudar o comportamento (refatoração).

Dentro desse contexto, surge a necessidade de testar uma unidade (classe, método) que depende de outras. Para isolar essa unidade, criam-se objetos falsos que simulam o comportamento das dependências reais. Esses objetos são chamados de Mocks (ou Mock Objects). Eles permitem que o teste se concentre apenas na lógica da unidade em questão, sem depender de bancos de dados, serviços externos ou outras classes que ainda não foram implementadas.

A grande vantagem dos mocks é justamente o que o enunciado descreve: eles emulam o código real, simplificam a estrutura dos testes e evitam a poluição do código de produção com elementos de teste. Em vez de criar uma implementação real complexa ou modificar o código de produção para facilitar o teste, o desenvolvedor cria um mock que se comporta como a dependência, mas de forma controlada e previsível.

Existem variações desses objetos falsos, como stubs, fakes e spies, cada um com um propósito específico. O mock, em particular, é um objeto que verifica se os métodos foram chamados corretamente, permitindo assertivas sobre as interações. Já o stub apenas retorna valores pré-definidos. A distinção é sutil, mas importante para provas.

A pegadinha desta questão está em confundir Mock Objects com outras ferramentas ou conceitos. As alternativas A (Nagios Test) e D (Zabbix) são ferramentas de monitoramento de infraestrutura, não de teste de software. A alternativa B (WCAG) é um conjunto de diretrizes de acessibilidade web. A alternativa C (Mock Development) não é um termo técnico consagrado; o termo correto é Mock Objects.

NÃO CAIA NESSA!

A banca tenta confundir o candidato com termos que parecem relacionados, mas não são. "Mock Development" (alternativa C) soa como uma técnica de desenvolvimento, mas não existe como termo técnico. O correto é "Mock Objects". Além disso, Nagios e Zabbix são ferramentas de monitoramento, não de teste de software. Fique atento a esses nomes que parecem plausíveis, mas não são.

1Mock
verifica interações (chamadas)
2Stub
retorna valores pré-definidos
3Fake
implementação simplificada
4Spy
registra chamadas
Objetos falsos em testes
LEVELsoulevel.com.br
Objetos falsos em testes: Mock (verifica interações (chamadas)); Stub (retorna valores pré-definidos); Fake (implementação simplificada); Spy (registra chamadas)

Alternativa A — ❌ Incorreta

Nagios Test não é uma técnica de teste de software. Nagios é uma ferramenta de monitoramento de infraestrutura de TI, usada para verificar a disponibilidade de servidores, serviços e recursos de rede. Não tem relação com a criação de objetos falsos para testes.

Alternativa B — ❌ Incorreta

WCAG (Web Content Accessibility Guidelines) são diretrizes de acessibilidade para conteúdo web, publicadas pelo W3C. Não é uma técnica de teste de software, mas sim um conjunto de recomendações para tornar sites acessíveis a pessoas com deficiência.

Alternativa C — ❌ Incorreta

Mock Development não é um termo técnico consagrado na engenharia de software. O termo correto para a técnica descrita é Mock Objects. A banca criou essa alternativa para confundir o candidato que conhece o conceito, mas não o nome exato.

Alternativa D — ❌ Incorreta

Zabbix é uma ferramenta de monitoramento de infraestrutura, similar ao Nagios. É usada para monitorar servidores, redes e aplicações, mas não tem relação com a criação de objetos falsos para testes de software.

Alternativa E — ✅ Correta ⟵ GABARITO

Mock Objects é a técnica correta. Consiste em criar objetos simulados que imitam o comportamento de objetos reais, permitindo que os testes sejam escritos de forma isolada e controlada. No TDD, os mocks são essenciais para testar unidades que dependem de outras, sem precisar implementar ou integrar essas dependências. Isso simplifica a estrutura dos testes e evita que o código de produção seja poluído com elementos de teste.

Gabarito: letra E

Link permanente: /questoes/qg540688