黑.白盒测试
1.黑盒测试:不关心被测软件的内部结构,只关心软件的输入数据和输出结果
测试方法:等价类划分法,边界值,决策表,因果图,场景法,错误推测法.....
1. 等价类划分法:等价类划分就是解决如何选择适当的数据子集来代表整个数据集的问题,通过降低测试的
数目去实现“合理的”覆盖,覆盖了更多的可能数据,以发现更多的软件缺陷。
等价类测试的分类
基于覆盖程度:
弱组合形式:测试用例仅需满足对有效等价类的完全覆盖,
强组合形式:测试用例不仅满足对有效等价类的完全覆盖,而且应覆盖所有的等价类组合。即交叉组合
基于检测无效等价类:
一般等价类测试:只考虑有效等价类
健壮等价类测试:考虑有效无效等价类
基于以上分类组合:
1.弱一般等价类测试
2.强一般等价类测试
3.弱健壮等价类测试 (常用等价类测试方法)
4.强健壮等价类测试
2.边界值:边界值分析使用与等价类划分法相同的划分,只是边界值分析假定错误更多的存在于划分的边界上,
3. 决策表:
实例:
4.因果图
因果图法的定义:是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,
它适合于检查程序输入条件的各种组合情况。
采用因果图法设计测试用例的步骤:
(1)根据程序规格说明书描述,分析并确定因(输入条件)和果(输出结果或程序状态的改变),画出因果图。
(2)将得到的因果图转换为判定表。
(3)为判定表中每一列所表示的情况设计一个测试用例。
因果图中的4种基本关系
在因果图的基本符号中,图中的左结点ci表示输入状态(或称原因),
右结点ei表示输出状态(或称结果)。ci 与 ei 取值0或1,0表示某状态不出现,1则表示某状态出现。
恒等:若 c1 是1,则 e1 也为1,否则 e1 为0。
非:若 c1 是1,则 e1 为0,否则e1为1。
或:若 c1 或 c2 或 c3 是1,则 e1 为1,否则 e1 为0。
与:若 c1 和 c2 都是1,则 e1 为1,否则 e1 为0。
因果图中的约束
在实际问题中输入状态相互之间、输出状态相互之间可能存在某些依赖关系,称为“约束”。
对于输入条件的约束有E、I、O、R四种约束,对于输出条件的约束只有M约束。
E约束(异):a和b中最多有一个可能为1,即a和b不能同时 为1。
I 约束(或):a、b、c中至少有一个必须为1,即 a、b、c不能同时为0。
O约束(唯一):a和b必须有一个且仅有一个为1。
R约束(要求):a是1时,b必须是1,即a为1时,b不能为0。
M约束(强制):若结果a为1,则结果b强制为0。
5.正交试验法
正交试验设计法(Orthogonal experimental design ),是从大量的试验点中挑选出适量的、
有代表性的点,应用依据迦罗卡瓦理论导出的“正交表”,合理的安排试验的一种科学的试验设计方法
指标:通常把判断试验结果优劣的标准叫做试验的指标
因子(因素Factor):所有影响试验指标的条件
因子的状态(水平Level):而影响实验因子的,叫做因子的状态(因子变量的取值)
正交试验法步骤
利用正交表每行数据构造测试用例 正交表 正交表的表示形式:Ln(t^c)
其中:L为正交表的代号,n为行数(试验次数),t为水平数(因子变量的取值),c为列数(因素数)。
例如:L4(2^3),它表示需做4次实验,最多可观察3个因素,每个因素均为2水平。
一个正交表中也可以各列的水平数不相等,我们称它为混合型正交表,如L8(2^4 4^1)
,如下图。此表的5列中,有1列为4水平,4列为2水平。根据正交表的数据结构看出,
正交表是一个n行c列的表,其中第j列由数码1,2,… tj 组成,这些数码均各出现n/t 次,
下图中,第二列的数码个数为2,t=2 ,即由1、2组成,各数码均出现2次
如何查找正交表
1.Technical Support (support.sas.com)
http://support.sas.com/techsup/technote/ts723_Designs.txt
2、查Dr. GenichiTaguchi设计的正交表,
http://www.york.ac.uk/depts/maths/tables/orthogonal.htm
3、数理统计、试验设计等方面的书及附录中
关注点:因素数和对应的水平数组成的矩阵。
正交分析法例子
假设一个WEB站点,该站点有大量的服务器和操作系统,并且有许多具有各种插件的
浏览器浏览: WEB浏览器:Netscape6.2、IE6.0、Opera4.0
插件: 无、RealPlayer、MediaPlayer
应用服务器:IIS、Apche、Netscape Enterprise
操作系统:Windows2000、Windows NT、Linux
6.错误推测法
错误推测法的概念:基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法。