逻辑结构 白盒法举例Procedure (VAR A,B,X:REAL );BEGINIF (A>1) AND (B=0) THEN X:=X/A ;A>1ANDB=0X:=X/AYNPage 　 77;IF (A=2) OR (X>1) THEN X:=X+1END;A=2OR X>1X:=X+1YN 1 1 1 、语句覆盖  使得程序中每个语句至少都能被执行一次。满足语句覆盖的情况:执行路径:sacbed满足语句覆盖的情况:执行路径:sacbedA>1ANDB=0acY开始sPage 　 88选择用例:[(2,0,4),(2,0,3)]用例格式:[输入(A,B,X),输出(A,B,X)选择用例:[(2,0,4),(2,0,3)]用例格式:[输入(A,B,X),输出(A,B,X)] ]X:=X/AA=2OR X>1X:=X+1bdeNYN结束 2 2 2 、判定覆盖  使得程序中每个判定至少为 TRUE 和 FALSE 各一次。覆盖情况:应执行路径sabd ∧ ∧ sacbed或: sacbd ∧ ∧ sabedA>1ANDB=0acY开始sPage 　 99选择用例(其一):⑴ [(2,0,4),(2,0,3)] 其一):⑴ [(2,0,4),(2,0,3)] sacbed[(1,1,1),(1,1,1)] sabd⑵ [(2,1,1),(2,1,2)] sabed[(3,0,3),(3,1,1)] sacbdX:=X/AA=2OR X>1X:=X+1bdeNYN结束 3 3 3 、条件覆盖  使判定中的每个条件至少都获得一次“真”值和“假”值。应满足以下覆盖情况:判定一: A>1 A≤1 B=0 B≠0A≤1 B=0 A>1 B≠0A>1ANDB=0acY开始 sPage 　 1010判定一 ≤ ≠判定二: A=2 A≠2 X>1 X≤1选择用例:[(2,0,4),(2,0,3)][(1,1,1),(1,1,1)] 选择用例:[(2,0,4),(2,0,3)][(1,1,1),(1,1,1)] 2 2A≠20 4X>11 1A=21 1X≤1X:=X/AA=2OR X>1X:=X+1bdeNYN结束 4 4 4 、判定/ / / 条件覆盖  同时满足判定覆盖和条件覆盖。应满足以下覆盖情况:条件应满足以下覆盖情况:条件: A>1, A≤1, B=0, B≠0A=2, A≠2, X>1, X≤1应执行路径A>1ANDB=0acY开始sPage 　 1111应执行路径sacbed ∧ ∧ sabd选择用例:[(2,0,4),(2,0,3)](选择用例:[(2,0,4),(2,0,3)](sacbed ) )[(1,1,1),(1,1,1)] (sabd) )X:=X/AA=2OR X>1X:=X+1bdeNYN结束 5 5 5 、条件组合覆盖  使得每个判定中条件的各种“真”“假”可能组合都至少出现一次使得每个判定中条件的各种“真”“假”可能组合都至少出现一次满足以下覆盖情况:① ① A>1, B =0 ② A>1, B≠0③ ③ A≤1, B =0 ④ ④ A≤1, B≠0 ⑤ ⑤ A=2 X>1 ⑥ ⑥ A=2 X≤1A>1X:=X/Aac B=0YNYNcPage 　 12编译系统下的执行情况:部分路径未被执行。编译系统下的执行情况:部分路径未被执行。⑤ ⑤ A=2, X>1 ⑥ ⑥ A=2, X≤1⑦ ⑦ A≠2, X>1 ⑧ ⑧ A≠2, X≤1选择用例:[(2,0,4),(2,0,3)][(2,1,1),(2,1,2)] [(1,0,3),(1,0,4)][(1,1,1),(1,1,1)][(2,0,4),(2,0,3)][(2,1,1),(2,1,2)] [(1,0,3),(1,0,4)][(1,1,1),(1,1,1)]A=2X:=X+1bdeX>1YNYN结束① ⑤② ⑥③ ⑦④ ⑧① ⑤② ⑥③ ⑦④ ⑧ 6 6 6 、路径覆盖法测试用例通过路径测试用例通过路径A B XA>1ANDB=0acY开始s  每条可能的路径都至少执行一次Page 　 13131 1 1 sabd1 1 2 sabed3 0 1 sacbd2 0 4 sacbedX:=X/AA=2OR X>1X:=X+1bdeNYN结束 例题:三角形问题 输入三整数,判断是否构成三角形,如构成三角形,则输出三条边的值,否则输出“不能构成三角形”。输入三整数,判断是否构成三角形,如构成三角形,则输出三条边的值,否则输出“不能构成三角形”。 要求:2 、设计路径覆盖的测试用例。Page 　 1414 解法1 1 1 : 覆盖路径: 1 .①— ②— ④ 2 .①— ③— ④开始输入A,B,CPage 　 1515(A+B>C)&(A+C>B)&(B+C>A)输出ABC 不能构成三角形结束FT①② ③④①② ③④路径测试用例(A,B,C)结果1 A=3,B=4,C=5 A=3,B=4,C=52 A=5,B=8,C=2 不能构成三角形 解法2 2 2 : 覆盖路径: 测试用例 1 .①— ②— ③— ④— ⑥ (3 ,4 ,5 ) 2 .①— ⑤— ⑥ (2 ,2 ,5 ) 3 .①— ②— ⑤— ⑥ (2 ,5 ,2 ) 4 .①— ②— ③— ⑤— ⑥ (5 ,2 ,2 )开始输入A,B,CA+B>CF ①Page 　 1616A+C>BB+C>A输出ABC 不能构成三角形结束FFTTT②③④ ⑤②③④ ⑤⑥ 解法2 2 2 :路径覆盖法测试用例设计路径 测试用例(A,B,C) 结果1 A=3,B=4,C=5 A=3,B=4,C=52 A=2,B=2,C=5 不能构成三角形Page 　 17173 A=2,B=5,C=2 不能构成三角形4 A=5,B=2,C=2 不能构成三角形 基本路径测试 1 、画出流程图12Page 　 181891011457 836 基本路径测试 2 、简化流程图12,3Page 　 19198 7694,51011 基本路径测试 3 、计算环路复杂度 环路复杂度(Cyclomatic complexity ):代码逻辑复杂度的 度量。用代码逻辑复杂度的 度量。用V(G) 表示。通过V(G) 确定基本路径数。 V(G) 区域数量( 由节点 连线包围的区域 包括图形外部区域)Page 　 2020 V(G) = 区域数量( 由节点 、 连线包围的区域 , 包括图形外部区域) V(G) = 连线数量 - 节点数量 + 2 V(G) = 简单可预测节点数量 + 1 12,36 4,5Region 1Region 4基本路径测试Page 　 21V(G)=47 891011Region 2Region 3 基本路径测试 3 、确定基本路径集合 基本路径集合 : 由独立路径构成的集合 由基本路劲集合导出的 测试用例,保证被测程序的每条可执行语句至少被执行一次。,保证被测程序的每条可执行语句至少被执行一次。 基本集合 不 定唯Page 　 2222 基本集合 不 一 定唯 一 Path1: 1-2-3-6-7-9-10-1-11示例:基本路径测试用例Path2: 1-2-3-6-8-9-10-1-1112Page 　 2323Path3: 1-2-3-4-5-10-1-11Path4: 1-1191011458 736还有其它路径集合吗? 基本路径测试:练习AC DBPath1: A-C-EPath2: A-B-C-EPage 　 2424EC DPath3: A-B-C-D-EV(G)= ?还有其它路径集合吗?3 测试方法类-黑盒测试 黑盒测试这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明 。 因此黑盒测试又叫功能测试或数据驱动测试 。 主要Page 　 25明 。 因此黑盒测试又叫功能测试或数据驱动测试 。 主要应用于快速开发环境。 测试方法类-黑盒测试 黑盒测试主要是为了发现以下几类错误: 是否有不正确或遗漏的功能?在接口上,输入是否能正确的接受?能否输出正确的结果?在接口上,输入是否能正确的接受?能否输出正确的结果? 是否有数据结构错误或外部信息 ( 例如数据文件 ) 访问Page 　 26 是否有数据结构错误或外部信息 ( 例如数据文件 ) 访问错误? 性能上是否能够满足要求? 是否有初始化或终止性错误? 黑盒法 不考虑程序的内部结构与特性,只根据程序功能或程序的外部特性设计测试用例。不考虑程序的内部结构与特性,只根据程序功能或程序的外部特性设计测试用例。Page 　 2727等价分类法等价分类法边值分析法边值分析法错误推测法错误推测法因果图法因果图法判定表法判定表法 1 1 1 、等价分类法 基本思想 根据程序的I/O特性,将程序的定义域划分为有限个等价区段特性,将程序的定义域划分为有限个等价区段 —“等价类”,从等价类中选择出的用例,具有“代表性”。等价类”,从等价类中选择出的用例,具有“代表性”。