[发明专利]一种基于随机森林模型的程序错误定位方法在审
申请号: | 202010532370.5 | 申请日: | 2020-06-12 |
公开(公告)号: | CN111880957A | 公开(公告)日: | 2020-11-03 |
发明(设计)人: | 舒挺;潘抱一 | 申请(专利权)人: | 浙江理工大学 |
主分类号: | G06F11/07 | 分类号: | G06F11/07;G06F11/36;G06K9/62;G06N20/00 |
代理公司: | 杭州天勤知识产权代理有限公司 33224 | 代理人: | 王琛 |
地址: | 310018 浙江省杭州市*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 随机 森林 模型 程序 错误 定位 方法 | ||
本发明公开了一种基于随机森林模型的程序错误定位方法,通过分析单错误版本DFEB所包含的特征,对特征值进行特征衍生和特征筛选,该过程可以挑选出有利于区分包含错误语句的DFEB和不包含错误语句的DFEB特征值,再通过逻辑回归和随机森林训练出两个模型,计算出每个DFEB的可疑度值,用8个经典的可疑度值计算公式获取每条语句的可疑度值,在块内根据语句的可疑度值进行排序,生成错误定位报告。本发明依赖DFEB块,在传统SFL方法4个因子的基础上,引入了DFEB长度这一新特征,并对这5个特征进行特征衍生和特征筛选,对随机森林模型进行训练用以估算DFEB的错误可疑度,能够很大幅度地提高错误定位的精度和效率。
技术领域
本发明属于软件程序错误定位检测技术领域,具体涉及一种基于随机森林模型的程序错误定位方法。
背景技术
软件规模和复杂程度的与日俱增给软件开发和调试技术带来了极大的挑战,面对软件开发过程中如影相随的软件缺陷问题,软件测试是提升其质量和可靠性的重要技术手段,软件测试作为一种确保和提高软件质量的方式,在软件开发生命周期中发挥着越来越重要的作用。调试是软件测试过程的一部分,涉及到测试中的程序故障定位和纠正代码错误;软件故障定位主要是识别故障的特定位置,被认为是调试中最昂贵,最耗时的活动。另外,特别是对于大型程序,由于测试人员的经验和知识的限制,手动定位其错误代码成为一个具有挑战性的问题。
为了缓解这个问题,已经提出了许多方法应用于学术界和工业中的自动故障定位,同时提高了定位故障的效率和有效性。在提出的软件故障定位方法中,基于频谱的软件故障定位(Spectrum-based Fault Localization,SFL)是一种典型的轻量级自动诊断技术,通过降低调试效率,相对更高效;程序频谱是执行配置文件,详细说明了运行期间的动态程序行为,它可用于指示程序的哪些组件,例如语句、条件分支和方法,在特定的环境中被执行的情况。
直观地,在失败测试例中频繁执行的代码比在成功测试例中执行的代码更可疑;换句话说,这些可疑代码几乎就是软件运行失败的根本原因。通过分析成功和失败运行的程序频谱的差异,SFL可以帮助测试人员定位到软件失效的可疑代码,减少对错误代码的检索量,其具体的过程为:为了识别程序的错误部分,SFL首先需要设计和运行足够数量的测试用例(成功和失败的测试用例);然后,从成功和失败的测试用例中提取出程序频谱,并分析每条语句每次运行的代码覆盖率;接下来,使用定义的可疑度值计算公式获取每条语句的可疑度值。通过上述步骤,我们可以对每条语句按照可疑度值进行排序,进行检查;一项研究表明,SFL方法平均只需检查20%的程序代码就可以精确定位到程序错误所在的位置。
对于基于SFL的错误定位方法,可疑度公式对错误定位的准确性具有决定性影响,因此早期的研究提出了各种可疑度公式,例如Tarantula、Ochiai、DStar等,用于探索最优方法;然而,这些有价值的尝试表明,每种可疑度公式在不同的应用场景下都有其自身的优势。研究人员还发现,在不同的颗粒度级别上使用SFL错误定位技术会影响给定程序错误定位的效率,例如语句、方法、基本块;由于一些具有高可疑度值的正确语句可能被排除在高可疑代码块(方法或基本块)之外,这些语句的存在将影响SFL方法的错误定位能力。
发明内容
为了进一步提升SFL方法的错误定位精度和性能稳定性,本发明在基于动态程序失效执行块(Dynamic Failed Execution Block,DFEB)技术的基础上,创新性地提出了一种基于随机森林模型的程序错误定位方法,该方法依赖DFEB块,在传统SFL方法4个因子的基础上,引入了DFEB长度这一新特征,并对这5个特征进行特征衍生和特征筛选,对随机森林模型进行训练用以估算DFEB的错误可疑度,能够很大幅度地提高错误定位的精度和效率。
一种基于随机森林模型的程序错误定位方法,包括如下步骤:
(1)统计软件程序中各条语句在每组测试用例下的语句覆盖情况,得到对应的语句覆盖矩阵;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江理工大学,未经浙江理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010532370.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:基于风向预测的新型偏航控制方法
- 下一篇:发光二极管外延片及其制备方法