基于复合谓词软件测试用例生成方法的研究.pdfVIP

基于复合谓词软件测试用例生成方法的研究.pdf

  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文档。上传文档
查看更多
基于复合谓词的软件测试用例生成的方法研究 李煜 河海大学计算机及信息工程学院,南京 (210098 ) E-mail:liyuhhu@126.com 摘 要:随着程序复杂性的不断提高,简单的一维谓词很难满足程序的需求,路径谓词的复 杂多样使得相应的搜索算法需要不断改进。本文给出一种针对复合谓词的分支函数扩展定 义,并给出对多个变量进行分组搜索的方法,在细节上提高了测试用例生成的效率。 关键词:软件测试,测试用例,复合谓词,分支函数,路径覆盖。 0 引言 随着软件产业的发展, 软件测试已经成为软件工程的重要组成部分。对软件测试技术的 研究与应用也成为人们日益关注的课题。白盒测试和黑盒测试是软件测试中的两大方法,无 论哪种方法都离不开测试用例的生成。然而,测试用例的生成一直是软件测试领域一个较为 [1] 复杂的问题,方法和手段尚未成熟 。 本文所讨论的测试用例生成方法是基于动态白盒测试的。所谓动态,就是说我们生成 测试用例是在程序运行过程中逐步搜索得到合适的测试用例。白盒测试是针对程序内部逻辑 的测试,要求对程序的结构特性做到一定的覆盖,是基于代码覆盖的一种测试。而黑盒测试 是在不知道程序内部逻辑的情况下,针对程序的功能进行的测试,是基于功能覆盖的一种测 试。对应于白盒测试和黑盒测试这两种测试方法生成的测试数据分别称为结构化测试数据和 [2] 功能测试数据 。 成功的测试用例应该尽可能做到更全面的覆盖。白盒测试是基于代码覆盖的一种测试, 代码覆盖也可以称为逻辑覆盖或是结构化覆盖。我们经常接触到的逻辑覆盖包括:语句覆盖、 判定覆盖、条件覆盖、判定条件覆盖和路径覆盖等等。其中,路径覆盖比其余几种覆盖更全 [6] 面,所以结构化测试数据一般都是通过路径覆盖的方式来生成 。 20 世纪 70 年代以来,有关结构测试用例自动生成的搜索寻优算法这一领域的研究就 已展开。人们曾分别采用随机化、爬山法、遗传算法等方法实现测试用例生成。爬山法,也 就是函数最小化方法,是一种传统的搜索算法,善于找到局部最优解。但由于在方向探测时, 每次只针对一个变量,因此仅能解决一维谓词的情况。在路径谓词多样性的情况下,很难达 到较高的搜索成功率。从理论上来看,遗传算法在解决大空间、多峰、非线性、全局优化等 高复杂度问题时可以显示独特的优势和高效性,但其面临一系列的实现问题,使得人们对遗 [7] 传算法的实际应用效果并不乐观 。 随着程序复杂性的不断提高,简单的一维谓词很难满足程序的需要,路径谓词越来越 复杂多样,所以相应的搜索算法也需要不断改进。如果仍采用以前算法的思想,即对多个变 量逐一搜索,这样将不能很好地处理复合谓词的情况,搜索效率也会大大降低。 对于一个普通的程序,假设有 N 个输入变量,搜索方向分为正向和负向,如果采用逐 一搜索的方法,最糟糕的情况下就需要进行 2N 次方向搜索。这样的方法最终当然也可以找 到所需的数据,但是搜索效率非常低。那么如何提高搜索效率,能否对多个变量同时搜索就 成了我们所需要探讨的问题。 - 1 - 1. 分支函数定义 所谓简单谓词是指谓词中仅含单个关系运算符(﹤,≤,﹥,≥,=,≠之一)的谓词, 而复合谓词是指两个或两个以上的简单谓词由布尔连接词(AND 或 OR )连接而成的谓词。 分支函数的定义:假设谓词pr 是简单关系表达式:E op E ,其中E ,E 算术表达式, 1 2 1 2 关系运算符 op ∈{ ﹤,≤,﹥,≥,=,≠}。表达式E1 op E2

文档评论(0)

bhyq + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档