基于遗传算法MC/DC覆盖的测试用例自动生成

来源 :中国航天第二研究院 航天科工集团第二研究院 | 被引量 : 0次 | 上传用户:seed_weed1
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
测试用例生成是软件测试的重要内容,随着现代软件系统日益复杂庞大,传统的搜索技术难以有效地应用于测试用例生成领域。遗传算法在解决大空间、非线性等高复杂度问题时,显示了独特的优势。因此,研究遗传算法与测试用例自动生成相结合的技术具有重要意义。  MC/DC(修正条件判定覆盖)是高强度的测试覆盖准则,在高可靠高安全的软件测试中经常使用,目前我国载人航天工程和大飞机机载软件的测试认证都明确提出了MC/DC的测试覆盖要求。而开展MC/DC覆盖测试的工作量大,需要有效的测试用例生成技术和工具进行支持。本文研究了遗传算法和测试用例自动生成的基本理论,深入分析了目前测试用例生成技术的覆盖准则和与之相适应的遗传算法适应度函数的构造中存在的局限性,重点以生成满足MC/DC的测试用例为目标,设计实现了基于遗传算法的MC/DC测试用例自动生成方法。  首先,深入研究了测试用例自动生成技术的相关理论,重点阐述了面向结构的测试用例自动生成技术,研究了遗传算法的基本原理和实施步骤,分析说明了遗传算法进行测试用例自动生成的可行性。  其次,研究了基于遗传算法的测试用例自动生成工作流程,同时,详细地分析了目前测试用例生成普遍使用的覆盖准则和与之相适应的遗传算法适应度函数的构造,深入分析了其中存在的两点不足,并对这两点分别提出相应的解决方案。  然后,着重阐述了应用遗传算法进行MC/DC测试用例自动生成的具体实现。主要有两个方面,一方面是通过对被测程序进行预处理提取相关有用信息,主要对被测程序自动进行词法语法分析,并且在条件判断和循环判断等插桩点进行适应度函数的自动插桩;另一方面是遗传算法的引入和对遗传算法的适应度函数构造方面进行的改进。首先给出了基于遗传算法的MC/DC测试用例自动生成流程。并获取MC/DC测试用例预期结果集,以此作为遗传算法实际运行的搜索目标。根据实际情况,确定了参数编码方式。在适应度函数的构造上,结合控制依赖法和数据依赖链接法思想,以传统分支适应度函数为基础,提出以获取直接或者通过控制依赖和数据依赖间接影响问题节点遍历的控制节点的方法来优化接近水平适应评价。随后,设计了选择策略和交叉、变异方法,完成了基本遗传操作。最后综合上述研究,给出了基于遗传算法的MC/DC测试用例总的适应度函数评价方法。  最后,将随机算法和遗传算法进行对比,得出遗传算法具有更好的搜索导向性;并通过比较本文的研究成果与使用传统适应度函数的遗传算法在基准程序上的运行结果,验证了本文算法的有效性及进步性,同时讨论了输入域空间对本文算法性能的影响。将本文算法应用于实际软件系统,得到了令人满意的效果。
其他文献
随着信息呈爆炸式增长,越来越多的公司和组织部署私有云系统来处理大数据。私有云大数据分析类应用的这种新型负载给体系结构设计带来了新的机遇和挑战。Benchmark是量化体系
随着信息科技的高速发展、“互联网+”时代的到来,网络上存储的数据越来越大,传统的存储方式已经不能满足需求,分布式文件系统成为主流。分布式文件系统将元数据和数据分开存储,
汉语的自然语言理解(NLU)技术在最近的十年中取得了长足的进步,然而这些研究主要是面向领域无关的基础性研究,虽然这些研究也是十分重要的,但是由于基础研究与现实应用之间存
全过程计算机辅助动画自动生成技术(简称动画自动生成技术)是一种新的基于人工智能的动画生成技术。手机3D动画自动生成系统将动画自动生成技术应用于手机短信领域,依据短信内
随着信息网络技术的发展,网络信息安全已成为维护国家安全和社会稳定的重要因素。使用国外软件由于可能存在后门问题,给我国的信息安全带来了巨大的隐患,因此我国大力发展国产基
中国的水产品总产量位居世界第一,水产品在人们的生活中作为极为重要的食物来源,扮演着重要的角色。目前水产品消费市场上的产品质量参差不齐,且缺乏有效的信息管理技术,一旦出现
随着互联网技术的发展,互联网已经成为人们生活的一部分,电子商务也成为了人们的主要消费方式之一。但是在互联网这样一个开放的网络环境中,对于电子商务等对信息安全特别敏感的
随着我国综合国力的增强以及对科技发展的日益重视,我国的科学技术研究事业进入了高速发展阶段。作为科技研究成果的重要载体和参考指标,科技文献的产生数量和质量也在急剧上升
作为波动光学领域的经典现象,衍射和干涉是光的波动性的主要标志之一,并广泛存在于彩色光盘、彩虹状的肥皂泡和光彩熠熠的蝴蝶等自然场景中。在计算机渲染的图像中加入这些效果
随着科技的发展以及人们生活水平的提高,计算机在人们生活和工作中越来越普及,并且扮演着非常重要的角色。对儿童进行计算机科学的教育也越来越受到国内外研究人员的关注。计算