Geral
Gerência e Qualidade de Software
Semana 1
0
Questão
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:
function vote(questaoId, value) {
window.location.href = "/accounts/login/?next=/questao/27/";
return;
fetch(`/vote/questao/${questaoId}/`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-CSRFToken': 'nevHnyWp2xUaT6kwdhbn7iTh7iiK0tD2g4F74uA7XEovLQtLvsO68jElSkWMBrZ8'
},
body: JSON.stringify({ value: value })
})
.then(response => response.json())
.then(data => {
if (data.success) {
document.getElementById(`score-${questaoId}`).textContent = data.score;
const upBtn = document.querySelector(`button[onclick="vote(${questaoId}, 1)"]`);
const downBtn = document.querySelector(`button[onclick="vote(${questaoId}, -1)"]`);
upBtn.classList.remove('active-up');
downBtn.classList.remove('active-down');
if (data.user_vote === 1) upBtn.classList.add('active-up');
if (data.user_vote === -1) downBtn.classList.add('active-down');
}
});
}