白盒测试--基于控制流的白盒测试

我的个人blog: lhttps://zhangchuanjun.cn/articles/detail/%E5%9F%BA%E4%BA%8E%E6%8E%A7%E5%88%B6%E6%B5%81%E7%9A%84%E7%99%BD%E7%9B%92%E6%B5%8B%E8%AF%95/

白盒测试‘

所谓白盒测试,就是研究代码,找出代码中的错误。

分类:

按照是否运行有:静态测试与动态测试

具体的测试方法有:程序控制流分析,数据流分析,逻辑覆盖,域测试,符号路径测试等。

数据流分析和代码覆盖方法比较有实用价值

基于数据流的白盒测试

理解:基于数据流的白盒测试是通过查看变量的引用和定义,来判断数据方面存在的错误。

一些基本概念:

变量的定义:意味着数据被赋值 在赋值语句的左边

变量的引用:在赋值等式的右边 是右值

举例:

(1)double a;

扫描二维码关注公众号,回复: 12440853 查看本文章

(2)Area=3.14×r×r;

(3)if(r<1);

答案:

(1)a及没被引用也不是定义,这叫变量声明

(2)Area是被定义,r是被引用 Area在赋值语句左边, r在右边

(3)r被引用

基于数据流的测试通常就是编辑器自动给你找出错误。。

基于控制流的白盒测试(重点)

基于控制流的测试就是根据结构测试。

结构可分为三个级别

1.组件级别:代码的结构,即语句,判定/分支,循环结构

2.集成级别:结构是调用树。即模块之间的调用的图表

3.系统级别:菜单结构,业务过程,以及web结构等大的方面的结构

控制流图和流程图

控制流图和流程图是组建级别的测试的方法。

流程图画法举例:

冒泡排序的流程图

在这里插入图片描述

控制流图的规范:

1.将多条顺序执行的语句抽象为一个语句节点。 如冒牌排序最开始的变量定义可以抽象为一个语句节点

2.一句语句节点用圆形表示

3.在丰富边的内容标上符号(就是循环结构那里标上符号1,2,3)

上述我写的控制流图没画标准,没有给丰富边画符号,以及路径没有标注

基于控制流的白盒测试的方法

语句覆盖

判定覆盖

条件覆盖

条件组合覆盖

由上至下层层完善

我们给个具体例子来说明几种方法

在这里插入图片描述
我们画出控制流图
在这里插入图片描述

语句覆盖方法

就是每个语句节点都有执行到。

因为上面两个判断语句是相互矛盾的,所以不能一下子1-2-3-4-5执行下来,所以分为两个测视例

1-2-5

3-4-5

测试用例 X,Y X>0 and Y>10 X<-10 or Y<0 路径
1 1,11 T T 1-2-4-5
2 -9,1 F F 3-4-5

判定覆盖

就是上方两个判定都需要执行到

即(x>0 and Y>0 和 X<-10 or Y<0)

我们可以用上方语句覆盖的测试例,也满足判定判定覆盖

测试用例 X,Y X>0 and Y>10 X<-10 or Y<0 路径
1 1,11 T T 1-2-5
2 -9,1 F F 3-4-5
条件覆盖

每个判断语句的逻辑条件至少为真假各一次。

首先:

我们定义 :

X>0为T1 Y<0为F1 这是第一个条件记录为1

Y>10 为T2 Y<10 为F2 第二个条件记录为2

X<-10为T3 X>-10为F3 第三个条件记录为3

Y<0 为T4 Y>0为F4 第四个条件记录为4

这四个条件中的每个条件中的真假都需要取一次。

设计路径有:

1-2-5

3-4-5

同样的上方语句覆盖测试例符合条件覆盖

测试用例 X,Y X>0 and Y>10 X<-10 or Y<0 路径
1 1,11 T1,T2 T3,T4 1-2-5
2 -9,1 F1,F2 F3,F4 3-4-5
条件组合覆盖

就是每个判定条件的取值的各种组合都出现一次。

即每个判定条件中每个逻辑条件真假组合至少出现一次。

T1 T2 真真

F1 F2 假假

T1 F2 真假

F1 T2 假真

同样的3 4个条件如此

测试验例

测试用例 X,Y X>0 and Y>10 X<-10 or Y<0 路径
1 1,11 T1,T2, F3, F4 1-2-5
2 -9,1 F1, F2, T3, T4 3-4-5
3 1,1 T1,F2, F3, T4 1-3-5
4 2,-2 F1,T2, T3, F4 1-3-4-5

猜你喜欢

转载自blog.csdn.net/weixin_43919632/article/details/102559156
今日推荐