基于遗传算法的线性独立路径覆盖测试用例自动生成方法研究

来源 :中国航天第二研究院 航天科工集团第二研究院 | 被引量 : 0次 | 上传用户:swrthy
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
软件测试是保障软件质量的重要手段。传统的手工测试存在效率低、耗费人力和时间资源、无法有效量化管理等缺点,自动化测试在软件测试中所占比重日益增加。测试自动化就是希望能够通过自动化测试工具或其他手段,按照测试工程师的预定计划进行自动测试,目的是减轻手工测试的劳动量,从而达到提高软件质量的目的。测试数据自动生成问题是软件测试自动化中的一个基本问题。高效自动地生成满足测试需要的测试用例,是提高软件测试工作效率的重要手段。  在面向路径的测试用例生成问题中,路径覆盖是一种非常苛刻的覆盖准则,测试人员往往只能根据一定的准则对全路径集合的某个有限子集进行测试。线性独立路径覆盖测试就是一种对全路径集合的一个有限子集进行测试的方法。传统方法通过程序得出程序的结构图,根据结构图确定程序的圈复杂度,然后再根据结构图和圈复杂度求出程序的一组线性独立路径,最后分别针对线性独立路径组中的每条路径求出相应的测试用例。这种传统方法没有运行被测程序,是一种静态的方法,由于机械地将源代码表达为有向图和程序路径,掩盖了代码中的逻辑信息,通过结构图得到的圈复杂度可能比程序实际运行时的圈复杂度大,得到的线性独立路径在程序实际运行中由于存在相互矛盾的语义依赖关系有些是不可达的,也就无法生成相应的测试用例。  论文提出了一种生成线性独立路径覆盖测试用例的动态算法,其基于遗传算法,动态运行源程序,以路径向量矩阵秩的大小、离未经过分支的距离来构造适应度函数,通过进化逐渐逼近程序的实际圈复杂度,直接得到满足线性独立路径覆盖率为百分之百的用例集合,而且是一个最小集合,不存在传统算法的不可达路径问题。另外,不同于以往对遗传算法的应用,文中动态算法针对线性独立路径问题的特殊性,种群中个体的染色体长度不统一,每个个体的染色体长度随着进化逐渐增加,在交叉和变异操作中将染色体划分为需要保护的部分和需要进化的部分,交叉和变异只针对需要进化的部分。文中最后对算法进行了实例验证,结果表明算法能够正确、有效地生成满足线性独立路径覆盖率为百分之百的用例集合。
其他文献
本报告包含了我在中国科学院数学与系统科学研究院系统所做博士后期间(2002.8-2004.8)所做的工作,其中主要有无三角形图的可选择性,点色数与列表点色数相等图的性质以及唯一列
本报告主要讨论临界点理论在非线性椭圆方程边值问题中的应用。我们运用非线性分析的方法对三类边值问题进行了研究,主要讨论解的存在性及多解性,所得结果都是目前最新的结果。
学位
学位
哈密顿系统周期解的Maslov-型指标理论是研究哈密顿系统的重要工具,在研究哈密顿系统的周期解的多解性及稳定性方面的作用更是不可替代的,这一理论直接推动了一批重要猜想的发
学位
学位
学位
学位
开展保持共产党员先进性教育活动,是新世纪新阶段加强和改进党的建设的基础性工程,是全面贯彻落实“三个代表”重要思想的重要载体。我认为要搞好以学习实践“三个代表”重