《《软件测试技术》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《软件测试技术》PPT课件.ppt(62页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第17章章软件测试技术软件测试技术软 件 工 程第第17章章软件测试技术软件测试技术17.1软件测试基础软件测试基础 17.1.1 17.1.1 17.1.1 17.1.1 测试目标测试目标测试目标测试目标 17.1.2 17.1.2 17.1.2 17.1.2 测试原则测试原则测试原则测试原则 17.1.3 17.1.3 17.1.3 17.1.3 可测试性可测试性可测试性可测试性17.2测试用例设计测试用例设计17.3白盒测试白盒测试17.4基本路径测试基本路径测试 17.4.1 17.4.1 17.4.1 17.4.1 流图符号流图符号流图符号流图符号 17.4.2 17.4.2 17
2、.4.2 17.4.2 环复杂度环复杂度环复杂度环复杂度 17.4.3 17.4.3 17.4.3 17.4.3 导出测试案例导出测试案例导出测试案例导出测试案例 17.4.4 17.4.4 17.4.4 17.4.4 图矩阵图矩阵图矩阵图矩阵第第17章章软件测试技术软件测试技术17.5 17.5 17.5 17.5 控制结构测试控制结构测试控制结构测试控制结构测试 17.5.1 17.5.1 17.5.1 17.5.1 条件测试条件测试条件测试条件测试 17.5.2 17.5.2 17.5.2 17.5.2 数据流测试数据流测试数据流测试数据流测试 17.5.3 17.5.3 17.5.3
3、17.5.3 循环测试循环测试循环测试循环测试17.6 17.6 17.6 17.6 黑盒测试黑盒测试黑盒测试黑盒测试 17.6.1 17.6.1 17.6.1 17.6.1 基于图的测试方法基于图的测试方法基于图的测试方法基于图的测试方法 17.6.2 17.6.2 17.6.2 17.6.2 等价划分等价划分等价划分等价划分 17.6.3 17.6.3 17.6.3 17.6.3 边界值分析边界值分析边界值分析边界值分析 17.6.4 17.6.4 17.6.4 17.6.4 比较测试比较测试比较测试比较测试 17.6.5 17.6.5 17.6.5 17.6.5 正交数组测试正交数组测试
4、正交数组测试正交数组测试第第17章章软件测试技术软件测试技术17.7 17.7 针对专门环境、体系结构和应用的测试针对专门环境、体系结构和应用的测试 17.7.1 17.7.1 测试测试GUIGUI 17.7.2 17.7.2 客户客户/服务器体系结构的测试服务器体系结构的测试 17.7.3 17.7.3 测试文档和帮助设施测试文档和帮助设施 实时系统测试实时系统测试17.8 17.8 小结小结第第17章章软件测试技术软件测试技术软件开发过程必须伴有质量保证活动软件开发过程必须伴有质量保证活动软件测试是软件质量保证的关键元素,软件测试是软件质量保证的关键元素,代表了规约、设计和编码的最终检查。
5、代表了规约、设计和编码的最终检查。17.1.1 测试目标1.1.测试是为了寻找错误而运行程序的过程。测试是为了寻找错误而运行程序的过程。2.2.一个好的测试用例是指很可能找到迄今为一个好的测试用例是指很可能找到迄今为止尚未发现的错误的测试。止尚未发现的错误的测试。3.3.一个成功的测试是揭示了迄今为止尚未发一个成功的测试是揭示了迄今为止尚未发现的错误的测试。现的错误的测试。17.1.2测试原则测试原则(1)(1)所有的测试都应追溯到用户需求,所有的测试都应追溯到用户需求,程序中的问题根源程序中的问题根源可能在开发前期的可能在开发前期的各阶段解决、纠正错误也必须追溯到各阶段解决、纠正错误也必须追
6、溯到前期工作。前期工作。测测试试与与开开发发前前期期工工作作的的关关系系决定软件与系统的配合关系决定软件与系统的配合关系需求分析需求分析概要设计概要设计详细设计详细设计 编编 码码单元测试单元测试集成测试集成测试确认测试确认测试系统测试系统测试开发前期出现错误的扩展开发前期出现错误的扩展计划计划需求需求分析分析设设计计编编码码测测试试A A AB B软件生存期各阶段间需保持的正确性软件生存期各阶段间需保持的正确性用户要求用户要求用户用户:我要什么我要什么?运行结果运行结果计算机计算机:程序运行得程序运行得到的结果到的结果源程序源程序程序员程序员:我要让计算我要让计算机什么做机什么做?设计说明书
7、设计说明书设计员设计员:我要让软件我要让软件做什么做什么?需求说明书需求说明书分析员分析员:我可以提我可以提供什么供什么?12345理解正确性理解正确性表达正确性表达正确性理解正确性理解正确性设计正确性设计正确性表达正确性表达正确性理解正确性理解正确性编码正确性编码正确性运行正确性运行正确性输入正确性输入正确性相符吗相符吗?17.1.2测试原则测试原则(2)(2)测试工作真正开始前较长时间就进行测试测试工作真正开始前较长时间就进行测试 计划计划 (3)(3)paretopareto原则可应用于软件测试原则可应用于软件测试(4)(4)测试应从测试应从“小规模小规模”开始,逐步转向开始,逐步转向“
8、大规大规模模”(5)(5)穷举测试是不可能的。穷举测试是不可能的。(6)(6)应由独立的第三方来构造测试应由独立的第三方来构造测试 17.1.3可测试性可测试性 可测试软件的特征:可测试软件的特征:可操作性可操作性可观察性可观察性可控制性可控制性可分解性可分解性简单性简单性稳定性稳定性易理解性易理解性 “好好”测试的属性:测试的属性:发现错误的可能性高发现错误的可能性高不冗余不冗余在目的相似的测试中,应使用最可能找到所在目的相似的测试中,应使用最可能找到所有错误的测试有错误的测试一个好测试不会太简单,也不会太复杂。每一个好测试不会太简单,也不会太复杂。每一个测试应独立执行一个测试应独立执行软件
9、测试有关概念软件测试有关概念测试中用到的模型元素(测试中用到的模型元素(UML类图)类图)测试组测试组测试用例测试用例故故 障障组组 件件测试存根测试存根测试驱动程序测试驱动程序误误 差差错错 误误改改 正正由修改由引起由引起找出使用修改1n*17.2测试用例设计测试用例设计选择测试用例是软件测试员最重要的一项工作。选择测试用例是软件测试员最重要的一项工作。测试用例的属性测试用例的属性:属性属性 描述描述name name 测试用例的名称测试用例的名称测试用例的名称测试用例的名称 location location 可执行的完全路径名可执行的完全路径名可执行的完全路径名可执行的完全路径名 in
10、put input 输入数据或命令输入数据或命令输入数据或命令输入数据或命令oracle oracle 与测试输入相比较的期待测试结果与测试输入相比较的期待测试结果与测试输入相比较的期待测试结果与测试输入相比较的期待测试结果log log 测试生产的输出测试生产的输出测试生产的输出测试生产的输出17.3白盒测试白盒测试又称又称又称又称:开盒测试、结构测试、玻璃盒测试、基于覆盖开盒测试、结构测试、玻璃盒测试、基于覆盖开盒测试、结构测试、玻璃盒测试、基于覆盖开盒测试、结构测试、玻璃盒测试、基于覆盖 的测试。根据被测程序的逻辑结构设计测试用的测试。根据被测程序的逻辑结构设计测试用的测试。根据被测程序
11、的逻辑结构设计测试用的测试。根据被测程序的逻辑结构设计测试用 例,力求提高测试覆盖率。例,力求提高测试覆盖率。例,力求提高测试覆盖率。例,力求提高测试覆盖率。使用白盒测试,产生的测试案例可以:使用白盒测试,产生的测试案例可以:使用白盒测试,产生的测试案例可以:使用白盒测试,产生的测试案例可以:1)1)1)1)保证一个模块中的所有独立路径至少被使用一次;保证一个模块中的所有独立路径至少被使用一次;保证一个模块中的所有独立路径至少被使用一次;保证一个模块中的所有独立路径至少被使用一次;2)2)2)2)对所有逻辑值均需测试真和假;对所有逻辑值均需测试真和假;对所有逻辑值均需测试真和假;对所有逻辑值均
12、需测试真和假;3)3)3)3)在上下边界及可操作范围内运行所有循环;在上下边界及可操作范围内运行所有循环;在上下边界及可操作范围内运行所有循环;在上下边界及可操作范围内运行所有循环;4)4)4)4)检查内部数据结构以确保其有效性。检查内部数据结构以确保其有效性。检查内部数据结构以确保其有效性。检查内部数据结构以确保其有效性。白盒测试的测试用例设计白盒测试的测试用例设计逻辑覆盖法逻辑覆盖法(1)(1)语句覆盖语句覆盖(2)(2)判定覆盖判定覆盖(3)(3)条件覆盖条件覆盖(4)(4)判定判定/条件覆盖条件覆盖(5)(5)条件组合覆盖条件组合覆盖(6)(6)路径覆盖路径覆盖(7)(7)点覆盖点覆盖
13、(8)(8)边覆盖边覆盖例例:PROCEDURE SAMPAL (A,B:REAL;VAR X:REAL);BEGIN IF(A1)AND(B=0)THEN X:=X/A IF(A=2)OR(X1)THEN X:=X+1 END;开始开始(A1)AND(B=0)(A=2)OR(X1)返回返回X=X/AX=X+1FFTTabdce(1)(1)语句覆盖语句覆盖使程序中每个语句至少执行一次使程序中每个语句至少执行一次语句覆盖语句覆盖开始开始(A1)AND(B=0)(A=2)OR(X1)返回返回X=X/AX=X+1FFTTabdce只需设计一个测试用例只需设计一个测试用例:输入数据:输入数据:A=2,
14、B=0,X=4即达到了语句覆盖即达到了语句覆盖;语句覆盖是语句覆盖是最弱最弱的逻辑覆盖的逻辑覆盖(2)(2)判定覆盖判定覆盖(分支覆盖分支覆盖)使每个判定的真假分支都至少执行一次使每个判定的真假分支都至少执行一次判定覆盖判定覆盖开始开始(A1)AND(B=0)(A=2)OR(X1)返回返回X=X/AX=X+1FFTTabdce例例:可设计两组测试用例可设计两组测试用例:A=3,B=0,X=3 可覆盖可覆盖c、d分支分支 A=2,B=1,X=1 可覆盖可覆盖b、e分支分支 两组测试用例可覆盖所有判定的真假分支两组测试用例可覆盖所有判定的真假分支语句覆盖仍是语句覆盖仍是弱弱的逻辑覆盖的逻辑覆盖(3
15、)(3)条件覆盖条件覆盖 使每个判定的每个条件的可能取值使每个判定的每个条件的可能取值至少至少执行一次执行一次第一判定表达式第一判定表达式:设设条件条件 A1 A1 取真取真 记为记为 T1T1 假假 T1T1 条件条件 B=1 B=1 取真取真 记为记为 T2T2 假假 T2T2第二判定表达式第二判定表达式:设设条件条件 A=2 A=2 取真取真 记为记为 T3T3 假假 T3T3 条件条件 X1 X1 取真取真 记为记为 T4T4 假假 T4T4条件覆盖条件覆盖开始开始(A1)AND(B=0)(A=2)OR(X1)返回返回X=X/AX=X+1FFTTabdce满足条件满足条件:T1,T1,
16、T2,T2 T3,T3 T4,T4测试用例测试用例 通过通过 满足的满足的 覆盖覆盖A B X 路径路径 条件条件 分支分支1 0 3 abe T1,T2,T3,T4 b,e2 1 1 abe T1,T2,T3,T4 b,e 两个测试用例两个测试用例覆盖了四个条件八种可能取值。覆盖了四个条件八种可能取值。未覆盖未覆盖c c、d d分支分支,不满足判定覆盖的要求,不满足判定覆盖的要求.条件覆盖不一定包含判定覆盖条件覆盖不一定包含判定覆盖判定覆盖也不一定包含条件覆盖判定覆盖也不一定包含条件覆盖(4)(4)判定判定/条件覆盖条件覆盖 选选取取足足够够多多的的测测试试用用例例,使使判判断断中中的的每每
17、个个条条件件的的所所有有可可能能取取值值至至少少执执行行一一次次,同同时时每每个个判判断断本本身身的的所所有有可可能能判判断断结结果果至少执行一次至少执行一次.判定判定/条件条件 覆盖覆盖开始开始(A1)AND(B=0)(A=2)OR(X1)返回返回X=X/AX=X+1FFTTabdce满足条件满足条件:T1,T1,T2,T2 T3,T3 T4,T4测试用例测试用例 通过通过 满足的满足的 覆盖覆盖A B X 路径路径 条件条件 分支分支2 0 4 ace2 0 4 ace T1,T2,T3,T4 T1,T2,T3,T4 c c,e e2 1 1 abd2 1 1 abd T1,T2,T3,T
18、4 T1,T2,T3,T4 b b,d d 能同时满足判定、条件两种覆盖标准能同时满足判定、条件两种覆盖标准的取值。的取值。测试用例测试用例 通过通过 满足的满足的 覆盖覆盖A B X A B X 路径路径 条件条件 分支分支2 0 3 ace T1,T2,T3,T4 c,e2 0 3 ace T1,T2,T3,T4 c,e2 1 1 abe2 1 1 abe T1,T2,T3,T4 T1,T2,T3,T4 b,e b,e1 0 3 abe1 0 3 abe T1,T2,T3,T4 b,e T1,T2,T3,T4 b,e1 1 1 abd1 1 1 abd T1,T2,T3,T4 b,d T1
19、,T2,T3,T4 b,d(5)(5)条件组合覆盖条件组合覆盖 所有可能的条件取值组合至少执行一次所有可能的条件取值组合至少执行一次 A1,B=0 A1,B0 A 1,B=0 A 1,B0 A=2,X1 A=2,X 1 A2,X1 A2,X 1测试用例测试用例 通过通过 满足的满足的 覆盖覆盖A B X 路径路径 条件条件 分支分支2 0 4 ace T1,T2,T3,T4 c,e2 0 4 ace T1,T2,T3,T4 c,e2 1 1 abe2 1 1 abe T1,T2,T3,T4 T1,T2,T3,T4 b,e b,e1 0 2 abd1 0 2 abd T1,T2,T3,T4 b,
20、d T1,T2,T3,T4 b,d1 1 1 abd1 1 1 abd T1,T2,T3,T4 b,d T1,T2,T3,T4 b,d (6)(6)路径覆盖路径覆盖 覆盖每一个可能的路径覆盖每一个可能的路径测试用例测试用例 通过通过 满足的满足的 覆盖覆盖A B X 路径路径 条件条件 分支分支1 1 1 abd T1,T2,T3,T4 b,d1 1 1 abd T1,T2,T3,T4 b,d1 1 2 abe1 1 2 abe T1,T2,T3,T4 T1,T2,T3,T4 b,e b,e3 0 1 acd3 0 1 acd T1,T2,T3,T4 c,d T1,T2,T3,T4 c,d2
21、0 4 ace2 0 4 ace T1,T2,T3,T4 c,e T1,T2,T3,T4 c,e17.4 17.4 基本路径测试法基本路径测试法 通过分析由控制构造的环路的复杂性,通过分析由控制构造的环路的复杂性,导出基本路径集合,从而设计测试用例,导出基本路径集合,从而设计测试用例,保证这些路径至少通过一次。保证这些路径至少通过一次。基本路径测试步骤:基本路径测试步骤:导出程序流程图的拓扑结构导出程序流程图的拓扑结构导出程序流程图的拓扑结构导出程序流程图的拓扑结构-流图流图流图流图(程序图程序图程序图程序图)计算流图计算流图计算流图计算流图G G G G的环路复杂度的环路复杂度的环路复杂度的
22、环路复杂度V(G)V(G)V(G)V(G)确定只包含独立路径的基本路径集确定只包含独立路径的基本路径集确定只包含独立路径的基本路径集确定只包含独立路径的基本路径集 设计测试用例设计测试用例设计测试用例设计测试用例导出程序流程图的拓扑结构导出程序流程图的拓扑结构-流图流图1 12,32,36 64,54,57 710101111a节点节点边边R4R4区域区域1 12 23 34 45 58 87 76 69 91111程序流程图程序流程图8 89 9R1R1R2R2R3R31010在上图中,每一个圆称为流图的在上图中,每一个圆称为流图的节点节点,它代表,它代表一个或多个过程语句。一个处理方框序列
23、和一个菱一个或多个过程语句。一个处理方框序列和一个菱形决策框可被映射为一个节点,流图中的箭头称为形决策框可被映射为一个节点,流图中的箭头称为边边或连接,它代表控制流,类似流程图中的箭头。或连接,它代表控制流,类似流程图中的箭头。一条边必须终止于一个节点,即使该节点并不代表一条边必须终止于一个节点,即使该节点并不代表任何语句。由边和节点限定的区称为任何语句。由边和节点限定的区称为区域区域。计算区。计算区域时应包括图外部区,将其作为一个区域。域时应包括图外部区,将其作为一个区域。计算流图计算流图计算流图计算流图G G G G的环路复杂度的环路复杂度的环路复杂度的环路复杂度V(G)V(G)V(G)V
24、(G)V(G)=V(G)=V(G)=V(G)=区域个数区域个数区域个数区域个数=4=4=4=4 V(G)=V(G)=V(G)=V(G)=边的条数边的条数边的条数边的条数-节点个数节点个数节点个数节点个数+2+2+2+2=4=4=4=4 V(G)=V(G)=V(G)=V(G)=判定节点个数判定节点个数判定节点个数判定节点个数+1+1+1+1=4=4=4=4V(G)V(G)V(G)V(G)的值提供了组成基本集的独立路径的上界的值提供了组成基本集的独立路径的上界的值提供了组成基本集的独立路径的上界的值提供了组成基本集的独立路径的上界,并由,并由,并由,并由此得出覆盖所有程序语句所需的测试数量的上界。
25、此得出覆盖所有程序语句所需的测试数量的上界。此得出覆盖所有程序语句所需的测试数量的上界。此得出覆盖所有程序语句所需的测试数量的上界。独立路径独立路径独立路径独立路径指程序中至少引进一个新的处理语句集合或指程序中至少引进一个新的处理语句集合或指程序中至少引进一个新的处理语句集合或指程序中至少引进一个新的处理语句集合或一个新条件的任一路径。即独立路径必须至少沿一条一个新条件的任一路径。即独立路径必须至少沿一条一个新条件的任一路径。即独立路径必须至少沿一条一个新条件的任一路径。即独立路径必须至少沿一条在定义该路径之前不曾用到的边移动。在定义该路径之前不曾用到的边移动。在定义该路径之前不曾用到的边移动
26、。在定义该路径之前不曾用到的边移动。17.4.2环复杂度环复杂度确定只包含独立路径的基本路径集确定只包含独立路径的基本路径集path1:1-11path1:1-11path1:1-2-3-4-5-10-1-11path1:1-2-3-4-5-10-1-11path1:1-2-3-6-8-9-10-1-11path1:1-2-3-6-8-9-10-1-11path1:1-2-3-6-7-9-10-1-11path1:1-2-3-6-7-9-10-1-11 一条新路径必须包含一条新边。一条新路径必须包含一条新边。这这4 4条路径组成了一个基本路径集。条路径组成了一个基本路径集。4(4(环环路复杂度
27、路复杂度V(G)V(G)是构成这个基本路径集的独立是构成这个基本路径集的独立路径数的上界,也是设计路径数的上界,也是设计测试用例的数目。测试用例的数目。设计测试用例,保证基本路径集中每条设计测试用例,保证基本路径集中每条路径的执行。路径的执行。17.4.4图矩阵图矩阵图矩阵是一个正方形矩阵,其大小(即列数和行数)图矩阵是一个正方形矩阵,其大小(即列数和行数)等于流图的节点数。等于流图的节点数。aedcbfg12345 12345 1 2 3 4 5 a b d c f g e节点节点连接到节点连接到节点对每个矩阵项加入连接权值,图矩阵即可用于对每个矩阵项加入连接权值,图矩阵即可用于在测试中评估
28、程序的控制结构。连接权值为控在测试中评估程序的控制结构。连接权值为控制流提供了附加的信息。最简单的情况:连接制流提供了附加的信息。最简单的情况:连接权值是权值是1 1(存在连接)或(存在连接)或0 0(不存在连接)。(不存在连接)。17.5控制结构测试控制结构测试 条件测试:检查程序模块中所包含逻辑条条件测试:检查程序模块中所包含逻辑条件的测试案例设计方法。件的测试案例设计方法。数据流测试:按照程序中的变量定义和使数据流测试:按照程序中的变量定义和使用的位置来选择程序的测试用的位置来选择程序的测试路径。路径。循环测试:注重于循环构成元素的有效性。循环测试:注重于循环构成元素的有效性。17.5.
29、1条件测试条件测试可能的条件的成分类型包括:布尔运算符、布尔变可能的条件的成分类型包括:布尔运算符、布尔变可能的条件的成分类型包括:布尔运算符、布尔变可能的条件的成分类型包括:布尔运算符、布尔变量、布尔括弧、关系运算符或算术表达式。条件测量、布尔括弧、关系运算符或算术表达式。条件测量、布尔括弧、关系运算符或算术表达式。条件测量、布尔括弧、关系运算符或算术表达式。条件测试策略有多种:试策略有多种:试策略有多种:试策略有多种:分支测试:对于复合条件分支测试:对于复合条件分支测试:对于复合条件分支测试:对于复合条件C C C C,C C C C的真分支和假分支的真分支和假分支的真分支和假分支的真分支
30、和假分支 以及以及以及以及C C C C中的每个简单条件都需要至少执行一次中的每个简单条件都需要至少执行一次中的每个简单条件都需要至少执行一次中的每个简单条件都需要至少执行一次。域测试:要求从有理表达式中导出三个或四个测域测试:要求从有理表达式中导出三个或四个测域测试:要求从有理表达式中导出三个或四个测域测试:要求从有理表达式中导出三个或四个测 试,有理表达式的形式:试,有理表达式的形式:试,有理表达式的形式:试,有理表达式的形式:E1E1E1E1E2E2E2E2,需,需,需,需 要三个测试分别使要三个测试分别使要三个测试分别使要三个测试分别使E1E1E1E1的值大于、等于或小于的值大于、等于
31、或小于的值大于、等于或小于的值大于、等于或小于E2E2E2E2的的的的 值。值。值。值。17.5.1条件测试条件测试 分支与关系运算符(分支与关系运算符(分支与关系运算符(分支与关系运算符(BROBROBROBRO)测试:保证检测布尔测试:保证检测布尔测试:保证检测布尔测试:保证检测布尔 变量和关系运算符只出现一次而且没有公共变量变量和关系运算符只出现一次而且没有公共变量变量和关系运算符只出现一次而且没有公共变量变量和关系运算符只出现一次而且没有公共变量 的条件中的分支和关系运算符错误。的条件中的分支和关系运算符错误。的条件中的分支和关系运算符错误。的条件中的分支和关系运算符错误。BROBRO
32、BROBRO策略利用条件策略利用条件策略利用条件策略利用条件C C C C的条件约束。有的条件约束。有的条件约束。有的条件约束。有n n n n个简单条件个简单条件个简单条件个简单条件 的条件的条件的条件的条件C C C C的条件约束定义为(的条件约束定义为(的条件约束定义为(的条件约束定义为(D1D1D1D1,D2D2D2D2,DnDnDnDn),),),),其中其中其中其中DiDiDiDi刻画条件刻画条件刻画条件刻画条件C C C C中第中第中第中第I I I I个简单条件的输出约束。个简单条件的输出约束。个简单条件的输出约束。个简单条件的输出约束。如果如果如果如果C C C C的执行过程
33、中的执行过程中的执行过程中的执行过程中C C C C的每个简单条件的输出都满的每个简单条件的输出都满的每个简单条件的输出都满的每个简单条件的输出都满 足足足足D D D D中对应的约束,则称条件中对应的约束,则称条件中对应的约束,则称条件中对应的约束,则称条件C C C C的条件约束的条件约束的条件约束的条件约束D D D D由由由由C C C C的的的的 执行所覆盖。执行所覆盖。执行所覆盖。执行所覆盖。BROBRO测试举例测试举例:例例1 1:C1C1:B1&B2 B1,B2B1&B2 B1,B2为布尔变量。为布尔变量。C1C1的条件约束形如(的条件约束形如(D1D1,D2D2),其中),其
34、中D1D1和和D2D2的值是的值是t t或或f f。BROBRO测试策略要求约束集测试策略要求约束集(t,t),(f,t),(t,f)(t,t),(f,t),(t,f)由由C1C1的执行所覆盖,如果的执行所覆盖,如果C1C1由于布尔运算符错误而不正确,由于布尔运算符错误而不正确,该约束集中至少有一个约束强制该约束集中至少有一个约束强制C1C1失败。失败。例例2 2:C2C2:B1&(E3=E4)B1&(E3=E4)(t,=),(f,=),(t,)(t,=),(f,=),(t,),此约束集的覆盖率将保,此约束集的覆盖率将保证检测证检测C2C2的布尔运算符和关系运算符错误。的布尔运算符和关系运算符
35、错误。17.5.2数据流测试数据流测试设程序的每条语句都赋予了独特的语句号而且每个函设程序的每条语句都赋予了独特的语句号而且每个函设程序的每条语句都赋予了独特的语句号而且每个函设程序的每条语句都赋予了独特的语句号而且每个函数都不改变其参数和全局变量。对于语句号为数都不改变其参数和全局变量。对于语句号为数都不改变其参数和全局变量。对于语句号为数都不改变其参数和全局变量。对于语句号为S S S S的语句,的语句,的语句,的语句,DEFDEFDEFDEF(S S S S)=X|=X|=X|=X|语句语句语句语句S S S S包含包含包含包含X X X X的定义的定义的定义的定义 USEUSEUSEU
36、SE(S S S S)=X|=X|=X|=X|语句语句语句语句S S S S包含包含包含包含X X X X的使用的使用的使用的使用 若语句若语句若语句若语句S S S S是是是是ifififif或循环语句,它的或循环语句,它的或循环语句,它的或循环语句,它的DEFDEFDEFDEF集为空而集为空而集为空而集为空而USEUSEUSEUSE集取决集取决集取决集取决于于于于S S S S的条件。如果存在从的条件。如果存在从的条件。如果存在从的条件。如果存在从S S S S到到到到SSSS的路径并该路径不含的路径并该路径不含的路径并该路径不含的路径并该路径不含X X X X的的的的其其其其他定义,则称
37、变量他定义,则称变量他定义,则称变量他定义,则称变量X X X X在语句在语句在语句在语句S S S S处的定义在语句处的定义在语句处的定义在语句处的定义在语句SSSS仍有效。仍有效。仍有效。仍有效。变量变量变量变量X X X X的定义的定义的定义的定义-使用链使用链使用链使用链(DUDUDUDU链链链链)形如形如形如形如XXXX,S S S S,SSSS,X X X X在在在在DEF(S)DEF(S)DEF(S)DEF(S)和和和和USE(S)USE(S)USE(S)USE(S)中,而且语句中,而且语句中,而且语句中,而且语句S S S S定义的定义的定义的定义的X X X X在语句在语句在
38、语句在语句SSSS有效。有效。有效。有效。17.5.2数据流测试数据流测试DUDUDUDU测试策略:要求覆盖每个测试策略:要求覆盖每个测试策略:要求覆盖每个测试策略:要求覆盖每个DUDUDUDU链至少一次。链至少一次。链至少一次。链至少一次。数据流测试策略可用于为包含嵌套数据流测试策略可用于为包含嵌套数据流测试策略可用于为包含嵌套数据流测试策略可用于为包含嵌套ifififif和循环语句的和循环语句的和循环语句的和循环语句的程序选择测试路径。程序选择测试路径。程序选择测试路径。程序选择测试路径。它能有效地发现错误,但它的它能有效地发现错误,但它的它能有效地发现错误,但它的它能有效地发现错误,但它
39、的覆盖率的测量和路径选择比条件测试更为困难。覆盖率的测量和路径选择比条件测试更为困难。覆盖率的测量和路径选择比条件测试更为困难。覆盖率的测量和路径选择比条件测试更为困难。17.5.3循环测试循环测试四种循环如下:四种循环如下:简单循环简单循环简单循环简单循环:下列测试集可用于简单循环。:下列测试集可用于简单循环。:下列测试集可用于简单循环。:下列测试集可用于简单循环。1 1)整个跳过循环;整个跳过循环;2 2)只有一次通过循环;只有一次通过循环;3 3)两次通过循环;两次通过循环;4 4)m m次通过循环,其中次通过循环,其中mn;m100100 无效等价类无效等价类 成绩成绩00()如果输入
40、条件需要如果输入条件需要特定的值特定的值,可定义,可定义 一个有效等价类和两个无效等价类。一个有效等价类和两个无效等价类。划分等价类的规则划分等价类的规则 (3)(3)如果输入条件代表如果输入条件代表集合集合的某个元素,的某个元素,则可定义一个有效等价类和一个无效则可定义一个有效等价类和一个无效 等价类。等价类。划分等价类的规则划分等价类的规则 (4)(4)如果输入条件是如果输入条件是布尔布尔,可定义一个,可定义一个 有效等价类和一个无效等价类。有效等价类和一个无效等价类。划分等价类的规则划分等价类的规则 17.7针对专门环境、体系结构和应用的测试针对专门环境、体系结构和应用的测试常见常见GU
41、IGUI测试指南:测试指南:对于窗口对于窗口对于菜单和鼠标操作对于菜单和鼠标操作对于数据项对于数据项17.7.1测试测试GUI17.7.2客户客户/服务器体系结构的测试服务器体系结构的测试 整体整体C/SC/S测试策略测试策略(三个不同层次三个不同层次)客客户户端端应应以以“分分离离的的”模模式式被被测测试试(不不考考虑虑服务器和底层网络的运行服务器和底层网络的运行)客客户户端端软软件件和和关关联联的的服服务务器器端端应应用用被被一一起起测试测试(网络运行不被明显考虑网络运行不被明显考虑)完完整整的的C/SC/S体体系系结结构构(包包括括网网络络运运行行和和性性能能)被测试被测试17.7.3测试文档和帮助设施测试文档和帮助设施文档测试两个阶段:文档测试两个阶段:n n评审和审查评审和审查n n活性测试活性测试可采用以下四步策略:可采用以下四步策略:(1)(1)任务测试任务测试(2)(2)行为测试行为测试(3)(3)任务间测试任务间测试(4)(4)系统测试系统测试17.7.4实时系统测试实时系统测试17.8小结小结白盒测试注重于程序控制结构。白盒测试注重于程序控制结构。(小规模测试小规模测试)黑盒测试被设计来确认功能需求,而不考虑黑盒测试被设计来确认功能需求,而不考虑程序的内部工作。程序的内部工作。(大规模测试大规模测试)
限制150内