软件测试技术6-动态白盒测试课件_第1页
软件测试技术6-动态白盒测试课件_第2页
软件测试技术6-动态白盒测试课件_第3页
软件测试技术6-动态白盒测试课件_第4页
软件测试技术6-动态白盒测试课件_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件测试基础Part2软件测试技术6动态白盒测试本节学习内容动态白盒测试结构性测试基于程序的源代码,因此,通常也称为基于代码测试(code-basedtesting)或白盒测试技术。白盒技术的基本思想是把测试对象的每部分代码至少执行一次。设计面向控制流的测试用例,分析程序的逻辑,然后执行测试用例。动态白盒测试为了能够明确程序的执行结果是否会导致失败,测试的期望结果是根据需求或规格说明来确定的,而不是代码本身。白盒测试技术主要是检查测试对象的语句,其基本目标是在测试时实现事先定义的语句覆盖率,比如执行程序中所有可能的语句。动态白盒测试为什么要进行白盒测试从一个比喻开始白盒测试是高效测试白盒测试能彻底解决

编码阶段引入的问题清洗面包机动态白盒测试做白盒测试时,第一步先将源代码转换为控制流图。在控制流图中,以结点表示语句,以边来表示语句之间的控制流。白盒测试的基本思想动态白盒测试语句覆盖判定覆盖条件覆盖判定/条件覆盖条件组合覆盖路径覆盖白盒测试主要技术动态白盒测试白盒测试举例 publicintfunction(inta,intb,intx){1 if(a>1&&b==0)2 x=x/a;3 if(a==2||x>1)4 x=x+1; }语句覆盖判定覆盖条件覆盖判定/条件覆盖条件组合覆盖路径覆盖动态白盒测试名词理解:开始(A>1)AND(B=0)(A=2)OR(X>1)返回X=X/AX=X+1FFTTabdce条件判断语句覆盖判定覆盖条件覆盖判定/条件覆盖条件组合覆盖路径覆盖动态白盒测试开始(A>1)AND(B=0)(A=2)OR(X>1)返回X=X/AX=X+1FFTTabdce条件判断1234abcde动态白盒测试(1)语句覆盖使程序中每个语句至少执行一次1234abcde如右图所示:使每个语句至少执行一次的流程是哪一条呢?动态白盒测试(1)语句覆盖只需设计一个测试用例:输入数据:A=2,B=0,X=4即达到了语句覆盖;语句覆盖是最弱的逻辑覆盖用例编号测试用例(A/B/X)覆盖语句预期结果实际结果TC12,0,41,2,3,4X=3动态白盒测试(1)语句覆盖练习:画出以下程序的程序流图和控制流图,并采用语句覆盖设计测试用例。动态白盒测试开始(x>3)AND(z<0)(x==4)OR(y>5)j=j%3k=x*y-1j=k-zj=X*y+10FFTTab

dce条件判断j=j%3返回1234abcde5程序流图和控制流图动态白盒测试用例编号测试用例(x/z/y)覆盖语句预期结果实际结果TC14,-1,61,2,3,4,5k=23,j=1测试用例如下:动态白盒测试(2)判定覆盖(分支覆盖)使每个判定的真假分支都至少执行一次开始(A>1)AND(B==0)(A==2)OR(X>1)返回X=X/AX=X+1FFTTabdce动态白盒测试(2)判定覆盖(分支覆盖)例:可设计两组测试用例:A=3,B=0,X=1可覆盖c、d分支A=2,B=1,X=3可覆盖b、e分支两组测试用例可覆盖所有判定的真假分支判定覆盖仍是弱的逻辑覆盖用例编号测试用例(A/B/X)覆盖分支预期结果实际结果TC13,0,1c,dX=1TC22,1,3b,eX=2动态白盒测试(2)判定覆盖(分支覆盖)步骤:识别并标识所有输入;识别并标识所有判断;取不同的输入组合构成测试用例,并给出预期结果用例编号测试用例(A/B/X)覆盖分支预期结果实际结果TC13,0,1c,dX=1TC22,1,3b,eX=2动态白盒测试(2)判定覆盖(分支覆盖)练习:采用判定覆盖设计以下测试用例动态白盒测试(3)条件覆盖使每个判定的每个条件的可能取值至少执行一次第一判定表达式:设条件A>1取真记为

