Questão de Engenharia de Software — Teste de Software — INSTITUTO AOCP 2025
Engenharia de Software›Teste 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?
ANagios Test.
BWCAG.
CMock Development.
DZabbix.
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.
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.