《软件测试》课堂笔记04

白盒测试:又称结构测试,它一般用来测试程序的内部结构(Control Flow , Data Flow)。并判定其  结果是否与预期的结果一致。

百合测试的种类:静态分析测试(Static Analysis Test,Code Inspection)、语句分支覆盖测试  (Ctrl  Flow Test)等。

一. 控制流测试:

1. 基本概念:

有向图与流程图:

2. 控制流覆盖准则:

(1) 语句覆盖准则:

  是最简单的结构性测试方法之一,它要求测试中,程序中的每条语句都得到运行。即,控制流图中的所有语句都被运行的充分必要条件是,覆盖图中的所有节点。
  测试数据集T称为语句覆盖充分的,当且仅当LT覆盖了GP中的所有节点。NODE(LT)为路径集合LT中所覆盖的GP中的节点的集合。 NG 是GP 中所有节点的集合。
  

(2) 分支覆盖准则:  

  分支覆盖要求在软件测试中,每个分支都至少获得一次真/假取值的经历。
  测试数据集T称为分支覆盖充分的,当且仅当LT覆盖了GP中的所有有向边。EDGE(LT)为路径集合LT中所覆盖的GP中的有向边的集合, EG 是GP 中所有边的集合。
  

(3) 谓词测试:

  一个分支的条件是由谓词组成。单个谓词称为原子谓词。

  例如前面的例子中的 a!=0、mid>0等。原子谓词通过逻辑运算符的连接构成复合谓词。

  1.原子谓词

  2.分支谓词

  3.复合谓词

(4) 路径覆盖准则:

  测试数据集T称为路径覆盖充分的,当且仅当LT覆盖了GP中的所有完整路径。让EP(GP)为控制流图中的所有完整路径的集合。
  

二. 数据流测试:

1. 基本概念:

  变量的定义性出现:若一个变量在程序中的某处出现使数据与该变量相绑定,则称该出现是定义性出现。
2. 数据流覆盖准则:
(1)定义覆盖测试准则
  测试数据集T对测试程序P满足定义覆盖准则,如果对具有数据流信息的控制流图GP中的每一个变量x的每一个定义性出现,若该定义性出现能够可行地传递到该变量的某一个引用性出现,那么LT中存在一条路径A,它包含一条子路径A’,使得A’将该定义出现传递到某一引用性出现。
(2)引用覆盖测试准则
  测试数据集T对测试程序P满足引用覆盖准则,如果对具有数据流信息的控制流图GP中的每一个变量x的每一个定义n,以及该定义的每一个能够可行地传递到的引用n’,LT中都存在一条路径A,它包含一条子路径A’,使得A’将n传递到n’。
(3)定义-引用覆盖测试准则
  定义-引用覆盖测试准则:测试数据集T对测试程序P满足定义-引用覆盖准则,如果对具有数据流信息的控制流图GP中的任意一条从定义传递到其引用的路径A,若A是无回路的或A是简单回路,那么LT中存在一条路径B,使得A是B的子路径。
3. 程序插桩(VC里用于断言(ASSERTION)检测的程序插桩)
 
 
三. 白盒测试工具:
  静态:

  1.代码审查     2.一致性检查

  3.错误检查     4.接口分析

  5.输入/输出规格说明分析检查  

  6.数据流分析    7.类型分析     

  8.单元分析     9.复杂度分析

  动态:

  1.功能确认与接口测试

  2.覆盖测试

 

以上就是关于白盒测试的相关内容。在下一篇博客中将会给出一个在Win8环境下对商店应用的白盒测试,会向西的介绍如火如荼使用VS进行白盒测试。

 

posted @ 2015-04-19 21:18  四班&胡传铄  阅读(369)  评论(0编辑  收藏  举报