Questão de Engenharia de Software — Conceitos e Tipos de Testes de Software — CESPE / CEBRASPE 2024
- Código
- ce403866
- Banca
- CESPE / CEBRASPE
- Órgão
- MPO
- Ano
- 2024
- Cargo
- APO ( )
- CCerto
- EErrado
GabaritoC — Certo
Gabarito: Certo (C). O uso de cache e a implementação de mecanismos de fallback são, de fato, estratégias importantes para aumentar a resiliência de uma aplicação, pois permitem que o sistema continue operando de forma degradada ou com dados previamente armazenados quando ocorrem falhas em serviços externos ou indisponibilidade de recursos. Essa é uma prática consolidada em engenharia de software, especialmente em arquiteturas distribuídas e de microsserviços.
A resiliência de uma aplicação é a capacidade de ela se recuperar de falhas e continuar funcionando, mesmo que de forma reduzida, sem interromper completamente o serviço. O cache contribui ao armazenar respostas ou dados frequentemente acessados, reduzindo a dependência de chamadas a serviços externos e melhorando o desempenho. O fallback, por sua vez, é um mecanismo que define um plano alternativo quando a operação principal falha, como usar um serviço secundário, retornar dados de um cache ou apresentar uma mensagem amigável ao usuário. Juntas, essas estratégias formam a base de padrões de resiliência como o Circuit Breaker e o Bulkhead, amplamente adotados em sistemas modernos.
Na prática, imagine um sistema de e-commerce que depende de um gateway de pagamento externo. Se esse gateway ficar indisponível, um mecanismo de fallback pode redirecionar o usuário para um ambiente de pagamento alternativo ou permitir que ele finalize a compra com pagamento na entrega. O cache, por sua vez, pode armazenar informações de produtos e preços, evitando que a página de catálogo fique inacessível quando o banco de dados principal estiver sobrecarregado. Essas estratégias não eliminam a falha, mas reduzem o impacto dela no usuário final, aumentando a disponibilidade percebida do sistema.
A banca explora aqui um conceito fundamental de arquitetura de software, e a afirmativa está alinhada com as boas práticas de engenharia. Não há pegadinha sutil: a frase é direta e correta. O candidato que conhece os padrões de resiliência reconhece imediatamente a validade da afirmação. Portanto, a resposta é Certo.
Estratégia | Papel na Resiliência | Exemplo Prático |
|---|---|---|
Cache | Armazena dados/respostas previamente obtidos, reduzindo dependência de serviços externos e mantendo o sistema operante mesmo com falhas ou sobrecarga. | Página de catálogo continua acessível com preços salvos quando o banco de dados principal está indisponível. |
Fallback | Define um plano alternativo (serviço secundário, dados em cache, mensagem amigável) quando a operação principal falha, garantindo continuidade do serviço. | Redirecionamento para gateway de pagamento alternativo ou opção de pagamento na entrega quando o gateway principal falha. |
A afirmativa está correta. O cache e o fallback são estratégias reconhecidas para aumentar a resiliência de uma aplicação. O cache melhora a disponibilidade e o desempenho ao reduzir a dependência de serviços externos, enquanto o fallback garante que, em caso de falha, haja um plano B para manter o sistema operando. Esses conceitos são amplamente discutidos em engenharia de software, especialmente em arquiteturas de microsserviços e sistemas distribuídos, e são fundamentais para garantir a continuidade do serviço.
Gabarito: Certo (C)
Link permanente: /questoes/ce403866