Questão de Engenharia de Software — Geral — VUNESP 2025
Engenharia de Software›Geral
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
Aglobal.
Bunitário.
Cde integração.
Dde regressão.
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.