基于统计分析的弱变异测试可执行路径生成
变异测试是一种面向缺陷的软件测试技术,然而高昂的测试代价,影响了其在实际程序测试的应用。 Papadakis 等人将某一程序的弱变异测试问题,转化为另一程序的变异语句真分支覆盖问题,以期采用已有的分支覆盖方法,生成变异测试数据。但是,上述方法使得转化后程序包含大量的变异分支,增加了分支覆盖测试数据生成的难度。如果采用合适的方法,约简转化后程序中包含的变异分支,并依所属的路径,对约简之后的变异分支分组,那么,将能够利用已有的路径覆盖测试方法,生成高质量的变异测试数据,从而提高弱变异测试的效率。但是,如何基于某一程序和变异体,生成可执行路径,至今缺乏有效的方法。鉴于此,文中通过考察变异语句真分支之间的相关性,提出了一种用于弱变异测试的可执行路径生成方法,使得覆盖这些路径的测试数据,能够杀死所有的变异体。该方法首先考察变异语句真分支之间的占优关系,约简被占优的变异分支,从而减少变异分支的数量;然后,将非被占优的变异分支插入到该程序,转化为另一被测程序,并基于转化之后的程序,考察同一语句形成的多个变异分支的相关性;通过组合相关变异分支,形成新的变异语句真分支;接着,利用被测语句与新变异语句真分支的相关性,生成包含新变异语句真分支和被测语句的可执行子路径;最后,采用统计分析,基于子路径之间的执行关系,构建并约简相关矩阵,将相关的子路径组合,生成一条或多条可执行路径。将所提方法应用于9个基准和工业程序测试中,并与传统方法进行了比较。实验结果表明,所提方法生成了为数较少的可执行路径,且运行时间短;更重要的是,这些可执行路径能够覆盖所有的变异分支。此外,所提方法涉及的样本容量,对生成的可执行路径数有一定的影响,但对程序的运行时间影响较小。
变异测试、弱变异测试、变异分支、路径覆盖、可执行路径
39
TP311(计算技术、计算机技术)
国家“九七三”重点基础研究发展规划项目基金2014CB046306-2;国家自然科学基金61375067,61203304,61573362资助.
2016-11-30(万方平台首次上网日期,不代表论文的发表时间)
共17页
2355-2371