大家觉得写还可以,可以点赞、收藏、关注一下吧!
也可以到我的个人博客参观一下,估计近几年都会一直更新!和我做个朋友吧!https://motongxue.cn
文章目录
第3章 白盒测试
-
白盒测试:针对被测试程序单元内部如何工作的测试,特点是基于被测试程序的源代码,而不是软件的需求规格说明。
-
原则
- 保证一个模块中的所有独立路径至少被测试一次。
- 所有逻辑值均需测试真值和假值两种情况。
- 检查程序的内部数据结构,保证其结构的有效性。
- 在上下边界及可操作范围内运行所有循环。
-
测试方法
-
审查
-
正式审查四个要素
-
确定问题
-
遵守规则
-
准备
-
编写报告
-
-
目的
- 找出软件中存在的缺陷
-
-
走查
-
检验
-
-
静态白盒测试(结构化分析):不执行软件
-
流图又称程序图:结点、控制流线
-
基本结构
- 顺序结构
- 分支结构
- 循环结构
-
环形复杂度
- 是一种为程序逻辑复杂度提供定量尺度的软件度量
- 常用于基本路径测试法
- 一个强连通流图中线性无关的有向环的个数就是该程序的环形复杂度。
- 计算方法
- V(G)=m-n+p
- 增加一条出口点到入口点的虚弧线,此时,流图就变成了一个强连通图。
- m表示有向图G中有向边的个数;
- n表示有向图中的结点数;
- p表示有向图G中可分离出的独立连通区域数,为常数1。
- V(G)= 强连通的流图在平面上围成的区域数
- V(G)= 判定结点数 + 1
- V(G)=m-n+p
-
动态白盒测试
- 按一定步骤和方法生成测试用例,并驱动相关模块去执行程序并发现软件中的错误和缺陷。
- 常采用逻辑覆盖法和基本路径法进行白盒测试用例设计。
-
逻辑覆盖法(顺序按发现错误能力递增)
- 覆盖方法:
- 语句覆盖:每条语句至少执行一次
- 判定覆盖:每一判定的每个分支(整个最终结果,与条件覆盖的差别)至少执行一次
- 条件覆盖:每一判定中的每个小条件,分别按”真“、”假“至少各执行一次
- 判定/条件覆盖:同时满足判定覆盖和条件覆盖的要求
- 条件组合覆盖:求出判定中所有条件的各种可能组合值,每一可能的条件组合至少执行一次
- 改进的判定/条件覆盖(MC/DC覆盖)
- 路径覆盖:所有可能的路径都至少被执行一次
- 线性代码序列和跳转覆盖(LCSAJ):它由一段有序的代码序列组成,该序列结束时会跳转到另一个代码序列开始
- 覆盖率 =(至少被执行一次的被测试项数)/被测试项总数
- 覆盖方法:
-
基本路径法(独立路径测试)
- 指程序中至少引进一条新的语句或一个新的条件的任一路径
- 基本路径测试的基本步骤为:
- 根据程序设计结果导出程序流程图的控制流图;
- 计算程序的环路复杂度;
- 导出基本路径集,确定程序的独立路径;
- 根据独立路径,设计相应的测试用例。
-
循环测试
- 原则:在循环的边界和运行界限执行循环体。
- 循环结构
- 简单循环
- 串接循环(并列循环):各循环独立?简单循环:嵌套循环
- 嵌套循环
-
数据流测试
-
基本概念
- c-use:一个变量被用在赋值语句的表达式、输出语句中,或者被当作参数传递给调用函数,或者被用在下标表达式中
- p-use:一个变量被用在分支语句的条件表达式中
- 我们只关心全局变量的定义和使用,局部定义与使用在研究基于数据流的测试时没有意义。
-
数据流图(DFG/def-use图)
- 构造数据流图基本过程:
- 计算程序中每个基本块的def 、c-use和p-use。
- 将结点集中的每个结点与它对应的def 、c-use和p-use关联起来。
- 针对每个具有非空p-use集并且在条件C处结束的结点,如果条件C为真时执行的边1,C为假时执行的是边2,分别将边1、边2与C,!C关联起来。
- 构造数据流图基本过程:
-
def-clear路径
- 假设变量x在结点i中定义,在结点j中使用,对于路径
p={i,n1,n2,…,nk,j}
,k≥0
,并且结点i、j在子路径n1,n2,…,nk中未出现过,变量x没有在子路径中被重新定义,称p是变量x的def-clear路径。
- 假设变量x在结点i中定义,在结点j中使用,对于路径
-
def-use对
-
任一变量x,从被定义开始到其被使用就构成了此变量的一次特定的def-use对。
-
分类
-
dcu
-
dpu
-
变量(v) 定义所在结点(n) dcu(v,n) dpu(v,n) x 1 {2} {(1,2),(1,3), (3,5),(3,4)} y 1 {4} {(1,2),(1,3)} z 1 {2,4,5} {(3,5),(3,4)} z 2 {2,4,5} {(3,5),(3,4)} z 4 {2,4,5} {(3,5),(3,4)}
-
-
-
def-use链
- def-use对的概念可以扩展成变量的一个交替出现的定义、使用序列,这种序列也称为def-use链或k-dr交互。def-use链中的结点各不相同。k表示链的长度、字母d表示“定义”、字母r表示“引用”。
-
优化:数据流图可以减少要覆盖的def-use对个数。
-
-
-
白盒测试运用实例——三角形问题
-
练习
-
什么是白盒测试?静态白盒测试有哪些方法?并简述之?
-
循环测试的基本原则是什么?常考虑测试循环的哪几种情况?
-
白盒测试的流程有几种类型?常见的白盒测试问题有哪些类型?
-
2020年12月20日更
大家觉得写还可以,可以点赞、收藏、关注一下吧!
也可以到我的个人博客参观一下,估计近几年都会一直更新!和我做个朋友吧!https://motongxue.cn