Pular para o conteúdo principal

Questão de Engenharia de Software — Conceitos e Tipos de Testes de Software — FCC 2025

Engenharia de SoftwareConceitos e Tipos de Testes de Software
Código
fc150544
Banca
FCC
Órgão
SEFAZ PI
Ano
2025
Cargo
AFFE ( )
Uma Secretaria da Fazenda está passando por instabilidades em um novo módulo do sistema. A equipe de Garantia da Qualidade (QA) está sendo chamada para repetir rapidamente os testes funcionais sempre que o sistema é corrigido, devido a atualizações constantes. Nesse cenário de manutenção contínua e verificação rápida, o tipo mais adequado a ser utilizado é o Teste
  1. Ade Estresse.
  2. Bde Unidade.
  3. Cde Regressão.
  4. Dde Usabilidade.
  5. EBeta.
Revelar gabarito e comentário

GabaritoC — 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: garantindo que correções não quebrem o que já funcionava

Gabarito: letra C. O cenário descrito — repetir rapidamente os testes funcionais sempre que o sistema é corrigido, devido a atualizações constantes — é a definição clássica de Teste de Regressão: reexecutar testes já executados para assegurar que as alterações não propagaram efeitos colaterais indesejados. É o tipo de teste mais adequado para manutenção contínua e verificação rápida, pois valida que as correções não introduziram novos defeitos em funcionalidades que já funcionavam.

O Teste de Regressão é um dos tipos de teste mais cobrados em concursos de Engenharia de Software, especialmente pela FCC. Ele se enquadra como uma abordagem especial de teste de integração, mas sua essência é transversal: pode ser aplicado em qualquer nível de teste (unidade, integração, sistema) sempre que houver uma mudança no código. O objetivo não é testar funcionalidades novas, mas sim garantir que o que já estava funcionando continue funcionando após uma alteração.

A lógica por trás do teste de regressão é simples: quando um desenvolvedor corrige um bug ou adiciona uma funcionalidade, ele altera o código-fonte. Essa alteração pode, inadvertidamente, afetar outras partes do sistema que dependiam do comportamento anterior. O teste de regressão atua como uma rede de segurança, reexecutando um subconjunto de testes previamente aprovados para detectar essas regressões — ou seja, funcionalidades que "regrediram" (voltaram a falhar) por causa da mudança.

Na prática, imagine um sistema de uma Secretaria da Fazenda com um módulo de emissão de notas fiscais. Após uma correção no cálculo de impostos, a equipe de QA reexecuta os testes de emissão, consulta e cancelamento de notas. Se algum desses testes falhar, é sinal de que a correção introduziu um efeito colateral — uma regressão. Esse é exatamente o cenário do enunciado: instabilidades em um novo módulo, correções constantes e a necessidade de verificação rápida.

A distinção que importa aqui é entre o teste de regressão e os demais tipos de teste. O teste de estresse avalia o sistema sob condições extremas de carga; o teste de unidade verifica a menor parte testável do código; o teste de usabilidade avalia a facilidade de uso da interface; e o teste beta é realizado por usuários finais em ambiente real. Nenhum deles tem como foco verificar se alterações recentes quebraram funcionalidades existentes — essa é a função exclusiva do teste de regressão.

A pegadinha que a banca explora é a tentação de escolher o teste de estresse, pois o enunciado menciona "instabilidades". No entanto, instabilidade aqui é o motivo da correção, não o foco do teste. O gatilho para a resposta é a expressão "repetir rapidamente os testes funcionais sempre que o sistema é corrigido" — isso aponta diretamente para a reexecução de testes, que é a essência do teste de regressão. Guarde essa fronteira: instabilidade → correção → reexecução de testes = regressão.

1Objetivo
Garantir que correções não quebrem o que já funcionava
Reexecutar testes já executados
2Quando usar
Manutenção contínua
Atualizações constantes
3Níveis aplicáveis
Unidade
Integração
Sistema
4Palavra-chave
Repetir
Teste de Regressão
LEVELsoulevel.com.br
Teste de Regressão: Objetivo (Garantir que correções não quebrem o que já funcionava, Reexecutar testes já executados); Quando usar (Manutenção contínua, Atualizações constantes); Níveis aplicáveis (Unidade, Integração, Sistema); Palavra-chave (Repetir)

Alternativa A — ❌ Incorreta

O Teste de Estresse (ou teste por esforço) usa o sistema de maneira que demande recursos em quantidade, frequência ou volume anormal, para verificar seu comportamento sob condições extremas. O enunciado não menciona carga excessiva ou limites operacionais — fala em repetir testes após correções. A instabilidade citada é o problema que motivou a correção, não o objeto do teste. O candidato que associa "instabilidade" a "estresse" cai na armadilha, mas o foco da questão é a verificação pós-correção.

Alternativa B — ❌ Incorreta

O Teste de Unidade (ou unitário) verifica a menor parte testável do software — uma função, método ou classe — de forma isolada, geralmente usando mocks. Ele é um nível de teste, não um tipo voltado para verificação pós-correção. Embora testes de unidade possam ser reexecutados em um cenário de regressão, o enunciado fala em "testes funcionais" repetidos rapidamente, o que indica um escopo mais amplo, de sistema ou integração, não o nível unitário isolado.

Alternativa C — ✅ Correta ⟵ GABARITO

O Teste de Regressão é exatamente a reexecução de testes já executados para assegurar que alterações no código não propagaram efeitos colaterais indesejados. O enunciado descreve precisamente esse cenário: "repetir rapidamente os testes funcionais sempre que o sistema é corrigido, devido a atualizações constantes". A palavra-chave é repetir — reexecutar testes antigos para garantir que as correções não quebraram funcionalidades existentes. É o tipo mais adequado para manutenção contínua e verificação rápida.

Alternativa D — ❌ Incorreta

O Teste de Usabilidade avalia a facilidade de uso da interface, a intuitividade e a experiência do usuário. Não tem relação com verificação de funcionalidades após correções. O enunciado não menciona interface, experiência do usuário ou aspectos ergonômicos — foca em testes funcionais repetidos após correções, o que é característica do teste de regressão.

Alternativa E — ❌ Incorreta

O Teste Beta é conduzido nas instalações de um ou mais usuários finais, geralmente sem a presença do desenvolvedor, que registra os problemas encontrados. É um teste de validação em ambiente real, realizado antes da liberação final do software. O enunciado descreve um cenário interno de QA, com correções constantes e reexecução rápida de testes — não se encaixa na definição de teste beta, que ocorre em ambiente de produção com usuários reais.

NÃO CAIA NESSA!

A banca usa a palavra "instabilidades" para atrair o candidato para o Teste de Estresse (alternativa A). Mas a instabilidade é o motivo da correção, não o foco do teste. O gatilho real é "repetir rapidamente os testes funcionais sempre que o sistema é corrigido" — isso é a essência do teste de regressão. Fique atento: quando a questão falar em reexecutar testes após mudanças, a resposta é regressão, não estresse.

PEGA ESSA DICA!

Para diferenciar na prova, pergunte-se: "qual é o objetivo do teste?". Se for verificar se mudanças quebraram algo que já funcionava → regressão. Se for avaliar comportamento sob carga extrema → estresse. Se for testar a menor parte do código → unidade. Se for avaliar a interface → usabilidade. Se for testar com usuários reais em produção → beta. Essa pergunta resolve a maioria das questões sobre tipos de teste.

Gabarito: letra C

Link permanente: /questoes/fc150544