- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
面向路径测试数据生成技术研究
面向路径测试数据生成技术研究
摘要:本文论述了面向路径的软件测试方法,对测试中的路径选择和测试数据自动生成进行了分析,着重研究了面向路径的测试数据生成中的区间代数、迭代松弛和遗传算法等方法,最后指出了软件测试技术的发展方向。
关键词:软件测试 测试数据 区间代数 迭代松弛 遗传算法
中图分类号:TP311.52文献标识码:A 文章编号:1007-9416(2011)05-0121-02
1、引言
软件测试是在软件投入运行前,对软件需求分析、设计规划说明和编码最终复审,它是提高软件可靠性和保证软件质量的重要途径。通过软件测试,可及时发现并纠正软件中存在的错误,从而有效地避免软件投入使用后由于失效而造成的浪费。因此软件测试是软件开发的一个必不可少的环节。
软件测试可描述为对给定的程序P,设P的输入空间为D,且x∈D,使P以x为输入运行,从而找出P的错误和缺陷,并对P加以修改和完善的过程。现有的软件测试分成静态测试和动态测试两类方法,大多数软件测试方法都属于动态测试。根据测试数据生成的具体方法,软件测试又可分为结构测试和功能测试。
测试数据生成问题Q可描述为对给定程序P和P中一条路径W,设P的输入空间为D,求x∈D,使P以x为输入运行,所经过的路径为W[1]。
求解问题Q的实质在于约束系统的建立和求解。建立约束系统的困难是分析、化简路径W上的各种语句成分和各种数据类型,建立尽可能简洁的约束系统;求解约束系统的主要困难是处理可能存在的非线性约束。Weyuker等人的研究表明:不存在通用的有效算法,对任意P和W,能生成使W被经过的输入数据[2]。但实际应用的需要迫使人们进行研究,并提出各种方法求解问题Q。
为解决这个问题,本文将现有的求解方法分为随机法、静态法、动态法和试探法四类,分析了每类有代表性的方法,并指出了研究方向。
2、面向路径的测试数据生成方法
面向路径的测试数据生成的基本过程是根据一定的测试覆盖标准从程序中分离出相应的完整路径,然后根据路径上判定条件和计算式等确定输入数据值。面向路径的测试数据生成方法主要包括随机法、静态法(如符号执行法、区间算术法)、动态法(直线程序法、迭代松弛法)、试探法(遗传算法和模拟退火算法)。
2.1随机法
随机法是对程序输入空间进行随机取样,其主要优点是生成单个测试数据的开销较小、简便易行。它可不受程序输入空间结构的限制,迅速生成大量测试数据,可用于功能测试。
D.Bird等采用随机法为PL/1优化与检查编译程序生成能完整执行并具备自检功能的PL/1程序[3]。但是该方法是盲目的,具有很大的缺陷:为满足给定的测试准则,生成的测试数据集通常都很庞大,且有时很难满足某些特殊的测试要求。如随机法需产生二十多万组测试数据才使三角形分类程序达到分支覆盖。虽然可通过改进测试运行过程,减少测试人员检查运行结果的数量,但随机法仍无法避免庞大测试数据集的运行。
2.2静态法
静态法采用符号执行等方法将路径上的所有(判断)语句转换成约束系统,然后进行求解。静态法建立的约束系统包括面向路径的测试数据生成问题的全部解,它主要包括符号执行和区间算术法,它们都不适于功能测试。
2.2.1符号执行
符号执行方法允许程序的输入不仅是具体的数值数据,而且包括符号值。它建立约束系统的方式主要有两种:从前向后替换和从后向前替换。从前向后替换建立约束系统是将符号值作为程序输入,执行所经路径上的语句,将所经过的路径上各分支谓词用逻辑乘符号联结起来,即得所需约束系统。在从后向前分析路径过程中,记录分支谓词,遇到赋值语句,就将已记录的所有分支谓词更新。与从前向后替换方法不同的是,从后向前替换方法无须保存各变量符号值,但两者得到的约束系统相同。
2.2.2区间算术法
区间算术法通过静态分析,将经过路径上的所有语句转换成变量表和正则约束式表,变量表保存经过路径上各语句定值或引用的所有变量,包括常量和临时变量,正则约束式表示变量间约束关系,其形式为r=d1 option d2,其中option是算术、关系或逻辑运算符,d1,d2是整型变量或常量,正则约束式表中用指向变量表的索引表示变量r,d1,d2。
2.3动态法
动态法从输入空间D中选一组数据x作为问题Q的一个解近似y(若y存在),运行程序P,根据运行情况,修改x值,使之收敛于y。因程序运行时各输入变量值已确定,故动态法可克服静态法一些缺点。但问题Q有解时,动态法不保证总能找到。动态法可分为直线式程序法和Neelam Gupta等提出的迭代松弛法[4]。
2.3.1直线式程序法
直线式程序法将路径W上的判断语句替换成形如A=(ci=0)、A=
您可能关注的文档
最近下载
- 湖南省张家界市慈利县2024届九年级上学期期中教学质量检测数学试卷(含解析).doc VIP
- 2025关于历年高考必备高频词汇汇编(打印版).pdf
- 《反电信网络诈骗法》知识考试题库150题(含答案).docx VIP
- 抗美援朝抗美援朝.pptx VIP
- S7.Net documentation 文档中文说明书.pdf VIP
- WPSOffice办公软件应用课程教案.pdf
- 项目成本管理(估算、预算、控制).ppt VIP
- 2025至2030中国互联网婚恋行业市场发展分析及发展前景预测与投资风险报告.docx VIP
- 成本控制与有效管理培训课件.pptx VIP
- 2025年电子设备装接工岗位职业技能资格证考试题库(含各题型).docx
原创力文档


文档评论(0)