T1

F1

条件B=0取真记为

T2

F2第二判定表达式:设条件A=2取真记为

T3

F3

条件X>1取真记为

T4

F4动态白盒测试开始(A>1)AND(B=0)(A=2)OR(X>1)返回X=X/AX=X+1FFTTabdce条件(3)条件覆盖动态白盒测试(3)条件覆盖开始(A>1)AND(B=0)(A=2)OR(X>1)返回X=X/AX=X+1FFTTabdce条件满足不满足A>1T1F1B=0T2F2A=2T3F3X>1T4F4动态白盒测试(3)条件覆盖两个测试用例覆盖了四个条件八种可能取值。未覆盖c、d分支,不满足判定覆盖的要求.条件覆盖不一定包含判定覆盖判定覆盖也不一定包含条件覆盖测试用例ABX

通过路径满足的条件覆盖分支103abeF1,T2,F3,T4b,e211abeT1,F2,T3,F4b,e请用条件覆盖为以上流程图设计测试用例?动态白盒测试(3)条件覆盖步骤:识别并标识所有输入;识别并标识所有条件;取不同的输入组合构成测试用例,并给出预期结果用例编号

测试用例ABX

通过路径满足的条件覆盖分支TC1103abeF1,T2,F3,T4b,eTC2211abeT1,F2,T3,F4b,e动态白盒测试练习:采用条件覆盖设计以下测试用例(3)条件覆盖动态白盒测试1、找出所有条件的取值(3)条件覆盖开始(x>3)AND(z<0)(x==4)OR(y>5)j=j%3k=x*y-1j=k-zj=X*y+10FFTTab

dce条件判断j=j%3返回条件满足不满足x>3T1F1z<0T2F2x=4T3F3y>5T4F4动态白盒测试2、为所有的条件设计测试用例(3)条件覆盖用例编号

测试用例ABX

通过路径满足的条件覆盖分支TC1动态白盒测试(4)判定/条件覆盖选取足够多的测试用例,使判断中的每个条件的所有可能取值至少执行一次,同时每个判断本身的所有可能判断结果至少执行一次.动态白盒测试(4)判定/条件覆盖开始(A>1)AND(B=0)(A=2)OR(X>1)返回X=X/AX=X+1FFTTabdce条件满足不满足A>1T1F1B=0T2F2A=2T3F3X>1T4F4判断分支:b.c.d.e.动态白盒测试(4)判定/条件覆盖请设计测试用例,能同时满足判定、条件两种覆盖标准。用例编号

测试用例ABX

通过路径满足的条件覆盖分支TC1204aceT1,T2,T3,T4c,eTC2111abdF1,F2,F3,F4b,d用例编号

测试用例ABX

通过路径满足的条件覆盖分支动态白盒测试(5)条件组合覆盖所有可能的条件取值组合至少执行一次A>1,B=0 T1 T2A>1,B≠0 T1 F2A≯1,B=0 F1 T2A≯1,B≠0 F1 F2A=2,X>1 T3 T4A=2,X≯1 T3 F4A≠2,X>1 F3 T4A≠2,X≯1 F3 F4开始(A>1)AND(B=0)(A=2)OR(X>1)返回X=X/AX=X+1FFTTbdce动态白盒测试(5)条件组合覆盖用例编号

测试用例ABX

