Skip to main navigation Skip to search Skip to main content

Evolutionary-based automated testing for GraphQL APIs

  • Kristiania University College

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

Abstract

The Graph Query Language (GraphQL) is a powerful language for APIs manipulation in web services. It has been recently introduced as an alternative solution for addressing the limitations of RESTful APIs. This paper introduces an automated solution for GraphQL APIs testing. We present a full framework for automated APIs testing, from the schema extraction to test case generation. Our approach is based on evolutionary search. Test cases are evolved to intelligently explore the solution space while maximizing code coverage criteria. The proposed framework is implemented and integrated in the open-source EVOMASTER tool. Experiments on two open-source GraphQL APIs show statistically significant improvement of the evolutionary approach compared to the baseline random search.

Original languageEnglish
Title of host publicationGECCO 2022 Companion - Proceedings of the 2022 Genetic and Evolutionary Computation Conference
PublisherAssociation for Computing Machinery, Inc
Pages778-781
Number of pages4
ISBN (Electronic)9781450392686
DOIs
StatePublished - 9 Jul 2022
Externally publishedYes
Event2022 Genetic and Evolutionary Computation Conference, GECCO 2022 - Virtual, Online, United States
Duration: 9 Jul 202213 Jul 2022

Publication series

NameGECCO 2022 Companion - Proceedings of the 2022 Genetic and Evolutionary Computation Conference

Conference

Conference2022 Genetic and Evolutionary Computation Conference, GECCO 2022
Country/TerritoryUnited States
CityVirtual, Online
Period9/07/2213/07/22

Keywords

  • GraphQL
  • automated testing
  • evolutionary algorithms
  • evomaster
  • fuzzing
  • search-based software testing

Fingerprint

Dive into the research topics of 'Evolutionary-based automated testing for GraphQL APIs'. Together they form a unique fingerprint.

Cite this