《软件测试》课堂笔记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进行白盒测试。

 

转载于:https://www.cnblogs.com/HCS1995/p/4439983.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值