Back to Search Start Over

Random Testing and Evolutionary Testing for Fuzzing GraphQL APIs.

Authors :
Belhadi, Asma
Zhang, Man
Arcuri, Andrea
Source :
ACM Transactions on the Web; Feb2024, Vol. 18 Issue 1, p1-41, 41p
Publication Year :
2024

Abstract

The Graph Query Language (GraphQL) is a powerful language for application programming interface (API) manipulation in web services. It has been recently introduced as an alternative solution for addressing the limitations of RESTful APIs. This article introduces an automated solution for GraphQL API testing. We present a full framework for automated API testing, from the schema extraction to test case generation. In addition, we consider two kinds of testing: white-box and black-box testing. The white-box testing is performed when the source code of the GraphQL API is available. Our approach is based on evolutionary search. Test cases are evolved to intelligently explore the solution space while maximizing code coverage and fault-finding criteria. The black-box testing does not require access to the source code of the GraphQL API. It is therefore of more general applicability, albeit it has worse performance. In this context, we use a random search to generate GraphQL data. The proposed framework is implemented and integrated into the open source EvoMaster tool. With enabled white-box heuristics (i.e., white-box mode), experiments on 7 open source GraphQL APIs and three search algorithms show statistically significant improvement of the evolutionary approach compared to the baseline random search. In addition, experiments on 31 online GraphQL APIs reveal the ability of the black-box mode to detect real faults. [ABSTRACT FROM AUTHOR]

Details

Language :
English
ISSN :
15591131
Volume :
18
Issue :
1
Database :
Complementary Index
Journal :
ACM Transactions on the Web
Publication Type :
Academic Journal
Accession number :
174955386
Full Text :
https://doi.org/10.1145/3609427