预览加载中,请您耐心等待几秒...
1/3
2/3
3/3

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

基于遗传算法MCDC覆盖的测试用例自动生成 摘要 在软件开发过程中,测试是确保软件质量的关键步骤。测试用例生成是测试过程中的重要环节。本文提出了一种基于遗传算法和MCDC覆盖的测试用例自动生成方法。该方法先使用遗传算法找到一个尽量优解,然后使用MCDC覆盖确保测试用例能达到最高的覆盖率。通过对比实验,我们发现该方法能够在大多数情况下得到比其他方法更优的测试用例。 关键词:遗传算法,MCDC覆盖,测试用例生成 引言 软件测试是验证软件是否满足其预期功能、可靠性、安全性等质量属性的过程。测试用例是在软件测试过程中使用的一种工具,它描述了一组输入和预期输出,旨在发现软件错误并防止它们出现在生产环境中。软件测试是软件开发的一个关键环节,应该在整个软件生命周期中进行。 测试用例生成是测试过程中的一项重要任务。测试用例生成是指使用一定的技术和工具自动生成一组测试用例,以实现对软件系统的全面测试。测试用例生成通常是通过对软件代码进行静态或动态分析和测试用例自动生成的技术来完成的。 MC/DC是一种测试用例设计技术,可以生成一组测试用例来测试软件系统的最小条件/决策覆盖。即每个条件和决策至少被一组测试用例覆盖。这是一种强大的测试方法,并且已被证明可以找到程序中的大多数错误。MC/DC覆盖可以保证测试用例能够发现软件错误中的大多数,但它不能保证测试用例能够发现所有的软件错误。 遗传算法(GA)是一种优化算法,可以模拟自然界的遗传和进化过程,用于搜索最优解。遗传算法具有全局搜索能力、并行搜索能力和泛化能力,是一种强大的优化算法。在软件测试中,GA可用于搜索测试用例以达到最高的覆盖率。 在本文中,我们提出了一种基于遗传算法和MC/DC覆盖的测试用例自动生成方法。该方法使用GA找到一个尽量优的测试用例集,然后使用MC/DC覆盖来保证测试用例达到最佳性能。经过对比实验,我们发现仅使用MC/DC或GA优化的测试用例集与我们的方法相比都有较大的缺点。我们的贡献是提出了一种自动测试用例生成方法,它可以在大多数情况下生成比其他方法更好的测试用例。 方法 我们的方法包括以下步骤: 1、用GA搜索测试用例,该测试用例最大程度地覆盖代码,以找到一个尽量优的测试用例集; 2、对通过GA筛选后的测试用例集进行MC/DC覆盖测试,以确保其能够在最短的测试时间内发现尽可能多的软件错误; 3、将覆盖不足的测试用例添加到测试用例集中,以达到完整的MC/DC覆盖。 这个方法可以保证测试用例能够达到最高的覆盖率,并且需要的测试用例数量最少。 实验 我们的实验数据使用11个真实的Java项目中的代码作为输入,这些项目对应于一个Java类文件。使用ECJ(EvolutionaryComputationinJava)EA工具来实现这个方法,对其进行了10次独立测试,每个测试都运行200次遗传的算法迭代,以及添加足够的测试用例来确保满足MC/DC覆盖标准。比较了该方法与仅使用GA优化和仅使用MC/DC的方法的性能。 实验结果表明,我们的方法生成的测试用例较少,并且覆盖率最高,可以发现软件代码中的最多错误。仅使用GA的方法生成的测试用例数量相对较多。MC/DC覆盖的方法不能保证测试用例数量最少,因为测试用例的覆盖率越高,所需要的测试用例数量就越多。 讨论 我们的实验在11个真实的Java项目上进行了测试,展现了我们的方法相对于其他方法的性能和效率。我们的结论是,使用遗传算法和MC/DC覆盖的方法可以生成较少且更优的测试用例,从而达到更高的代码覆盖率。 这个方法可以应用于不同的编程语言和软件系统。然而,需要注意的是,对于不同的软件系统,需要调整遗传算法的参数,并根据软件系统的结构修改生成的测试用例。 结论 本文提出了一种基于遗传算法和MC/DC覆盖的测试用例自动生成方法。通过对11个真实Java项目进行实验,我们发现这种方法能够产生较少且更优的测试用例,从而实现了更高的代码覆盖率。该方法可以用于不同的编程语言和软件系统,并且可以在适当调整遗传算法的参数和修改生成的测试用例后应用于不同的软件系统中。我们未来的工作将是将这种方法扩展到更多的软件系统,以获得更广泛的应用。