软件测试技术6-动态白盒测试.pptVIP

  • 2
  • 0
  • 约5.38千字
  • 约 52页
  • 2019-10-13 发布于湖北
  • 举报
软件测试基础 Part2 软件测试技术6 动态白盒测试 本节学习内容 动态白盒测试 结构性测试基于程序的源代码,因此,通常也称为基于代码测试(code-based testing)或白盒测试技术。 白盒技术的基本思想是把测试对象的每部分代码至少执行一次。设计面向控制流的测试用例,分析程序的逻辑,然后执行测试用例。 动态白盒测试 为了能够明确程序的执行结果是否会导致失败,测试的期望结果是根据需求或规格说明来确定的,而不是代码本身。 白盒测试技术主要是检查测试对象的语句,其基本目标是在测试时实现事先定义的语句覆盖率,比如执行程序中所有可能的语句。 动态白盒测试 为什么要进行白盒测试 从一个比喻开始 白盒测试是高效测试 白盒测试能彻底解决 编码阶段引入的问题 清洗面包机 动态白盒测试 做白盒测试时,第一步先将源代码转换为控制流图。 在控制流图中,以结点表示语句,以边来表示语句之间的控制流。 白盒测试的基本思想 动态白盒测试 语句覆盖 判定覆盖 条件覆盖 判定/条件覆盖 条件组合覆盖 路径覆盖 白盒测试主要技术 动态白盒测试 白盒测试举例 public int function(int a, int b, int x ){ 1 if( a1 b == 0) 2 x = x/a; 3 if( a == 2 || x 1 ) 4 x = x + 1; } 语句覆盖 判定覆盖 条件覆盖 判定/条件覆盖 条件组合覆盖 路径覆盖 动态白盒测试 名词理解: 语句覆盖 判定覆盖 条件覆盖 判定/条件覆盖 条件组合覆盖 路径覆盖 动态白盒测试 动态白盒测试 (1)语句覆盖 使程序中每个语句至少执行一次 如右图所示:使每个语句至少执行一次的流程是哪一条呢? 动态白盒测试 (1)语句覆盖 只需设计一个测试用例: 输入数据:A=2,B=0,X=4 即达到了语句覆盖; 语句覆盖是最弱的逻辑覆盖 用例编号 测试用例 (A/B/X) 覆盖语句 预期结果 实际结果 TC1 2,0,4 1,2,3,4 X=3 动态白盒测试 (1)语句覆盖 练习:画出以下程序的程序流图和控制流图,并采用语句覆盖设计测试用例。 动态白盒测试 j=j%3 返回 5 程序流图和控制流图 动态白盒测试 用例编号 测试用例 (x/z/y) 覆盖语句 预期结果 实际结果 TC1 4,-1,6 1,2,3,4,5 k=23,j=1 测试用例如下: 动态白盒测试 (2)判定覆盖(分支覆盖) 使每个判定的真假分支都至少执行一次 动态白盒测试 (2)判定覆盖(分支覆盖) 例:可设计两组测试用例: A=3,B=0 ,X=1 可覆盖c、d分支 A=2,B=1 ,X=3 可覆盖b、e分支 两组测试用例可覆盖所有判定的真假分支 判定覆盖仍是弱的逻辑覆盖 用例编号 测试用例 (A/B/X) 覆盖分支 预期结果 实际结果 TC1 3,0,1 c,d X=1 TC2 2,1,3 b,e X=2 动态白盒测试 (2)判定覆盖(分支覆盖) 步骤: 识别并标识所有输入; 识别并标识所有判断; 取不同的输入组合构成测试用例,并给出预期结果 用例编号 测试用例 (A/B/X) 覆盖分支 预期结果 实际结果 TC1 3,0,1 c,d X=1 TC2 2,1,3 b,e X=2 动态白盒测试 (2)判定覆盖(分支覆盖) 练习:采用判定覆盖设计以下测试用例 动态白盒测试 (3)条件覆盖 使每个判定的每个条件的可能取值至少执行一次第一判定表达式: 设条件 A1 取真 记为 T1 假 F1 条件 B=0 取真 记为 T2 假 F2 第二判定表达式: 设条件 A=2 取真 记为 T3 假 F3 条件 X1 取真 记为 T4 假 F4 动态白盒测试 (3)条件覆盖 动态白盒测试 (3)条件覆盖 条件 满足 不满足 A1 T1 F1 B=0 T2 F2 A=2 T3 F3 X1 T4 F4 动态白盒测试 (3)条件覆盖 两个测试用例覆盖了四个条件八种可能取值。 未覆盖c、d分支,不满足判定覆盖的要求. 条件覆盖不一定包含判定覆盖 判定覆盖也不一定包含条件覆盖 测试用例ABX 通过路径 满足的条件 覆盖分支 1 0 3 abe F1,T2,F3,T4 b,e 2 1 1 abe T1,F2,T3,F4 b,e 请用条件覆盖为以上流程图设计测试用例? 动态白盒测试 (3)条件覆盖 步骤: 识别并标识所有输入; 识别并标识所有条件; 取不同的输入组合构成测试用例,并给出预期结果 用例编号 测试用例ABX 通过路径 满足的条件 覆盖分支

文档评论(0)

1亿VIP精品文档

相关文档