- 1、本文档共98页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第四章 白盒和黑盒测试方法
本章主讲内容
白盒测试方法
语句覆盖;
分支覆盖;
条件测试;
分支条件测试;
分支条件组合测试;
条件确定测试
路径覆盖
问题概述
白盒测试方法
1.回顾一下单元测试主要用的是白盒测试方法。 那什么是白盒测试?为什么要用白盒测试?
2.白盒测试包括哪些方法?
3. 详细讲解各个方法!
覆盖
如果所有软件错误的根源都可以追溯到某个唯一原因,那么问题就简单了。然而,事实上一个bug 常常是由多个因素共同导致的,如下图所示。
白盒测试技术的常见方法之一就是覆盖测试,它是利用程序的逻辑结构设计相应的测试用例。测试人员要深入了解被测程序的逻辑结构特点,完全掌握源代码的流程,才能设计出恰当的用例。根据不同的测试要求,覆盖测试可以分为语句覆盖、分支覆盖、条件覆盖、分支条件测试、条件组合测试和路径覆盖。
下面是一段简单的C语言程序,作为公共程序段来说明五种覆盖测试的各自特点。
程序:
1 If (x100 y500) then
2 score=score+1
3 If (x=1000|| z5000) then
4 score=score+5
逻辑运算符“”表示“与”的关系,逻辑运算符“||”表示“或”的关系。其程序控制流图如图所示。
覆盖
如果所有软件错误的根源都可以追溯到某个唯一原因,那么问题就简单了。然而,事实上一个bug 常常是由多个因素共同导致的,如下图所示。
语句覆盖
1.什么是语句覆盖?
语句覆盖(Statement Coverage)是指设计若干个测试用例,程序运行时每个可执行语句至少被执行一次。在保证完成要求的情况下,测试用例的数目越少越好。
以下是针对公共程序段设计的两个测试用例,称为测试用例组1。
Test Case 1:x=2000,y=600,z=6000
Test Case 2:x=900,y=600,z=5000
如表1所示,采用Test Case 1作为测试用例,则程序按路径a,c,e顺序执行,程序中的4个语句都被执行一次,符合语句覆盖的要求。采用Test Case 2作为测试用例,则程序按路径a,c,d顺序执行,程序中的语句4没有执行到,所以没有达到语句覆盖的要求。
语句覆盖
表1 测试用例组1
测试用例
x,y,z
(x100)and
(y500)
(x=1000)or
(z5000)
执行路径
Test Case 1
2000,600,6000
True
True
ace
Test Case 2
900,600,5000
True
False
acd
语句覆盖
从表面上看,语句覆盖用例测试了程序中的每一个语句行,好像对程序覆盖得很全面,但实际上语句覆盖测试是最弱的逻辑覆盖方法。例如,第一个判断的逻辑运算符“”错误写成“||”,或者第二个判断的逻辑运算符“||”错误地写成“”,这时如果采用Test Case 1测试用例是检验不出程序中的判断逻辑错误的。如果语句3“If (x=1000|| z5000) then”错误写成“If (x=1500|| z5000) then”,Test Case 1同样无法发现错误之处。
根据上述分析可知,语句覆盖测试只是表面上的覆盖程序流程,没有针对源程序各个语句间的内在关系,设计更为细致的测试用例。
语句覆盖实例练习
public void function(int a, int b, int c){
if((a1)(b==0)){
c=c/a;
}
if((a==5)||(c1)){
c=c+1;
}
c=a+b+c;
}
分析步骤?
分析步骤是?
分支覆盖
分支覆盖
分支覆盖(Branch Coverage)是指设计若干个测试用例,执行被测试程序时,程序中每个判断条件的真值分支和假值分支至少被执行一遍。在保证完成要求的情况下,测试用例的数目越少越好。分支覆盖又称为判断覆盖。
测试用例组2:
Test Case 1:x=2000,y=600,z=6000
Test Case 3:x=50,y=600,z=2000
如表2所示,采用Test Case 1作为测试用例,程序按路径a,c,e顺序执行;采用Test Case 3作为测试用例,程序按路径a,b,d顺序执行。所以采用这一组测试用例,公共程序段的4个判断分支b,c,d,e都被覆盖到了。
分支覆盖
表2测试用例组2
测试用例
x,y,z
(x100)and
(y500)
(x=1000)or (z5000)
执行路径
Test Case 1
2000,600,6000
True
True
ace
Test Case 3
50,600,2000
False
False
abd
分支覆盖
测试用例组3:
Test Case 4:x=2000
您可能关注的文档
最近下载
- 新22J01《工程做法》(新疆图集).pdf VIP
- 2015-2022年河北省专接本(专升本)《英语》真题合集.pdf VIP
- 【GB_T50779-2022 】石油化工建筑物抗爆设计标准.docx VIP
- 蓄电池内阻试验报告.docx VIP
- 《成本与管理会计(第4版)》习题答案 孙茂竹.pdf
- 劳动合同模板正规【5篇】.docx VIP
- 电气控制与PLC技术应用教学教案.docx VIP
- 22K311-5 防排烟系统设备及部件选用与安装.docx VIP
- 2025青海省从优秀村(社区)党组织书记中考录乡镇公务员32人笔试模拟试题及答案解析.docx VIP
- 最新河北省建设工程竣工验收报告6份(市政基础设施工程).pdf VIP
文档评论(0)