Testing Database Engines via Pivoted Query Synthesis论文
主要内容
- 随机生成table和rows
- 从每个表随机生成一行
- 根据选择的rows随机生成表达式并评估结果
- 修改表达式 直到返回真
领域
- 检测logic bug,logic bug即是否返回正常的行
研究常用的方法
差异性测试,不适用于所有DBMS
各项性能指标
- 观察是否返回 随机生成的row
缺点
- 不适用于大数据集
- 可能只能做where里面的AST树
扩展知识点
- AST树
- 差异性比较
Detecting Optimization Bugs in Database Engines via Non-Optimizing Reference Engine Construction论文
主要内容
不正常的优化可能会导致logic bug
核心:重写DBMS不能优化的潜在随机生成优化的query
让DBMS不做优化,做全表的扫描
- 左边是原本数据库会优化的,右边是数据库不会优化的。
Ternary Logic Partitioning: Detecting Logic Bugs in Database Management Systems
主要内容
- query分区,将一条给定原始的query,分成多份更复杂的queries,每个部分都计算结果的一部分。
三元逻辑分区:
- 基于一个布尔谓词p计算成True,False,NULL的观察