Questão de Programação — Linguagens de programação — Avança SP 2025
Programação›Linguagens de programação
Código
qg425165
Banca
Avança SP
Órgão
UNITAU
Ano
2025
Nível
Superior
Cargo
Programador Pleno
Analise o seguinte teste unitário em Jest:Com base no código apresentado, qual princípio de teste unitário está sendo aplicado?
ATeste de casos limite (boundary testing)
BTeste de caminho feliz (happy path)
CTeste de integração
DTeste de regressão
ETeste de unidade
Revelar gabarito e comentário▾
GabaritoA — Teste de casos limite (boundary testing)
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 de casos limite (boundary testing) em Jest
Gabarito: letra A. O teste unitário apresentado aplica o princípio de teste de casos limite (boundary testing), pois verifica o comportamento da função nos valores extremos do domínio de entrada — exatamente onde os defeitos costumam se esconder. As demais alternativas descrevem outros tipos ou níveis de teste que não correspondem à técnica evidenciada no código.
O teste de casos limite, também chamado de boundary value analysis ou teste de fronteira, é uma técnica de teste de software que se concentra em testar os valores que estão nas bordas do domínio de entrada de uma função. A lógica por trás dessa técnica é que os erros de programação frequentemente ocorrem nos limites — por exemplo, em uma função que aceita números de 1 a 100, os valores 1, 100, 0, 101 e 50 (valor central) são os mais prováveis de revelar defeitos. Isso acontece porque os programadores tendem a cometer erros de off-by-one (erro de deslocamento de um) em comparações como < em vez de <=, ou ao definir intervalos abertos ou fechados.
No contexto do Jest, um framework de testes para JavaScript, o teste de casos limite é implementado criando casos de teste que passam valores nos extremos do intervalo esperado. Por exemplo, se uma função calcularDesconto(valor) deve aceitar valores entre 0 e 1000, um teste de fronteira verificaria o comportamento com 0, 1000, -1, 1001 e talvez 500. O objetivo é garantir que a função se comporte corretamente não apenas com valores "normais", mas também nos pontos críticos onde a lógica de validação ou de cálculo pode falhar.
A distinção entre os conceitos é crucial para responder corretamente. O happy path (caminho feliz) testa o fluxo principal de execução com entradas válidas e esperadas, sem se preocupar com casos extremos. O teste de integração verifica a interação entre diferentes módulos ou componentes do sistema. O teste de regressão garante que alterações no código não introduziram novos defeitos em funcionalidades já existentes. E o teste de unidade é o nível de teste que verifica o funcionamento isolado de uma unidade de código (função, método, classe) — sendo o Jest um framework para esse tipo de teste. A pegadinha da banca está em confundir o nível de teste (unitário) com a técnica de teste (casos limite): o teste é unitário, mas a técnica aplicada é a de fronteira.
Guarde a fronteira entre o que se testa (nível) e como se testa (técnica): é exatamente nessa distinção que as alternativas se dividem.
Teste de software
1Nível (o que se testa)
Unitário
Integração
Sistema
2Técnica (como se testa)
Casos limite (boundary)
Caminho feliz (happy path)
Regressão
LEVEL · soulevel.com.br
Alternativa A — ✅ Correta ⟵ GABARITO
A alternativa está correta porque o teste unitário apresentado verifica o comportamento da função nos valores extremos do domínio de entrada. O boundary testing é uma técnica de teste que se concentra nos limites dos intervalos de entrada, pois é onde os erros de programação são mais prováveis de ocorrer. O código do teste, ao passar valores como o mínimo, o máximo e valores imediatamente fora do intervalo, está aplicando exatamente essa técnica.
Alternativa B — ❌ Incorreta
O happy path (caminho feliz) testa o fluxo principal de execução com entradas válidas e esperadas, sem explorar valores extremos ou condições de contorno. O teste apresentado, ao contrário, foca justamente nos valores de fronteira, o que caracteriza o teste de casos limite, não o caminho feliz.
Alternativa C — ❌ Incorreta
O teste de integração verifica a interação entre diferentes módulos, componentes ou sistemas, garantindo que eles funcionem corretamente quando combinados. O teste apresentado é um teste unitário, que testa uma unidade isolada de código (uma função), e não a integração entre partes do sistema.
Alternativa D — ❌ Incorreta
O teste de regressão tem como objetivo garantir que alterações no código (correções de bugs, novas funcionalidades, refatorações) não introduziram novos defeitos em funcionalidades já existentes. O teste apresentado não está verificando a não-regressão de uma funcionalidade, mas sim o comportamento da função em valores de fronteira.
Alternativa E — ❌ Incorreta
O teste de unidade é o nível de teste que verifica o funcionamento isolado de uma unidade de código. O teste apresentado é, de fato, um teste unitário (usando Jest), mas a pergunta é sobre qual princípio ou técnica está sendo aplicada, e não sobre o nível de teste. A técnica aplicada é o teste de casos limite, que é uma técnica dentro do nível de teste unitário.
NÃO CAIA NESSA!
A banca explora a confusão entre o nível de teste (unitário) e a técnica de teste (casos limite). O teste é unitário, mas a pergunta é sobre a técnica aplicada — que é a análise de fronteira. Fique atento: nível de teste responde "o que se testa" (unidade, integração, sistema), enquanto a técnica responde "como se testa" (fronteira, caminho feliz, caixa-preta).
PEGA ESSA DICA!
Para identificar o teste de casos limite, procure por valores nos extremos do domínio de entrada — como o menor valor válido, o maior valor válido, e valores imediatamente fora do intervalo. Se o teste usa valores como 0, 100, -1 e 101 para uma função que aceita 1 a 100, é boundary testing. Se usa apenas valores "normais" como 50, é happy path.