Database Management System (DBMS) plays a core role in modern software from mobile apps to online banking. It is critical that DBMS should provide correct data to all applications. When the DBMS returns incorrect data, a correctness bug is triggered. Current production-level DBMSs still suffer from insufficient testing due to the limited hand-written test cases. Recently several works proposed to automatically generate many test cases with query transformation, a process of generating an equivalent query pair and testing a DBMS by checking whether the system returns the same result set for both queries. However, all of them still heavily rely on manual work to provide a transformation which largely confines their exploration of the valid input query space. This paper introduces duplicate-sensitivity guided transformation synthesis which automatically finds new transformations by first synthesizing many candidates then filtering the nonequivalent ones. Our automated synthesis is achieved by mutating a query while keeping its duplicate sensitivity, which is a necessary condition for query equivalence. After candidate synthesis, we keep the mutant query which is equivalent to the given one by using a query equivalent checker. Furthermore, we have implemented our idea in a tool Eqsql and used it to test the production-level DBMSs. In two months, we detected in total 30 newly confirmed and unique bugs in MySQL, TiDB and CynosDB.


翻译:数据库管理系统(DBMS) 在移动应用程序到在线银行的现代软件中扮演核心角色。 DBMS 必须在从移动应用程序到在线银行的现代软件中扮演核心角色。 关键是 DBMS 提供正确数据给所有应用程序。 当 DBMS 返回不正确的数据时, 就会触发一个正确性错误。 当前的生产级别 DBMS 仍然由于手写测试案例有限而受测试不足的影响。 最近提出的几项工作旨在自动生成许多测试案例, 包括查询转换, 生成一个对等的查询配对, 测试一个 DBMS, 检查系统是否返回为这两个查询设定的相同结果。 但是, 所有的DBMS 仍然非常依赖手动工作来提供一种转换, 以限制对有效输入查询空间的探索。 本文引入了重复性敏化导变换合成, 通过首先对许多候选人进行合成, 然后过滤非对应的测试案例。 我们的自动合成是通过变换查询来实现的, 同时保持其重复的敏感度, 这是查询的一个必要条件。 在候选人合成后, 我们保留与给的变异性查询相等的查询相等于一个结果, 通过查询核对器检查器, 。 此外, 我们在一个工具 EqsQS 和新测试的DBDBDBS 测试了我们总共30个月中在C 测试了两个工具中测试了C 。

0
下载
关闭预览

相关内容

专知会员服务
38+阅读 · 2020年9月6日
Linux导论,Introduction to Linux,96页ppt
专知会员服务
76+阅读 · 2020年7月26日
【新书】Java企业微服务,Enterprise Java Microservices,272页pdf
【干货】大数据入门指南:Hadoop、Hive、Spark、 Storm等
专知会员服务
95+阅读 · 2019年12月4日
强化学习最新教程,17页pdf
专知会员服务
171+阅读 · 2019年10月11日
【新书】Python编程基础,669页pdf
专知会员服务
187+阅读 · 2019年10月10日
Hierarchically Structured Meta-learning
CreateAMind
23+阅读 · 2019年5月22日
人脸检测库:libfacedetection
Python程序员
15+阅读 · 2019年3月22日
动物脑的好奇心和强化学习的好奇心
CreateAMind
10+阅读 · 2019年1月26日
meta learning 17年:MAML SNAIL
CreateAMind
11+阅读 · 2019年1月2日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
16+阅读 · 2018年12月24日
Hierarchical Disentangled Representations
CreateAMind
4+阅读 · 2018年4月15日
条件GAN重大改进!cGANs with Projection Discriminator
CreateAMind
8+阅读 · 2018年2月7日
计算机视觉近一年进展综述
机器学习研究会
8+阅读 · 2017年11月25日
【推荐】用Python/OpenCV实现增强现实
机器学习研究会
14+阅读 · 2017年11月16日
Auto-Encoding GAN
CreateAMind
7+阅读 · 2017年8月4日
Detection of GAN-synthesized street videos
Arxiv
0+阅读 · 2021年9月10日
Arxiv
3+阅读 · 2020年11月26日
Arxiv
3+阅读 · 2018年6月14日
VIP会员
相关资讯
Hierarchically Structured Meta-learning
CreateAMind
23+阅读 · 2019年5月22日
人脸检测库:libfacedetection
Python程序员
15+阅读 · 2019年3月22日
动物脑的好奇心和强化学习的好奇心
CreateAMind
10+阅读 · 2019年1月26日
meta learning 17年:MAML SNAIL
CreateAMind
11+阅读 · 2019年1月2日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
16+阅读 · 2018年12月24日
Hierarchical Disentangled Representations
CreateAMind
4+阅读 · 2018年4月15日
条件GAN重大改进!cGANs with Projection Discriminator
CreateAMind
8+阅读 · 2018年2月7日
计算机视觉近一年进展综述
机器学习研究会
8+阅读 · 2017年11月25日
【推荐】用Python/OpenCV实现增强现实
机器学习研究会
14+阅读 · 2017年11月16日
Auto-Encoding GAN
CreateAMind
7+阅读 · 2017年8月4日
Top
微信扫码咨询专知VIP会员