发明名称 一种基于频谱定位和可视化定位软件缺陷的方法
摘要 一种基于频谱定位及可视化的用于指导编程人员软件缺陷的方法,旨在为开发人员提供更好的缺陷定位与修复指导,同时弥补由于个人经验等主观因素而可能引发的不精准甚至错误。利用静态分析获得程序的逻辑上的控制流图,结合动态执行所得到的测试用例对于程序的覆盖率以及本身的执行结果,应用于频谱定位,计算得到程序单元包含缺陷的可能性,通过排序、离散化与分组区分可疑程度,最后在开发工具上将可疑程度以可视化的方式实现。
申请公布号 CN106445801A 申请公布日期 2017.02.22
申请号 CN201610283644.5 申请日期 2016.04.27
申请人 南京慕测信息科技有限公司 发明人 陈振宇;刘子聪;宋硕;谢晓园;卢依宁
分类号 G06F11/36(2006.01)I 主分类号 G06F11/36(2006.01)I
代理机构 代理人
主权项 一种基于频谱定位及开发着色可视化的用于指导编程人员定位并修复软件缺陷的方法,其特征包括以下步骤:1)利用静态分析技术及工具对含缺陷软件进行分析,获取程序的静态结构,主要包括含有程序语句逻辑流向的控制流图,含有程序数据定义和使用的数据流图等,对程序进行静态建模,进而利用静态信息进行分析。2)对于包含缺陷程序进行动态分析:一方面利用基于Java语言的代码分析优化工具对程序进行插桩,向其中插入关键性支持性的服务代码,用于收集程序动态执行信息并加以分析。执行插入的程序代码可以收集执行单元测试用例所得到的对于程序代码的覆盖情况,即对于程序本身进行测试的完备度情况;另一方面对于程序单元进行测试所得到的数据信息也同样被记录下来,两者相结合构成程序的频谱信息,即最终用于可视化并指导开发人员进行缺陷定位与修复的信息。3)根据1)2)两个步骤与利用频谱公式对收集到的程序静态结构信息和程序的动态频谱信息进行分析计算。频谱公式经过计算后会得到程序单元的可疑值,代表了程序单元包含缺陷的可能性,可疑值越高,程序单元越有可能是包含缺陷的。4)利用3)中计算得到的可疑值进行排序与分组,筛选出可疑程度比较高的几组程序单元,按照一定的间隔区分可疑度,并且以红色底色标注可能包含缺陷的程序单元,程序单元的可疑程度越高,其被标注的红色的饱和度就越高,颜色就越深。5)除了对缺陷单元进行计算和可视化,该方法还包含了对于开发人员在进行缺陷定位与修复时候的动作的记录,为研究提供资料,也可以根据大部分开发人员的习惯或常见错误对开发人员给出一定的指导。
地址 210093 江苏省南京市鼓楼区青岛路32号南大科技园405室