一种基于失效轨迹的程序错误定位方法技术

技术编号:15704803 阅读:110 留言:0更新日期:2017-06-26 09:45
本发明专利技术公开了一种基于失效轨迹的程序错误定位方法,其通过挑选一个合适的失效测试用例的执行谱即失效轨迹,再根据已有SFL方法的特定模型计算出的语句可疑度序列在失效轨迹中投影,按语句可疑度大小从大到小依次排查错误语句。本发明专利技术通过失效轨迹效用函数来评测失效轨迹,从所有的失效轨迹中选取函数值最小的失效轨迹作为关键失效轨迹,将传统错误定位报告中的语句可疑度排序序列投影到关键失效轨迹上,重构新的程序实体可疑排查序列,并根据新的程序实体序列按可疑度从高到低来检查程序实体,最终提高错误定位的效果。实验结果表明,相较于传统的基于程序频谱软件错误定位方法,本发明专利技术方法在错误定位效率方面有显著的提高。

【技术实现步骤摘要】
一种基于失效轨迹的程序错误定位方法
本专利技术属于软件程序错误定位检测
,具体涉及一种基于失效轨迹的程序错误定位方法。
技术介绍
软件系统规模的不断扩大和复杂度的日益增加给软件开发和调试技术提出了新的挑战。软件调试是提高软件质量的重要手段,也是软件开发生命周期中的一项重要任务。错误定位是软件调试中的关键步骤,然而实践表明依靠人工实现程序错误定位是一项十分枯燥且耗时耗力的工作。因此,为了有效提高软件调试效率,实现自动化的软件错误定位成为了学术界和工业界共同追求的目标。近些年,学者们提出了许多实现自动化软件错误定位的方法,基于频谱的软件错误定位(Spectrum-basedfaultlocalization,SFL)是其中具有代表性的一类方法。SFL通过统计分析被测程序在成功和失败测试用例中的代码覆盖信息来探索相应代码的出错可能性。具体地,SFL在实现错误语句定位的过程中,需要执行充分数量的测试例,分析对应测试例执行的程序频谱,通过构造特定的统计模型来计算语句错误的可疑度;最后,软件维护人员再根据可疑度从大到小按序排查出错误语句。SFL方法的应用通常基于假设如下:某代码出现在错误执本文档来自技高网...
一种基于失效轨迹的程序错误定位方法

【技术保护点】
一种基于失效轨迹的程序错误定位方法,包括如下步骤:(1)统计被测程序中各条语句在每组测试用例下的语句覆盖情况,得到对应的语句覆盖矩阵;(2)统计每组测试用例在被测程序运行下的执行结果:正确或错误;以错误的测试用例所执行覆盖的语句集对应作为失效轨迹;(3)应用失效轨迹效用评价函数计算各个失效轨迹的效用值,以效用值最小的失效轨迹作为关键失效轨迹;(4)以关键失效轨迹作为错误排查范围,按照语句可疑度降序逐条进行错误定位。

【技术特征摘要】
1.一种基于失效轨迹的程序错误定位方法,包括如下步骤:(1)统计被测程序中各条语句在每组测试用例下的语句覆盖情况,得到对应的语句覆盖矩阵;(2)统计每组测试用例在被测程序运行下的执行结果:正确或错误;以错误的测试用例所执行覆盖的语句集对应作为失效轨迹;(3)应用失效轨迹效用评价函数计算各个失效轨迹的效用值,以效用值最小的失效轨迹作为关键失效轨迹;(4)以关键失效轨迹作为错误排查范围,按照语句可疑度降序逐条进行错误定位。2.根据权利要求1所述的程序错误定位方法,其特征在于:所述语句覆盖情况的定义为:以某一测试用例作为被测程序的输入,若被测程序对于该测试用例的整个运行过程中执行了某一条语句,则该语句在该测试用例下的语句覆盖情况表示为1,否则表示为0。3.根据权利要求1所述的程序错误定位方法,其特征在于:所述语句覆盖矩阵的维度为m×n...

【专利技术属性】
技术研发人员:舒挺王磊黄明献
申请(专利权)人:浙江理工大学
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1