Harvesting Production GraphQL Queries to Detect Schema Faults
GraphQL is a new paradigm to design web APIs. Despite its growing popularity, there are few techniques to verify the implementation of a GraphQL API. We present a new testing approach based on GraphQL queries that are logged while users interact with an application in production. Our core motivation is that production queries capture real usages of the application, and are known to trigger behavior that may not be tested by developers. For each logged query, a test is generated to assert the validity of the GraphQL response with respect to the schema. We implement our approach in a tool called AutoGraphQL, and evaluate it on two real-world case studies that are diverse in their domain and technology stack: an open-source e-commerce application implemented in Python called Saleor, and an industrial case study which is a PHP-based finance website called Frontapp. AutoGraphQL successfully generates test cases for the two applications. The generated tests cover 26.9% of the Saleor schema, including parts of the API not exercised by the original test suite, as well as 48.7% of the Frontapp schema, detecting 8 schema faults, thanks to production queries.
Thu 7 AprDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
11:30 - 12:45 | ICST API Testing and Program RepairIndustry / Research Papers at Margaret Hamilton Chair(s): Thomas Durieux KTH | ||
11:30 15mTalk | Harvesting Production GraphQL Queries to Detect Schema Faults Research Papers Louise Zetterlund Redeye AB, Deepika Tiwari KTH Royal Institute of Technology, Martin Monperrus KTH Royal Institute of Technology, Benoit Baudry KTH | ||
11:45 15mTalk | Automated Repair of Responsive Web Page Layouts Research Papers Ibrahim Althomali The University of Sheffield, Gregory Kapfhammer Allegheny College, Phil McMinn University of Sheffield | ||
12:00 15mTalk | Repairing Fragile GUI Test Cases Using Word and Layout Embedding Industry Juyeon Yoon Korea Advanced Institute of Science and Technology, Seungjun Chung KAIST, Kihyuck Shin Samsung Electronics, Jinhan Kim KAIST, Shin Hong Handong Global University, Shin Yoo KAIST | ||
12:15 15mTalk | Testing a PL/I Compiler using Precomputation-based Program Generation Industry Jesse Postema Universiteit Van Amsterdam, Johan Fabry Raincode Labs, Belgium, Yannick Barthol Raincode Labs, Ana Oprescu University of Amsterdam | ||
12:30 15mLive Q&A | Discussion and Q&A Research Papers |