第四章 白盒测试

2020-01-13  本文已影响0人  涪江侠客

4.1:白盒测试概述

白盒测试与程序内部测试有关,故也称结构测试或逻辑驱动测试。测试者必须检查程序的逻辑结构等内部因素。得出测试数据。

4.2:程序控制流图

4.2.1:基本块

如果P是一个过程式程序设计语言(例如C、Java等)写的程序,那么一个只有一个入口块和出口块的连续的语句序列就可以被认为是一个基本块。
基本块的特征:
1:一个基本块只有唯一的入口块和出口块,这个入口块即为基本块的第一条语句,出口块是最后一条语句:
2:程序的控制从入口块进入,出口块退出,除此之外程序不能在基本块其它点退出或是中止:
3:如果基本块仅有一条语句,那么认为入口和出口是重合的。

4.2.2:流图的定义与图形表示

一般来说我们用G=(N,E)来表示流图G,其中N是结点的有限集合,E是有向边的有限集合,每一条边(i,j)用由i指向j的箭头表示,这条边连接的就是结点集合N中的结点ni和nj。Start和End是N中两个特殊的结点,N中的任何其它结点都可以从Start出发到达,同样,任何一个N中的起点也都有一道终止于End的路径。Start结点没有输入边,End结点没有输出边。
一般来说,在程序P的流图中,使用结点来对基本块进行表示,边则表示基本块之间的控制流。同时,对基本块和结点进行标识,基本块bi对应结点ni。若基本块bi和bj被边(i,j)连接,则表示控制可能从基本块bi转移到bj。

4.2.3:测试覆盖率

测试覆盖是对测试完全程度的评测。测试覆盖率是用于确定测试所执行到的覆盖项的百分比,其中覆盖项是作为指作为测试基础的一个入口或属性,如语句、分支、条件等。
测试覆盖率是对测试充分性的表示,它可以作为在测试分析报告中的一个可量化的指标依据,一般认为测试覆盖率越高,则测试效果越好。但是测试覆盖率并非测试的绝对目标,而只是一种手段。
测试覆盖分为覆盖策略,基于需求,基于代码。

4.2.4:逻辑覆盖

4.2.5:测试覆盖准则

一:ESTCA(Error Sensitive Test Cases Analysis)错误敏感测试用例分析
二:LCSAJ(Linear Code Sequence and Jump)线性代码序列与跳转

4.3:路径测试

路径测试(path testing)是指根据路径设计测试用例的一种技术,经常用于状态转换测试中。基本路径测试法是在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例的方法。设计出的测试用例要保证在测试中程序的每个可执行语句至少执行一次路径覆盖是利用设计足够多的测试用例,覆盖程序中所有可能的路径。

路径测试的基本步骤:

4.4:测试充分性

4.4.1:测试充分性基础

软件测试的充分性准则描述有谓词形式和度量函数形式两种。谓词形式的充分性准则描述将充分性定义为一个谓词,用于确定测试数据必须具备什么性质才是一个彻底的测试;度量函数形式的充分性准则将充分性描述为测试的充分程度,是一种更广义的充分性准则定义。

4.4.2:测试充分性准则的度量

4.4.3:测试集充分性的度量

4.4.4:数据流测试

数据流测试面向的是程序中的变量。

一:变量的定义和使用
根据程序设计的理论,程序中的变量有两种不同的作用,一个是对数据进行存储,另一个则是对已经存储的数据进行取出。变量在程序中的具体位置决定了该变量具体实现的是两种作用的哪一种。例如,在y=x1+x2语句中,出现在赋值语句左边的y就表示要把赋值语句右边的计算结果存放在该变量所对应的存储空间内,也就是对数据和变量进行绑定。而出现在赋值语句右边的x1和x2则是表示该变量所存储的数据被取出,参与计算,即与该变量绑定的数据被引用。

上一篇下一篇

猜你喜欢

热点阅读