Pular para o conteúdo principal

Questão de Engenharia de Software — Conceitos e Tipos de Testes de Software — VUNESP 2023

Engenharia de SoftwareConceitos e Tipos de Testes de Software
Código
vu196764
Banca
VUNESP
Órgão
Pref SP
Ano
2023
Cargo
AFTM SP
Dentre as diversas técnicas de teste de um sistema de software, está um tipo de teste em que o desenvolvedor força o sistema a falhar, para, em seguida, verificar se ocorre a volta ao processamento normal do sistema. Tal tipo de teste configura o chamado teste de
  1. Arecuperação.
  2. Bintegralidade.
  3. Cestresse.
  4. Ddesempenho.
  5. Epermanência.
Revelar gabarito e comentário

GabaritoA — recuperaçã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 recuperação em Engenharia de Software

Gabarito: letra A. O teste de recuperação é exatamente o tipo de teste em que o desenvolvedor força o sistema a falhar (por exemplo, introduzindo defeitos ou simulando falhas de hardware/software) e, em seguida, verifica se o sistema consegue se recuperar e retornar ao processamento normal. Essa é a definição clássica apresentada na literatura de engenharia de software, como em Pressman e Sommerville.

O teste de recuperação é um tipo de teste não funcional que avalia a robustez do software. A ideia central é submeter o sistema a condições adversas — como queda de energia, falha de um componente, erro de comunicação ou até mesmo a introdução proposital de defeitos — e observar se ele é capaz de se restabelecer e continuar operando corretamente. O foco não está em medir desempenho ou capacidade de carga, mas sim na capacidade de voltar a um estado estável após uma falha.

Na prática, o teste de recuperação funciona assim: o testador provoca uma falha no sistema (por exemplo, derruba um serviço, desconecta um banco de dados ou encerra um processo de forma abrupta) e, em seguida, verifica se o sistema se recupera automaticamente, se reinicia corretamente ou se restaura os dados perdidos. O objetivo é garantir que, em situações reais de falha, o sistema não fique permanentemente indisponível ou corrompido.

A distinção mais importante é entre o teste de recuperação e o teste de estresse. Enquanto o teste de recuperação foca em forçar uma falha e verificar a recuperação, o teste de estresse submete o sistema a cargas extremas (acima dos limites normais) para avaliar seu comportamento sob pressão, mas sem necessariamente forçar uma falha — o objetivo é medir desempenho e estabilidade sob carga. Já o teste de desempenho mede a velocidade e a capacidade de resposta do sistema em condições normais ou de carga, sem o foco na recuperação.

A pegadinha que a banca explora nesta questão é a confusão entre o teste de recuperação e o teste de estresse. O enunciado descreve claramente a ação de "forçar o sistema a falhar" e "verificar se ocorre a volta ao processamento normal" — isso é a essência do teste de recuperação. O teste de estresse, embora também submeta o sistema a condições extremas, não tem como objetivo principal verificar a recuperação após uma falha, mas sim avaliar o comportamento sob carga.

Guarde a fronteira entre os tipos de teste: o que decide a questão é o objetivo da ação — forçar a falha para testar a recuperação (recuperação) versus submeter a carga para medir desempenho (estresse/desempenho). É exatamente nessa distinção que as alternativas se dividem.

1Recuperação
Força o sistema a falhar
Verifica a volta ao processamento normal
2Estresse
Cargas extremas
Mede estabilidade sob pressão
3Desempenho
Velocidade e capacidade de resposta
Condições normais ou de carga
Testes de software
LEVELsoulevel.com.br
Testes de software: Recuperação (Força o sistema a falhar, Verifica a volta ao processamento normal); Estresse (Cargas extremas, Mede estabilidade sob pressão); Desempenho (Velocidade e capacidade de resposta, Condições normais ou de carga)

Alternativa A — ✅ Correta ⟵ GABARITO

O teste de recuperação é definido exatamente como o tipo de teste em que o desenvolvedor força o sistema a falhar (por exemplo, introduzindo defeitos ou simulando falhas) e, em seguida, verifica se o sistema consegue se recuperar e retornar ao processamento normal. O enunciado descreve precisamente essa técnica: "força o sistema a falhar, para, em seguida, verificar se ocorre a volta ao processamento normal do sistema". Essa é a definição clássica do teste de recuperação, que avalia a robustez do software em retornar a um estado estável após uma falha.

Alternativa B — ❌ Incorreta

O termo "integralidade" não corresponde a um tipo de teste de software reconhecido na literatura. Não existe um teste chamado "teste de integralidade" na engenharia de software. O conceito mais próximo seria o teste de integração, que verifica a interação entre módulos do sistema, mas não envolve forçar o sistema a falhar para verificar sua recuperação. A alternativa confunde o nome com um termo que não é utilizado na área.

Alternativa C — ❌ Incorreta

O teste de estresse submete o sistema a cargas extremas (acima dos limites normais de operação) para avaliar seu comportamento sob pressão. Embora possa levar o sistema a falhar, o objetivo principal não é verificar a recuperação, mas sim medir a estabilidade e o desempenho sob carga. O enunciado descreve explicitamente a verificação da "volta ao processamento normal", que é o foco do teste de recuperação, não do teste de estresse. A banca explora a confusão entre forçar o sistema a falhar (estresse) e verificar a recuperação (recuperação).

Alternativa D — ❌ Incorreta

O teste de desempenho mede a velocidade, a capacidade de resposta e a estabilidade do sistema em condições normais ou de carga. Seu objetivo é avaliar se o sistema atende aos requisitos de desempenho (tempo de resposta, throughput, etc.), não forçar falhas para verificar a recuperação. O enunciado descreve uma ação de forçar o sistema a falhar, que não é o foco do teste de desempenho.

Alternativa E — ❌ Incorreta

O termo "permanência" não corresponde a um tipo de teste de software reconhecido na literatura. Não existe um teste chamado "teste de permanência" na engenharia de software. O conceito mais próximo seria o teste de confiabilidade, que verifica se o software opera sem falhas por um período prolongado, mas não envolve forçar o sistema a falhar para verificar sua recuperação. A alternativa apresenta um termo que não é utilizado na área.

Gabarito: letra A — o teste de recuperação é o tipo de teste que força o sistema a falhar e verifica se ele retorna ao processamento normal.

Link permanente: /questoes/vu196764