Questão de Engenharia de Software — Conceitos e Tipos de Testes de Software — VUNESP 2023
Engenharia de Software›Conceitos e Tipos de Testes de Software
Código
vu196690
Banca
VUNESP
Órgão
Pref Campinas
Ano
2023
Cargo
Ana TI ( )
No contexto das técnicas de teste de software, insere-se o chamado teste de regressão, que consiste
Ano teste de um software com requisitos similares ao do software sob teste.
Bna conversão de um código estruturado para orientado a objetos, seguido de seu teste.
Cna reexecução de algum subconjunto de testes previamente já executado e avaliado.
Dna execução do código sob teste, seguindo ordem inversa de execução, em relação ao fluxo normal de processamento.
Ena transformação do código de software em um código criptografado, seguido de seu teste.
Revelar gabarito e comentário▾
GabaritoC — na reexecução de algum subconjunto de testes previamente já executado e avaliado.
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: conceito e aplicação
Gabarito: letra C. O teste de regressão consiste na reexecução de um subconjunto de testes já executados e avaliados, com o objetivo de verificar se as modificações recentes no software não introduziram novos defeitos em funcionalidades que já funcionavam corretamente. Essa é a definição clássica adotada pela engenharia de software, e é exatamente o que a alternativa C descreve.
O teste de regressão é um dos tipos de teste mais cobrados em concursos, justamente por sua importância prática no ciclo de desenvolvimento. Quando um programador altera o código — seja para corrigir um bug, adicionar uma funcionalidade ou refatorar — existe o risco de que a mudança quebre algo que já estava funcionando. O teste de regressão existe para mitigar esse risco: ele reexecuta testes antigos, que já passaram, para garantir que o comportamento anterior não foi afetado.
A lógica por trás do teste de regressão é simples: se um teste já foi executado e aprovado, ele serve como uma "rede de segurança" para as próximas alterações. Ao reexecutá-lo após uma modificação, o desenvolvedor consegue detectar rapidamente se a mudança introduziu um efeito colateral indesejado. Por isso, o teste de regressão é frequentemente automatizado e integrado a ferramentas de integração contínua, permitindo que seja executado a cada nova alteração no código.
É importante distinguir o teste de regressão de outros tipos de teste. O teste de integração, por exemplo, verifica a interação entre módulos; o teste de unidade testa a menor parte do código; o teste de sistema valida o sistema como um todo. O teste de regressão não é definido pelo que testa, mas pelo quando testa: ele é aplicado após uma modificação, reexecutando testes já existentes. Essa distinção é crucial para resolver a questão.
A pegadinha da banca, aqui, é confundir o teste de regressão com outros conceitos, como a conversão de código (alternativa B), a execução em ordem inversa (alternativa D) ou a criptografia (alternativa E). Todas essas opções descrevem atividades que não têm relação com o teste de regressão. A alternativa A, por sua vez, fala em testar um software com requisitos similares, o que se aproxima mais do conceito de teste de comparação ou teste de compatibilidade, não de regressão.
Guarde a definição central: teste de regressão = reexecução de testes já executados para verificar se mudanças não quebraram funcionalidades existentes. É esse critério que separa a alternativa correta das demais.
1Modificação no código
2Reexecuta testes antigos
3Verifica efeitos colaterais
LEVEL · soulevel.com.br
Alternativa A — ❌ Incorreta
Testar um software com requisitos similares ao do software sob teste não é teste de regressão. Essa descrição se aproxima do conceito de teste de comparação ou teste de compatibilidade, que verifica se um software se comporta de forma semelhante a outro. O teste de regressão, ao contrário, reexecuta testes do mesmo software, não de um software similar.
Alternativa B — ❌ Incorreta
A conversão de um código estruturado para orientado a objetos, seguida de seu teste, descreve um processo de refatoração ou migração de código, não um teste de regressão. Embora após essa conversão seja recomendável executar testes de regressão, a conversão em si não é o que define o teste de regressão.
Alternativa C — ✅ Correta ⟵ GABARITO
Esta é a definição exata de teste de regressão: reexecutar um subconjunto de testes previamente executados e avaliados, após uma modificação no software, para verificar se a mudança não introduziu novas falhas. A reexecução de testes antigos é a essência do teste de regressão, garantindo que funcionalidades já validadas continuem funcionando.
Alternativa D — ❌ Incorreta
Executar o código sob teste em ordem inversa de execução não é uma técnica de teste reconhecida. O teste de regressão não tem relação com a ordem de execução do código; ele se preocupa em reexecutar testes já existentes, independentemente da ordem.
Alternativa E — ❌ Incorreta
Transformar o código em código criptografado, seguido de seu teste, descreve um processo de ofuscação ou criptografia, não um teste de regressão. Criptografia é uma técnica de segurança, não uma técnica de teste.