Unidade 5 / 11

Automação de testes de API: contrato, esquema e validação ponta a ponta com IA

Ganhos:

  • Capacidade de conduzir testes de API em profundidade com suporte de inteligência artificial em código de status, esquema/contrato, regra de negócios e camadas negativas/de autorização
  • Capacidade de gerar esquema JSON a partir de resposta de amostra e evitar a pseudoconfiança de olhar apenas para o código de status com tipo e validação imperativa
  • Capacidade de testar cenários de segurança como autorização e IDOR com dados sintéticos e para fins defensivos somente dentro da autorização

A maioria dos softwares modernos conversam entre si em segundo plano via API (Application Programming Interface – a interface onde dois softwares se comunicam de acordo com um contrato específico). Quando um aplicativo móvel adiciona itens ao carrinho, ele na verdade envia uma solicitação a uma API no servidor. Os testes de API verificam se essa conversa está correta, segura e consistente, independentemente da interface; É mais rápido, estável e profundo do que o teste de UI. A inteligência artificial (IA) é muito eficiente em testes de API: ela gera testes a partir de uma definição de API, extrai o esquema de resposta (o contrato que define a estrutura dos dados), lista casos extremos. Mas novamente se aplica a advertência central: a IA não conhece as reais regras de negócios da sua API; tende a produzir testes superficiais que apenas confirmam “200 retornados”. Seu trabalho é garantir que o teste verifique o contrato real e a lógica de negócios.

Nesta unidade, você aprenderá como configurar testes de API profundos e suportados por IA com abordagens como Postman, REST Assured e validação de esquema.

Camadas de teste de API

Considere os testes de API em vários níveis, com a IA ajudando de forma diferente em cada camada:

1. Código de status e resposta básica. A solicitação retorna o código de status HTTP esperado (200/201 para sucesso, 400/401/404 para erro)? Esta é a camada mais superficial; A IA produz facilmente, mas por si só gera falsa confiança.

2. Validação de esquema/contrato. A estrutura da resposta se ajusta ao contrato — os campos esperados estão presentes, seus tipos estão corretos, estão faltando campos obrigatórios? A IA pode gerar o esquema JSON – o padrão que define a estrutura de um documento JSON – a partir de uma resposta de amostra, e os testes podem validar esse esquema. Isso é muito mais robusto do que escrever manualmente uma afirmação baseada em campo.

3. Validação de regras de negócio. O valor real está aqui: “Para um pedido de 1000 TL, o campo de desconto deve ser 100”, “um pedido cancelado não pode ser cancelado novamente”. A IA só irá verificar isso se você definir as regras; Se você não der, ele vai pular.

4. Negativo e segurança. 401 para token inválido, 403 para acessar dados de outra pessoa, limpar 400 para corpo inválido. Os testes de autorização (verificando se um usuário só pode acessar seus próprios dados) são o coração da segurança da API e são realizados para fins defensivos.

Dica: não solicite um teste sem informar à IA para “validar não apenas o código de status, mas também o esquema de resposta e essas regras de negócios”. Caso contrário, você terá testes que dizem "200 retornados, aprovados", mas não perceberá que a API retorna dados corrompidos.

Alerta fraco / Alerta forte

Fraco: "Escreva testes para esta API."
Forte: "Escreva testes REST Assured (Java) para o endpoint POST/pedido. Acordo: productId e quantidade são obrigatórios no corpo; 201 e {orderId, total, desconto, status} são retornados em caso de sucesso. Regras de negócios: 10% de desconto acima de 1000 TL; 400 se quantidade<=0; 401 se token inválido; 403 ao ver o pedido de outro usuário. Testes: (1) código de status, (2) JSON de resposta validação de esquema, (3) regra de negócios de desconto, (4) vincular cada afirmação a uma regra de negócios explícita; não apenas verificar 200/201.”

O prompt poderoso fornece o contrato, as regras de negócios, os cenários de segurança e a expectativa de validação do esquema.

Teste de contrato: evitando rupturas entre equipes

Nas arquiteturas de microsserviços (estrutura na qual a aplicação é dividida em pequenos serviços independentes entre si e que se comunicam com a API), alterar o formato de resposta de um serviço interrompe silenciosamente outros serviços conectados a ele. O teste de contrato – o teste que verifica se o contrato de API entre o serviço do provedor e o serviço ao consumidor não foi quebrado em ambos os lados – detecta essas quebras antecipadamente. A ideia é esta: o consumidor define a forma de resposta que espera do produtor como um “contrato”; A cada alteração, o fabricante testa se ainda cumpre este acordo. Assim, quando o nome ou tipo de um campo muda, o consumidor notifica o pipeline antes que ele trave.

A IA acelera duas tarefas neste contexto: redigir um contrato que reflita as expectativas do consumidor a partir de uma resposta de API existente e pré-marcar qual cláusula contratual uma alteração poderia quebrar. Mas o contrato em si é uma decisão comercial: o especialista determina quais áreas são verdadeiramente críticas, quais mudanças irão quebrar a retrocompatibilidade – os consumidores antigos continuam a trabalhar. AI redige o contrato; Você é quem aprova.

Dica: excluir um campo ou alterar o tipo de campo em uma API é quase sempre uma alteração significativa. Adicionar novos campos geralmente é seguro. Fazer com que a IA classifique uma alteração como “violável ou segura” fornece uma rápida verificação de segurança pré-lançamento.

Carteiro ou baseado em código?

critério

Carteiro/Newman

