第3章 白盒测试方法

更新时间:2023-08-08 14:29:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

软件测试技术相关基础知识

软件测试技术主编 库波

中国水利水电出版社

软件测试技术相关基础知识

第3章 白盒测试方法 白盒测试方法 1、 代码检查 2、覆盖路径 3、路径测试 白盒测试工具 1、白盒测试工具介绍 2、实用JUnit进行白盒测试

软件测试技术相关基础知识

3.1 白盒测试方法 一般来说,测试任何产品有两种方法:第 一种测试方法就是我们第二章提到的黑盒 测试,第二种测试方法为白盒测试又称为 结构测试。

软件测试技术相关基础知识

3.1.1代码检查 代码检查即静态白盒测试,在不执行程序 的条件下仔细审查代码(可采用互查、走 查等形式),从而找出软件故障的过程。 正式审查过程中有4个关键要素: 1、确定问题。 2、遵守准则。 3、提前准备。 4、编写审查报告。

软件测试技术相关基础知识

3.1.1代码检查 代码检查应注意的哪些可能存在的软件缺陷呢?首先必须 对代码的规范性进行审查,另外还要考虑以下几种类别的 错误。 1、数据的引用错误。 2、数据类型错误。 3、数据声明错误。 4、计算错误。 5、逻辑运算错误。 6、控制流程错误。 7、子程序参数错误。 8、输入/输出错误。 9、其他错误。

软件测试技术相关基础知识

3.1.2覆盖测试 覆盖测试以程序内部的逻辑结构为基础设计测试 用例,要求对被测程序的逻辑结构有清楚的了解。 根据覆盖测试的目标不同,可分为:语句覆盖、 判定覆盖、条件覆盖、判定-条件覆盖、组合覆盖 及路径覆盖。下面以一个小程序为例。 Begin if(x>0)and(y<0) then z=z-(x+y); if(x>2)or(z>0) then z=z+5; 其中and、or是逻辑运算符,3个输入参数是x,y,z。 其对应的程序流程图如图3-1所示(a、b、c、d、 e为控制流上的若干程序点)。

软件测试技术相关基础知识

3.1.2覆盖测试 图3-1 被测程序流程图aN x>0 y<0 and Y

c

b z=z-(x+y)

N

Y

V d

x>2 z>0

or e

z=z+5

软件测试技术相关基础知识

3.1.2覆盖测试 1、语句覆盖 所谓语句覆盖是指设计若干个测试用例, 使程序中的每个可执行语句至少被执行一 次。 语句覆盖在测试程序时,对检查不可执行 语句方面起到一定作用,但被测程序并不 是语句间无序的堆积,语句之间存在着各 种各样的内部联系。所以,语句覆盖并不 能排除被测试程序中存在故障的风险。

软件测试技术相关基础知识

3.1.2覆盖测试 2、判定覆盖 所谓判定覆盖是指设计若干个测试用例, 使得程序中的每个判定至少得到一次真值 和假值,即判断中的真假分支至少均执行 一次。判定覆盖又称为分支覆盖。

软件测试技术相关基础知识

3.1.2覆盖测试 3、条件覆盖 所谓条件覆盖是指设计若干个测试用例,使得程 序中每个判断中每个条件的可能值至少得到一次。 因此,条件覆盖与判定覆盖相比增加了对符合判 定情况的测试以及测试路径。 4、判定/条件覆盖 所谓判定/条件

覆盖是指设计若干个测试用例,使 得判断中每个条件的所有(真或假)取值至少出 现一次,并且每个判断的所有(真或假)判断结 果也至少出现一次。

软件测试技术相关基础知识

3.1.2覆盖测试 5、组合覆盖 所谓组合覆盖是指设计若干个测试用例,使得每个判定条 件的各种情况至少出现一次。 6、路径覆盖 所谓路径覆盖是指设计若干个测试用例覆盖程序中所有的 路径。

软件测试技术相关基础知识

3.1.3路径测试 路径测试就是从一个程序的入口开始,执 行所经历的各个语句的完整过程。 路径测试法是在程序控制流图的基础上, 通过分析控制构造的环路复杂性,导出基 本可执行路径集合,从而设计测试用例的 方法路径测试方法。 (1)画出程序的控制流图。

软件测试技术相关基础知识

3.1.3路径测试

顺序结构

IF选择结构

While循环结构

Until结构

软件测试技术相关基础知识

3.1.3路径测试 (2)程序环形复杂度:McCabe复杂性度 量。 (3)导出基本路径集,确定程序的独立路 径。 (4)根据(3)中的独立路径,设计测试 用例的输入数据和预期输出,确保基本路 径集中的每一条路径的执行。

软件测试技术相关基础知识

3.1.3路径测试 1、程序路径表达 采用弧序列或者节点序列的方式并引入了 两个运算:加和乘。 (1)弧a和弧b相加,表示为a+b,它表明 两条弧是“或”的关系,是并行的路段。 (2)弧a和弧b相乘,表示为ab,它表明路 径是先经历弧a,接着再经历弧b,弧a和弧 b是先后相接的。

软件测试技术相关基础知识

3.1.3路径测试 路径表达式运算满足一下规律。 加法交换律: a+b=b+a 加法结合律: a+(b+c)=(a+b)+c 加法幂运算:a+a=a 乘法结合律:a(bc)=(ab)c 分配律: a(b+c)=ab+ac (a+b)c=ac+bc (a+b)(c+d)=a(c+d)+b(c+d) 值得注意的是路径表达式中乘法不满足交 换律。

软件测试技术相关基础知识

3.1.3路径测试 图3-3(a)和(b)1 1

a2

a

b3

c b e

2

Cc

d4

3

d f

5

4

软件测试技术相关基础知识

3.1.3路径测试 2、程序的环路复杂性 环路复杂性V(G)的计算方式有以下三种。 第一种:V(G)=区域数目。 第二种:V(G)=E-N+2。其中E表示边界 数目,N表示节点数目。 第三种:V(G)=P+1。其中P表示判断节 点数目。

软件测试技术相关基础知识

3.1.3路径测试 3、Z路径覆盖 通过对路径覆盖的分析中可以知道,对于路径较 少且比较简单程序而言,实现路径覆盖是可能实 现的。但是,如果程序中出现多个循环或者判断 的话,所涉及的路径数目也会快速增加,这就可 能造成无法实现路径覆盖。为了解决这个问题, 就必须去除一些次要因素,限制循环次数,从而 减少路径数量。这种简化循环下的路径覆盖称为Z 路径覆盖。 程序中比较典型的循环控制结构即为while和dowhile。两者的区别在于while是先判断,再执行。 do-while是先执行,

再判断。因此,do-while至少 执行一次。

本文来源:https://www.bwwdw.com/article/vysj.html

Top