Questão de Engenharia de Software — Conceitos e Tipos de Testes de Software — VUNESP 2023
- Código
- vu196764
- Banca
- VUNESP
- Órgão
- Pref SP
- Ano
- 2023
- Cargo
- AFTM SP
- Arecuperação.
- Bintegralidade.
- Cestresse.
- Ddesempenho.
- Epermanência.
GabaritoA — recuperação.
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.
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.
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.
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).
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.
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