REST garantido/código (Java, C#, JS)

Aprendizagem

Fácil, visual

Conhecimento de código necessário

Controle de versão

Coleção JSON

Diretamente no código-fonte

lógica complexa

Limitado (scripts JS)

Poder total de programação

Integração CI/CD

com Newman

Depende diretamente da construção

Validação de esquema

Com scripts de teste

Poderoso com biblioteca

Escala da equipe

pequeno/médio

grande, maduro

A IA gera código para ambos; Deixe claro qual você deseja.

Quatro modelos copiáveis

1) Teste de API baseado em contrato:

Sua função: engenheiro de teste de API sênior. Escreva testes para o seguinte endpoint com [ferramenta/linguagem]: [método + caminho]. Contrato: [campos obrigatórios, código de sucesso, estrutura de resposta]. Regras de negócios: [regras]. Camadas de teste: (1) código de status (2) validação do esquema de resposta (3) cada regra de negócios (4) negativo + autorização.

2) Geração de esquema a partir de resposta de amostra:

Gere o esquema JSON a partir do exemplo de resposta da API abaixo. Especifique campos obrigatórios, tipos e restrições de formato (data, email, intervalo de números). Em seguida, dê um exemplo de teste que valide esse esquema. Exemplo de resposta: [colar JSON]

3) Cenários negativos e de autorização:

Gere casos de teste negativos e de segurança para endpoint[endpoint]. Inclui: campo ausente/obrigatório, tipo errado, valor muito grande, token inválido/expirado, acesso a recurso não autorizado (IDOR — acesso ao registro de outra pessoa alterando ID), limite de taxa. Especifique o código de status esperado e o corpo do erro para cada cenário. Obs: só será testado em API própria, autorizada.

4) Controle de pseudoconfiança:

Confira este teste de API. Este teste seria detectado se o servidor retornasse o código de status correto, mas FALSEbody/data? Caso contrário, adicione validação de esquema e regra de negócios. Teste: [colar teste]

três mini cases

Caso 1 — O poder da validação de esquema. Uma equipe estava apenas verificando o código de status nos testes produzidos com IA. Em uma versão, a API começou a retornar erroneamente o campo total como texto ("1200"); os testes permaneceram verdes porque ainda retornava 200. O aplicativo móvel travou. Depois de adicionar validação de tipo com o modelo "Geração de esquema a partir de resposta de amostra", o mesmo erro foi detectado imediatamente.

Caso 2 — Lacuna de autoridade (IDOR). Um especialista executou o teste IDOR entre os “cenários negativos e de autorização” gerados pela IA: ele solicitou o ID do pedido do usuário B com o token do usuário A. A API retornou dados de 200 e B — uma séria vulnerabilidade de autorização. Este teste defensivo fechou o vazamento de dados antes de ir ao ar.

Caso 3 — Desvio de regra de negócio. A IA gerou 8 testes para o endpoint de desconto; todos estavam verificando 200, nenhum estava verificando o valor do desconto. O especialista adicionou as regras de negócios ao prompt e as reproduziu. Novos testes revelaram que o desconto foi calculado incorretamente no limite de 1.000 TL (o desconto também foi aplicado a 999). O controle contratual não é suficiente; O controle das regras de negócios é obrigatório.

Erros comuns

  • Basta olhar para o código de status. Dizer “200 voltou e passou”; não ver o corpo corrompido (falsa confiança).
  • Ignorando a validação do esquema. Não verificar tipos de campos e obrigação; as alterações de tipo passam silenciosamente.
  • Solicitar testes sem fornecer regras de negócios. A IA não conhece as regras; produz apenas controle técnico.
  • Esquecendo cenários negativos e de direitos. Vulnerabilidades de segurança (IDOR, acesso não autorizado) são detectadas apenas por esses testes.
  • Usando tokens e dados reais/de produção. Use mídia dedicada e dados sintéticos para testes; Não coloque chaves reais no veículo.
  • Testes de segurança não autorizados. Execute testes de autorização apenas em sua própria API e com permissão.

Resumindo

O teste de API verifica a fala de software de forma rápida e profunda, independentemente da interface. IA; testes de contrato são muito eficientes na geração de esquema JSON e cenários negativos/de segurança a partir da resposta de amostra. Mas testes superficiais que apenas verificam o código de status dão pseudoconfiança. Exija todas as quatro camadas: código de status, validação de esquema, regra de negócios, negativo e autorização. Coloque as regras de negócio e o contrato no prompt; Realize testes de segurança com dados sintéticos e somente com autorização.

Tarefa de aplicativo

Escolha um endpoint de API do seu próprio projeto. Faça com que a IA escreva testes de quatro camadas com o modelo “teste de API baseado em contrato”. Em seguida, adicione validação de tipo/aplicação com "geração de esquema a partir de resposta de amostra" e aplique "verificação de pseudo-confiança". Execute pelo menos um cenário IDOR/autorização em seu próprio ambiente de teste. Relate qualquer violação de contrato ou regra comercial que você encontrar; Se você não conseguir encontrar nenhuma, faça o teste com uma resposta deliberadamente distorcida para provar que ela a detectou.

lista de verificação

  • [] Cobri as quatro camadas de teste (caso, esquema, regra de negócio, negativo/autorização).
  • [] Eu dei claramente o contrato e as regras de negócios para a IA.
  • [ ] Configurei testes que validam o esquema de resposta (campo, tipo, imperativo).
  • [] Eu tentei pelo menos um cenário de autorização/IDOR defensivamente.
  • [] Usei ambiente de teste e dados sintéticos em vez de token/dados reais.
  • [] Provei com uma "verificação de pseudoconfiança" que cada teste detecta a resposta corrompida.