第15篇_测试传统的应用系统.pptVIP

  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文档。上传文档
查看更多
穷尽测试(complete test)通常是不可能的。 例:(Black-box) 程序要求输入3个整形数据。若字长16位,则各种可能输入的排列组合共有 (种) 若程序执行需10-3秒,则对于所有合法输入的测试大约需用一万年,而且还应测试输入非法数据的情况。 例:(White-box) 下图所示的程序中共有520?1014条可能的执行通路,显然,每条通路都执行一遍是不现实的。 等价类划分的设计步骤 ? 设计一个新方案以尽可能多地覆盖尚未被覆盖的有效等价类;重复这一步骤直到所有有效类都被覆盖为止。 ? 设计一个新方案以覆盖一个且仅一个尚未被覆盖的无效等价类;重复这一步骤直到所有无效类都被覆盖为止。(通常程序执行一个错误后即不继续检测其它错误,故每次只测一个无效类) 例: 考察一个把数字串转变成整数的函数。用二 进制补码表示整数,机器字长16位,即整 数范围最小为- 32768,最大为32767。函 数及参数的PASCAL说明如下: function StrToInt (dstr : shortstr) : integer; type shortstr = array [1..6] of char; 要求被处理的数字串是右对齐的,即在少 于6个字符的串左边补空格。负号在最高位 数字左边一位. 试用等价划分法设计测试方案。 解:首先根据规格说明划分等价类。考虑到PASCAL编译器的固有检错功能,测试时不需要使用长度不等于6的数组,也不需要用非字符数组类型的参数。 有效输入类: ①1~6个数字字符组成的数字串(最高位非0); ②最高位为0的数字串; ③最高位左邻负号的数字串; 无效输入类: ④空字符串(6位空格); ⑤左边补位的既非0亦非空格; ⑥最高位右边含有空格; ⑦最高位右边含有其它非数字字符; ⑧负号与最高位间有空格; 有效输出类: 3个: 无效输出类: ⑩最高位右边含其它非数字字符。 输入: 预期输出:“错误: 无效输入” 11⑩负号与最高位间有空格。 输入: 预期输出:“错误:负号位置非法” 数据流测试 数据流测试方法就是根据变量的定义和使用位置来选择程序测试路径的测试方法。为说明数据流测试方法,假设程序的每条语句都赋予了独特的语句号,而且每个函数都不改变其参数或全局变量。对于语句为S的语句, DEF(S)={X|语句S包含X的定义} USE(S)={X|语句S包含X的使用} 若语句S是一个if或loop循环的语句,它的DEF集为空而USE集取决于S的条件。若存在S到S’的路径且该路径不含X的其他定义,则称变量X在语句S处的定义在语句S’仍有效。 数据流测试 变量X的定义-使用链(或称DU链)的形式为[X,S,S’],其中S和S’为语句号,X在DEF(S)和USE(S’)中,且在语句S中定义的X在语句S’中有效。 一个简单的数据流测试策略要求每个DU链至少覆盖一次,我们称之为DU测试策略。已经证明DU测试并不能保证覆盖程序的所有分支。然而,DU测试不覆盖每个分支仅在if-then-else中的then没有定义变量且不存在else部分的情况下。在这种情况下,if语句和else分支并不需要由DU测试覆盖。 循环测试 循环是大多数软件实现算法的重要部分。 循环测试是一种白盒测试技术,它仅侧重于循环构成元素的有效性。可以定义四种不同的循环:简单循环、串接循环、嵌套循环和非结构化循环。如图15-6所示。 循环测试 图15-6 循环的类别 循环测试 简单循环。下列测试集可用于简单循环,其中,n是允许通过循环的最大次数。 1、跳过整个循环; 2、只有一次通过循环; 3、两次通过循环; 4、m次通过循环,其中mn; 5、n-1,n,n+1次通过循环。 循环测试 嵌套循环。若将简单循环的测试方法扩展应用于嵌套循环,则可能测试数将随着嵌套层次的增加而成几何级数增长。这将导致不切实际的测试数量。[BEI90]提出了一种有助于减少测试数的方法: 1、从最内层循环开始,将其他循环设置为最小值; 2、对最内层循环执行简单循环测试,而使外层循环的迭代参数值(即循环计数)最小,并对范围以外或不包括在内的值增加其他测试; 3、由内向外构造下一个循环的测试,但使其他外层循环具有最小值并使其他嵌套循环为“典型”值; 4、继续上述过程,直到测试完所有的循环。 循环测试 串接循环。若串接循环的每个循环彼此独立,则可以使用简单循环测试方法。然而,若两个循环串接起

文档评论(0)

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

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

1亿VIP精品文档

相关文档