基于蚁群算法软件测试用例生成方法研究.docVIP

基于蚁群算法软件测试用例生成方法研究.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于蚁群算法软件测试用例生成方法研究

基于蚁群算法软件测试用例生成方法研究   摘 要:在相关的调查中,软件测试占软件开发总成本的一半左右。此外,软件测试以及软件测试用例生成,是软件工程的重点和难点。所以,减少软件测试的成本是非常必要的。随着进化算法被引入到增强测试覆盖率中来,测试的代价也在逐步降低。提出了一种新的软件测试用例生成方法,该方法结合蚁群算法,在提高测试覆盖率的同时,成功降低了软件测试的代价。通过实验发现本文所提出的方法效果较好。??   关键词:蚁群算法;软件测试;变异测试??   中图分类号:TP312 文献标识码:A 文章编号:1672-7800(2011)03-0073-02?お?   ??   作者简介:邱菊(1984-),女,江苏南京人,硕士,南京航空航天大学计算中心助理工程师,研究方向为软件工程。      0 引言??   本文中引入元启发式算法,结合蚁群搜索算法和变异分析来生成高质量的软件测试用例。因为变异分析及其相对应的测试输入数据的生成有难度,所以变异测试目前使用范围相对较小。??   重点在于自动生成测试输入数据,最早提出使用变异分析来生成测试输入数据的是奥法特,他在博士论文中提出使用变异测试。该项技术被称为基于约束的测试数据生成技术(简称CBT),如果一个测试用例能够满足下面三个条件,那么它就能够消除一个变异体。第一个条件,也称为可达到性条件,必须能达到这个变异体程序;第二个条件,也称为必要条件,它要求变异程序的执行结果与原始程序的执行结果有区别;第三个条件,也称为充分条件,通过变异体中与原始程序不一样的部分来产生错误的输出。由于基础的搜索进程的缺陷,该测试技术有几个缺点。为了克服CBT的这些问题,奥法特又提出了一种新的方法――动态范围缩减(简称DDR),它的基本原理与CBT是类似的,与CBT不同的是,它增加了一个后退搜索进程。本文中引入进化方法来生成消除变异体的测试用例。??   如上面所描述,采用基于蚁群搜索算法的元启发式算法来解决最小化问题。原因如下:第一,对于基于覆盖率的测试来说,进化算法是生成软件测试数据的恰当方法;第二,从本质上来说,蚁群算法是以一种平行的搜索模式来操作。在每次搜索满足奥法特提出的三个条件的测试输入数据时,蚂蚁们都有消除掉变异体的任务。接着,通过一个概率密度估计的过程来增强蚁群算法。??   1 问题描述??   用??P-g来表示待测的程序,I=(X-1,X-2,……,X-k)是输入变量的向量,每个输入变量X-i从范围D-i中取值(i=1,2,…,k)。程序P-g的范围是D=D-1×D-2…×D-k,假设R是一个变异操作集,每个变异操作算子是一个程序错误的代表,对于P-g的变异版本来说,每个变异操作算子在程序中都会产生一个独立的修改。通过应用变异操作算子r∈R到P-g,就得到原始程序P-g??的N个变异版本??M-1,M-2,…M-N。换句话说,M-i=r-i(P-g),r-i∈R,i=1,2,…,N(i代表着变异操作的次数)。每个变异操作算子通过注入一个简单的错误来对P-g??进行变异操作。??   在变异测试中,测试数据生成的关键问题在于找到测试输入值的一个集合,该集合是消除变异体数量的最大值。必要问题就是找出输入变量??(X-1,X-2,…,X-k)值的分配,即测试用例,这样当执行测试的时候,能消除掉尽可能多的变异体。如果奥法特提出的三个条件都满足,那么对应的变异体就能被消除。第一个条件:在变异体M-j中的变异程序段S-m??必须具有可达性;第二个条件,变异体的执行结果与原始程序的执行结果是有区别的;第三个条件,即充分条件,要求变异体产生并输出变异结果。??   如果一个输入的测试用例t能消除掉一个变异体??M-j??,那么就说该变异体被t消除,否则就说??M-j??仍然存在。因此,如果T是消除变异体d的测试用例集,那么T的变异比例??MScore(T)为:MScore(T)=100d[]N-eq。其中,eq??是相应变异体的数量。??   2 蚁群算法??   2.1 用蚁群算法生成变异测试的测试用例??   蚁群算法在本文中的应用如下:先从随机选择的测试用例中搜寻能消除掉给定变异体的测试用例,对于由蚂蚁选择的每个测试用例,变异体都被执行,测试用例的质量也被评估出来。如果评估出来的质量能够满足消除条件,那么蚂蚁沿着信息素轨迹,给参数标上信息素,进而形成测试用例。标记出的信息素的数量与测试用例的质量是成正比的。与自然界类似,人工的蚂蚁往信息素多的方向走。这种在蚂蚁前进中的间接交流有利于参数的分配,生成的测试用例更满足消除条件,最终能消除掉变异体。??   2.2 构造测试用例??   测试用例生成的问题可以用一个有向图来标示,即??Gr(V,E),点集

文档评论(0)

130****9768 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档