GDsmith: Detecting Bugs in Graph Database Engines

06/17/2022
by   Wei Lin, et al.
0

Graph database engines stand out in the era of big data for their efficiency of modeling and processing linked data. There is a strong need of testing graph database engines. However, random testing, the most practical way of automated test generation, faces the challenges of semantic validity, non-empty result, and behavior diversity to detect bugs in graph database engines. To address these challenges, in this paper, we propose GDsmith, the first black-box approach for testing graph database engines. It ensures that each randomly generated Cypher query satisfies the semantic requirements via skeleton generation and completion. GDsmith includes our technique to increase the probability of producing Cypher queries that return non-empty results by leveraging three types of structural mutation strategies. GDsmith also includes our technique to improve the behavior diversity of the generated Cypher queries by selecting property keys according to their previous frequencies when generating new queries. Our evaluation results demonstrate that GDsmith is effective and efficient for automated query generation and substantially outperforms the baseline. GDsmith successfully detects 27 previously unknown bugs on the released versions of three popular open-source graph database engines and receive positive feedback from their developers.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
07/16/2020

Detecting Optimization Bugs in Database Engines via Non-Optimizing Reference Engine Construction

Database Management Systems (DBMS) are used ubiquitously. To efficiently...
research
05/20/2021

Testing DBMS Performance with Mutations

Because database systems are the critical component of modern data-inten...
research
12/07/2020

Exposing Bugs in JavaScript Engines through Test Transplantation and Differential Testing

Context. JavaScript is a popular programming language today with several...
research
06/03/2020

SQUIRREL: Testing Database Management Systems with Language Validity and Coverage Feedback

Fuzzing is an increasingly popular technique for verifying software func...
research
01/13/2020

Testing Database Engines via Pivoted Query Synthesis

Relational databases are used ubiquitously. They are managed by database...
research
02/02/2023

Effective Random Test Generation for Deep Learning Compilers

Deep learning compilers help address difficulties of deploying deep lear...
research
08/03/2022

HirFuzz: Detecting High-Level Optimization Bugs in DL Compilers via Computational Graph Generation

Deep Learning (DL) compilers are widely adopted to optimize advanced DL ...

Please sign up or login with your details

Forgot password? Click here to reset