Usando Esquema GraphQL para Geração de Consultas de Forma Aleatória

  • Natanael Zago UFFS
  • Andrei Braga UFFS
  • Braulio Mello UFFS
  • Samuel Feitosa UFFS

Resumo


Desenvolvido pelo Facebook em 2012, o GraphQL tem se tornado uma alternativa popular para os desenvolvedores na construção de suas APIs Web. Sua principal característica é retornar apenas os dados solicitados pelo cliente da API, evitando o tráfego e processamento desnecessários, o que torna as APIs GraphQL flexíveis às necessidades dos clientes. Essas características levaram a uma adoção crescente do GraphQL na construção de APIs Web. Porém, à medida que seu uso cresce, torna-se ainda mais importante garantir a confiabilidade dos softwares em produção, evitando erros de inconsistência de dados, validação de campos ou simples erros que possam ter passado despercebidos durante o desenvolvimento do software. Nesse contexto, este trabalho tem como objetivo explorar a geração aleatória e automática de consultas válidas para testar APIs GraphQL, visando auxiliar na criação de casos de teste e reduzir a necessidade de trabalho humano dispensável na geração desses casos, ao mesmo tempo em que possibilita aumentar a confiabilidade das APIs GraphQL. Utilizando a linguagem de programação funcional Haskell e a biblioteca QuickCheck, este trabalho busca auxiliar no desenvolvimento de casos de teste, assim contribuindo na confiabilidade dos sistemas desenvolvidos que utilizam a tecnologia GraphQL. A abordagem utilizada neste trabalho mostrou-se promissora, pois permitiu a geração de milhares de consultas bem tipadas de acordo com a especificação do esquema, as quais foram consideradas válidas por um sistema de validação.
Palavras-chave: Geração de Código Aleatório, GraphQL, Teste de APIs
Publicado
25/09/2023
ZAGO, Natanael; BRAGA, Andrei; MELLO, Braulio; FEITOSA, Samuel. Usando Esquema GraphQL para Geração de Consultas de Forma Aleatória. In: SIMPÓSIO BRASILEIRO DE LINGUAGENS DE PROGRAMAÇÃO (SBLP), 27. , 2023, Campo Grande/MS. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2023 . p. 17–24.