ComputingComputer ScienceDatabasesInformation RetrievalKnowledge RepresentationGraph AnalyticsGraph MiningQuery ProcessingSoftware TestingBug Pattern DetectionGraph DatabasesGraph QueryingTest Generation
Graph database engines stand out in the era of big data for their efficiency of modeling and processing linked data. To assure high quality of graph database engines, it is highly critical to conduct automatic test generation for graph database engines, e.g., random test generation, the most commonly adopted approach in practice. However, random test generation faces the challenge of generating complex inputs (i.e., property graphs and queries) for producing non-empty query results; generating such type of inputs is important especially for detecting wrong-result bugs. To address this challenge, in this paper, we propose GDsmith, the first approach for testing Cypher graph database engines. GDsmith ensures that each randomly generated query satisfies the semantic requirements. To increase the probability of producing complex queries that return non-empty results, GDsmith includes two new techniques: graph-guided generation of complex pattern combinations and data-guided generation of complex conditions. Our evaluation results demonstrate that GDsmith is effective and efficient for producing complex queries that return non-empty results for bug detection, and substantially outperforms the baselines. GDsmith successfully detects 28 bugs on the released versions of three highly popular open-source graph database engines and receives positive feedback from their developers.
13
Finding and understanding bugs in C compilers
Xuejun Yang, Yang Chen, Eric Eide et al. · 2011 · 733 citations
Nadime Francis, Alastair Green, Paolo Guagliardo et al. · 2018 · 520 citations · Full text
An empirical comparison of compiler testing techniques
Junjie Chen, Wenxiang Hu, Dan Hao et al. · 2016 · 103 citations