QA Learning / API

Módulo 4: Cruzar API × banco

O pulo do gato de QA: a resposta bate com o que está gravado?

Teoria

Uma API pode responder 200, com o contrato perfeito, e mesmo assim mentir, devolver um valor que não é o que está no banco. Cache velho, cálculo errado numa camada de serviço, join torto. Só se pega comparando as duas fontes.

Aqui você tem o objeto db, a base crua (o "banco"): db.produtos, db.pedidos, db.clientes, db.defeitos. O padrão é:

  1. busca pela API: const r = await api('GET', '/pedidos/1');
  2. busca a mesma linha no banco: const noBanco = db.pedidos.find(p => p.id === 1);
  3. check que os campos que importam são iguais.

Um dos pedidos não vai bater. Achar qual é o exercício.

Exemplos

Prática

Complete e clique Rodar (ou Ctrl+Enter).

Área livre

Olhar de QA

Este módulo é o que mais muda a sua posição num time. Enquanto a maioria consegue dizer "a tela mostrou confirmado", você consegue dizer "a API devolveu R$ 240,00 e a linha gravada tem 0,00, aqui está o id". Duas fontes independentes para a mesma informação é o que transforma suspeita em evidência. É também o que reduz um dia de investigação a um minuto, porque separa na hora um defeito de escrita de um defeito de leitura.

Terminou este módulo? Marque: o ✓ aparece no índice da trilha e a barra de progresso anda no começo do site. Fica salvo só no seu navegador.