资源描述
第六章、软件测试技术 环境 被测对象 人员素质 被测对象模型 测试执行 正确 ? 环境模型 错误模型 软件测试过程所涉及的要素 ,以及 这些要素之间的关系 正确 1) 测试过程模型 2)依据程序逻辑结构 -白盒测试技术 ( 1)关于建立被测对象模型 控制流程图 :结点 /分支 /过程块 /链 路径 1 2 3 6 4 5 7 X5 and Y1错写成 X1, B=0, A=2, X1。 条件 A 1 取真值标记为 T1,取假值标记为 F1 条件 B=0 取真值标记为 T2,取假值标记为 F2 条件 A=2 取真值标记为 T3,取假值标记为 F3 条件 X 1 取真值标记为 T4,取假值标记为 F4 在设计测试用例时,要考虑如何选择测试用例实现 T1、 F1、 T2、 F2、 T3、 F3、 T4、 F4的全部覆盖: 例如,可设计如下测试用例实现条件覆盖: 测 试 用 例 通过路径 条件取值 覆盖分支 【 ( 1, 0, 3),( 1, 0, 4) 】 L3 F1 T2 F3 T4 b,e 【 ( 2, 1, 1),( 2, 1, 2) 】 L3 T1 F2 T3 F4 b,e 从上面的测试用例,可以看到该组测试用例虽然实现了 判定中各条件的覆盖,但没有实现分支覆盖,因为该组测试 用例只覆盖了第一个判断的取假分支和第二个判断的取真分 支。为此,人们又进一步提出了条件组合覆盖技术。 例如,在该例子中,前一个判定有 4中条件组合: ( 1) (A 1), (B=0), 标记为 T1 、 T2; ( 2) (A 1), (B0) ,标记为 T1 、 F2,; ( 3) (A1) , (B=0), 标记为 F1 、 T2; ( 4) (A1) , (B0) ,标记为 F1 、 F2; 后一个判定又有 4中条件组合: ( 5) (A=2), (X 1), 标记为 T3、 T4; ( 6) (A=2), ( X1) ,标记为 T3、 F4; ( 7) (A2) , ( X 1),标记为 F3、 T4; ( 8) (A2) , ( X1) ,标记为 F3、 F4。 因此,要满足条件组合覆盖,设计的测试用例必须满足 以下 16种条件组合: ( 1) (A 1), (B=0), (A=2), (X 1), 可标记为 T1 、 T2、 T3、 T4; ( 1) (A 1), (B=0), (A=2), ( X1) ,可标记为 T1 、 T2、 T3、 F4; ( 1) (A 1), (B=0), (A2) , ( X 1),可标记为 T1 、 T2、 F3、 T4 ( 1) (A 1), (B=0), (A2) , ( X1) ,可标记为 T1 、 T2、 F3、 F4。 ( 2) (A 1), (B0) , (A=2), (X 1), 可标记为 T1 、 F2, T3、 T4; ( 2) (A 1), (B0) , (A=2), ( X1) ,可标记为 T1 、 F2、 T3、 F4; ( 2) (A 1), (B0) , (A2) , ( X 1),可标记为 T1 、 F2、 F3、 T4; ( 2) (A 1), (B0) , (A2) , ( X1) ,可标记为 T1 、 F2、 F3、 F4。 ( 3) (A1) , (B=0), (A=2), (X 1), 可标记为 F1 、 T2、 T3、 T4; ( 3) (A1) , (B=0), (A=2), ( X1) ,可标记为 F1 、 T2、 T3、 F4; ( 3) (A1) , (B=0), (A2) , ( X 1),可标记为 F1 、 T2、 F3、 T4; ( 3) (A1) , (B=0), (A2) , ( X1) ,可标记为 F1 、 T2、 F3、 F4。 ( 4) (A1) , (B0) , (A=2), (X 1), 可标记为 F1 、 F2、 T3、 T4; ( 4) (A1) , (B0) , (A=2), ( X1) ,可标记为 F1 、 F2、 T3、 F4; ( 4) (A1) , (B0) , (A2) , ( X 1),可标记为 F1 、 F2、 F3、 T4; ( 4) (A1) , (B0) , (A2) , ( X1) ,可标记为 F1 、 F2、 F3、 F4。 可以采用以下四组测试数据,从而实现条件组合覆盖。 测 试 用 例 覆盖条件 覆盖组合号 通过路径 【 ( 2, 0, 4),( 2, 0, 3) 】 T1 T2 T3 T4 1、 5 L1 【 ( 2, 1, 1),( 2, 1, 2) 】 T1 F2 T3 F4 2、 6 L3 【 ( 1, 0, 3),( 1, 0, 4) 】 F1 T2 F3 T4 3、 7 L3 【 ( 1, 1, 1),( 1, 1, 1) 】 F1 F2 F3 F4 4、 8 L2 【 ( 3, 0, 3),( 3, 0, 1) 】 T1 T2 F3 F4 1、 8 L4 这组测试用例实现了分支覆盖,也实现了条件的所有 可能取值的组合的覆盖。 ( 3)循环情况的路径选取 一层 二层 级连循环 嵌套循环 还要考虑循环变量的具体情况 关键路径的选取 主要功能路径 没有功能的路径 最短路径 . 3) 功能测试 -基于规格说明的测试 3.1 事务流测试技术 ( 1 )基本概念: 事务:以用户的角度所见的一个工作单元。 一个事务由一系列操作组成。其中某些操作可含 有系统执行成分,或含有设备执行成分。 事务处理流程(图):系统行为的一种表示方法,为 功 能测试建立了软件动作模式。其中使用了白盒 测试中的一些概念,例如:分支,结点,链等。 1 2 3 6 4 5 7 1 2 3 1 1 1 A A:Path1继续 A:Path2继续 A A继续 B A B C A:Path1 A:Path2 A:继续 A B A B A C 测试设备 :路径分析器 ,测试用例数据库 , 测试执行调度器 , 路径敏化问题 . ( 2)与程序控制流程图的比较: 事务流图是一种数据流图,即从操作应用的历史,观 察数据对象。 事务流图中的判定;“抽象”了一个复杂的过程。 事务流图存在“中断”,把一个过程等价地变换为具 有繁多出口的链支。 并生 丝分裂 吸收 结合 ( 3)测试步骤 第一步 :获取事务流程图,即建立被测对象模型; 第二步 :浏览与复审 主要对事务进行分类,为设计用例奠 定基础; 第三步 :用例设计 涉及:覆盖策略,事务选取,路径敏化等; 第四步 : 测试设备开发 : 路径分析器 ,测试用例数据库 , 测试执行调度器 , . 第五步 :测试执行; 第六步 :测试结果比较。 3.2 等价类划分技术 (1) 基本概念 等价类 :输入域的一个子集,在该子集中,各个输入 数据对于揭示程序中的错误都是等效的。即:以等价类中 的某代表值进行的测试,等价于对该类中其他取值的测试。 有效等价类 :指那些对于软件的规格说明书而言,是 合理的、有意义的输入数据所构成的集合。 -用于实现功能和性能的测试。 无效等价类 :指那些对于软件的规格说明书而言,是 不合理的、无意义的输入数据所构成的集合。 -用于测试那些所实现的功能和性能不符合规格说明 书的要求。 ( 2) 等价类划分原则(指南) 如果输入条件规定了输入数据的取值范围或值的个数, 则可以确定一个有效等价类和二个无效等价类。例如: 输入条件:“ .项数可以是 1到 999” 无效等价类 有效等价类 无效等价类 1 999 如果输入条件规定了输入值的集合,或规定了“必须 如何”的条件,则可以确定一个有效等价类和一个无效 等价类。例如:“标识符是一字母打头的 串。” 则 字母打头的 -为一个有效等价类,而 其余的 -为一个无效等价类 如果输入条件是一个布尔量,则可以确定一个有效等价 类和一个无效等价类。 如果输入条件规定了输入数据的一组值,而且软件要对 每个输入值进行处理,则可以为每一个输入值确定一个有 效等价类,为所有不允许的输入值确定一个无效等价类。 如果输入条件规定了输入数据必须遵循的规则,则可以 确定一个有效等价类(符合规则),和若干个无效等价类。 例如:“语句必须以;号结束” 注意:如果在已确定的等价类中各元素在软件中的处理方 式不同,则应根据需要对等价类进一步进行划分。 ( 3) 测试用例设计 在确定了等价类之后,建立等价类表: - 输入条件 有效等价类 无效等价类 - ( 4) 实例研究 某一 8位计算机,其十六进制常数的定义为:以 0 x或 0X 开头的数是十六进制整数,其值的范围是 -7f至 7f(大小写 字母不加区别),如 0 x13, 0X6A, -0 x3c 第一步:建立等价类表 - 输入条件 有效等价类 无效等价类 - 十六进制整数 1、 0 x或 0X开头 4、非 0 x或非 -开头的串 1-2位数字串 5、含有非数字且( a,b,c,d,e,f) 以外字符 6、多于 5个字符 2、以 - 0 x开头的 7、 -后跟非 0的多位串 1-2位数字串 8、 -0后跟数字串 9、 -后多于 3个数字 3、在 -7f至 7f之间 10、小于 -7f 11、大于 7f 第二步:为有效等价类设计测试用例 测试用例 期望结果 覆盖范围 0 x23 显示有效输入 1, 3 -0 x15 显示有效输入 2, 3 第三步:为无效等价类至少设计一个测试用例 测试用例 期望结果 覆盖范围 2 显示无效输入 4 G12 显示无效输入 5 123311 显示无效输入 6 -1012 显示无效输入 7 -011 显示无效输入 8 -0134 显示无效输入 9 -0 x777 显示无效输入 10 0 x87 显示无效输入 11 3.3 软件测试步骤 ( 1)单元测试 ( 2)集成测试 集成测试是一种软件集成化技术 方式 :自顶向下或自底向上 设计测试设备 驱动模块 承接模型 ( 3) 有效性测试 被测模块 驱动模块 承接模块 承接模块 -代替原来的被控模块 -代替原来的控制模块
展开阅读全文