【资料】软件测试-8黑盒测试因果图法.汇编
黑盒测试方法——因果分析法

相似规则判断: 有两条或以上规则具有相同动作,并且在条件项 之间存在极大相似,便可以合并
“—”: 表示合并后该条件项与取值无关,称“无关条件”
黑盒测试方法——决策表
决策表化简
《软件测试》阅读决策表化简
1,5 2,4 3 6,7,8 9,11 10,12 13,14 15,16
若Ci出现,则Ei出现;若Ci不出现,则Ei也不出现
(2)非(~):
若C出现,则E不出现;若C不出现,则E出现
(3)或(∨):
若几个Ci中有一个出现,则E出现;若几个Ci都不出现,则E不出现
(4)与(∧):
若几个Ci都出现,则结果出现;若其中一个Ci不出现,则E不出现
黑盒测试方法——因果分析法 因果图
黑盒测试方法——决策表
决策表方法原理
决策表并非因果图的一个辅助工具
适用情形: 输入输出较多且输入之间和输出之间互相制约的 条件较多
决策表: 把作为条件的所有输入的组合以及对应输出都罗 列出来形成的表格。
特点: 能将复杂问题按照各种可能情况全部列出,表示 简明,并避免遗漏
黑盒测试方法——决策表
生成决策表
1
行动
A1 0 0 0 1 0
1
A2 1 1 0 0 0
0
A3 1 0 1 0 1
0
黑盒测试方法——因果分析法
生成测试用例
(1)决策表中的条件——测试用例的输入条件 (2)决策表中的行动——测试用例的期望输出 (3)一条决策规则——一个测试用例
黑盒测试方法——因果分析法
因果分析法总结
Step1:分析规格说明书,识别原因和结果 Step2:在因果图连接原因和结果 Step3:标明原因之间以及结果之间的约束条件 Step4:因果图转换为因果图列表进而生成决策表 Step5:决策表的规则转换为测试用例
黑盒测试——等价类划分、边界值分析、因果图、状态图、场景、正交试验法

⿊盒测试——等价类划分、边界值分析、因果图、状态图、场景、正交试验法⿊盒测试常⽤测试⽅法的选择:1⾸先采⽤等价类划分法来编写测试⽤例2必要时采⽤边界值分析法进⾏补充测试⽤例3采⽤错误推测法再追加测试⽤例4对照程序逻辑,检查⾃⼰设计出的测试⽤例逻辑覆盖程度,若覆盖不够,则需要再补充其他的测试⽤例5如果程序功能含有输⼊条件的组合情况,应⼀开始就采⽤因果图法6如果程序某功能适合⾃动测试,可以采⽤⾃动化测试及随机测试。
什么是⿊盒测试以及优缺点?定义:⿊盒测试把测试对象看做⼀个⿊盒⼦,不⽤考虑程序内部结构和内部特性,依据程序需求规格说明书,检查程序功能是否符合功能说明。
优缺点:优:1功能性测试与软件如何实现⽆关,如果实现发⽣变化,功能性测试仍然可⽤;2测试⽤例编写与软件开发同时进⾏,节省软件开发时间3通过软件的⽤例可⽤设计出⼤部分功能性测试⽤例缺:1测试⽤例数量⼤2测试⽤例可能产⽣很多冗余3功能性测试的覆盖范围不可能达到100%⿊盒测试⽤例设计⽅法?答:1等价类划分法(有意义,合理的输⼊数据组成集合检查是否符合产品需求;⽆意义,不合理的输⼊数据组成的集合推测不符合需求的地⽅)、2边界值分析法(输⼊的边界值进⾏测试)、3因果图法(分析和表达多逻辑条件下执⾏不同操作)、4状态图法(和产品需求反着来,⽐如要求输⼊数字,就输⼊字母,要求输⼊正数,就输⼊负数等)、5场景法(利⽤图解法分析输⼊的各种组合情况,即输⼊多个条件的各种组合及输出情况之间的相互制约关系)、6正交试验法(⽐如要进⾏18次测试,最终选择具有代表性的9次进⾏试验)7其他测试⽅法有:错误推测法、通过测试与失败测试、随机测试边界值划分法:考虑的边界数据类型如数值、速度、字符、地址、位置、尺⼨、数量;以及考虑条件的等价区间:默认、空⽩、空值、零值和⽆。
还要考虑:⾮法、错误、不正确和垃圾数据。
还要测试:程序的状态及切换。
次边界条件:。
黑盒测试技术之因果图-教学课件

