- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
白盒与黑盒测试的测试用例设计.
第5章 白盒与黑盒测试的测试用例设计
5.1 覆盖率的概念
覆盖率是用来度量测试完整性的一个手段
逻辑覆盖和功能覆盖
覆盖率=(至少被执行一次的item数)/item总数
5.2 白盒测试的测试用例设计
5.2.1逻辑覆盖
逻辑覆盖是以程序内部的逻辑结构为基础的测试用例设计技术,属白盒测试。为了衡量测试的覆盖程度,需要建立一些作为测试彻底度的定量衡量标准。目前常用的覆盖标准是:
语句覆盖;判定覆盖;条件覆盖;判定/条件覆盖;条件组合覆盖;路径覆盖
一、语句覆盖
语句覆盖就是设计若干个测试用例,运行所测的程序,使得每一可执行语句至少执行一次。
二、判定覆盖
判定覆盖就是设计若干个测试用例,使程序中的每个判断至少出现一次“真值”和一次“假值”,即程序中的每个分支都至少执行一次。
三、条件覆盖
条件覆盖是指利用若干个测试用例,使被测试的程序中,对应每个判断中每个条件的所有可能情况均至少执行一次。
四、判定/条件覆盖
判定/条件覆盖就是设计足够多的测试用例,使得程序中每个判断条件的所有可能的结果至少取到一次,又使每次判断的每个分支至少通过一次。
五、条件组合覆盖
解决上述问题的新标准是条件组合覆盖。条件组合覆盖就是设计足够多的测试用例,使得每个判断的所有可能的条件取值组合至少执行一次。
六、逻辑覆盖举例
[例1]试用逻辑覆盖测试法为采用冒泡排序(bubble sorting)法进行数据排序的C程序设计测试用例。
本例是一个对k个整数进行升序排序的C程序,采用的算法是冒泡排序。基本步骤是:
从数组中取出第2个元素;
如果新取出的元素大于等于其前邻元素,则转向第(4)步;
如果新取出的元素小于其前邻元素,则与其前邻元素交换位置;
将新元素与新的前邻元素比较,若仍小于新的前邻元素,则重复第(3)步;
取下一个元素。如果数组中元素已取完则结束排序,否则转向第(2)步。
下面将给出本例的C程序。图2则是排序部分的流程图。
main()
{ int a[11],i,j,k,temp;
scanf(“%d”,k);
printf(“input numbers:\n”);
for(i=1;i=k;i++)
scanf(“%d”,a[i]);
printf(“\n”);
for(i=2;i=k;i++)
{ if(a[i]=a[i-1]) continue;
for(j=i;j=2;j--)
{ if(a[j]=a[j-1] continue;
temp=a[j];a[j]=a[j-1];a[j-1]=temp;
}
}
printf(“the sorted numbers:\n”);
for(i=1;i=10;i++)
printf(“%d”,a[i]);
}
设计方法:
(1)采用语句覆盖设计测试用例
对本例稍作分析就不难发现,只要向数组输入先大后小两个数,程序执行时就可以遍历流程图的所有框。因此,为引例设计满足语句覆盖的测试用例是:
[a={10,6},k=2]
由于语句覆盖是一个最弱的覆盖标准。虽然做到了所有语句的覆盖,但可能发现不了逻辑运算中出现的错误。
(2)采用判定覆盖设计测试用例
对本例,在语句覆盖的基础上,如果要使程序流程经过路径L1和L2,可设计两个满足要求的测试用例:
Yes
No
Yes
(L1) No
Yes
No
Yes
(L2) No
图2 冒泡排序法中排序部分的流程图
[a={10,6,7},k=3]
[a={10,6,12},k=3]
或合并成一组测试用例:
[a={10,6,12,7},k=4]
上述测试用例是在满足条件a[i]=a[i-1]或a[j]=a[j-1]的情况下经过路径L1和L2,而未检查另一个条件a[i]=a[i-1]或a[j]=a[j-1],即使在程序中将两处“=”都误写成“”,测试结果仍将显示“正常”,使这个错误被掩盖。因此可将上述测试用例改为:
[a={10,6,10},k=3]
[a={10,6,6},k=3]
或: [a={10,6,10,6},k=4]
则程序将在满足a[i]=a[i-1]或a[j]=a[j-1
您可能关注的文档
最近下载
- 道德发展心理学.pdf VIP
- 福克斯特Scarlett 4i4 3rd Gen用户说明书.pdf
- 部编人教版小学语文5年级下册全册教学课件.pptx
- 人教版二年级口算题1000题大全.pdf
- 2025年高一物理寒假衔接讲练 (人教版)第02讲 小船渡河和关联速度(教师版).docx VIP
- 2025年高一物理寒假衔接讲练 (人教版)第02讲 共点力的平衡(教师版).docx VIP
- 2025年高一物理寒假衔接讲练 (人教版)第03讲 抛体运动的规律(教师版).docx VIP
- 酒店的薪酬管理制度.docx VIP
- 《婴幼儿健康管理实务》课程标准 (1).docx
- 2024年中考数学试题(含答案).doc
文档评论(0)