第4章(3)白盒测试方法3-其他方法

上传人:飞*** 文档编号:6400638 上传时间:2017-08-08 格式:PPT 页数:39 大小:607KB
返回 下载 相关 举报
第4章(3)白盒测试方法3-其他方法_第1页
第1页 / 共39页
第4章(3)白盒测试方法3-其他方法_第2页
第2页 / 共39页
第4章(3)白盒测试方法3-其他方法_第3页
第3页 / 共39页
第4章(3)白盒测试方法3-其他方法_第4页
第4页 / 共39页
第4章(3)白盒测试方法3-其他方法_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《第4章(3)白盒测试方法3-其他方法》由会员分享,可在线阅读,更多相关《第4章(3)白盒测试方法3-其他方法(39页珍藏版)》请在金锄头文库上搜索。

1、软件测试,第4章 白盒测试方法 其他方法,目 录,引例有如下代码(C语言): For (i=0;i0) j-; 该循环的测试用例设计思路是怎样的?,循环测试,循环测试,循环分为4种不同类型:简单循环嵌套循环连锁循环(串接循环)非结构循环(不规则循环),循环测试,(1) 简单循环测试 零次循环:从循环入口到出口 一次循环:检查循环初始值 二次循环:两次通过循环 m次循环: 检查多次循环 最大次数循环n、比最大次数多一次n+1、少一次的循环n-1。,循环测试,例:求最小值,k = i;for ( j = i+1; j = n; j+ ) if ( Aj Ak ) k = j;,k = i ; j

2、= i+1;,j = n?,AjAk?,k = j,j +,f,d,c,a,b,e,测试用例选择,循环测试,(2) 嵌套循环测试 对最内层循环做简单循环的全部测试。所有其它层的循环变量置为最小值; 逐步外推,对其外面一层循环进行测试。测试时保持所有外层循环的循环变量取最小值,所有其它嵌套内层循环的循环变量取“典型”值。,循环测试, 反复进行,直到所有各层循环测试完毕。 对全部各层循环同时取最小循环次数,或者同时取最大循环次数,循环测试,回到引例有如下代码(C语言):for(i=0;i0) j-; 应用嵌套循环的测试思路,应该怎么设计测试用例呢?,循环测试,(3) 连锁循环如果各个循环互相独立,

3、则可以用与简单循环相同的方法进行测试。但如果几个循环不是互相独立的,则需要使用测试嵌套循环的办法来处理。(4) 非结构循环这一类循环应该使用结构化程序设计方法重新设计测试用例。,循环测试问题,1.对于最多为n次的简单循环,要测试n-1次,n次,n+1次。最多为n次,n+1次怎么测; 2.第一问的条件下,若第一步i赋值为1,然后判断i是否小于m,m是要输入的值,如果m随便输入,无上界,那么n次,n+1次怎么判断,我m不同,最大次数不也不同? 3.嵌套循环内层测试时,外层循环取最小值,最小值什么意思,是外层不循环,还是循环一次?,Z路径覆盖,路径覆盖是白盒测试最为典型的问题。完成路径测试的理想情况

4、是做到路径覆盖,对于比较简单的小程序实现路径覆盖是可以做到的,但是如果程序中出现多个判断和多个循环,可能的路径数目将会急剧增长,达到天文数字,以至于实现完全的路径覆盖是不可能的。,Z路径覆盖,为了解决这一问题,我们必须舍掉一些次要因素,对循环机制进行简化,从而极大地减少路径的数量,使得覆盖这些有限的路径成为可能。这种简化意义下的路径覆盖称为Z路径覆盖,Z路径覆盖,在循环简化的思路下,循环与判定分支的效果是一样的,即:循环要么执行、要么跳过。,Z路径覆盖,对这个流程图,应该怎么应用z路径覆盖设计测试用例呢?,程序插桩技术,在软件动态测试中,程序插桩(Program Instrumentation

5、)是一种基本的测试手段方法简介:借助往被测程序中插入操作,来实现测试目的的方法。最简单的插桩:在程序中插入打印语句printf(“”)语句,Z路径覆盖,注意:循环化简是指限制循环的次数。无论循环的形式和实际执行循环体的次数是多少,只考虑循环一次和零次两种情况。即:只考虑执行时进入循环体一次和跳过循环体的两种情况。,方法简介如果我们想要了解一个程序在某次运行中所有可执行语句被覆盖的情况,或是每个语句实际执行次数,最好的办法就是利用程序插桩技术.,程序插桩技术,方法简介,例:求取两个整数X和Y的最大公约数程序如下:int gsd (int X,int Y) int Q=X; int R=Y; wh

