第2章 黑盒测试因果图
黑盒测试技术4-因果图法
e1 原因中有一个不出现,结果就不出现。 如图,若c1和c2都是1,则ei为1;否则ei为0。 “与” 可有任意个输入。
因果图的约束符号
输入条件的 4 种约束类型:
a
E
b (Exclusive)
❖ E 约束(异/互斥): 表示几个原因不会同时成立; 可能他们都不成立,但最多有一个成立。
定义
用于描述输入之间,输入输出之 用于表达多逻辑条件下执行不
间的约束关系和因果关系
同操作的情况的工具
区别
本质
考虑输入条件之间的联系、各种 考虑输入条件之间的各种组合, 组合,相应产生多个动作。 相应产生多个动作。
当输入条件 用例数量相对少(无效用例) 会产生大量测试用例 过多时 可以覆盖到条件之间的先后关系 不能覆盖条件之间的先后关系
• 根据题意,原因和结果如下:
原因
1:A < B+C 2:B < A+C 3:C < A+B 4:A = B 5:A = C 6:B = C
结果
21:不能构成三角形 22:等边三角形 23:等腰三角形 24:一般三角形
步骤2:画出因果图
原因
结果
1
1:A < B+C
21:不能构成三 角形
2
2:B < A+C 22:等边三角形 3
如图,a和b中至多有一个可能为1,即a和b不 能同时为1。
❖ I 约束(或/包含):
a 表示几个原因中至少有一个必须成立,当然也
I
b 可能都成立。
(In)
c 如图,a、b和c中至少有一个必须是1,即 a、b
和c不能同时为0。
黑盒测试-因果图、判定表
2
©2007 iSoftStone Holdings Ltd. All Rights Reserved.
因果图介绍
恒等 c1 e1
非
c1 c1
e1
或
c2 c3 c1
V
e1
与 c2
∧
e1
3
©2007 iSoftStone Holdings Ltd. All Rights Reserved.
条件的约束 • 输入条件约束
9
©2007 iSoftStone Holdings Ltd. All Rights Reserved.
例子 • 根据因果图建立如下的判定表: 根据因果图建立如下的判定表:
条 件 1 2 3 11 22 21 23 1 1 1 1 //// //// // // // //// 2 1 1 0 //// //// // // // //// 3 1 0 1 1 0 1 0 A3 A8 4 1 0 0 1 0 0 1 AM A 5 0 1 1 1 0 1 0 B5 B4 6 0 1 0 1 0 0 1 BN B 7 0 0 1 0 1 0 0 C2 X6 8 0 0 0 0 1 0 1 DY P: : 原 因
5
©2007 iSoftStone Holdings Ltd. All Rights Reserved.
步骤
①分析程序规格说明的描述中,哪些是原因,哪 分析程序规格说明的描述中,哪些是原因, 些是结果。 些是结果。原因常常是输入条件或是输入条件 的等价类。而结果是输出条件。 的等价类。而结果是输出条件。 分析程序规格说明的描述中语义的内容, ②分析程序规格说明的描述中语义的内容,并将 其表示成连接各个原因与各个结果的“因果图” 其表示成连接各个原因与各个结果的“因果图” 由于语法或环境的限制, ③由于语法或环境的限制,有些原因和结果的组 合情况是不可能出现的。 合情况是不可能出现的。为表明这些特定的情 况,在因果图上使用若干个特殊的符号标明约 束条件。 束条件。 把因果图转换成判定表。 ④把因果图转换成判定表。 把判定表中每一列表示的情况写成测试用例。 ⑤把判定表中每一列表示的情况写成测试用例。
黑盒测试-因果图法
结果: 1、该类型的房间被打开,且提醒房款支付不足 2、单人间已经被开启 3、双人间已经被开启 4、豪华间已经被开启
当支付房间全款(即预期入住天数内所有房款)或支付房间房款不足(仅支付定金),选择"单人间"、"双人间"或"豪华间",则相应类型 的房间被开启。若游客支付房款不足,则在开启房门的同时系统提示房款支付不足。
问题:采用因果图进行测试用例设计 第一步:首先分析需求说明,找出原因和结果
原因: 1、游客支付房间全款
A2+B2==(管理人员优秀表现)
C2==2类奖 金
A2+B1+B3==(管理人员普通表 C3==3类奖
现,且有特殊贡献)
金
A2+B2+B3==(管理人员普通表 C4==4类奖
现,且有特殊贡献)
金
原因
结果
A1+B1==(普通员工表现普通)
C5==5类奖 金
A1+B2==(普通员工表现优秀)
C6==6类奖 金
员工类别:普通员工A1 管理人员A2
变现类别:普通B1 优秀B2 特殊贡献B3 奖金类别:1类奖金C1 2类奖金C2
.................................... 测试用例如下表:
原因
结果
A2+B1==(管理人员普通表现)
C1==1类 奖金
应用场合:
当软件的输入条件较多的时候,可以考虑用因果图法来设计测试用例。考虑输入的所有排列组合情况,防止遗漏。 因果图的局限性: 假如有n个条件。每个条件有真或假两种取值,理论上就有2的n次方钟排列组合。大大增加了测试用例的个数,不便于维护。
黑盒测试——等价类划分、边界值分析、因果图、状态图、场景、正交试验法
⿊盒测试——等价类划分、边界值分析、因果图、状态图、场景、正交试验法⿊盒测试常⽤测试⽅法的选择:1⾸先采⽤等价类划分法来编写测试⽤例2必要时采⽤边界值分析法进⾏补充测试⽤例3采⽤错误推测法再追加测试⽤例4对照程序逻辑,检查⾃⼰设计出的测试⽤例逻辑覆盖程度,若覆盖不够,则需要再补充其他的测试⽤例5如果程序功能含有输⼊条件的组合情况,应⼀开始就采⽤因果图法6如果程序某功能适合⾃动测试,可以采⽤⾃动化测试及随机测试。
什么是⿊盒测试以及优缺点?定义:⿊盒测试把测试对象看做⼀个⿊盒⼦,不⽤考虑程序内部结构和内部特性,依据程序需求规格说明书,检查程序功能是否符合功能说明。
优缺点:优:1功能性测试与软件如何实现⽆关,如果实现发⽣变化,功能性测试仍然可⽤;2测试⽤例编写与软件开发同时进⾏,节省软件开发时间3通过软件的⽤例可⽤设计出⼤部分功能性测试⽤例缺:1测试⽤例数量⼤2测试⽤例可能产⽣很多冗余3功能性测试的覆盖范围不可能达到100%⿊盒测试⽤例设计⽅法?答:1等价类划分法(有意义,合理的输⼊数据组成集合检查是否符合产品需求;⽆意义,不合理的输⼊数据组成的集合推测不符合需求的地⽅)、2边界值分析法(输⼊的边界值进⾏测试)、3因果图法(分析和表达多逻辑条件下执⾏不同操作)、4状态图法(和产品需求反着来,⽐如要求输⼊数字,就输⼊字母,要求输⼊正数,就输⼊负数等)、5场景法(利⽤图解法分析输⼊的各种组合情况,即输⼊多个条件的各种组合及输出情况之间的相互制约关系)、6正交试验法(⽐如要进⾏18次测试,最终选择具有代表性的9次进⾏试验)7其他测试⽅法有:错误推测法、通过测试与失败测试、随机测试边界值划分法:考虑的边界数据类型如数值、速度、字符、地址、位置、尺⼨、数量;以及考虑条件的等价区间:默认、空⽩、空值、零值和⽆。
还要考虑:⾮法、错误、不正确和垃圾数据。
还要测试:程序的状态及切换。
次边界条件:。
黑盒测试方法——因果分析法
A1:不可能
√
动 A2:day加1 √ √ √
√ √√√
√
作 A3:day复位
√
√
A4:month加1
√
√
A5:month复
位
A6:year加1
NextDate函数的决策表
规则
1 1 14 15 1 1 1 1 2 2 22
选项
23
6 7 8 901
C1:month在 M M M M M M M M M M M4
(2)在该情况下,文件是被修改了; (3)第一个字符不正确,则打印X12消息; (4)第二个不是数字,则打印X13消息;
黑盒测试方法——因果分析法
生成因果图
原因:
C1:第1列的字符是A C2:第1列的字符是B C3:第2列的字符是数字
结果:
E1:文件修改过 E2:打印消息X12 E3:打印消息X13
简化目标:合并相似规则
相似规则判断: 有两条或以上规则具有相同动作,并且在条件项 之间存在极大相似,便可以合并
“—”: 表示合并后该条件项与取值无关,称“无关条件”
黑盒测试方法——决策表
决策表化简
《软件测试》阅读决策表化简
1,5 2,4 3 6,7,8 9,11 10,12 13,14 15,16
【例2.5】 NextDate函数输入为month(月 份)、day(日期)和year(年),输出为输入后 一天的日期。例如,如果输入为:1964年8 月16日,则输出为1964年8月17日。要求 输入变量month、day和year都是整数值, 并且满足以下条件:
Con1. 1≤month≤12
year
预期输出
Test1-3 6
黑盒测试_判定表因果图
出现
M(屏蔽):两个结果,a为1时,b必须是0,当a为0时,b值不定
a E b I a b c O b a R b b a a M
E(互斥)
I(包含)
O(惟一) R(要求) M(屏蔽)
因果图法设计测试用例的步骤
利用因果图导出测试用例需要经过以下几个步骤:
① 分析程度规格说明的描述中,哪些是原因,哪些是结
~
e3
因果图法测试举例(续)
(3)将因果图转换成如下所示的决策表:
选项 规则
1 1 1 1
2 1 1 0
3 1 0 1 1
4 1 0 0 1
5 0 1 1 1
6 0 1 0 1
7 0 0 1 0
√
8 0 0 0 0
√ √
条件: C1 C2 C3 10 动作: e1 e2 e3 不可能 测试用例
√ √ √ √ #3 #A
√ √ *6 *B A1
GT
因果图法测试举例(续)
(4)根据决策表中的每一列设计测试用例: 测试用例编号 1 输入数据 #3 预期输出 修改文件
2
3 4 5 6
#A
*6 *B A1 GT
给出信息M
修改文件 给出信息M 给出信息N 给出信息N和信息M
因果图法实例
某电力公司有A、B、C、D四类收费标准, 并规定: 居民用电 <100度/月 按A类收费 ≥100度/月 按B类收费 动力用电 <10000度/月,非高峰,B类收费 ≥10000度/月,非高峰,C类收费 <10000度/月, 高峰,C类收费 ≥10000度/月, 高峰,D类收费
判定表的缺点及解决方法
判定表的缺点
不能表达重复执行的动作,例如循环结构
黑盒测试二—因果图方法
一、利用因果图方法设计测试用例,步骤必须描述清楚。
主要包括:1)分析题目中存在的输入条件和输出结果;2)分析原因和原因、原因和结果之间的关系,化因果图;3)将因果图转换为判定表,并进行优化;4)针对判定表中的每一列设计测试用例。
某软件规格说明书包含这样的要求,在输入的某行字符中,第一个字符必须是字母S或者M或者L,第二个字符必须是数字,在此情况下进行数据的登记,但如果第一个字符不正确,则给出输出信息第一个标号不正确;如果第二个字符不是数字,则给出信息第二个标号不正确。
第一个程序:package com;import java.util.Scanner;public class test1 {public static void main(String[] args) {Scanner sca = new Scanner(System.in);if(sca.hasNext()){String str = sca.next();int num = -1;if(str.length()>1){switch (str.charAt(0)) {case 'S':num = (int)str.charAt(1);if(num>=48 && num<=57)System.out.println("进行数据的登记");elseSystem.out.println("第二个标号不正确");break;case 'M':num = (int)str.charAt(1);if(num>=48 && num<=57)System.out.println("进行数据的登记");elseSystem.out.println("第二个标号不正确");break;case 'L':num = (int)str.charAt(1);if(num>=48 && num<=57)System.out.println("进行数据的登记");elseSystem.out.println("第二个标号不正确");break;default:System.out.println("第一个标号不正确");break;}}elseSystem.out.println("第一个标号不正确");}}}第二个程序:package com;import java.util.Scanner;public class test {public static String checkStr(String str){if(str.length()>2){int one = (int)str.charAt(0);int two = (int)str.charAt(1);if(one==76 || one==77 || one==83){if(two>=48 && two<=57)return str;elsereturn "第二个标号不正确";}elsereturn "第一个标号不正确";}return "第一个标号不正确";}public static void main(String[] args) {Scanner sca = new Scanner(System.in);if(sca.hasNext()){String str = sca.next();String result = test.checkStr(str);System.out.println(result);}}}因果图1∽E3 C 2 ∨113∨E14∽E2。
[黑盒测试基本方法]之因果图与判定表
测试用例设计方法之因果图法与判定表1.因果图法1.1.前言从用自然语言书写的程序规格说明的描述中找出因(输入条件)和果(输出或程序状态的改变),可以通过因果图转换为判定表。
因果图法即因果分析图,又叫特性要因图、石川图或鱼翅图,它是由日本东京大学教授石川馨提出的一种通过带箭头的线,将质量问题与原因之间的关系表示出来,是分析影响产品质量的诸因素之间关系的一种工具。
1.2.定义因果图法是一种适合于描述对于多种输入条件组合的测试方法,根据输入条件的组合、约束关系和输出条件的因果关系,分析输入条件的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件涉及的各种组合情况。
因果图法一般和判定表结合使用,通过映射同时发生相互影响的多个输入来确定判定条件。
因果图法最终生成的就是判定表,它适合于检查程序输入条件的各种组合情况。
采用因果图法能帮助我们按照一定的步骤选择一组高效的测试用例,同时,还能指出程序规范中存在什么问题,鉴别和制作因果图。
因果图法着重分析输入条件的各种组合,每种组合条件就是“因”,它必然有一个输出的结果,这就是“果”。
1.3.因果关系因果图的表示中输入与输出间的因果关系有四种:1)恒等关系:当输入条件发生,会产生对应输出,当输入条件不发生时,不会产生都会应输出。
2)非关系:与恒等关系相反。
3)或关系:多个输入条件中,只要有一个发生,则会产生对应输出。
4)与关系:多个输入条件中,只有所有输入项发生时,才会产生对应输出。
特定的符号标明因果关系如下(图1.3.1):图1.3.1因果图的表示中输入与输入间的约束关系有四种:1)异(E):所有输入中至多一个输入条件发生。
2)或(I):所有输入中至少一个输入条件发生。
3)唯一(O):所有输入中有且只有一个输入条件发生。
4)要求(R):所有输入中只有一个输入条件发生,则其它输入也会发生。
特定的符号标明输入与输入间约束关系如下(图1.3.2):图1.3.2因果图的表示中输出条件约束类型(见图1.3.2):1)输出条件的约束只有M约束(强制):若结果a是1,则结果b强制为0。
第2章 黑盒测试因果图
M约束:对输出条件的约束,若结果a为1,则 结果b必须为0.
2019/4/17
15
4.因果图法
4.3用因果图生成测试用例的基本步骤 (1) 分析软件规格说明描述中,哪些是 原因 (即输入条件或输入条件的等价 类),哪些是结果 (即输出条件),并给 每个原因和结果赋予一个标识符。 (2) 分析软件规格说明描述中的语义, 找出原因与结果之间,原因与原因之 间对应的是什么关系? 根据这些关系, 画出因果图。
第 2章 黑盒测试用例设计方法
2019/4/17
1
黑盒测试用例设计方法
-----------因果图方法
2019/4/17
2
4.因果图法
4.1概述
等价类划分方法和边界值分析方法着 重考虑输入条件,而不考虑输入条件 的各种组合,也不考虑输入条件之间 的相互制约的关系,但有时一些具体 问题中的输入之间存在着相互依赖的 关系,如:NextDate函数问题。
2019/4/17
3
4.因果图法
如果输入之间有关系,我们在测试时必须 考虑输入条件的各种组合,那么可以考虑 使用一种适合于描述对于多种条件的组合, 相应产生多个动作的形式来设计测试用例, 这就需要利用因果图。
2019/4/17
4
4.因果图法
因果图方法最终生成的就是判定表。 它适合于检查程序输入条件的各种组 合情况。
2019/4/17
30
练习题
(2) 画出因果图。所有原因结点列在左边,所有结 果结点列在右边。
2019/4/17
31
练习题
(3) 由于 2 与 3 ,4 与 5 不能同时发生,分别 加上约束条件E。 (4) 因果图转换成判定表 (5) 设计测试用例
黑盒测试学生成绩因果图测试用例
黑盒测试学生成绩因果图测试用例引言本文档旨在为黑盒测试学生成绩因果图模型提供测试用例。
通过这些测试用例,我们将验证学生成绩因果图模型的功能和性能,以确保其正常运行并生成准确可靠的学生评估结果。
目标学生成绩因果图模型的主要目标是根据学生的各项学习指标,预测他们的成绩。
因此,测试用例将以以下方面进行测试:1. 输入变量的准确性和完整性 2. 因果图模型的准确性和可靠性 3. 输出结果的准确性和一致性测试用例用例一:输入变量测试序号测试步骤预期结果1输入学生姓名和学号学生姓名和学号被正确接受2输入学生的平时作业成绩(>=0)平时作业成绩被正确接受3输入学生的考试成绩(>=0)考试成绩被正确接受4输入学生的出勤状况(百分比)出勤状况被正确接受5输入学生的课堂表现(0-10)课堂表现被正确接受6输入学生的参与度(0-10)参与度被正确接受7输入学生的作业提交状况(百分比)作业提交状况被正确接受8输入学生的学习时间(分钟)学习时间被正确接受9输入学生的自觉程度(0-10)自觉程度被正确接受用例二:模型准确性测试序号测试步骤预期结果1输入多个学生的各项学习指标,如平时作业、考试成绩等模型能够正确计算学生的预测成绩2输入一个学生的学习指标,并将同一学生的指标再次输入进行重复测试模型应该生成相同的预测成绩3输入学生的学习指标中有一项或多项缺失模型应该能够正确处理缺失的学习指标4输入学生的学习指标中有异常值模型应该能够正确处理异常值5输入学生的学习指标中有不合理的组合模型应该能够警告或处理不合理的组合6输入学生的学习指标中的数据有误模型应该能够识别并纠正错误的学习指标用例三:输出结果测试序号测试步骤预期结果1输入多个学生的各项学习指标,模型能够生成准确的预包括平时作业、考试成绩等测成绩2输入多个学生的学习指标,并将同一学生的指标再次输入进行重复测试模型生成的预测成绩应该相同3输入学生的学习指标中有一项或多项缺失模型应该能够对缺失的指标进行插补并生成预测成绩4输入学生的学习指标中有异常值模型应该能够对异常值进行处理并生成预测成绩5输入学生的学习指标中有不合理的组合模型应该能够警告或处理不合理的组合6输入学生的学习指标中的数据有误模型应该能够识别并纠正错误的学习指标结论通过对学生成绩因果图模型的黑盒测试用例的执行,可以验证模型的输入变量处理、模型准确性和输出结果的正确性。
黑盒测试用例设计方法二(因果图法、判定表法、场景法)
⿊盒测试⽤例设计⽅法⼆(因果图法、判定表法、场景法)测试步骤⼀、因果图法1.1什么是因果图法因果图是⼀种适合于描述对于多种输⼊条件组合的测试⽅法根据输⼊条件的组合、约束关系和输出条件的因果关系,分析输⼊条件的各种组合情况,从⽽设计测试⽤例的⽅法它适合于检查程序输⼊条件涉及的各种组合情况。
1.2因果图步骤第⼀步:根据功能说明书中规定的原因和结果之间的关系画出因果图恒等:原因A成⽴,结果B⼀定成⽴⾮:愿意A成⽴时,结果B⼀定不成⽴或:原因A、B、C三者只要有⼀个成⽴,结果D就⼀定成⽴与:原因A、B、C都成⽴时,结果D才会出现第⼆步:根据功能说明在因果图中加上约束条件其中互斥、包含、唯⼀、要求是对原因的约束,屏蔽是对结果的约束。
它们的含义如下:1、互斥(exclusive):表⽰不同时为1,即a,b,c中⾄多只有⼀个12、包含(include):表⽰⾄少有⼀个1,即a,b,c中不同时为03、唯⼀(only):表⽰a,b,c中有且仅有⼀个14、要求(request):表⽰若a=1,则b必须为1。
即不可能a=1且b=05、屏蔽(mask):表⽰若a=1,则b必须为0(当你收到注册成功的提⽰,就⼀定不会收到数据填写错误的提⽰)1.3因果图使⽤实例例:阅读和分析功能说明书,识别出“原因”和“结果”,并加以编号(1)有⼀个饮料⾃动售货机(处理单价为5⾓钱)的控制处理软件,它的软件规格说明如下若投⼊5⾓钱的硬币,按下“橙汁”或“啤酒”的按钮,则相应的饮料就送出来。
若投⼊1元钱的硬币,同样也是按“橙汁”或“啤酒”的按钮,则⾃动售货机在送出相应饮料的同时退回5⾓钱的硬币。
分析原因和结果画出原因和结果之间的关系(部分关系)按照需求描述原因、结果的约束因果图使⽤中的局限性:当原因和结果很多的时候,它们之间的关系连线就会很多,导致因果图的可读性变差。
因此⽤作局部的⼩功能(原因和结果不是很多的时候)分析。
列出所有的原因和结果的列表,设计初步的测试⽤例步骤C5:这是⼀种bug,不能做测试设计。
第二章 黑盒测试 (2)
1
目· 录
因果图
因果图的概念 因果图操作流程 实例 总结
决策表
决策表的概念 决策表操作流程 实例 总结
问题的提出: 等价类划分法和边界值分析方法都是着重考虑输 入条件,如果程序输入之间没有什么联系,采用 等价类划分和边界值分析是一种比较有效的方法。 但如果输入之间有关系,例如,约束关系、组合 关系,这种关系用等价类划分和边界值分析是很 难描述的,测试效果难以保障,因此必须考虑使 用一种适合于描述对于多种条件的组合,产生多 个相应动作的测试方法。
√
0 0 0 0
√ √
12
√ √ √ √
√ √
(4)根据决策表设计测试用例 测试用例编号 1 2 3 决策表 中的 4 3~8 5 6 输入数据 #3 #A *6 *B A1 GT 预期输出 修改文件 给出信息M 修改文件 给出信息M 给出信息N 给出信息N和M
13
例2. 有一个处理单价为1元5角钱的盒装饮料的 自动售货机软件。若投入1元5角硬币,按下 “可乐”、“雪碧”或“红茶”按钮,相应的饮 料就送出来。若投入的是两元硬币,在送出饮料 的同时退还5角硬币。
21
决策表法相关概念 决策表通常由条件桩、条件项、动作桩和动作 项4部分组成。
条件桩 动作桩
件列出所有可能的取值 采取的动作
条件项 动作项
规则
条件项—针对条件桩给出的条 动作项—指出在条件项的各组取值情况下应 条件桩—列出问题的所有条件 动作桩—列出问题规定的可能采取的操作
23
2.决策表的构造及化简的操作流程
25
2: NextDate问题的决策表
NextDate函数输入为month(月份)、day(日期)和 year(年),输出为输入后一天的日期。例如,如 果输入为:1964年8月16日,则输出为1964年8 月17日。要求输入变量month、day和year都是 整数值,并且满足以下条件: Con1. 1≤month≤12 Con2. 1≤day≤31 条件桩 Con3. 1900≤year≤2050
黑盒测试用例--因果图设计法
黑盒测试用例--因果图设计法
•因果图:是一种简化了的逻辑图,能直观地表明程序输入条件(原因)和输出动作(结果)之间的相互关系
•因果图法:是借助图形来设计测试用例的一种系统方法,特别适用于被测试程序具有多种输入条件,程序的输出又依赖于输入条件的各种的情况。
描述:
1.年薪制员工:严重过失,扣年终风险金的4%;
过失,扣年终风险金的2%
2.非年薪制员工:严重过失,扣当月薪资的8%
过失,扣当月薪资的4%
要求:如果年薪制员工既是过失又是严重过失则扣年终风险金的4% ;非年薪制员工既是过失又是严重过失扣当月薪资的8%
首先列出原因和结果
其次画出因果图:
再次:转换为判定表:
最后:分析测试用例
因果图的优点、缺点:
优点:不论输入条件的组合多么复杂,总可以按照上面的例子给出的步骤找出测试用例。
不足:输入条件的组合数2ª随a的上升急剧增长,当a较大时,因果图的结构将变得十分复杂,而把因果图转换为判定表则更为麻烦。
转自:哈尔滨软件测试交流/。
黑盒测试-因果图、判定表
因果图
因果图方法(Cause-Effect graphics):一种黑盒测试方法。考虑输入条件之间的联系, 各种组合,相应产生多个动作来设计测试用例。
方法的依据:
需求规格说明中的因果关系。
因果图介绍
恒等
c1
e1
非
c1 c1
e1
或
c2 c3 c1V来自e1与 c2∧
e1
条件的约束
输入条件约束
判定表驱动测试
是分析和表达多逻辑条件下执行不同操作的情况下的工具,通常作为程序开发的辅助工具. 规格说明以判定表形式给出,或很容易转换成判定表 .
判定表的组成
规则
条件桩(Condition stub) 动作桩(Action stub) 条件项(Condition Entity) 动作项(Action Entity)
1 问 题 你觉得疲倦吗? 你对内容感兴趣吗? 请回到本章开头重读
2
3 Y N Y
4 Y N N
5 N Y Y X
6 N Y N X
7
8
Y
Y X
Y
Y N X
N
N Y
N
N N
书中内容使你糊涂吗? Y
建 议 继续读下去 跳到下一章去读
X X X
X
停止阅读,请休息
规则化简
化简 就是规则和并
有两条和多条规则具有相同的动作,并且其条件项之间存在着极为相似的关系。
考虑到原因之间必须有一个且仅有一个为1因此在因果图上施加g约束2122因果图实例具有e约束的因果图212210111213141516优点1因果图法能够帮助我们按照一定步骤高效的选择测试用例设计多个输入条件组合用例
黑盒-因果图法
步骤:
1. 2.
3. 4.
分析程序的规格说明,列出原因和结果; 找出原因与结果之间的因果关系、原因 与原因之间的约束关系,画出因果图。 将因果图转换成决策表; 根据3中的决策表,设计测试用例的输入 数据和预期输出。
解法如下:
(1)在明确了上述要求后,可以明确地 将原因和结果分开。
原因:c1-第一个字符是“#” c2-第一个字符是“*” c3-第二个字符是一个数字 结果:a1-给出信息N a2-修改文件 a3-给出信息M
a1:退还5角硬币 a2:送出“可乐”饮料 √ a3:送出“雪碧”饮料 a4:送出“红茶”饮料
√
√
√
√
(4)设计测试用例
用例编号 1 2 3 测试用例 投入1元5角,按“可乐” 投入1元5角,按“雪碧” 投入1元5角,按“红茶” 预期输出 送出“可乐”饮料 送出“雪碧”饮料 送出“红茶”饮料
4
5 6
表3-4 因果关系
编号 1 2
3 11
原因 第一列字符是 A 第一列字符是 B 第二列字符是 一数字 中间原因
编号 21 22
23
结果 修改文件 给出信息L
给出信息M
图 对应的因果关系
22
21
因果图法练习
程序的规格说明要求:输入的第一个字符 必须是“#”或“*”,第二个字符必须是 一个数字,在此情况下进行文件的修改; 如果第一个字符不是“#”或“*”,则给 出信息N;如果第二个字符不是数字,则 给出信息M。
黑盒测试用例设计 ——因果图法
因果图法产生的背景
等价类划分法和边界值分析方法 都是着重考虑输入条件,但没有考虑 输入条件的各种组合、输入条件之间 的相互制约关系。这样虽然各种输入 条件可能出错的情况已经测试到了, 但多个输入条件组合起来可能出错的 情况却被忽视了。
[黑盒测试基本方法]之因果图与判定表
测试用例设计方法之因果图法与判定表1.因果图法1.1.前言从用自然语言书写的程序规格说明的描述中找出因(输入条件)和果(输出或程序状态的改变),可以通过因果图转换为判定表。
因果图法即因果分析图,又叫特性要因图、石川图或鱼翅图,它是由日本东京大学教授石川馨提出的一种通过带箭头的线,将质量问题与原因之间的关系表示出来,是分析影响产品质量的诸因素之间关系的一种工具。
1.2.定义因果图法是一种适合于描述对于多种输入条件组合的测试方法,根据输入条件的组合、约束关系和输出条件的因果关系,分析输入条件的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件涉及的各种组合情况。
因果图法一般和判定表结合使用,通过映射同时发生相互影响的多个输入来确定判定条件。
因果图法最终生成的就是判定表,它适合于检查程序输入条件的各种组合情况。
采用因果图法能帮助我们按照一定的步骤选择一组高效的测试用例,同时,还能指出程序规范中存在什么问题,鉴别和制作因果图。
因果图法着重分析输入条件的各种组合,每种组合条件就是“因”,它必然有一个输出的结果,这就是“果”。
1.3.因果关系因果图的表示中输入与输出间的因果关系有四种:1)恒等关系:当输入条件发生,会产生对应输出,当输入条件不发生时,不会产生都会应输出。
2)非关系:与恒等关系相反。
3)或关系:多个输入条件中,只要有一个发生,则会产生对应输出。
4)与关系:多个输入条件中,只有所有输入项发生时,才会产生对应输出。
特定的符号标明因果关系如下(图1.3.1):图1.3.1因果图的表示中输入与输入间的约束关系有四种:1)异(E):所有输入中至多一个输入条件发生。
2)或(I):所有输入中至少一个输入条件发生。
3)唯一(O):所有输入中有且只有一个输入条件发生。
4)要求(R):所有输入中只有一个输入条件发生,则其它输入也会发生。
特定的符号标明输入与输入间约束关系如下(图1.3.2):图1.3.2因果图的表示中输出条件约束类型(见图1.3.2):1)输出条件的约束只有M约束(强制):若结果a是1,则结果b强制为0。
黑盒测试实例(因果图和场景测试)
题目一:有一个处理单价为5角钱饮料的自动售货机软件,对其采用因果图方法设计测试用例。
该自动售货机软件规格说明中的要点如下:1)若售货机没有零钱找,则一个显示“零钱找完”的红灯亮,以提示顾客在此情况下不要投入1元钱,否则此红灯不亮。
2)顾客投入5角硬币后,按下“橙汁”或“啤酒”按钮,则相应的饮料被送出。
3)顾客投入1元硬币并按下“橙汁”或“啤酒”按钮后,若售货机没有零钱找,则显示“零钱找完”的红灯亮,1元硬币被推出,且无饮料送出;若有零钱找,则5角硬币被退出且饮料送出。
解:1) 分析这一段说明,列出原因和结果原因:1.售货机有零钱找2.投入1元硬币3.投入5角硬币4.押下橙汁按钮5.押下啤酒按钮结果:21.售货机〖零钱找完〗灯亮22.退还1元硬币23.退还5角硬币24.送出橙汁饮料25.送出啤酒饮料2) 画出因果图,如图所示。
所有原因结点列在左边,所有结果结点列在右边。
建立中间结点,表示处理的中间状态。
中间结点:11. 投入1元硬币且押下饮料按钮12. 押下〖橙汁〗或〖啤酒〗的按钮13. 应当找5角零钱并且售货机有零钱找14. 钱已付清3) 转换成判定表:4) 在判定表中,阴影部分表示因违反约束条件的不可能出现的情况,删去。
第16列与第32列因什么动作也没做,也删去。
最后可根据剩下的16列作为确定测试用例的依据。
题目二:有一个在线购物的实例,用户进入一个在线购物网站进行购物,选购物品后,进行在线购买,这时需要使用帐号登录,登录成功后,进行付钱交易,交易成功后,生成订购单,完成整个购物过程。
对其采用场景法设计测试用例。
图:基本流和备选流解:1)在线购物的实例的基本流和备选流:2)根据基本流和备选流来确定场景设计:3)用例设计下面显示了一种通用格式,其中各行代表各个测试用例,而各列则代表测试用例的信息。
本例中,对于每个测试用例,存在一个测试用例ID、条件(或说明)、测试用例中涉及的所有数据元素(作为输入或已经存在于数据库中)以及预期结果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2015-6-24
3
4.因果图法
如果输入之间有关系,我们在测试时必须 考虑输入条件的各种组合,那么可以考虑 使用一种适合于描述对于多种条件的组合, 相应产生多个动作的形式来设计测试用例, 这就需要利用因果图。
2015-6-24
4
4.因果图法
因果图方法最终生成的就是判定表。 它适合于检查程序输入条件的各种组 合情况。
10
~
∧
e1 e2 e3
20
2015-6-24
~
因果图
中间结果
C1 ∨ C2 10
~ ∧
E2
E1
C3 ~
E3
2015-6-24
21
带有E约束的因果图
C1
~ ∨ 10 ∧
E2
E
C2
E1
C3 ~
E3
2015-6-24
22
将因果图转化为判定表
1 2 3 4 5 6 7 8
C1 C2 C3 10 E1 E2 E3
0 1 0 1 0 1
0 0 1 1
0 0 0 0 1 1 1 1
2015-6-24
46
规 则 选项
1 11 5 6 7 E2 E3 E4 1 1 1 1
2 1 1 1 0
3 1 1 0 1
4 1 1 0 0 1 0 0
5 1 0 1 1
6 1 0 1 0 0 1 0
7 1 0 0 1 0 0 1
2015-6-24
44
添加中间节点11,目的是作为导出结果的进一步原因,简化因果 图导出的判定表
1 ~ 2 3 4 5 E 6 7
2015-6-24 45
~ ~ V
V
E1
E2 V E3 V V E4
11
~
决策表分解
规则 选项
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
8 1 0 0 0
9 0 1 1 1
10 0 1 1 0
1 1
0 1 0 1
12 13 0 1 0 0 0 0 1 1
1 4
0 0 1 0
15 0 0 0 1
1 6
0 0 0 0
2015-6-24
47
决策表分解
规则
选项
1 2 3 4 5 6 7 8
1 2 3
1 1 1 1 1 0 1 0 1
1 0 0
2015-6-24
19
因果图法测试举例(续)
(1)分析程序规格说明中的原因和结果:
原因 c1:第一个字符是#
c2:第一个字符是* c3:第二个字符是一个数字
结果 e1:给出信息N
e2:修改文件 e3:给出信息M
(2)画出因果图(编号为10的中间结点是导出结果的进一步原因):
c1 E c2 c3
∨
2015-6-24
35
小结
因果图方法:
因果图方法的适用范围 因果图方法设计测试用例的步骤 因果图方法优点
2015-6-24
36
习题
某软件的一个模块的需求规格说明书中描述: (1)年薪制员工:严重过失,扣年终风险金的 4%;过失,扣年终风险金的2%。 (2)非年薪制员工:严重过失,扣当月薪资的 8%;过失,扣当月薪资的4%。 请绘制出因果图和判定表,并给出相应的测试用 例。
2015-6-24
30
练习题
(2) 画出因果图。所有原因结点列在左边,所有结 果结点列在右边。
2015-6-24
31
练习题
(3) 由于 2 与 3 ,4 与 5 不能同时发生,分 别加上约束条件E。 (4) 因果图转换成判定表 (5) 设计测试用例
2015-6-24
32
2015-6-24
33Βιβλιοθήκη 编号Test1 Test2 Test3 Test4 Test5 Test6 Test7 Test8 Test9 Test10 Test11 Test12 Test13 Test14 Test15
2015-6-24
输入条件 12345 组合
11010 11001 11000 10110 10101 10100 10010 10001 01010 01001 01000 00110 00101 00100 00010
2015-6-24 25
橙汁
啤酒
投币口
5角 1元
零钱找完 有零钱找
退币口
取货 出货口
2015-6-24 26
练习题
(1) 分析这一段说明,列出原因和结果 原因: 1. 售货机有零钱找 2. 投入1元硬币 3. 投入5角硬币 4. 按下橙汁按钮 5. 按下啤酒按钮
2015-6-24
27
练习题
结果:
2015-6-24 16
4.因果图法
(3) 由于语法或环境限制,有些原因与原 因之间,原因与结果之间的组合情况不可 能出现。为表明这些特殊情况,在因果图 上用一些记号标明约束或限制条件。 (4) 把因果图转换成判定表。 (5) 把判定表的每一列拿出来作为依据, 设计测试用例。
2015-6-24
17
2015-6-24 9
4.因果图法
实际问题中,输入状态之间可能存在 某些依赖关系,这种依赖关系被称为” 约束”. 在因果图中使用特定的符号来表示这 些约束关系:
2015-6-24
10
4.因果图法
约束关系说明:
E约束(异): a,b最多有一个可能为1,不 能同时为1.
2015-6-24
11
2015-6-24 43
二、 根据分析明确原因和结果
原因:
1. 2. 3.
结果:
E1、不移动棋子; E2、移动棋子; E3、移动棋子,并除去对方 棋子; E4、移动棋子,并提示战 胜对方,结束游戏。
4. 5.
6.
7.
落点在棋盘上; 落点与起点构成日字; 落点方向的邻近交叉点 无棋子; 落点处为自己方棋子; 落点处无棋子; 落点处为对方棋子(非老 将); 落点处为对方老将。
第 2章 黑盒测试用例设计方法
2015-6-24
1
黑盒测试用例设计方法
-----------因果图方法
2015-6-24
2
4.因果图法
4.1概述
等价类划分方法和边界值分析方法着 重考虑输入条件,而不考虑输入条件 的各种组合,也不考虑输入条件之间 的相互制约的关系,但有时一些具体 问题中的输入之间存在着相互依赖的 关系,如:NextDate函数问题。
12 C2
E3
E4
2015-6-24
39
将因果图转化为判定表:
2015-6-24
40
测试用例
测试用例1: 输入数据: 年薪制员工,严重过失 预期输出: 扣年终风险金的4% 测试用例2: 输入数据: 年薪制员工,过失 预期输出: 扣年终风险金的2% 测试用例3: 输入数据: 非年薪制员工,严重过失 预期输出: 扣当月薪资的8% 测试用例4: 输入数据: 非年薪制员工,过失 预期输出: 扣当月薪资的4%
原因
结果
通常在因果图中用Ci表示原因,用Ei 表示结果,各结点表示状态,可取值 “0”或“1”。“0”表示某状态不出 现,“1”表示某状态出现。
2015-6-24
7
4.因果图法
主要的原因和结果之间的关系有:
C1
C1
C2
2015-6-24
8
4.因果图法
恒等: 若c1为1,则e1也为1,否则e1为 0. 非: 若c1是1,则e1为0,否则e1是1. 或: 若c1或c2或c3是1,则e1是1,若三 者都不为1,则e1为0. 与: 若c1和c2都是1,则e1为1,否则若 有其中一个不为1,则e1为0.
不可能
1 1 1
1 1 0
1 0 1 1 √
1 0 0 1
0 1 1 1 √
0 1 0 1
0 0 1 0
√
0 0 0 0
√ √ CM D*
23
√ √ √ A3 A5 AM A& B3 B5
√ BM B* C2 X6
测试 用例
2015-6-24
设计测试用例
测试用例1: 测试用例2: 测试用例3: 测试用例4: 测试用例5: 测试用例6:
M约束:对输出条件的约束,若结果a为1,则 结果b必须为0.
2015-6-24
15
4.因果图法
4.3用因果图生成测试用例的基本步骤 (1) 分析软件规格说明描述中,哪些是 原因 (即输入条件或输入条件的等价 类),哪些是结果 (即输出条件),并给 每个原因和结果赋予一个标识符。 (2) 分析软件规格说明描述中的语义, 找出原因与结果之间,原因与原因之 间对应的是什么关系? 根据这些关系, 画出因果图。
1 2 3 4 11 E1
1 1 1 1
1 1 1 0
1 1 0 1
1 1 0 0 0 1
1 0 1 1
1 0 1 0
1 0 0 1
1 0 0 0
0 1 1 1
0 1 1 0
0 1 0 1 0 1
0 1 0 0 0 1
0 0 1 1 0 1
0 0 1 0 0 1
0 0 0 1 0 1
0 0 0 0 0 1
2015-6-24
37
原因:C1. 年薪制员工 C2. 严重过失 中间状态:11. 非年薪制员工 12. 过失 结果:E1. 扣年终风险金的4% E2. 扣年终风险金的2% E3. 扣当月薪资的8% E4. 扣当月薪资的4%