资源描述:
《软件测试技术_第五章白盒测试课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、白盒测试软件测试课程组西南科技大学计算机学院软件测试技术白盒测试白盒测试(WhiteBoxTesting)白盒测试又叫结构测试,逻辑驱动测试或基于程序本身的测试。白盒测试测试用例被测程序源程序分析覆盖情况分析执行路径例:含4个分支,循环次数≤20,计算从A到B的可能路径。彻底的白盒测试AB白盒测试白盒测试方法:控制流测试逻辑覆盖路径测试数据流测试基于程序片的测试本章主要内容控制流图逻辑覆盖测试基路径测试数据流测试基于程序片的测试5.1控制流图控制流图是退化的程序流程图,图中每个处理都退化成一个结点,流线变成连接不同结点的有向弧。控制流图将程序流程图中
2、结构化构件改用一般有向图的形式表示。控制流图在控制流图中用圆“○”表示节点,一个圆代表一条或多条语句。控制流图中的基本元素:节点边基本控制流图顺序结构IF选择结构While循环结构Until循环结构Case多分支结构复合逻辑下的控制流图aorbx++x--(a)(b)(c)ax++x++x--b5.2逻辑覆盖语句覆盖判定覆盖(分支覆盖)条件覆盖判定-条件覆盖条件组合覆盖路径覆盖例子程序:if((a>1)&&(b==0))x=x/a;if((a==2)
3、
4、(x>1))x=x+1;程序框图(A>1)AND(B=0)(A=2)OR(X>1)aX=X/AX=
5、X+1eFFTTbdc1.语句覆盖设计若干条测试用例,使程序中每条可执行语句至少执行一次。用例ABX执行路径Case1203aceCase2213abe√×语句覆盖Case1:A=2,B=0,X=3(A>1)AND(B=0)(A=2)OR(X>1)aX=X/AX=X+1eFFTTbdc语句覆盖Case2:A=2,B=1,X=3(A>1)AND(B=0)(A=2)OR(X>1)aX=X/AX=X+1eFFTTbdc此语句未覆盖语句覆盖Case1:A=2,B=0,X=3(A>1)AND(B=0)(A=2)OR(X>1)aX=X/AX=X+1eFFTTbd
6、c错写成OR错写成AND语句覆盖是最弱的覆盖语句覆盖2.判定覆盖(分支覆盖)设计测试用例,使程序中的每个逻辑判断的取真和取假的分支至少经历一次。用例ABX执行路径Case1203aceCase3101abd第一组:Case1:A=2,B=0,X=3(A>1)AND(B=0)(A=2)OR(X>1)aX=X/AX=X+1eFFTTbdc判定覆盖第二组:Case3:A=1,B=0,X=1(A>1)AND(B=0)(A=2)OR(X>1)aX=X/AX=X+1eFFTTbdc判定覆盖只作到判定覆盖将无法确定判定内部条件的错误。(A>1)AND(B=0)(A
7、=2)OR(X>1)aX=X/AX=X+1eFFTTbdc错写成X<1判定覆盖Case4:A=3,B=0,X=3Case5:A=2,B=1,X=1因此判定覆盖仍是弱的覆盖标准。a(A>1)AND(B=0)(A=2)OR(X>1)X=X/AX=X+1eFFTTbdc错写成X<1例:说明:以上仅考虑了两出口的判断,我们还应把判定覆盖准则扩充到多出口判断(如Case语句)的情况。因此,判定覆盖更为广泛的含义应该是使得每一个判定获得每一种可能的结果至少一次。16352789410判定覆盖3.条件覆盖设计若干测试用例,使程序的每个判定中的每个条件的可能取值至少
8、满足一次上例中设条件:A>1T1F1B=0T2F2A=2T3F3X>1T4F4取真表为取假表为满足条件覆盖的一组测试用例ABX路径覆盖分支覆盖条件Case6211abebeT1F2T3F4Case7103abebeF1T2F3T43.条件覆盖条件覆盖Case6:A=2,B=1,X=1Case7:A=1,B=0,X=3(A>1)AND(B=0)(A=2)OR(X>1)aX=X/AX=X+1eFFTTbdc两个测试用例覆盖了四个条件八种可能取值。但未覆盖c、d分支,不满足判定覆盖的要求。条件覆盖4.判定-条件覆盖使判定中每个条件的可能取值至少满足一次,并
9、且使每个判定分支至少执行一次。判定-条件覆盖能同时满足判定、条件两种覆盖标准。满足判定-条件覆盖的一组测试用例ABX路径覆盖分支覆盖条件Case1203aceceT1T2T3T4Case8111abdbdF1F2F3F4(A>1)AND(B=0)(A=2)OR(X>1)aX=X/AX=X+1eFFTTbdcCase1:A=2,B=0,X=3Case8:A=1,B=1,X=1(A>1)AND(B=0)(A=2)OR(X>1)aX=X/AX=X+1eFFTTbdc5.条件组合覆盖设计用例,使得每个判断表达式中条件的各种可能组合都至少出现一次;上例中需考虑
10、4个条件的8种组合①A>1,B=0T1T2判定一为真②A>1,B≠0T1F2③A≤1,B=0F1T2判定一为