一种软件故障定位工具的设计与实现文献综述

 2022-10-31 11:31:55
  1. 文献综述(或调研报告):

基于路径分析的软件故障定位文献综述

摘要:软件运行监控器监测出故障之后,软件故障定位非常困难。该文提出了双轨迹差异分析法,根据成功的运行和含有故障的运行之间的差异来进行故障定位。它采用程序谱来抽象表达程序执行轨迹,按照编辑距离度量来选取和含有故障的运行最近邻居的成功运行。通过序列间的最长共同子序列和最大稳定子序列集的计算,最终得到导致成功运行和失效运行之间差异的可疑故障语句集,并把它作为故障原因。经实验验证,和基于统计的方法结合大大减少了故障定位中代码审查的范围。

关键词:故障定位;轨迹;编辑距离;最大共同子序列

1 引言

故障定位,在软件的开发过程中和软件的正确性检验中被用于寻找软件中的缺陷,伴随着软件测试的各个阶段。软件测试在软件开发过程中耗费着大量的时间,而定位软件中的故障是软件测试中关键的环节,一个好的故障定位方法能够为定位故障节约大量的人力和财力,并提高软件的可靠性,所以设计一个好的软件故障定位方法的意义重大。

软件故障定位从定位的内容可以分为词法语法故障定位和逻辑性故障定位,其中词法语法的故障定位主要通过构建语法树来分析程序语言是否满足文法,这种方法用在编译前的检查。逻辑性故障是软件通过编译以后,通过获取测试用例的执行路径,定位那些输出结果不满足预期的软件故障,由于现在没有定位这类故障的成熟的商业化软件,这类故障主要是靠程序员手动调试,这就很依赖程序员的个人素质和经验,而且稳定性和可靠性很差,对于代码量很大并且逻辑复杂的软件,这类逻辑性故障就更难查找了。

对于含有逻辑性故障的软件,他们通常能够顺利的运行,不会出现崩溃的现象,他们给人的感觉好像是正常的,但他输出的结果实际是不符合预期的,或者说他没有按照设定的规则运行,这种故障往往与软件设计的逻辑有关,他不在于表面的代码,而在于代码之间的相互关系和相互影响,这种逻辑性故障往往修改方法多样,涉及到的代码块较多,错误也不一定发生在几行代码之间,所以不能采用类似词法语法故障定位的逐行代码的分析方法,而应该把测试用例和其对应的执行路径结合起来从整体上分析,定位这些故障。从而帮助程序员发现这些故障,提高寻找故障的效率。

2现状

当前市场上还没有这方面软件的流通,逻辑型故障定位的方法还处于实验室阶段,现有的一些研究成果也大多存在局限性,若使用单个方法进行定位难以满足各种各样的故障情况。

现在的基于程序谱的方法和双轨迹的方法都有很多研究者提出了不同的解决办法,但都存在弊端。

2.1 基于程序谱的故障定位技术

基于程序谱的故障定位技术我参考了很多论文,以下进行详述:

俞舜浩在《基于执行轨迹谱分段检测的软件故障定位方法》中提出了他的方法,该方法在已有基于ETS的故障定位方法的基础上引入分治策略,按照谓词分段的方法,把ETS逐步分段检测,从而逐步排除无故障的代码。此外,还提出一种新的故障可疑度函数,在故障检测的最后阶段进行综合分析,可最终有效定位故障。该方法耗时少,应用范围广,能快速缩减故障定位中代码审查的范围,经实验验证,是一种行之有效的软件故障定位方法。

剩余内容已隐藏,您需要先支付 10元 才能查看该篇文章全部内容!立即支付

以上是毕业论文文献综述,课题毕业论文、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。