Skip to content

Latest commit

 

History

History
32 lines (20 loc) · 1.52 KB

DetectTrans23.md

File metadata and controls

32 lines (20 loc) · 1.52 KB

问题

保证数据库中事务正确性很重要。现有的方法使用特定操作模式来捕获违反事务规则的行为。方法缺陷有:

  • 只使用特定操作模式来捕获违反事务规则的行为,不能检测到很多复杂操作带来的错误
  • 现有方法无法处理谓词,如WHERE中的条件表达式
  • 现有方法侧重测试隔离级别,可能会遗漏错误

想法

生成语义等效的测试用例:

  • 事务形式的测试用例
  • 非事务形式,通过重排列保证效果相同的执行用例

方案

1700729073729

  • 提出语句依赖图:节点代表提交事务中的语句,边代表这些语句之间的依赖关系
  • SQL级别插桩:在执行语句前后输出处理过的项目,每个项有一个对应的版本
  • 构建等价测试用例并比较:等价的测试用例器语句排列与语句依赖图的依赖关系相同

实验

  • Bug总结:Bug总数、Bug严重性、Bug分类(哪些隔离级别)
  • SOTA比较:与原有的一个事务Bug检测工具进行比较,证明能找到之前工具不能找到的错误
  • 消融实验:证明策略有效性,在不使用策略的情况下Bug-Trigger Test Case个数

总结

本文在数据库的事务Bug检测方面做了进一步探索,通过图的方式进行等价变换。论文内部对方法有效性和一些细节的讨论很完善,包括方法复杂度、方法正确性等等,这还需要学习,力求让自己的论文也逻辑严谨。