资源描述
单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,Testing,山东建筑大学计算机科学与技术学院软件工程专业,软 件 测 试 技 术 课 程,第,5,讲 白盒测试技术,山东建筑大学计算机科学与技术学院软件工程专业,测试用例设计,测试用例的设计是软件测试的关键所在,我们需要设计出最有可能觉察软件错误的测试用例,同时尽量避开测试用例的冗余即避开使用觉察错误效果一样的测试用例,尽量做到用最少的用例到达较高的掩盖。,为了到达这个目的,我们就需要使用确定的测试用例设计方法,本次课主要讲解基于了解内部构造的白盒测试方法。,山东建筑大学计算机科学与技术学院软件工程专业,白盒测试规律掩盖法,规律掩盖是以程序内部的规律构造为根底的设计测试用例的技术,它考虑的是用测试数据执行程序时,对程序代码以及构造的规律掩盖程度。,规律掩盖法通常承受流程图来设计测试用例,它考察的重点是图中的判定框,由于这些判定通常是与选择构造或是循环构造有关,是预备程序构造的关键成分。,山东建筑大学计算机科学与技术学院软件工程专业,发现错误,的能力,标 准,含 义,1,(,弱,),语句覆盖,2,判定覆盖,3,条件覆盖,4,判定,/,条件覆盖,5,条件组合覆盖,规律掩盖测试的6种标准,每条语句至少执行一次,每一判定的每个分支至少执行一次,每一判定中的每个条件,分别按“真”、“假”至少,各执行一次,同时满足判定掩盖和条件掩盖的要求,求出判定中全部条件的各种可能组合值,每一可能,的条件组合至少执行一次,山东建筑大学计算机科学与技术学院软件工程专业,规律掩盖-语句掩盖,语句掩盖,它的含义是设计假设干个测试用例,使得程序中的每一条可执行语句至少执行一次。,山东建筑大学计算机科学与技术学院软件工程专业,规律掩盖-语句掩盖,案例代码:,1 Int A,B,X;,2 If(A1 AND B=0),3 X=X-A;,4 End If,5 If(A=5 OR X1),6 X=X+3;,7 End If,8 X=B/X;,1.,给出程序流程图,2.帮助设计测试用例,设计方法:,山东建筑大学计算机科学与技术学院软件工程专业,规律掩盖-语句掩盖,全部可执行语句都在路径acef上,所以我们只需要一个用例,这个用例执行路径acef,就可以掩盖全部的可执行语句。,1.,给出程序流程图,2.帮助设计测试用例,测试用例:,A=5,B=0,X=7,执行路径:,acef,山东建筑大学计算机科学与技术学院软件工程专业,规律掩盖-语句掩盖,语句掩盖的缺点:,1.无法区分某些规律错误。,2.缺失路径。,用例:,A=5,B=0,X=7,A1orB=0,测试结果还是正确的。,山东建筑大学计算机科学与技术学院软件工程专业,规律掩盖-判定掩盖,判定掩盖Decision Coverage也被称为分支掩盖,它的含义是设计假设干个测试用例,使得程序中的每一个取“真”分支和取“假”分支至少执行一次。,山东建筑大学计算机科学与技术学院软件工程专业,规律掩盖-判定掩盖,参考左图,要满足判定掩盖,需要选择路径acef和abdf,或abef和acdf。,测试用例:,A=5,B=0,X=4掩盖acef,A=1,B=1,X=1掩盖abdf,测试用例:,A=5,B=1,X=1掩盖abef,A=3,B=0,X=1掩盖acdf,山东建筑大学计算机科学与技术学院软件工程专业,规律掩盖-判定掩盖,判定掩盖同样满足语句掩盖。固然,并不是全部的判定都如此简洁,判定条件还存在于多分支选择语句和循环语句中。,for(i=1;i1 B=0 AND OR,1 T T T T,2 F F F F,A1orB=0,测试还是能通过的。,山东建筑大学计算机科学与技术学院软件工程专业,规律掩盖-判定掩盖,满足判定掩盖,也不是完整的测试。,对于复合条件,判定掩盖会在其一个组合中被测试到,但是不能执行全部条件的不同分支。因此,判定掩盖的完整性虽然比语句掩盖高,但是却不如条件掩盖。,用例,A=5,,,B=0,,,X=4,A=1,,,B=1,,,X=1,test A 1 B=0 A=5 X1,1 T T T,F,2 F F F,F,山东建筑大学计算机科学与技术学院软件工程专业,规律掩盖-条件掩盖,条件掩盖Condition Coverage是设计假设干个测试用例,运行被测程序,使得程序中每一判定语句中每个规律条件的可能取值至少执行一次。,山东建筑大学计算机科学与技术学院软件工程专业,规律掩盖-条件掩盖,对于第一个判定条件:,条件1:A1,真T1,假F1,条件2:B=0,真T2,假F2,对于其次个判定条件:,条件3:A=5,真T3,假F3,条件4:X1,真T4,假F4,测试用例,条件取值,路径,A=5,B=1,X=1,T1,F2,T3,F4,abef,A=1,B=0,X=3,F1,T2,F3,T4,abef,条件掩盖不愿定,包含判定掩盖,,存在路径缺失问,题。,山东建筑大学计算机科学与技术学院软件工程专业,规律掩盖-判定条件掩盖,判定/条件掩盖Decision/Condition Coverage也叫分支/条件掩盖是将判定掩盖、条件掩盖结合起来的一种测试用例设计方法。,其含义是设计足够的测试用例,使得判定中每个条件的全部可能取值至少执行一次,同时全部判定的可能结果也至少被执行一次。,山东建筑大学计算机科学与技术学院软件工程专业,规律掩盖法-判定条件掩盖,测试用例,通过路径,条件取值,覆盖,分支,A=5,B=0,X=7,acef,T1,T2,T3,T4,c,e,A=1,B=1,X=1,abdf,F1,F2,F3,F4,b,d,满足了推断掩盖。,满足了条件掩盖。,缺点:不是全部的条件,都能真正检查到。,条件,1,:,A1,,真,T1,,假,F1,条件,2,:,B=0,,真,T2,,假,F2,条件,3,:,A=5,,真,T3,,假,F3,条件,4,:,X1,,真,T4,,假,F4,没有真正的检查到。,山东建筑大学计算机科学与技术学院软件工程专业,规律掩盖-条件组合掩盖,条件组合掩盖也称多条件掩盖Multiple Condition Coverage,它的含义是设计足够的测试用例,使得每个判定中每个条件的各种组合都至少被执行一次。,满足条件组合掩盖的测试用例确定满足判定掩盖、条件掩盖和判定/条件掩盖。,山东建筑大学计算机科学与技术学院软件工程专业,规律掩盖-条件组合掩盖,对于所举例如,每个判定中有2个规律条件,每个规律条件有2种取值,,因此共有8种可能组合。先对各个判定的条件取值组合加以标记。,山东建筑大学计算机科学与技术学院软件工程专业,规律掩盖-条件组合掩盖,测试用例,路径,条件取值,覆盖组合,A=5,B=0,X=7,acef,T1,T2,T3,T4,(,1,)(,5,),A=5,B=1,X=1,abef,T1,F2,T3,F4,(,2,)(,6,),A=1,B=0,X=3,abef,F1,T2,F3,T4,(,3,)(,7,),A=1,B=1,X=1,abdf,F1,F2,F3,F4,(,4,)(,8,),满足条件组合掩盖标准的测试数据,并不愿定能使程序中的每条路径都,执行到,如没有掩盖路径acdf。,优点:条件组合掩盖准则满足判定,掩盖、条件掩盖和判定/条件掩盖准,则。缺点:缺失路径,线性地增加,了测试用例的数量,工作量较大。,山东建筑大学计算机科学与技术学院软件工程专业,白盒测试例题,1,PROGRAM som(maxint,N:INT),2,INT result:=0;i:=0;,3,IF,N 0,4,THEN,N :=-N;,5,WHILE,(i N),AND,(result=maxint),6,DO,i :=i+1;,7,result :=result+i;,8,OD,;,9,IF,result=maxint,10,THEN,OUTPUT(result),11,ELSE,OUTPUT(“too large”),12,END,.,i:=i+1;,result:=result+i;,(,iN)and,(result=maxint),result=maxint,N 0,N:=-N;,output(result);,output(,too large,);,exit,start,yes,no,no,yes,yes,no,N 0,result=0 i=0,山东建筑大学计算机科学与技术学院软件工程专业,白盒测试例题,i:=i+1;,result:=result+i;,(,iN)and,(result=maxint),result=maxint,N 0,N:=-N;,output(result);,output(,too large,);,exit,start,yes,no,no,yes,yes,no,N 0,result=0 i=0,测试用例,路径,覆盖标准,maxint=10,,,N=-1,maxint=0,,,N=-1,123456,123457,语句覆盖,maxint=10,,,N=3,maxint=-1,,,N=-1,13456,12357,判定覆盖,maxint=-1,,,N=-1,maxint=1,,,N=0,12357,1356,条件覆盖,maxint=-1,,,N=-1,maxint=1,,,N=0,maxint=10,,,N=3,12357,1356,13456,判定条件覆盖,maxint=-1,,,N=-1,maxint=1,,,N=0,maxint=1,,,N=-1,maxint=-1,,,N=0,12357,1356,13456,1357,条件组合覆盖,6,1,2,3,4,5,7,(i=result=0):,maxint N,iN,result=maxint,-1 -1,true false,1 0,false true,(i=result=0):,maxint N,iN,result=maxint,-1 -1,true false,1 0,false true,1 -1,true true,-1 0,false false,山东建筑大学计算机科学与技术学院软件工程专业,路径掩盖,路径掩盖Path Coverage的含义是设计足够的测试用例,要求掩盖程序中全部可能的路径。,我们可以通过根本路径法获得程序的根本路径,根本路径法是在程序把握流图的根底上,通过分析把握构造的环路简洁性,导出根本可执行路径的集合,从而设计测试用例的方法。,山东建筑大学计算机科学与技术学院软件工程专业,根本路径法,根本的把握构造对应的图形符号:,圆圈结点:表示一个或多个的语句或源程序;,箭头边或路径:代表把握流,由边和结点圈定的范围称为区域,当对区域计数时,图形外的区域也应记为一个区域。,山东建筑大学计算机科学与技术学院软件工程专业,根本路径法-把握流图,举例:假定图中用菱形框表示的判定条件内没有复合条件。,山东建筑大学计算机科学与技术学院软件工程专业,根本路径法-把握流图,假设推断中的条件表达式是复合条件,即条件表达式是由一个或多个规律运算符or、and、nor连接的复合条件表达式,则需要改为一系列只有单个条件的嵌套的推断。,Q,A,0,P,T,F,A,0,P,Q,P,山东建筑大学计算机科学与技术学院软件工程专业,根本路径法-程序环路简洁性,程序的环路简洁性是一种为程序规律简洁性供给定量测度的软件度量,通过对程序把握流图的分析和推断来计算模块的简洁性,从程序的环路简洁性可导出程序根本路径集合中的独立路径条数。,独立路径是指包括一组以前没有处理的语句或条件的一条路径。从把握流图上看,一条独立路径是至少包含有一条在其他独立路径中从未有过的边的路径。,山东建筑大学计算机科学与技术学院软件工程专业,根本路径法-程序环路简洁性,环路简洁性的计算方法有三种:,程序的环形简洁度计算公式为:VG=m-n+2,其中,m是程序流图G中边的数量,n是结点的数量。,假设P是流图中判定结点的个数:VG=P+1。源代码IF语句及While、For或Repeat循环语
展开阅读全文