黑盒测试_判定表因果图
黑盒测试技术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对照程序逻辑,检查⾃⼰设计出的测试⽤例逻辑覆盖程度,若覆盖不够,则需要再补充其他的测试⽤例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表示状态出现
因果图中三大关系 ➢ 原因和结果的关系 ➢ 原因和原因的关系 ➢ 结果和结果的关系
黑盒测试的7种测试方法
黑盒测试的7种测试方法黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。
在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。
黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。
黑盒测试是以用户的角度,从输入数据与输出数据的对应关系出发进行测试的。
很明显,如果外部特性本身设计有问题或规格说明的规定有误,用黑盒测试方法是发现不了的。
黑盒测试有7种测试方法分别是等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、功能图法、正交实验法。
下面将一一介绍。
等价类划分法等价类划分是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。
该方法是一种重要的,常用的黑盒测试用例设计方法。
1、划分等价类:等价类是指某个输入域的子集合。
在该子集合中,各个输入数据对于揭露程序中的错误都是等效的。
并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试。
因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据。
取得较好的测试结果。
等价类划分可有两种不同的情况:有效等价类和无效等价类。
有效等价类:是指对于程序的规格说明来说是合理的,有意义的输入数据构成的集合。
利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。
无效等价类:与有效等价类的定义恰巧相反。
设计测试用例时,要同时考虑这两种等价类。
因为,软件不仅要能接收合理的数据,也要能经受意外的考验。
这样的测试才能确保软件具有更高的可靠性。
2、划分等价类的方法:下面给出六条确定等价类的原则。
①在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。
黑盒测试_判定表因果图
出现
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类收费
判定表的缺点及解决方法
判定表的缺点
不能表达重复执行的动作,例如循环结构
软件测试第10课-黑盒测试-因果图法
编号
1 2 3
输入
游客支付房款不足,选择单人间且有空房 游客支付房款不足,选择双人间且有空房 游客支付房款不足,未选择任何类型的房间
预期结果
某单人间被打开且系统提 醒房款不足 某双人间被打开且系统提 醒房款不足 所有房间均不被打开且 “房间已满”指示灯为灭 的状态 某豪华间被打开且系统提 醒房款不足 某单人间被打开 某双人间被打开 所有房间均不被打开且房 间已满灯为灭的状态
根据题意,原因和结果如下:
– 原因:
• 1——第一列字符是A; • 2——第一列字符是B; • 3——第二列字符是一数字。
– 结果:
• 21——修改文件; • 22 ——给出信息L; • 23——给出信息M。
其对应的因果图如下:11为中间节点;考虑到原因1和原
因2不可能同时为1,因此在因果图上施加E约束
4 5 6 7
游客支付房款不足,选择豪华间且有空房 游客支付全款,选择单人间且有空房 游客支付全款,选择双人间且有空房 游客支付全款,未选择任何类型的房间
8
游客支付全款,选择豪华间且有空房
某豪华间被打开
编号
9 10
输入
预期结果
游客不进行支付,选择单人间且有空房 所有房间均不被打开且房间已 满灯为灭的状态 游客不进行支付,选择双人间且有空房 所有房间均不被打开且房间已 满灯为灭的状态
内所有房款)或支付房间房款不足(仅支付订金),选择“单人
间”、“双人间”或“豪华间”,若该类型房间有空房,则相应类 型的房间被开启;若该类型房间无空房,则“房间已满”提示灯亮。
此时,支付房款不足的游客选择该类型的房间,则该类型的房间不
被开启且提示办理退款;若此期间,该房间类型有客人退房,则 “房间已满”指示灯灭,该类型房间的某间房被开启的同时提醒游
实验二 黑盒测试(判定表法)
广西师范大学计信学院《软件测试技术》课程实验实验报告题目:黑盒测试法——判定表法班级:10计本1班学号:201012301006姓名:焦德伟完成日期:2012/10/17实验二黑盒测试法——判定表法实验目的:1.掌握因果图、判定表的方法2.掌握按判定表设计测试用例实验时间:2学时实验内容:1、题目一:隔一天日期问题功能描述:输入年份、月、日;输出:输入日期在日历上的隔一天日期。
如输入1912年12月15日,应输出1912年12月17日。
要求:(1) 读源码并分析程序,给出问题规定的可能采取的操作(即列出所有的动作桩)。
所有的动作桩:(1)、年份超过界限,请重新输入a1(2)、月份超过界限,请重新输入a2(3)、日期超过界限,请重新输入a3(4)、本月为二月,请重新输入日期a4(5)、month+1 and day=1 a5(6)、month+1 and day=2 a6(7)、day=day+2 a7(8)、year++ and month=1and day=1 a8(9)、year++ and month=1and day=2 a9 (9)、输入非法a10 (2) 画出简化后的决策表,设计测试用例。
实验的决策表:条件桩:年份越界:Y1月份越界M1日期越界D1闰年:Y2平年:Y3月份二月:M2月份为十二月:M3月份为30天每月:M4月份为31天非十二月:M5日期小于27:D7日期为27:D2日期为28:D3日期为29:D4日期为30:D5日期为31:D6实验测试用例:测试用例:(3)执行测试用例,进行测试记录和缺陷统计。
实验测试记录的部分效果:缺陷报告书:缺陷统计:总过19组数据,其中10组出现错误!。
黑盒测试二—因果图方法
一、利用因果图方法设计测试用例,步骤必须描述清楚。
主要包括: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_黑盒测试 (下)
举例:维修机器问题(续)
(3)填入条件项;
1 2
Y Y N
3
Y N Y
4
Y N N
5
N Y Y
6
N Y N
7
N N Y
8
N N N
功率大于50马吗?
Y Y Y
条 维修记录不全吗? 件
运行超过10年吗?
动 进行优先处理 作 作其他处理
利用集合的笛卡尔积计算条件项的取值
举例:维修机器问题(续)
(4)填入动作项;
1 2 Y Y N 3 Y N Y 4 Y N N 5 N Y Y 6 N Y N 7 N N Y 8 N N N
功率大于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
条 维修记录不全吗? 件
动 作 作其他处理
进行优先处理
运行超过10年吗?
基于判定表的测试
根据输入输出绘制 判定表;
设计测试用例覆盖 判定表中每条规则;
条件桩(Condition Stub )
列出问题的所有条件
动作桩(Action Stub )
列出可能采取的操作
条件项(Condition Entity)
列出条件桩的取值
黑盒测试用例设计方法二(因果图法、判定表法、场景法)
⿊盒测试⽤例设计⽅法⼆(因果图法、判定表法、场景法)测试步骤⼀、因果图法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,不能做测试设计。
第3章(4)黑盒测试方法4-因果图法分解
课堂回顾: Logo
1、以下四个图例分别表示什么关系:
c1
e1
c1 ~ e1
c1
c2
∨ e1
c3
c1 ∧ e1
c2
课堂回顾: Logo
2、以下五种图例又分别表示什么关系??
a
E
I
b
a
R
b
a
a
b
O
b
c
a
M
b
Logo
3、叙述因果图法设计测试用例的步骤
因果图法设计测试用例思想 Logo
• 首先从程序规格说明书的描述中, 找出因(输入条件)和果(输出结果 或者程序状态的改变),
• 然后通过因果图转换为判定表,最 后为判定表中的每一列设计一个测 试用例.
因果图法的定义: Logo
• 是一种利用图解法分析输入的各种 组合情况,从而设计测试用例的方 法,它适合于检查程序输入条件的 各种组合情况。
为0,“与”也可有任意个输入。
Logo
• 在实际问题当中输入状态相互之间还可能 存在某些依赖关系,称为“约束”
a E
b 异
a
I
b
或c
(a)
(
a
R
M
b 要求
b 强制
(d)
(e)
Logo
–E约束(异):a和b中最多有一个可能为1, 即a和b不能同时为1;
a E
b 异
Logo
什么是因果关系?? Logo
• 拿破仑说: • “失一个钉子,坏了一只蹄铁; • 坏了一只蹄铁,折了一匹战马; • 折了一匹战马,伤了一位骑士; • 伤了一位骑士,输了一场战斗;
黑盒测试用例--因果图设计法
黑盒测试用例--因果图设计法
•因果图:是一种简化了的逻辑图,能直观地表明程序输入条件(原因)和输出动作(结果)之间的相互关系
•因果图法:是借助图形来设计测试用例的一种系统方法,特别适用于被测试程序具有多种输入条件,程序的输出又依赖于输入条件的各种的情况。
描述:
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、测试⽤例的构成要素:例如qq邮箱⽤例测试:3、⿊盒测试⿊盒测试⽤例设计⽅法:等价类、边界值、判定表、因果图、正交实验、状态迁移法、场景法、错误推测(1)等价类在所有的测试数据中,具有某种共同特征的数据⼦集,⼀般按照有效等价类和⽆效等价类等价类划分规则:等价类测试⽅法的分析步骤:等价类测试⽤例案例:例⼦:固定电话号测试地区码(3/4位)+电话号码(7/8位)(2)边界值选取正好等于、刚刚好⼤于或刚刚好⼩于边界值作于测试数据注意:⼤量的错误是发⽣在输⼊或输出范围的边界上,⽽不是在输⼊范围的内部边界值的选取:边界值法测试⽤例步骤:边界值法测试⽤例案例:例⼦:固定电话号测试地区码(3/4位)+电话号码(7/8位)(3)判定表法使⽤等价类⽅法时对于输⼊域与输⼊域存在关联时⽆法覆盖例如:两个输⼊不能组合:改⽤判定表法:条件桩:所有的输⼊的组合条件项:不同输⼊条件的组合动作桩:所有的输出的组合动作项:不同输⼊条件的组合的结果规则:⼀组条件与所得结果的组合,⼀个规则就是⼀个测试⽤例判定表法设计⽤例的步骤:案例:(4)因果图法判定表法适合⽤于条件少的时候,因为规则与条件是指数的关系,若条件过多,规则就会随之增多,会增加我们的⼯作量因果图引⼊:因果图中条件与条件,条件与结果的之间的依赖关系:案例:(5)状态迁移法状态迁移图案例:(7)场景法场景法介绍与步骤:基本流、备选流、异常流图解分析:案例:(8)正交实验法因⼦:就是条件(输⼊项)⽔平:就是取值(输⼊项的求值)案例:(9)错误推测法4、⿊盒测试⽅法总结:。
黑盒-因果图法
步骤:
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。
黑盒测试用例设计 ——因果图法
因果图法产生的背景
等价类划分法和边界值分析方法 都是着重考虑输入条件,但没有考虑 输入条件的各种组合、输入条件之间 的相互制约关系。这样虽然各种输入 条件可能出错的情况已经测试到了, 但多个输入条件组合起来可能出错的 情况却被忽视了。
黑盒测试3(因果图)
因果图法介绍
采用因果图法设计测试用例的步骤:
(1)根据程序规格说明书描述,分析并确定因(输入条件) 和果(输出结果或程序状态的改变),画出因果图。
(2)将得到的因果图转换为判定表。
(3)为判定表中每一列所表示的情况设计一个测试用例
判定表介绍
在一些数据处理问题中,某些操作依赖多个逻辑条件 的取值。处理这类问题的一个非常有力的分析和表达 工具是判定表
条件桩 条件项 动作桩 动作项
将任何一个条件组合的 特定取值及相应要执行 的动作称为一条规则。 在决策表中贯穿条件项 规 和动作项的一列就是一 则 条规则。
判定表图示
联想软件事业部
条件 1 条件 2 条件 3 条件 4
操作 1 操作 2 操作 3
规则 1 1 1 0 0 1
规则 2 1 — 1 1 1
一些软件的功能需求可用判定表表达得非常清楚,在 检验程序的功能时判定表也就成为一个非常有力的工 具
判定表介绍
决策表通常由以下4部分组成: ➢ 条件桩—列出问题的所有条件 ➢ 条件项—针对条件桩给出的条件列出所有可能的取值 ➢ 动作桩—列出问题规定的可能采取的操作 ➢ 动作项—指出在条件项的各组取值情况下应采取的动作
找出原因与结果、原因与原因之间的对应关系,画出 因果图
在因果图上标记约束或限制条件 把因果图转化为判定表 将判定表中的每一列拿出来设计测试用例
因果图介绍
因果图中使用4种因果关系符号来表达因果关系:
c1
e1
恒等
c1
∨
c2
e1
c3
或
c1 ~ e1
非
c1 ∧ e1
c2
与
因果图介绍
因果图中的4种基本关系 在因果图的基本符号中,图中的左结点ci表示输入状
软件测试技术第4章黑盒测试第4节因果图
用场景分析法设计测试用例 ― 举例
第三步:对每一个场景生成测试用例
测试用例ID 1 2 3 4 5 场景/条件 场景1:成功购物 场景2:账户不存在 场景3:账户密码错误 场景4:账户余额不足 场景5:账户没钱 账户 V I V V V 密码 V n/a I V V 账户余额 V n/a n/a I I 预期结果 成功购物 提示账号不存在 提示账号密码错误, 返回基本流步骤3 提示用户账户余额 不足,请充值 提示用户账户没钱, 请充值
2.因果图的基本符号
c1
c1=1 或 c2=1 或 c3=1 e1=1
e1=0
或
c2 c3 c1
e1
否则
与
c2
e1
c1=1且c2=1 否则
e1=1 e1=0
输入条件的约束
输入条件的约束(续)
3.利用因果图设计测试用例
1.分析程序规格说明的描述中,哪些是原 因,哪些是结果
原因常常是输入条件或是输入条件的等价类;
V(有效):用于表明这个条件必须是有效的才可执行基本流; I(无效):用于表明这种条件下将激活所需备选流; n/a(不适用):表明这个条件不使用测试用例
用场景分析法设计测试用例 ― 举例
第四步:设计测试数据
测试用例ID 1 场景/条件 场景1:成功购物 场景2:账户不存 在 账户 密码 账户余额 800 预期结果 成功购物
用场景分析法设计测试用例 ― 举例 用户进入一个在线购物网站进行购 物,选购物品后,进行在线购买,这是 需要使用账号登录,登录成功后,进行 付钱交易,交易成功后,生成订购单, 完成整个购物过程。
用场景分析法设计测试用例 ― 举例
第一步:确定基本流和备选流
基本流:登录在线网站—>选择物品—>登录账号 —>付款—>生成订单; 备选流1:账户不存在 备选流2:账户密码错误;
[黑盒测试基本方法]之因果图与判定表
测试用例设计方法之因果图法与判定表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。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(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?
非三角形
— — —
不等边三角形
动 等腰三角形 作
等边三角形 不可能
C1 E1 C1
~
(b)非
E1
(a)恒等
C1 C1
∨
C2
E1 C2
∧ (c)与
E1
(c)或
因果图的约束符号
E(互斥):表示两个原因不会同时成立,两个中最多有一个可能成立
I(包含):表示三个原因中至少有一个必须成立
O(惟一):表示两个原因中必须有一个,且仅有一个成立 R(要求):表示两个原因,a出现时,b也必须出现,a出现时,b不可能不
举例:维修机器问题(续)
(2)确定规则个数
• 输入条件个数:3; • 每个条件的取值:“是”或“否”; • 规则个数:2*2*2 =8;
功率大于50马力吗 维修记录不全吗 运行超过10年吗
举例:维修机器问题(续)
(3)填入条件项;
1 2
Y Y N
3
Y N Y
4
Y N N
5
N Y Y
6
N Y N
举例:维修机器问题
问题描述:
“……对于功率大于50马力的机器
,并且维修记录不全或已运行10年 以上的机器,应给予优先的维修处理 ……”
请建立判定表。
举例:维修机器问题(续) (1)列出所有的条件桩和动作桩
• 条件桩 • C1:功率大于50马力吗? • C2:维修记录不全吗? • C3:运行超过10年吗? • 动作桩 • A1:进行优先处理 • A2:作其他处理
条件桩修改后的判定表
C1:a < b + c? C2:b < a + c? C3:c < a + b? C4:a = b? C5:a = c? 1 2 3 4 5 6 7 8 9 10 11 F T T T T T T T T T T — F T T T T T T T T T T F T T T F T T F T T T F T T T T T F F F F — — F
√ √ *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)列出条件桩
C1:a,b,c构成三角形? C2:a = b? C3:a = c? C4:b = c?
(2)确定规则个数
共有四个条件,每个条件的取值为 “是”或“否”,因此有24= 16条 规则。
(3)列出动作桩
的辅助工具。
在所有的黑盒测试方法中,基于判定表的测试 是最为严格、最具有逻辑性的测试方法。
判定表的组成
条件桩(Condition Stub )
列出问题的所有条件
动作桩(Action Stub )
列出可能采取的操作
条件项(Condition Entity)
列出条件桩的取值
动作项(Action Entity )
动 等腰三角形 作
(4)
填 写 判 定 表
3 T T T F
4 T T F T
5 T T F F
6 T F T T
7 T F T F
8 T F F T
9 T F F F
F — — —
T T T T
等边三角形 不可能
一、设计判定表(续)
1 a, b, c构成三角 F
形 条 a = b? 件
~
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
有两条或多条规则具有相同的动作,并且
其条件项之间存在着极为相似的关系,就 可以将规则合并。
(1)两条规则合并成一条
条件项“—” 表示与取值 无关。
(2)两条规则的进一步合并
条件项“—”在 逻辑上包含其 它的条件。
判定表建立步骤
根据软件规格说明 ①列出所有的条件桩和动作桩; ②确定规则的个数; 假如有n个条件,每个条件有两个取值(0,1), 则有2n 种规则; ③填入条件项; ④填入动作项,得到初始决策表; ⑤简化,合并相似规则(相同动作)。
果。原因常常是输入条件或输入条件的等价类,而结 果是输出条件; ② 分析程度规格说明的描述中语义内容,并将其表示成 连接各个原因与各个结果的“因果图”; ③ 标明约束条件。由于语法或环境的限制,有些原因 和结果的组合情况是不可能出现的。 ④ 把因果图转换成判定表。 ⑤ 为判定表中的每一列表示的情况设计测试用例。
因果图法
因果图法:是一种利用图解法分析输入的各 种组合情况,从而设计测试用例的方法。
因果图法比较适合输入条件比较多的情况 ,测试所有的输入条件的排列组合。所谓 的原因就是输入,所谓的结果就是输出。
因果图基本图形符号
恒等:若原因出现,则结果出现;若原因不出现,则结果不出现。 非(~):若原因出现,则结果不出现;若原因不出现,则结果出现。 或(∨):若几个原因中有一个出现,则结果出现;若几个原因都不出 现,则结果不出现。 与(∧):若几个原因都出现,结果才出现;若其中有一个原因不出现 ,则结果不出现。
出现
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(屏蔽)
因果图法设计测试用例的步骤
利用因果图导出测试用例需要经过以下几个步骤:
① 分析程度规格说明的描述中,哪些是原因,哪些是结
if-then-else逻辑很突出
输入变量之间存在逻辑关系 涉及输入变量子集的计算 输入与输出之间存在因果关系 很高的McCabe圈复杂度
判定表的优点
判定表的优点
能把复杂的问题按各种可能的情况一一列举出
来 简明而易于理解 可避免遗漏
因此,利用决策表能够设计出完整的测试 用例集合。
列出条件项各种取值下应该
采取的动作
规则
任何一个条件组合的特 定取值及其相应要执行 的操作称为规则; 在判定表中贯穿条件项 和动作项的一列就是一 条规则; 判定表中列出多少组条 件取值,也就有多少条 规则,即条件项和动作 项有多少列。
规则示例:三角形问题
规则合并
规则合并
规则合并就是判定表的简化。
判定表的缺点及解决方法
判定表的缺点
不能表达重复执行的动作,例如循环结构
判定表不能很好地伸缩
有n个条件的决策表有2n 个规则。
解决方法
使用扩展条目判定表、代数简化表,将大表“
分解”为小表,查找条件项的判定表式
黑盒测试
因果图法
因果图法的简介
因果图法产生的背景:
等价类划分法和边界值分析方法都是着重考虑输入条 件,但没有考虑输入条件的各种组合、输入条件之间的相 互制约关系。这样虽然各种输入条件可能出错的情况已经 测试到了,但多个输入条件组合起来可能出错的情况却被 忽视了。 如果在测试时必须考虑输入条件的各种组合,则可能 的组合数目将是天文数字,因此必须考虑采用一种适合于 描述多种条件的组合、相应产生多个动作的形式来进行测 试用例的设计,这就需要利用因果图(逻辑模型)。
— — — T — — — T
C6:b = c? — — —其中包含了另外的25- F T F T F T F T a1: 非三角形 √ √ √1+24-1+23-1=53个组 合 a2: 不等边三角形 √ a3: 等腰三角形 √ √ √ a4: 等边三角形 √
二、设计测试用例
用例ID
DT1 DT2 DT3 DT4 DT5 DT6 DT7 DT8 DT9 DT10 DT11
a
4 1 1 5 ? ? 2 ? 2 3 3
b
1 4 2 5 ? ? 2 ? 3 2 4
c
2 2 4 5 ? ? 3 ? 2 2 5
预期输出
非三角形 非三角形 非三角形 等边三角形 不可能 不可能 等腰三角形 不可能 等腰三角形 等腰三角形 不等边三角形
a=b, a=c, b≠c
判定表技术适用的应用程序的特征 判定表技术适用的应用程序的特征:
A1:非三角形; A2:不等边三角形; A3:等腰三角形; A4:等边三角形; A5:不可能;
注意: 条件的选择可以大 大扩展判定表的规模。 例如: “a, b, c构成三角形吗?” 可以扩展为三个条件: a < b + c? b < a + c? c < a + b?