3-黑盒测试

随机测试(RT)

黑盒测试中最简单常见的测试方法,特性:

随机!=随意;

简单且强大;

随机测试简单,做到较好的随机测试不简单

 

定义:

定义输入域;在输入域中随机选取一些点作为输入;将选取的数据以自动化方式执行

 

 

3-黑盒测试

定义输入域:

3-黑盒测试

 

 

随机测试的常见问题:

定义输入域(登陆时的用户名,密码等。结合业务和输入特征定义input domain);

随机的机制(用户名:字符串的规格限制等);

如何产生更加公平,随机的随机数(纯粹的随机建立在均匀分布的假设上面,而业务系统往往不均匀,此时纯粹的随机不一定是有效的)。

 

 

自适应随机测试(ART):

基本步骤:

1.随机产生数据t进行测试,加入到测试集合T中;

2.设定停机准则(while循环):

(1)每次重复运行时产生k个候选输入;

(2)挑选出跟已有的测试集合中距离最远的并执行

3.结束while循环。3-黑盒测试

 

 

 

 

ART的问题:

什么叫距离(数据之间的差异性)

每次产生的k个后选值与已执行的测试之间的距离的计算代价(n2)

高维灾难(最致命的问题,测试case集中在角上(随着维度增加而指数增长),中间大片区域不被覆盖到)

 

Failure-Pattern(ART带来的常见的失效模式)

ART建立在一些常见的Failure-Pattern上会更加有效:

3-黑盒测试

即常见的数字计算产生偏差就产生了这种Failure-Pattern,往往是比较简单的程序,复杂的程序的Failure-Pattern造成空间扭曲使Failure-Pattern并不如此工整

 

等价类划分

等价类划分适用于:

单元测试;系统测试;集成测试

等价类划分的传统用法适用于非自动化测试,现在也可用于自动化测试

等价类划分一扩展

 

等价类划分的input domains:

通常包含了所有可能的输入,这使得即使很小的程序,input domains也会无法穷尽

此时选取有限的几个输入作为代表

输入参数:公共变量;用户级输入;读文件(IO)

 

input domains划分:

3-黑盒测试

两两互不相交;

所有划分的子集合起来就是输入域

此标准在实际执行中并不那么严格,有时会有相交;很难把握使所有子集覆盖了input domains

 

等价类划分核心思想:等价(同一子集内)

常见的两种等价类划分方法:

基于接口:对每一个输入的输入特征进行划分

3-黑盒测试

    把所有的输入参数和独立来看,并不关心输入之间的关系;

    基于语法或某种数据的特征来进行划分;

    有可能能做自动化。

eg:三角形程序,三个输入都是整型3-黑盒测试

3-黑盒测试

 

基于功能:按照功能划分

3-黑盒测试

确定模块或系统的功能;

测试人员需要在设计或需求方面有更深的理解;

理解程序的语义或业务逻辑;

考虑不同程序输入参数的关系(这种关系来自于需求文档,构成了功能)。

eg:三角形程序(功能:生成的三角形类型:等边,等腰,普通,无效)

3-黑盒测试

3-黑盒测试

 

边界值分析

边界值分析主要来自于经验上的总结,因为Bug总是出现在边界值上

3-黑盒测试

此段代码有很多控制流,在控制的判断条件上出现边界

此处应为x<0

 

通常边界值分析与等价类测试合并做,即先划分等价类,再在等价类的边界上做进一步的边界值分析。

3-黑盒测试

3-黑盒测试

3-黑盒测试

复选框:全选;全不选等边界

 

3-黑盒测试     3-黑盒测试

 

边界复合:

6位正整数:

3-黑盒测试

 

边界值分析方法:

弱边界值分析:

3-黑盒测试

弱健壮性边界值分析:(考虑到无效输入)

3-黑盒测试3-黑盒测试

强边界值分析:

 

3-黑盒测试

由于顶点随维度增加成指数增长,所以实际情况下无法覆盖到所有顶点

 

3-黑盒测试

强健壮性边界值分析:(考虑到无效输入)

3-黑盒测试

3-黑盒测试

 

组合测试

弱等价类测试:

3-黑盒测试

强等价类测试:

3-黑盒测试

 

Bug出现规律:

3-黑盒测试

全组合:

3-黑盒测试

挑选后的组合:

覆盖了输入的任意的两两组合:

3-黑盒测试

覆盖了输入的任意的三三组合:

3-黑盒测试

Case:6-12-24 指数型增长

 

 

 

3-黑盒测试

 

固定强度的测试:

实践中选择二维,三维组合较多

 

可变力度的组合测试:

 

对所有组合进行抽样,给出一定的挑选规则

 

3-黑盒测试

基于默认选项的测试用例集:

3-黑盒测试

3-黑盒测试

 

测试中的约束:

法一:3-黑盒测试法二:

3-黑盒测试