4.3.1 实验过程 14
4.3.2 实验结果分析 18
结 论 23
致 谢 24
参考文献25
1. 绪论
21世纪是一个信息的时代,是一个互联网极度膨胀的时代,我们的身边无时无刻不环绕着纷繁复杂的计算机软件和网络信息。统计显示,软件的整个生命周期中,后期的运文占了极大部分比重,而如何减少后期运文的代价并减少软件生命周期中各时间段的安全隐患,很大一部分的工作努力需要着落在前期的软件测试上,一些健全的、完善的、科学的软件测试方法将直接决定一个软件的市场竞争力和实用价值。
提高软件质量的最重要的途径,就是在软件未发行使用前,对其进行大规模的、科学的、正确的测试,以发现软件本身存在的缺陷和错误。根据一些相关的统计资料,一般的,软件测试占了开发成本的50%以上。显而易见地,如果将软件测试环节自动化,甚至只需要某些环节的部分自动化,便可以减少人工成本、缩短软件的开发周期,从而提高软件的市场竞争力。而软件测试自动化的核心,是采用有针对性强的、有效的方法和策略,在短时间内生成高效的测试用例,用来符合测试充分性准则,亦即在输入空间内,寻找满足一定需求的数据。这属于软件测试中的动态测试的环节。由此可见,提高解决测试用例自动化的核心问题方法的效率势在必行。
1.1 立题背景
遗传算法(Genetic Algorithm)的概念和思想是由美国J.Holland教授提出的,是基于生物学进化和遗传变异机制而产生的一种全局随机搜索算法。它可以用于解决传统方法难以解决的、非线性的、复杂的实际优化问题。运用遗传算法生成软件测试数据,在近年来软件工程研究的实践结果来看,它是非常有潜力的。遗传算法通过群体中个体间互相的基因交叉重组以及个体内部的概率性基因变异,得到更多的、复杂丰富的多个个体,以便在其中找到更好的个体。它有效地避免了种群过早收敛的问题,又能保留部分局部最优个体,加快进化的速度。更具有现实意义的是,算法过程中评定个体优劣的标准“天择”,是通过遗传算法的适应度函数来进行判断的,这也使得测试用例的取样具有了明确的方向性。
目前,遗传算法被运用于软件测试数据生成中的事例越来越普遍。我们可以通过对被测程序进行静态的分析,确定被测程序的路径,针对不同路径的情况,通过遗传算法来自动生成测试用例,使得测试用例对程序实现路径覆盖。然而从现实的角度来讲,当问题规模变大到一定程度时,实际操作中实现覆盖所有路径基本是不可能的。因此我们可以设定适当的评判标准,使得测试路径尽可能多地对路径进行覆盖,与此同时,减少相同路径上的测试用例的数量,从而提高测试的效率。
1.2 研究现状
1.3 论文的结构
本文作者所做的主要的工作是,选取软件测试中的路径覆盖率作为测试目标,对数据值型参数进行编码,并选取恰当的适应值函数以及遗传算子操作,编程实现了基于遗传算法的测试用例自动生成的原型系统。最后,通过实验分析,证明本课题所采用的算法在输出测试数据的准确性以及覆盖尽量多路径所需的测试数据的数量,都优于其它方法。
本论文的主要结构如下:
第一章:介绍选题的意义,国内外的研究现状,本文主要的研究内容。
第二章:简要介绍软件测试技术,详细介绍测试数据自动生成技术,并阐述将遗传算法与软件测试相结合的优势之所在。 基于遗传算法的测试用例自动生成技术研究(2):http://www.youerw.com/jisuanji/lunwen_19222.html