当前位置:问答库>论文摘要

题目:多粒度层次化的软件缺陷定位方法研究

关键词:统计学缺陷定位;Linux内核分析;复杂网络;类别不均衡;集成缺陷定位

  摘要


伴随着软件规模和复杂度的日益提升,传统的人工调试技术已不能满足大型软件开发的要求。近些年来,自动化或半自动化的软件缺陷定位技术受到了广泛的关注。

本文基于多粒度和层次化的思想展开对软件缺陷定位技术的研究,分析了软件结构特性以及测试用例性质的影响,提出了基于语句的集成缺陷定位算法,主要研究内容包括以下几个部分:

首先,本文以Linux内核软件为对象,构建了LKN网络,从复杂网络的角度研究了它的拓扑特性以及其隐藏在背后的设计原则,研究发现LKN网络的出度服从指数分布入度服从幂律分布。通过研究LKN网络拓扑逻辑与系统功能之间的对应关系,发现LKN网络是高度模块化的网络,可以划分为12个主要的社区。此外,本文通过随机或者蓄意攻击LKN网络中的节点研究了系统的鲁棒性和软件的失效机理。

其次,本文分析了测试用例对于软件缺陷定位技术的影响。通过理论分析发现类别不均衡的用例集对于一些算法的定位效果有负面的影响。为了削弱这种影响,本文研究了一种通过复制失败测试用例构造类别均衡用例组的方法,并证明了应用这种策略绝大部分算法的定位效果都会提升或者保持不变。

然后,在对软件结构和测试用例的性质分析的基础上,本文参照粒度计算中从不同侧面、不同角度反复对事物进行分析和推理的基本思想,对现有的方法做出了改进。针对测试用例类别不均衡问题,本文提出了一种基于语句的集成算法。该算法通过拆分成功测试用例集得到若干个子定位器,然后分别进行缺陷定位,最后将各个子定位器的结果综合得到最终的排位表。在大量的单缺陷和多缺陷的实验上进行了验证,发现这种集成方法能够削弱类别不均衡问题的影响。