- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
白盒测试技术
一:白盒测试概述:
概念
基于应用代码的内部逻辑知识,即基于覆盖全部代码、分支、路径、条件,使用程序设计的控制结构导出测试用例
又称结构测试、逻辑驱动测试或基于程序代码内部构成的测试。此时,测试工程师将深入考查程序代码的内部结构,逻辑设计等
白盒测试帮助测试人员增大代码覆盖率,提高代码质量
白盒测试使用原则
保证一个模块中所有独立路径至少被测试一次
所有逻辑值均需要测试真假两种情况
检查程序的内部数据结构,保证其结构的有效性
在上、下边界及可操作范围内运行所有循环
白盒测试方法
代码检查法
逻辑覆盖法
基本路径覆盖法
二:代码检查法:
使用范围
检查代码和设计的一致性
代码对标准的遵循和可读性
代码逻辑表达的正确性
代码结构合理性
程序编写与编写标准符合性
程序中不安全、不明确和模糊部分
编程风格
代码检查法的方式
桌面检查:程序员对源文件代码进行分析、检查并补充相关文档,发现程序中错误的过程
走查:程序员和测试员组成的审查小组通过逻辑运行程序发现问题的过程
代码审查:程序员和测试员组成的审查小组通过阅读、讨论、分析技术对程序进行静态分析的过程
三:逻辑覆盖法:
逻辑覆盖法的方式
语句覆盖法:选择足够多的测试数据,使得程序中的每个执行语句至少执行一次
判定覆盖法:设计足够多的测试用例,使得程序中每个判定至少获得一次真和假
条件覆盖法: 设计足够多的测试用例,使得程序中每个判定包含的每个条件的可能取值都至少满足一次
条件判定组合覆盖法:设计足够多的测试用例,使程序中每个判定包含的每个条件所有情况至少出现一次,且每个判定本身的判定结果也至少出现一次
多重条件覆盖法:条件组合
测试方式说明:
class Demo
{
public int function(boolean a,boolean b,boolean c){
int x;
x=0;
if(a(b||c)){
x=1;
}
return x;
}
} 语句覆盖法:编写足够的测试情况,使得每条语句至少执行一次
用例1:a=T,b=T,c=T。
判定覆盖法:1.编写足够的测试情况,使得每个判定至少有一次“真”和一次“假”的结果,2.每个分支方向都必须至少经过一次,3.要在程序或子程序的每个入口点至少进入一次(强调判断的取值)
用例1:a=T,b=T,c=T。
用例2:a=F,b=F,c=F。
条件覆盖法:1.编写足够的测试情况,使得判定中每个条件的所有可能结果至少出现一次,2.要在程序或子程序的每个入口点至少进入一次(强调条件的取值)
用例1:a=T,b=T,c=T。
用例2:a=F,b=F,c=F。
条件判定组合覆盖法:1.编写足够的测试情况,使得判定中每个条件的所有可能结果至少出现一次,2.每个判定本身所有可能结果也至少出现一次,3.同时每个入口点至少要进入一次
用例1:a=T,b=T,c=T。
用例2:a=F,b=F,c=F。
多重条件覆盖法:1.要写出足够的测试情况,以使判定的每条分支至少通过一次,2.编写足够的测试情况,使得每个判定判定中条件结果的所有可能组合至少出现一次,3.所有的入口点都至少进入一次
用例1:a=T,b=T,c=T。
用例2:a=T,b=T,c=F。
用例3:a=T,b=F,c=F。
用例4:a=T,b=F,c=T。
用例5:a=F,b=T,c=T。
用例6:a=F,b=T,c=F。
用例7:a=F,b=F,c=T。
用例8:a=F,b=F,c=F。
例:用不同的方式设计用例?
class Demo
{
public void fun(int a,int b,int x)
{
if(a1b==0)
{
x=x/a;
}
if(a==2||X1){
x=x+1;
}
}
} 四:基本路径测试法:
概念
从一个程序的入口开始,执行所经历的各个语句的完整过程
基本步骤
画出程序控制流图
计算程序环路复杂度
导出基本路径集
根据03中的独立路径,设计测试用例输入数据和输出数据
程序控制流图:描述程序控制流的一种方式
圆圈代表节点,程序控制流边和点圈定的部分叫区域,对区域计数时,图形外的一个部分也应记为一个区域,控制流线由带箭头的弧或线表示,称为边,它代表程序中的控制流,为了满足路径覆盖,必须首先确定具体的路径及路径个数
程序环路复杂度:
概念:也称为圈复杂度,是为程序逻辑复杂度提供定量尺度的软件度量
目的: 1.提供程序基本集的独立路径数量,2.确保所有语句至少执行一次测试
环路复杂度计算步骤:1.控制流图中区域的数量对应于环路复杂度,2.给定控制流图G的环路复杂度V(G),3.定义为V(G)=E-N+2,其中E是控制流图中边的数量,4.N是控制流图中的节点数量
独立路
文档评论(0)