Pular para o conteúdo principal

Questão de Engenharia de Software — Geral — VUNESP 2025

Engenharia de SoftwareGeral
Código
vu222981
Banca
VUNESP
Órgão
UNESP
Ano
2025
Cargo
V - - Doc ( )

A realização de testes é uma prática de DevOps. Nesse contexto, o tipo de teste de software que verifica o impacto de alterações no código sobre funcionalidades previamente existentes, que já funcionavam corretamente antes, reexecutando casos de teste conhecidos, é chamado de teste

  1. Aglobal.
  2. Bunitário.
  3. Cde integração.
  4. Dde regressão.
  5. Ede fumaça (smoke).
Revelar gabarito e comentário

GabaritoD — de regressão.

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 regressão em DevOps

Gabarito: letra D. O teste de regressão é exatamente o tipo de teste que verifica se alterações no código não introduziram novos defeitos em funcionalidades que já funcionavam corretamente, reexecutando casos de teste conhecidos. Essa é a definição clássica adotada pela engenharia de software e cobrada pela banca.

O teste de regressão é uma prática essencial em DevOps, especialmente em ambientes de integração contínua, onde o código é alterado com frequência. Seu objetivo é garantir que mudanças — correções de bugs, novas funcionalidades, refatorações — não quebrem o que já estava funcionando. Para isso, reexecuta-se um conjunto de casos de teste previamente executados e aprovados, comparando os resultados atuais com os esperados. Se algum teste que antes passava agora falha, diz-se que o sistema "regrediu".

A definição do enunciado é a mais direta possível: "verifica o impacto de alterações no código sobre funcionalidades previamente existentes, que já funcionavam corretamente antes, reexecutando casos de teste conhecidos". Isso é a essência do teste de regressão. A banca não está cobrando uma sutileza, mas sim o reconhecimento do conceito central.

É importante distinguir o teste de regressão dos demais tipos de teste, pois a banca costuma explorar essas diferenças. O teste unitário verifica uma unidade isolada de código (função, método, classe). O teste de integração verifica a interação entre módulos ou componentes. O teste de fumaça (smoke) é um teste rápido e superficial para verificar se as funcionalidades principais do sistema estão operacionais, servindo como um "check-in" antes de testes mais profundos. O teste global, por sua vez, não é um termo padrão na engenharia de software, mas pode ser associado a testes de sistema ou de aceitação, que verificam o sistema como um todo.

A pegadinha desta questão está em confundir o teste de regressão com o teste de integração ou com o teste de fumaça. O teste de integração foca na interação entre componentes, enquanto o de regressão foca em garantir que nada quebrou após uma mudança. O teste de fumaça é um teste rápido de sanidade, enquanto o de regressão é uma suíte completa de testes reexecutados. Guarde essa distinção: o que define o teste de regressão é a reexecução de testes já existentes para detectar regressões (defeitos introduzidos por mudanças).

Teste de regressão
  • 1Objetivo
    • Verificar impacto de alterações
    • Funcionalidades já existentes
    • Detectar regressões (defeitos novos)
  • 2Como executa
    • Reexecuta casos de teste conhecidos
    • Compara resultado atual × esperado
  • 3Em DevOps
    • Automatizado
    • Integrado ao pipeline de CI
  • 4Distinções
    • Unitário: unidade isolada
    • Integração: interação entre módulos
    • Fumaça: teste rápido de sanidade
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

O termo "teste global" não é um tipo de teste reconhecido na engenharia de software. Não existe uma categoria formal chamada "teste global" nos níveis de teste (unitário, integração, sistema, aceitação) nem nas técnicas (caixa-preta, caixa-branca). A banca pode usar esse termo para confundir, mas ele não corresponde a nenhuma prática definida. O teste que mais se aproximaria de uma visão "global" seria o teste de sistema, que verifica o sistema completo, mas não é o que o enunciado descreve.

Alternativa B — ❌ Incorreta

O teste unitário verifica uma unidade isolada de código, como uma função, método ou classe, para garantir que ela se comporta conforme o esperado. Ele não tem como foco verificar o impacto de alterações em funcionalidades previamente existentes. O teste unitário é executado durante o desenvolvimento, geralmente pelo próprio programador, e não envolve a reexecução de casos de teste de funcionalidades já integradas. O enunciado descreve exatamente o oposto: um teste que verifica o impacto de mudanças em funcionalidades já existentes, o que é característica do teste de regressão.

Alternativa C — ❌ Incorreta

O teste de integração verifica a interação entre módulos ou componentes do sistema, garantindo que eles funcionem corretamente quando combinados. Ele é executado após a integração de módulos e pode ser feito de forma incremental (integrando módulos um a um) ou em big-bang (integrando todos de uma vez). Embora o teste de integração possa detectar defeitos introduzidos por alterações, seu foco principal é a interação entre componentes, não a reexecução de casos de teste de funcionalidades já existentes. O enunciado descreve a reexecução de casos de teste conhecidos para verificar se nada quebrou, o que é a definição de teste de regressão.

Alternativa D — ✅ Correta ⟵ GABARITO

O teste de regressão é exatamente o que o enunciado descreve: reexecutar casos de teste conhecidos para verificar se alterações no código não introduziram novos defeitos em funcionalidades que já funcionavam corretamente. Essa é a definição clássica, presente em qualquer livro de engenharia de software. Em DevOps, o teste de regressão é frequentemente automatizado e integrado ao pipeline de integração contínua, garantindo que cada nova alteração não quebre o que já estava funcionando. A alternativa D espelha perfeitamente essa definição.

Alternativa E — ❌ Incorreta

O teste de fumaça (smoke test) é um teste rápido e superficial que verifica se as funcionalidades principais do sistema estão operacionais, servindo como um "check-in" antes de testes mais profundos. Ele é chamado de "fumaça" porque, se o sistema "pega fogo" (falha) logo no início, não adianta continuar testando. O teste de fumaça não reexecuta casos de teste conhecidos para verificar regressões; ele apenas verifica se o sistema está minimamente funcional. O enunciado descreve a reexecução de casos de teste para verificar o impacto de alterações, o que é característica do teste de regressão, não do teste de fumaça.

Gabarito: letra D

Link permanente: /questoes/vu222981