论文部分内容阅读
航天软件是在航天产品中发挥重要作用的组成部分。由于工作环境的特殊性,它的质量非常重要。而软件测试是软件质量保证的重要环节。传统的调试通常是由测试人员手动进行,该过程非常耗时。因此本课题想要改进错误检测过程,从而大大降低软件测试成本。 信息流起源于程序编译技术,它与程序依赖分析有着很紧密的关系。本文主要研究基于动态信息流的缺陷定位技术,使其具有定位复杂缺陷的能力。同时提高软件缺陷定位的可靠性和有效性。 本文对现有的信息流进行了扩展。由于传统的信息流中,必须在源语句和目标语句中都有明确的对象,这就导致了在源和目标处的依赖关系是条件语句、返回语句和方法请求语句时,就不能捕获该依赖关系了。本文将定义使用对和分支覆盖引入到信息流中,这样它就能捕获上述的依赖关系了。 本文对经典方法的可疑度度量公式进行了改进。它引入了一个新的信息流可疑度计算公式,并通过取传统公式和新引入公式的算术平均值得到最终程序语句的可疑度。这可以解决传统的度量公式在某些情况下会将两个可疑度明显不同的语句计算得到相同可疑度值的问题。采用新方法后,可以显著提高缺陷定位的可靠性和精确性。 为了说明本文方法的有效性,在实验中我们将该方法应用于两个开源程序,并与语句覆盖、分支覆盖和定义使用对覆盖技术进行对比。实验结果表明,改进后的信息流覆盖技术要比语句覆盖技术和定义使用对覆盖技术更可靠、更精确;虽然某些缺陷上它的精确性不如分支覆盖技术,但是从统计学上看,它的精确性也还是要优于分支覆盖技术的。 实验结果表明,基于信息流的缺陷定位技术是一个有效的缺陷定位技术,它能有效并精确的定位软件中的复杂缺陷。如果将其应用于我们的软件测评工作,将能大大提高我们的工作效率。