[发明专利]一种基于崩溃栈数据的软件缺陷代码定位方法在审
申请号: | 201510714252.5 | 申请日: | 2015-10-28 |
公开(公告)号: | CN105224463A | 公开(公告)日: | 2016-01-06 |
发明(设计)人: | 倪超;姜承祥;顾庆;陈道蓄 | 申请(专利权)人: | 南京大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 江苏圣典律师事务所 32237 | 代理人: | 贺翔 |
地址: | 210008 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 崩溃 数据 软件 缺陷 代码 定位 方法 | ||
技术领域
本发明涉及一种基于崩溃栈数据的软件缺陷代码定位方法,属于软件测试维护技术领域。
背景技术
计算机软件在开发和维护过程中不可避免地产生软件缺陷,缺陷定位是软件调试过程中一件耗时耗力的工作,对大规模软件系统更是如此。软件缺陷定位一直是软件工程研究领域中的热点问题之一。缺陷定位利用代码执行信息和缺陷(问题)报告,预测缺陷代码的可能范围,辅助开发人员找到缺陷位置。当前软件系统规模越来越大,代码文件越来越多,根据缺陷报告内容,从海量的代码文件中定位到缺陷代码的过程可谓是大海捞针。此外,在软件开发周期中,庞大的软件规模和有限的开发和测试成本之间也形成反差。
目前缺陷代码定位仍然以人工定位和经验判定为主,多利用交互式的调试工具,需要大量人工干预,定位效率低,耗费大量时间和成本,且不可重复,难以满足和适应大规模软件系统的调试需求。近年来,研究者提出一些自动缺陷代码定位方法,但是这些方法多需要获取软件执行过程的动态信息,如代码覆盖数据和执行轨迹等,适用于小范围语句级的软件缺陷定位;尚不能满足大规模软件系统在函数和过程级的缺陷定位要求。
发明内容
针对上述技术问题,本发明所要解决的技术问题是提供一种基于崩溃栈数据的软件缺陷代码定位方法,应用机器学习技术,能够快速定位软件中包含缺陷的代码单元,有效提高软件代码修复的工作效率。
本发明为了解决上述技术问题采用以下技术方案:本发明设计了一种基于崩溃栈数据的软件缺陷代码定位方法,包括如下步骤:
步骤001.收集软件系统的历史崩溃栈数据和历史代码维修记录,并分别针对各个历史崩溃栈数据,获得历史崩溃栈数据所对应的各个历史崩溃代码单元,构成所有历史崩溃栈数据所对应的历史崩溃代码单元集合,并进入步骤002;
步骤002.分别针对历史崩溃代码单元集合中的各个历史崩溃代码单元,获得历史崩溃代码单元的各个预设特征指标的特征值;然后分别针对各个历史崩溃代码单元,将历史崩溃代码单元转化为其所对应各个预设特征指标的特征值组成的特征向量,获得各个历史崩溃代码单元所分别对应的特征向量,并进入步骤003;
步骤003.根据历史代码维修记录,结合各个历史崩溃代码单元所分别对应的特征向量,分别判断各个历史崩溃代码单元是否包含缺陷;然后针对包含缺陷的各个历史崩溃代码单元,获得由该各个历史崩溃代码单元所对应特征向量组成的特征向量矩阵,构成训练集,并进入步骤004;
步骤004.应用训练集,针对预设分类器进行训练,获得经过训练的分类器,并进入步骤005;
步骤005.针对各个目标崩溃栈数据,获得各个目标崩溃栈数据分别所对应的各个目标崩溃代码单元,构成所有目标崩溃栈数据所对应的目标崩溃代码单元集合,并进入步骤006;
步骤006.分别针对目标崩溃代码单元集合中的各个目标崩溃代码单元,获得目标崩溃代码单元的各个预设特征指标的特征值;然后分别针对各个目标崩溃代码单元,将目标崩溃代码单元转化为其所对应各个预设特征指标的特征值组成的特征向量,获得各个目标崩溃代码单元所分别对应的特征向量,构成目标预测集,并进入步骤007;
步骤007.采用经过训练的分类器,针对目标预测集进行预测,预测各个目标崩溃代码单元是否包含缺陷,分别确定各个目标崩溃栈数据中包含缺陷的各个最终目标崩溃代码单元。
作为本发明的一种优选技术方案:所述步骤007之后还包括如下步骤008:
步骤008.根据历史代码维修记录,针对各个最终目标崩溃代码单元进行评价。
作为本发明的一种优选技术方案:所述步骤008具体包括如下步骤:
步骤00801.针对各个最终目标崩溃代码单元,分别获得最终目标崩溃代码单元的各个预设缺陷倾向指标的指标值xi,并进入步骤00802;其中,1≤i≤I,I为预设缺陷倾向指标的个数;
步骤00802.根据如下公式,针对各个最终目标崩溃代码单元,分别获得各个最终目标崩溃代码单元的缺陷倾向评分Score,并进入步骤00803;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510714252.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:新型钣金件冲压模具
- 下一篇:一种带上压板的冲压模具
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置