6、ile(Q!=R) if(QR) Q=Q-R;else R=R-Q; return Q;,最大公约数算法之更相减损术,在我国古代的数学著作九章算术中,就介绍了“约分术”:“可半者半之,不可半者,副置分母、子之数,以少减多,更相减损,求其等也。以等数约之。”,程序插桩技术,可以根据程序绘制出其流程图为了记录该程序中语句的执行次数,我们使用插桩技术插如如下语句:C(i)=C(i)+1, i=1,2,6插桩之后的流程图如下:,程序插桩技术,程序从入口开始执行,到出口结束,凡经历的计数语句都能记录下该程序点的执行次数。如果我们在程序的入口处还插入了对计数器C(i)初始化的语句,在出口处插入了打印这些计

7、数器的语句,就构成了完整的插桩程序。它就能记录并输出在各程序点上语句的实际执行次数.,程序插桩技术,右图为插桩之后的程序,箭头所指为插入的语句。原程序的语句已略去。,程序插桩技术,设计插桩程序时需要考虑的问题包括:(1)需要探测哪些信息(2)在程序的什么部位设置探测点(3)需要设置多少个探测点前两个问题需要结合具体的问题解决,并不能给出笼统的回答。至于第三个问题,需要考虑如何设置最少的探测点!,静态测试法简介,静态测试不实际运行软件,只是检查和审阅,主要对软件的编程格式,结构等方面进行评估。静态测试,代码检查,静态结构分析,代码质量度量,代码审查,代码走查,桌面检查,控制流分析,数据流分析,信

8、息流分析,代码审查(code inspection),程序员和测试员组成的审查小组通过阅读、讨论和争议,对程序进行静态分析的过程 。第一步:小组成员提前阅读设计规格书、程序文本等相关文档第二步:召开程序审查会,开发人员读程序,审查小组讨论、发现、解决问题,代码审查(code inspection),内容检查代码和设计的一致性检查代码对标准的遵循、可读性检查代码的逻辑表达的正确性检查代码结构的合理性形成公司积累变成容易出错的checklist,代码走查(code walkthrough),程序员和测试员组成的审查小组通过逻辑运行程序,发现问题。第一步:小组成员提前阅读设计规格书、程序文本等相关文

9、档第二步:利用测试用例,使程序逻辑运行,记录程序的踪迹,发现、讨论、解决问题,桌面检查,可视为由单人进行的代码检查或代码走查。是程序员对源程序代码进行分析、检验,并补充相关的文档,发现程序中的错误的一种方法。,白盒测试综合策略,在白盒测试中,可以使用各种测试方法的综合测试如下所示:在测试中,应尽量先用工具进行静态结构分析。测试中可采取先静态后动态的组合方式:先进行静态结构分析、代码检查和静态质量度量,再进行覆盖率测试。,白盒测试综合策略,利用静态分析的结果作为引导,通过代码检查和动态测试的方式对静态分析结果进行进一步的确认,使测试工作更为有效。覆盖率测试是白盒测试的重点,一般可使用基本路径测试法达到语句覆盖标准;对于软件的重点模块,应使用多种覆盖率标准衡量代码的覆盖率;,白盒测试综合策略,在不同的测试阶段,测试的侧重点不同:在单元测试阶段,以代码检查、逻辑覆盖为主;在集成测试阶段,需要增加静态结构分析、静态质量度量;在系统测试阶段,应根据黑盒测试的结果,采取相应的白盒测试。,白盒测试方法小结,逻辑覆盖方法基本路径测试方法循环测试Z路径覆盖程序插桩技术静态测试法,Thank You !,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号