软件测试方法–黑盒测试
因果图法
因果图适合于描述多种条件的组合,相应产生多个动作的形式来设计测试用例。检查程序输入条件的各种组合情况。
C
i
Ci
Ci:表示原因;
E
i
Ei
Ei:表示结果; 各节点表示状态,取值0或1。0表示某状态不出现,1表示某状态出现。
图1 因果图基本符号
- 恒等:若C1为1,则E1也为1,否则为0。
- 非:若C1为1,则E1为,否则E1为1。
- 或:若C1或C2是1,则E1为1;若二者都不为1,则E1为0。
- 与:若C1和C2都是1,则E1为1;若有其中一个不为1,则E1为0。
在实际问题中,输入状态之间可能存在某些依赖关系,如下图:
图2 约束关系
- E约束(异):a、b最多有一个可能为1,不能同时为1。
- I约束(或):a、b、c中至少有一个必须为1,不能同时为0。
- O约束(唯一):a和b必须有一个且仅有一个为1。
- R约束(要求):a是1时,b必须是1,即a为1时,b不能为0。
- M约束:对输出条件的约束,若结果a为1,则结果b必须为0。
场景图法
现在的软件几乎都是用事件触发来控制流程的,事件触发时的情境便形成了场景,而同一事件不同的触发顺序和处理结果就形成事件流。
图3 场景图
方法步骤: (1)分析基本流和备选流,形成表格。 (2)场景设计 场景1:××× 基本流 场景2:××× 基本流 备选流2 场景3:××× 基本流 备选流3 场景4:××× 基本流 备选流4 … … … … … … … … … …
(3)用例设计 (4)数据设计
功能图法
一个程序的功能说明通常由动态说明和静态说明组成。动态说明描述了输人数据的次之成转移的次序;静态说明描述了输人条件与输出条件之间的对应关系。对于较复杂的程序,由于存在大量的组合情况,因此,仅用静态说明组成的规格说明对于测试来说往往是不够的,必须用动态说明来补充功能说明。
功能图方法是用功能图 FD 形式化地表示程序的功能说明,并机械地生成功能图的测试用例。 功能图由状态迁移图和布尔函数组成状态迁移图用状态和迁移来描述,一个状态指出数据输人的位置(或时间),而迁移则指明状态的改变。功能图模型由状态迁移图和逻辑功能模型构成。在状态迁移图,由输入数据和当前状态决定输出数据与后续状态。 逻辑功能能模型用于表示在状态中输人条件和输出条件的对应关系。 逻辑功能模型只道合于抽还静态说明,输出数据仅由输入数据决定。测试用例则由测试中经过的一系列状念和在每个状态中必须依靠输入/输出数据满足的一对条件组成。 从功能图生成测试用例的过程如下。 (1)生成局部测试用例:在每个状态中,从因果图生成局部测试用例。局部测试用例由原因值(输入数据)组合与对应的结果值(输出数据或状态)构成。 (2)测试路径生成:利用上面的规则(3种)生成从初始状态到最后状态的测试路径 (3)测试用例合成:合成测试路径与功能图中每个状态中的局部测试用例。结果是初始状态到最后状态的一个状态序列,以及每个状态中输人数据与对应输出数捉的组合。
正交试验法
正交试验设计起源于科学试验,它由田口玄一博士于1949年创立,并于2世纪60年代彻从日本传人中国。 正交试验法能用较少的测试用例达到较高的覆盖率。一般用
L
n
(
m
k
)
L_n(m^{k})
Ln?(mk)表示,
L
L
L 代表是正交表,
n
n
n 代表试验次数或正正交表是一种特制的表格交表的行数,
k
k
k 代表最多可安排影响指标因素的个数或正交表的列数,
m
m
m 表示每个因素水平数,且有
n
=
k
?
(
m
?
1
)
+
1
n=k*(m-1)+1
n=k?(m?1)+1,例如:
L
8
(
2
7
)
L_8(2^{7})
L8?(27)。 正交表必须满足以下两个特点,有一个不满足就不是正交表。 (1)每列中不同数字出现的次数相等。这一特点表明每个因素的每个水平与其他因素的每个水平参与试验的概率是完全相同的,从而保证了在各个水平中最大限度地排除了其他因素水平的干扰,能有效地比较试验结果并找出最优的试验条件。 (2)在任意2列横向组成的数字对中,每种数字对出现的次数相等。这个特点保证了试验点均匀地分散在因素与水平的完全组合之中,因此具有很强的代表性。
软件测试方法的黑盒测试就更新完啦,后续还会持续更新它们具体方法使用的例子哟???!
|