论文部分内容阅读
近年来,随着应用需求和信息技术的飞速发展,社会生产和生活越来越离不开各类功能强大的软件。这些结构复杂,代码量庞大的软件,存在大量的缺陷,而忽视条件是其中一种主要表现形式。当前测试工具在定位忽视条件缺陷时,发生误报及漏报的概率较大,且效率较为低下,而利用隐式编程规则来发现和定位软件中的忽视条件缺陷,因为具备测试用时短、效率高和可自动化程度高等优点,已成为软件测试研究中的重要方向。基于最大频繁子图的软件缺陷定位系统通过构建程序依赖图集;挖掘隐式编程规则;匹配待测软件与规则等三步来实现对软件中忽视条件缺陷的定位。其中,在程序依赖图生成时,先用复杂语句简单化方法将训练用的源代码进行代码统一化处理,再通过语句之间的数据依赖关系及控制依赖关系构建程序依赖图,以此尽可能减少不同编程风格带来的干扰。最后用语句抽象化方法对程序依赖图的顶点进行标注,形成待挖掘的程序依赖图。隐式编程规则图集的形成是使用高效的图挖掘算法对去噪后的程序依赖图集进行挖掘,找出最大频繁子图集,再以规则形成的必要条件对最大频繁子图集进行筛选,形成隐式编程规则图集。最后,将待测软件的程序依赖图与隐式编程规则集中的规则进行数据环境匹配,从中找出相似度最大的规则图,并通过待测软件程序依赖图与最优规则进行控制依赖关系的差异性对比,实现缺陷定位。实验表明,基于最大频繁子图挖掘的软件缺陷定位方法具有较好的效率和效果,并能较为精确地将软件缺陷定位到语句。