通过路径满足的条件覆盖分支TC1204aceT1,T2,T3,T4c,eTC2211abeT1,F2,T3,F4b,eTC3102abdF1,T2,F3,T4b,dTC4111abdF1,F2,F3,F4b,d动态白盒测试练习对该程序进行以下白盒测试:语句覆盖判断覆盖条件覆盖条件判断覆盖条件组合覆盖动态白盒测试练习对该程序进行以下白盒测试:语句覆盖判断覆盖条件覆盖条件判断覆盖条件组合覆盖动态白盒测试(6)DD路径覆盖前面所讲的几种方法主要关注控制流的语句或分支以及条件的复杂度。如果测试对象包含循环语句,则仅靠前面讲过的几种技术和方法是不够的。路径覆盖要求遍历测试对象的所有不同的路径。DDPath:全称是Decision-to-decision_path(决策路径)动态白盒测试(6)DD路径覆盖开始(A>1)AND(B=0)(A=2)OR(X>1)返回X=X/AX=X+1FFTTabdce1.ace2.acd3.abe4.abd动态白盒测试(6)DD路径覆盖用例编号

测试用例ABX

通过路径满足的条件覆盖分支TC1204aceT1,T2,T3,T4c,eTC2301acdT1,T2,F3,F4c,dTC3112abeF1,F2,F3,T4b,eTC4111abdF1,F2,F3,F4b,d开始(A>1)AND(B=0)(A=2)OR(X>1)返回X=X/AX=X+1FFTTabdce动态白盒测试(7)基本路径测试对简单的程序流程而言,可通过以上方法确定程序的路径有多少条,但对复杂的程序,必须通过程序的控制流图来确定程序的路径。基路径测试:把覆盖的路径数压缩到一定限度内,如,程序中的循环体只执行0次和1次,就成为基路径测试。如何导出基(独立)路径呢?动态白盒测试(7)基本路径测试控制流图(CFGControlFlowGraph)控制流图分析是描述程序控制流的一种图示方法。12,34,567891011区域节点边控制流图R1R4R2R3通过控制流图的清楚描述,程序结构顺序很容易理解,同时可以发现一些可能的控制流异常,如跳出循环体,或程序结构有多个出口。动态白盒测试(7)基本路径测试12345687910程序流程图12,34,567891011区域节点边控制流图R1R4R2R3将流程图映射成控制流图动态白盒测试(7)基本路径测试圈复杂度的计算1、公式法2、独立路径法3、区域法(闭合环路法)动态白盒测试(7)基本路径测试基本路径法测试用例设计步骤:绘制程序的控制流图(CFG)计算程序的圈复杂度,导出独立路径条数确定现行独立路径的基本集合设计可强制执行基本集合中每一条路径的测试用例动态白盒测试(7)基本路径测试例:在该例中,要注意组合条件的控制流图的画法。动态白盒测试第一步:画控制流图-简单来看3235333638注意:32和35的判断都是组合条件,需要拆分。设:C1:age>25C2:sex=‘M’C3:age>50 C4:comm>2000.00C1C3333638C2C4③②①④⑤动态白盒测试第二步:计算圈复杂度V(G)=4+1或V(G)=e-n+2=10-7+2=5由此得出共5条独立路径动态白盒测试第三步:确定现行独立路径的基本集合P1:c1,c2,c3,36,38P2:c1,c2,c3,c4,38P3:c1,c2,33,c3,c4,38P4:c1,c2,c3,c4,36,38P5:c1,c3,c4,38动态白盒测试第四步:为每条独立路径设计测试用例独立路径集合:P1:c1,c2,c3,36,38P2:c1,c2,c3,c4,38P3:c1,c2,33,c3,c4,38P4:c1,c2,c3,c4,36,38P5:c1,c3,c4,38测试用例AgeSexCommP155F1500P230F1500P330M1500P435F2500P520M1500动态白盒测试练习设有一段程序如下:If((a==b)and((c==d)or(e==f)))doS1Elseif((p==q)or(s==t))doS2ElsedoS3在满足判定/条件覆盖的要求下,最少需要多少个测试用例动态白盒测试voidCycleSampleTwo(intvalue){if(value!=0){ if(value<0) value+=1; else { if(value

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论