【文件属性】:
文件名称:sqlancer:在DBMS中检测逻辑错误
文件大小:3.07MB
文件格式:ZIP
更新时间:2021-01-30 15:40:44
mysql testing sql sqlite dbms
SQLancer
SQLancer(综合查询Lancer)是一种工具,用于自动测试数据库管理系统(DBMS),以发现其实现中的逻辑错误。 我们将逻辑错误称为导致DBMS提取错误结果集(例如,通过省略记录)的错误。
SQLancer分为以下两个阶段:
数据库生成:此阶段的目标是创建一个填充的数据库,并向DBMS施加压力,以增加引起不一致的数据库状态的可能性,这种情况随后可被检测到。 首先,创建随机表。 然后,随机选择SQL语句以生成,修改和删除数据。 其他语句,例如用于创建索引和视图以及设置特定于DBMS的选项的语句也发送到DBMS。
测试:此阶段的目标是根据生成的数据库检测逻辑错误。 请参阅下面的测试方法。
入门
要求:
Java 8或以上
(在Ubuntu上sudo apt install maven )
您要测试的DBMS(SQLite是嵌入式DBMS,包括在内)
以下命令克隆SQLancer,创建一个JAR,然后启动SQLancer以使用非优化参考引擎构造(NoREC)测试SQLite:
git clone https://github.com/sqlancer