查询处理功能的正确性是数据库管理系统产品质量的关键,而其正确性检测的难点在于检测的全面性和自动化,具体而言,一是测试时用于输入的查询语句集难以全面覆盖测试需求;二是测试结果的检验需要对比输出结果和预期结果,预期结果需人工生成而无法自动生成。本课题提出用自适应随机机制和蜕变策略相结合来攻克这两大难点首先,随机生成少量语句,之后语句逐个自动适应已有语句在语句空间的位置渐进生成,从而避免语句聚堆,达到分布均匀化,使生成的同等数目的语句集能最大程度地覆盖测试需求;其次,运用蜕变策略实现测试结果检验的自动化,即首先构建一个蜕变关系库,再用源测试语句和依据库中蜕变关系自动生成的衍生语句作为测试输入,通过分析输出结果之间的关系来判断测试结果的正确性,从而将生成预期结果的人工操作,转换成输出结果间关系的自动验证。课题研究成果能用于准确、高效地检测查询处理的正确性,对数据库管理系统产品开发有重要应用价值。
database management system;query processing;adaptive random testing;metamorphic testing;
项目研究基本按原计划进行,沿着三个主要研究方向,即ART方法;蜕变测试方法;以及原型系统的设计和开发等三个方向开展了研究。在ART方法的研究方面,提出了多种新的自适应随机测试方法,如组合自适应随机测试方法、增强的镜像自适应随机测试方法;并将自适应随机测试方法应用于组合测试、SQL语句生成、编译软件测试等领域;此外还研究了对将自适应随机测试并行化后的错误检测能力。在蜕变测试方面,提出了一种基于敏感度分析的蜕变关系度量方法;并对SQL语句的蜕变关系进行了初步研究。在原型系统的设计和开发方面,实现了一个基于ART方法的SQL语句自动生成工具;研究了对DBMS的存储过程的变异测试,设计并实现了一个变异工具;对开源的MySQL系统进行了错误注入的研究。从研究达到的目标上看,基于ART的SQL语句生成基本达到了预期目标。研究中对ART方法所做的工作较深入,取得了较多的成果。在蜕变测试研究方面,未能达成原计划,即构造一个蜕变关系库。主要原因在于,在研究中发现通过各种方法如SQL语句变异操作、关系代数模型等方法构造的蜕变关系大多是平凡的蜕变关系,即测试用例-结果对之间的约束过于宽泛,难以发现程序的缺陷。而在实现SQL 查询处理自动化测试的原型实现方面,由于蜕变关系库未能完成,未能实现全部功能。项目组将在结题后,继续针对上述问题进行研究。