Evaluation of the current fault localization approaches based on perfect understanding fault hypothesis, that is lack of programmers in understanding the context of suspicious statements, by observing suspicious set of statements contain statements can determine fault and the fault can be effectively repaired. This assumption makes the existing fault localization approaches has limitations. This information is subject to a variety of manual debugging approaches for analysis of interest, using the correlation artificial debugging information concerned with program failure understanding between the failure to carry out the removal of a perfect understanding of the assumed fault location methods and their effectiveness evaluated the study. The main contents include: build a fault context model, evaluate the effectiveness of fault location approaches and fault context model based fault location approaches. Interdependent relationship between the fault context model to build three research topics provide input for fault location approaches, both of which together provide input to evaluate the effectiveness of fault location approaches. Research topics for each application have developed viable technical solutions.
目前的故障定位方法的评价基于完美故障理解假设,即:程序员在缺乏对可疑语句上下文的理解,通过观察可疑语句集就可以判断出包含故障的语句并能够有效地进行故障修复。这一假设使得现有故障定位方法具有局限性。本课题对各种人工程序调试方法所关注的调试信息进行分析,利用人工程序调试所关注的信息与程序故障理解之间的相关性,开展去除完美故障理解假设的故障定位方法及其有效性评价研究。主要研究内容包括:故障上下文模型的构建、基于故障上下文模型的故障定位方法和故障定位方法的有效性评价。课题的三个研究内容之间具有相互依赖关系,故障上下文模型的构建为故障定位方法提供输入,这两者共同为故障定位方法的有效性评价提供输入。课题申请为每项研究内容都制定了可行的技术方案。
据英国剑桥大学2013年发布的研究报告表明,全世界工业界每年花费在软件调试上的费用高达3120亿美元左右。软件调试包括四项核心工作:故障发现(fault detection)、故障定位(fault localization)、故障理解(fault comprehension)和故障修复(fault fixing)。其中故障定位是软件调试过程中成本最高的一项工作。.现有软件故障自动定位方法的主要不足在于:现有方法得到的定位报告与程序员在故障理解和修复过程中所需信息不一致。出现上述问题的根源是现有的自动化故障定位方法基于完美故障理解假设,即:程序员在缺乏对可疑语句上下文的理解,通过观察可疑语句集就可以判断出包含故障的语句并能够有效地进行故障修复。Parnin等人对完美故障理解假设提出了质疑:程序员仅知道可疑语句集合,很难理解故障上下文并顺利进行故障修复。他们甚至指出根本不存在完美故障理解。.正是因为完美故障理解假设的存在,使得现有软件故障定位工作存在以下一些局限:.(1)完美故障理解假设使得自动故障定位方法与程序员调试的实际情形脱节,程序员在得到故障定位报告后,往往很难立即找到故障并修复,这导致自动故障定位方法产生的效果不一定比人工程序调试好。.(2)完美故障假设使得评价自动化故障定位方法的有效性存在问题,该假设没有从程序员或用户的角度去评价自动化故障定位方法的有效性,使得现有的自动化故障定位方法的有效性评价缺乏说服力。.因此,本课题从去除完美故障理解假设这一前提出发,寻找更丰富以及更接近程序员调试需求的故障上下文信息,并研究去除完美故障假设的故障定位方法。针对目前自动化故障定位技术中缺乏关于故障理解的研究,本课题提出基于用户行为的软件调试分析方法。利用Eclipse插件实现用户调试行为信息的监控与收集,并结合现今较流行的信息检索方法,对收集到的调试信息进行识别,得到调试过程中的关键信息。为改进故障定位技术,本课题将推荐系统的思想应用到软件调试领域,提出辅助代码推荐方法。基于用户行为的软件调试分析方法输出的关键信息与当前调试用户的调试信息会作为辅助代码推荐方法的输入,利用辅助代码推荐算法,生成Eclipse插件,在用户调试过程中,动态给出推荐。推荐信息会在用户需要时以弹框的形式反馈到用户的集成开发环境中。同时,为了评估本课题所研究方法的有效性,采用对比实验的方式验证了针
{{i.achievement_title}}
数据更新时间:2023-05-31
玉米叶向值的全基因组关联分析
正交异性钢桥面板纵肋-面板疲劳开裂的CFRP加固研究
硬件木马:关键问题研究进展及新动向
基于SSVEP 直接脑控机器人方向和速度研究
小跨高比钢板- 混凝土组合连梁抗剪承载力计算方法研究
基于故障模拟的软件故障检测方法研究
支持软件可信演化的故障定位研究
基于演化切片的软件故障定位技术研究
面向Bug报告的软件故障重现方法研究