1、第第17章章软件测试技术软件测试技术决定软件与系统的配合关系决定软件与系统的配合关系需求分析需求分析概要设计概要设计详细设计详细设计 编编 码码单元测试单元测试集成测试集成测试确认测试确认测试系统测试系统测试开发前期出现错误的扩展开发前期出现错误的扩展计划计划需求需求分析分析设设计计编编码码测测试试A A AB B用户要求用户要求用户用户:我要什么我要什么?运行结果运行结果计算机计算机:程序运行得程序运行得到的结果到的结果源程序源程序程序员程序员:我要让计算我要让计算机什么做机什么做?设计说明书设计说明书设计员设计员:我要让软件我要让软件做什么做什么?需求说明书需求说明书分析员分析员:我可以提
2、我可以提供什么供什么?12345理解正确性理解正确性表达正确性表达正确性理解正确性理解正确性设计正确性设计正确性表达正确性表达正确性理解正确性理解正确性编码正确性编码正确性运行正确性运行正确性输入正确性输入正确性相符吗相符吗?(2)(2)测试工作真正开始前较长时间就进行测试测试工作真正开始前较长时间就进行测试 计划计划 (3)(3)paretopareto原则可应用于软件测试原则可应用于软件测试(4)(4)测试应从测试应从“小规模小规模”开始,逐步转向开始,逐步转向“大大规模规模”(5)(5)穷举测试是不可能的。穷举测试是不可能的。(6)(6)应由独立的第三方来构造测试应由独立的第三方来构造测
3、试测试中用到的模型元素(测试中用到的模型元素(UMLUML类图)类图)测试组测试组测试用例测试用例故故 障障组组 件件测试存根测试存根测试驱动程序测试驱动程序误误 差差错错 误误改改 正正由修改由引起由引起找出使用修改1n*开始开始(A1)AND(B=0)(A=2)OR(X1)返回返回X=X/AX=X+1FFTTabdce开始开始(A1)AND(B=0)(A=2)OR(X1)返回返回X=X/AX=X+1FFTTabdce开始开始(A1)AND(B=0)(A=2)OR(X1)返回返回X=X/AX=X+1FFTTabdce开始开始(A1)AND(B=0)(A=2)OR(X1)返回返回X=X/AX=
4、X+1FFTTabdce满足条件满足条件:T1,T1,T2,T2 T3,T3 T4,T4开始开始(A1)AND(B=0)(A=2)OR(X1)返回返回X=X/AX=X+1FFTTabdce满足条件满足条件:T1,T1,T2,T2 T3,T3 T4,T41 12,32,36 64,54,57 710101111a节点节点边边R4R4区域区域1 12 23 34 45 58 87 76 69 91111程序流程图程序流程图8 89 9R1R1R2R2R3R31010在上图中,每一个圆称为流图的在上图中,每一个圆称为流图的节点节点,它代表,它代表一个或多个过程语句。一个处理方框序列和一个菱一个或多个
5、过程语句。一个处理方框序列和一个菱形决策框可被映射为一个节点,流图中的箭头称为形决策框可被映射为一个节点,流图中的箭头称为边边或连接,它代表控制流,类似流程图中的箭头。或连接,它代表控制流,类似流程图中的箭头。一条边必须终止于一个节点,即使该节点并不代表一条边必须终止于一个节点,即使该节点并不代表任何语句。由边和节点限定的区称为任何语句。由边和节点限定的区称为区域区域。计算区。计算区域时应包括图外部区,将其作为一个区域。域时应包括图外部区,将其作为一个区域。17.4.2环复杂度环复杂度aedcbfg12345 12345 1 2 3 4 5 a b d c f g e节点节点连接到节点连接到节
6、点对每个矩阵项加入连接权值,图矩阵即可用于对每个矩阵项加入连接权值,图矩阵即可用于在测试中评估程序的控制结构。连接权值为控在测试中评估程序的控制结构。连接权值为控制流提供了附加的信息。最简单的情况:连接制流提供了附加的信息。最简单的情况:连接权值是权值是1 1(存在连接)或(存在连接)或0 0(不存在连接)。(不存在连接)。例例1 1:C1C1:B1&B2 B1,B2B1&B2 B1,B2为布尔变量。为布尔变量。C1C1的条件约束形如(的条件约束形如(D1D1,D2D2),其中),其中D1D1和和D2D2的值是的值是t t或或f f。BROBRO测试策略要求约束集测试策略要求约束集(t,t),
7、(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的布尔运算符和关系运算符错误。的布尔运算符和关系运算符错误。和和USE(S)USE(S)中,而且语句中,而且语句S S定义的定义的X X在语句在语句SS有效。有效。事
8、务流建模事务流建模有限状态建模有限状态建模数据流建模数据流建模时间建模时间建模设计测试案例时,先考虑节点的覆盖度,不可遗漏设计测试案例时,先考虑节点的覆盖度,不可遗漏某个节点;再考虑连接的覆盖率,基于属性测试每某个节点;再考虑连接的覆盖率,基于属性测试每个关系;最后加入循环测试。个关系;最后加入循环测试。17.6.2等价划分等价划分划分等价类的规则划分等价类的规则 (1)(1)如果输入条件规定了如果输入条件规定了一个范围一个范围,可定义,可定义一个有效等价类和两个无效等价类。一个有效等价类和两个无效等价类。例例 输入值是学生成绩,范围是输入值是学生成绩,范围是0 01001000 1000 1
9、00 有效有效等价类等价类11成绩成绩100100无效等价类无效等价类 成绩成绩100100 无效等价类无效等价类 成绩成绩00划分等价类的规则划分等价类的规则 (3)(3)如果输入条件代表如果输入条件代表集合集合的某个元素,的某个元素,则可定义一个有效等价类和一个无效则可定义一个有效等价类和一个无效 等价类。等价类。划分等价类的规则划分等价类的规则 (4)(4)如果输入条件是如果输入条件是布尔布尔,可定义一个,可定义一个 有效等价类和一个无效等价类。有效等价类和一个无效等价类。划分等价类的规则划分等价类的规则 常见常见GUIGUI测试指南:测试指南:对于窗口对于窗口对于菜单和鼠标操作对于菜单和鼠标操作对于数据项对于数据项17.7.1测试测试GUI