【技术实现步骤摘要】
一种基于失效轨迹的程序错误定位方法
本专利技术属于软件程序错误定位检测
,具体涉及一种基于失效轨迹的程序错误定位方法。
技术介绍
软件系统规模的不断扩大和复杂度的日益增加给软件开发和调试技术提出了新的挑战。软件调试是提高软件质量的重要手段,也是软件开发生命周期中的一项重要任务。错误定位是软件调试中的关键步骤,然而实践表明依靠人工实现程序错误定位是一项十分枯燥且耗时耗力的工作。因此,为了有效提高软件调试效率,实现自动化的软件错误定位成为了学术界和工业界共同追求的目标。近些年,学者们提出了许多实现自动化软件错误定位的方法,基于频谱的软件错误定位(Spectrum-basedfaultlocalization,SFL)是其中具有代表性的一类方法。SFL通过统计分析被测程序在成功和失败测试用例中的代码覆盖信息来探索相应代码的出错可能性。具体地,SFL在实现错误语句定位的过程中,需要执行充分数量的测试例,分析对应测试例执行的程序频谱,通过构造特定的统计模型来计算语句错误的可疑度;最后,软件维护人员再根据可疑度从大到小按序排查出错误语句。SFL方法的应用通常基于假设如下 ...
【技术保护点】
一种基于失效轨迹的程序错误定位方法,包括如下步骤:(1)统计被测程序中各条语句在每组测试用例下的语句覆盖情况,得到对应的语句覆盖矩阵;(2)统计每组测试用例在被测程序运行下的执行结果:正确或错误;以错误的测试用例所执行覆盖的语句集对应作为失效轨迹;(3)应用失效轨迹效用评价函数计算各个失效轨迹的效用值,以效用值最小的失效轨迹作为关键失效轨迹;(4)以关键失效轨迹作为错误排查范围,按照语句可疑度降序逐条进行错误定位。
【技术特征摘要】
1.一种基于失效轨迹的程序错误定位方法,包括如下步骤:(1)统计被测程序中各条语句在每组测试用例下的语句覆盖情况,得到对应的语句覆盖矩阵;(2)统计每组测试用例在被测程序运行下的执行结果:正确或错误;以错误的测试用例所执行覆盖的语句集对应作为失效轨迹;(3)应用失效轨迹效用评价函数计算各个失效轨迹的效用值,以效用值最小的失效轨迹作为关键失效轨迹;(4)以关键失效轨迹作为错误排查范围,按照语句可疑度降序逐条进行错误定位。2.根据权利要求1所述的程序错误定位方法,其特征在于:所述语句覆盖情况的定义为:以某一测试用例作为被测程序的输入,若被测程序对于该测试用例的整个运行过程中执行了某一条语句,则该语句在该测试用例下的语句覆盖情况表示为1,否则表示为0。3.根据权利要求1所述的程序错误定位方法,其特征在于:所述语句覆盖矩阵的维度为m×n...
【专利技术属性】
技术研发人员:舒挺,王磊,黄明献,
申请(专利权)人:浙江理工大学,
类型:发明
国别省市:浙江,33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。