3.实例
4、根据因果图建立决策表
3.实例
5、生成测试用例
THANKS
第四章 测试设计技术
——黑盒测试技术之因果图
主讲人:丁慧
1.因果图 2.使用因果图和决策表设计测试用例 3.实例
1.因果图
因果图技术:面向功能的动态测试的方法,以图形形式(因果图)来 描述规格说明,并借由因果图,通过一系列中间步骤生成测试用例。
因果图最终生成的就是决策表,提供了一个把规格转化为决策表的系 统化方法,从该图中可以产生测试数据。
1.因果图
1.因果图
2.使用因果图和决策表设计测试用例
使用因果图和决策表设计测试用例步骤如下: 1. 分析需求规格说明找出原因和结果; 2. 画出因果图; 3. 标记约束或限制条件; 4. 把因果图转换为决策表; 5. 生成测试用例;
3.实例
某软件规格说明书包含这样的要求:第一列字符必须是A或B,第二列 字符必须是一个数字,在此情况下进行文件的修改,但如果第一列字符不正 确,则给出信息L;如果第二列字符不是数字,则给出信息M。
因果图中原因表示输入条件,结果是对输入执行的一系列计算后得到 的输出。
1.因果图
因果图中基本符号 ➢ 以直线连接左右节点,左节点表示原因 (输入状态ci),右节点 表示结果(输出状态ei) ➢ ci和ei均可取值0或1,0表示状态不出现,1表示状态出现
因果图中三大关系 ➢ 原因和结果的关系 ➢ 原因和原因的关系 ➢ 结果和结果的关系
黑盒测试方法——因果分析法

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
黑盒测试学生成绩因果图测试用例

黑盒测试学生成绩因果图测试用例引言本文档旨在为黑盒测试学生成绩因果图模型提供测试用例。
通过这些测试用例,我们将验证学生成绩因果图模型的功能和性能,以确保其正常运行并生成准确可靠的学生评估结果。
目标学生成绩因果图模型的主要目标是根据学生的各项学习指标,预测他们的成绩。
因此,测试用例将以以下方面进行测试: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,不能做测试设计。
软件测试第四章--因果图

因果图(续)
因果图中用来表示约束关系的约束符号:
a
I
b
或
c
I 约束(或):a、b、c中至少有一个必须为1,即 a、b、c不能同时为0。
因果图(续)
因果图中用来表示约束关系的约束符号:
a
O
b
唯一
O约束(唯一):a和b必须有一个且仅有一个为1。
因果图(续)
因果图中用来表示约束关系的约束符号:
7. 落点处为对方老将。
添加中间节点11,目的是作为导出结果的进一步原因,简化因果 图导出的判定表
1 ~ 2 ~ ~ V V E1
3 4
5 E 6 7 V ~ V V 11
E2
E3
E4
决策表分解
规则 选项 1 2 3 4 11 E1 1 1 1 1 0 1 1 1 1 0 1 0 1 1 0 1 0 1 1 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 0 0 0 1 0 1 1 1 0 1 0 1 1 0 0 1 0 1 0 1 0 1 0 1 0 0 0 1 0 0 1 1 0 1 0 0 1 0 0 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 5 0 0 0 1 0 1 1 6 0 0 0 0 0 1
~ 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 不可能 测试用例
黑盒测试_判定表因果图

