Carregando...
Carregando...
Ajude a melhorar a plataforma
Durante a validação de uma função criada para automatizar uma rotina comum no sistema, foram definidos alguns testes com base em diferentes combinações de entrada. O trecho de código abaixo representa a lógica usada para atualizar o status de um pedido:
def processar_pedido(pedido): if pedido["pago"]: if pedido["estoque"] > 0: pedido["status"] = "Confirmado" else: pedido["status"] = "Aguardando Estoque" else: pedido["status"] = "Pagamento Pendente"
Foram aplicados os seguintes testes: • Teste 1: ("pago": True, "estoque": 5) • Teste 2: ("pago": True, "estoque": 0)
Com base nesses testes e no código apresentado, avalie as afirmativas a seguir: I. A linha pedido["status"] = "Pagamento Pendente" não foi executada em nenhum dos testes. II. O bloco if pedido["pago"]: foi testado tanto com o resultado verdadeiro quanto falso. III. A cobertura de declaração ainda não é total, pois nem todas as instruções foram executadas. IV. A adição de um teste com ("pago": False) permitiria alcançar $100%$ de statement coverage. Está correto o que se afirma em:
Explique melhor esta questão
Abre o Tutor com o enunciado e as alternativas já no campo — você revisa e envia.
Esta questão foi verificada por um de nossos administradores.
🎓 Gabarito
A alternativa correta é D
JUSTIFICATIVA:
Analisando a execução do código com os testes fornecidos:
pago: True, estoque: 5): Entra no primeiro if, valida $estoque > 0$ e executa a linha que define o status como "Confirmado".pago: True, estoque: 0): Entra no primeiro if, falha na condição $estoque > 0$ e executa o else interno, definindo o status como "Aguardando Estoque".Análise das afirmativas:
else externo. Como em ambos os testes pago era True, essa linha nunca foi executada.pago foi apenas True nos testes, logo o caminho False não foi testado.else externo não foi executada, a cobertura de declaração não atingiu $100%$.pago: False executaria a única linha restante, garantindo que todas as declarações do código fossem exercitadas.Portanto, I, III e IV estão corretas.