功率大于50马力吗?
Y Y Y
条 维修记录不全吗? 件 动 进行优先处理 作 作其他处理
运行超过10年吗?
1,2合并,5,7合并,6,8合并
举例:维修机器问题(续)
(5)化简;
(1) 功率大于50马力吗? Y Y — (2) Y N Y (3) Y N N (4) N — Y (5) N — N
(4)
填 写 判 定 表
⑴ ⑵ ⑶ ⑷ ⑸ ⑹ ⑺ ⑻ F F F F F F F F F F F T F T T T F F T F T F T T F T F F T T F T
a = c? b = c?
非三角形
— — —
不等边三角形
动 等腰三角形 作
等边三角形 不可能
年增1x1114m3d1d2d3d4xxm4d4d5x1114m3d1d2d3d4xxm4d4d5nextdate函数的测试用例用例id月份日期年预期输出1341520012001年4月16日443020012001年5月1日54312001不可能6911520012001年1月16日1013120012001年2月1日1114121520012001年12月16日15123120012002年1月1日1621520012001年2月16日1722820042004年2月29日1822820012001年3月1日1922920042004年3月1日202292001不可能21222302001不可能用例id月份日期年预期输出1341520012001年4月16日443020012001年5月1日54312001不可能6911520012001年1月16日1013120012001年2月1日1114121520012001年12月16日15123120012002年1月1日1621520012001年2月16日1722820042004年2月29日1822820012001年3月1日1922920042004年3月1日202292001不可能21222302001不可能判定表技术适用的应用程序的特征?判定表技术适用的应用程序的特征
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
b 要求
M约束(强制):若结果a是1,则结果b强制为 0。
a M
b 强制
对于输入条件的约束有4种:
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;
因果图中出现的基本符号
原因
结果
通常在因果图中用Ci表示原因,用Ei表 示结果,各结点表示状态,可取值“0” 或“1”。“0”表示某状态不出现,“1” 表示某状态出现。
主要的原因与结果之间的关系
c1
e1
(a)恒等
c1
V
c1 ~ e1 c2
e1
(b)非
c3
(c)或
V
c1 e1
c2
(d)与
恒等:若c1是1,则e1也为1,否 则e1为0;
c1
e1
非:若c1是1,则e1为0,否则e1 为1;
c1 ~ e1
或:若c1或c2或c3是1,则e1是1 ,否则e1为0,“或”可有任意个 输入;
c1
V
c2
e1
c3
与:若c1和c2都是1,则e1为1, 否则e1为0,“与”也可有任意个 输入。
c1 e1
c2
V
恒等:若c1是1,则e1也为1,否则e1为 0;
使用因果图法的优点:
(1)考虑到了输入情况的各种组合以及各个 输入情况之间的相互制约关系。
(2)能够帮助测试人员按照一定的步骤,高 效率的开发测试用例。
(3)因果图法是将自然语言规格说明转化成 形式语言规格说明的一种严格的方法,可以 指出规格说明存在的不完整性和二义性。
因果图法案例分析
有一个处理单价为1元5角的盒装饮料的自动售 货机软件。若投入1元5角硬币,按下“可乐”, “雪碧”或“红茶”按钮,相应的饮料就送出 来。若投入的是两元硬币,在送出饮料的同时 退还5角硬币。
对于输出条件的约束只有M约束
M约束(强制):若结果a是1,则结果b强制为0。
课堂回顾:
1、以下四个图例分别表示什么关系:
c1
e1
c1 ~ e1
c1
∨
c2
e1
c3
c1 ∧ e1
c2
课堂回顾:
2、以下五种图例又分别表示什么关系??
a
a
a
E
ቤተ መጻሕፍቲ ባይዱ
I
b
b
O
b
c
a
R
b
a
M
b
因果图法设计测试用例思想
首先从程序规格说明书的描述中 ,找出因(输入条件)和果(输出结 果或者程序状态的改变),
a2-修改文件 a3-给出信息M
(2)因果图
10为导出结果的中间原因
c1
a1
V 10
~
V
c2
a2
c3
~
a3
因果图表示
带有E约束的因果图
c1
E
V 10
c2
V
a1 ~
a2
c3
~
a3
具有E约束的因果图表示
(3)将因果图转换成决策表
规则 1
选项
条件
c1
1
c2
1
c3
1
10
动作
a1
a2
a3
不可能
√
测试用例
将因果图转换成判定表; 根据判定表中每一列设计测试用例
因果图法举例
程序的规格说明要求:输入的第一个字符必须 是“#”或“*”,第二个字符必须是一个数字, 在此情况下进行文件的修改;如果第一个字符 不是“#”或“*”,则给出信息N;如果第二个 字符不是数字,则给出信息M。
步骤:
1. 分析程序的规格说明,列出原因和结果; 2. 找出原因与结果之间的因果关系、原因与原
然后通过因果图转换为判定表, 最后为判定表中的每一列设计一 个测试用例.
因果图法设计测试用例步骤:
分析程序规格说明书描述的语义内容,找出“ 原因”和“结果”,将其表示成连接各个原因 与各个结果的“因果图”。
由于语法或环境限制,有些原因与原因之间或 与结果之间的组合情况不能出现,用记号标明 约束或限制条件;
2
3
4
56
7
8
1
1
1
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
0
1
0
1
1
1
1
0
0
√
√
√
√
√
√
√
√
#3 #A *6 *B A1 GT
(4)设计测试用例
最左边两列,原因c1和c2同时为1不可能,排除掉, 根据表可设计出6个测试用例。
Test1:输入数据-#3 预期输出--修改文件 Test2:输入数据-#B 预期输出--给出信息M Test3:输入数据-*7 预期输出--修改文件 Test4:输入数据-*M 预期输出--给出信息M Test5:输入数据-C2 预期输出--给出信息N Test6:输入数据-CM 预期输出--给出信息M和N
或c
b 唯一
b 要求
b 强制
(a)
(b)
(c)
(d)
(e)
E约束(异):a和b中最多有一个可能为1 ,即a和b不能同时为1;
a E
b 异
I约束(或):a、b、c中至少有一个必须 是1,即a、b、c不能同时为0;
a
I
b
或c
O约束(唯一):a和b必须有一个且仅有 一个为1;
a O
b 唯一
R约束(要求):a是1时,b必须是1;
原因及结果
原因
中间状态 结果
c1:投入1元5角硬币; c2:投入2元硬币; c3:按“可乐”按钮; c4:按“雪碧”按钮; c5:按“红茶”按钮; 11:已投币 12:已按钮 a1:退还5角硬币; a2:送出“可乐”饮料; a3:送出“雪碧”饮料; a4:送出“红茶”饮料;
因果图
V V
V V
C1
因之间的约束关系,画出因果图。 3. 将因果图转换成决策表; 4. 根据3中的决策表,设计测试用例的输入数据
和预期输出。
解法如下:
(1)在明确了上述要求后,可以明确地将原 因和结果分开。
原因:c1-第一个字符是“#” c2-第一个字符是“*”
c3-第二个字符是一个数字 结果:a1-给出信息N
非:若c1是1,则e1为0,否则e1为1;
或:若c1或c2或c3是1,则e1是1,否则 e1为0,“或”可有任意个输入;
与:若c1和c2都是1,则e1为1,否则e1 为0,“与”也可有任意个输入。
在实际问题当中输入状态相互之间还可能存在 某些依赖关系,称为“约束”
a
a
a
a
a
E
I
bO
R
M
b 异
软件测试-8黑盒测试因果图法.
什么是因果关系??
拿破仑说: “失一个钉子,坏了一只蹄铁; 坏了一只蹄铁,折了一匹战马; 折了一匹战马,伤了一位骑士; 伤了一位骑士,输了一场战斗;
输了一场战斗,亡了一个帝国。” 这就是因果关系
因果图法的定义:
是一种利用图解法分析输入的各 种组合情况,从而设计测试用例 的方法,它适合于检查程序输入 条件的各种组合情况。
E1
E
V
11
C2 E2