测试方法因果图法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中间状 态 结果
(2)画出因果图 )
(3)决策表 )
1 c1:投入1 c1:投入1元5角硬币 投入 c2:投入 投入2 c2:投入2元硬币 c3:按 可乐” c3:按“可乐”按钮 c4:按 雪碧” c4:按“雪碧”按钮 c5:按 红茶” c5:按“红茶”按钮 11: 11:已投币 12: 12:已按钮 1 0 1 0 0 1 1 2 1 0 0 1 0 1 1 3 1 0 0 0 1 1 1 4 1 0 0 0 0 1 0 5 0 1 1 0 0 1 1 √ √ √ √ 6 0 1 0 1 0 1 1 √ √ √ 7 0 1 0 0 1 1 1 √ 8 0 1 0 0 0 1 0 9 0 0 1 0 0 0 1 10 0 0 0 1 0 0 1 11 0 0 0 0 1 0 1
案例分析1 案例分析
有一个处理单价为1元5角的盒装饮料的 有一个处理单价为 元 角的盒装饮料的 自动售货机软件。若投入1元 角硬币 角硬币, 自动售货机软件。若投入 元5角硬币, 按下“可乐” 雪碧” 红茶”按钮, 按下“可乐”,“雪碧”或“红茶”按钮, 相应的饮料就送出来。 相应的饮料就送出来。若投入的是两元硬 在送出饮料的同时退还5角硬币 角硬币。 币,在送出饮料的同时退还 角硬币。
c1 ~ e1
或:若c1或c2或c3是1,则e1 或 或 是 , 是1,否则 为0,“或”可有任 ,否则e1为 , 意个输入; 意个输入;
c1 c2 c3 V e1
都是1, 与:若c1和c2都是 ,则e1为1, 和 都是 为 , 否则e1为 , 否则 为0,“与”也可有任意 个输入。 个输入。
c1 V c2 e1
习题1 习题
某软件的一个模块的需求规格说明书中描述: 某软件的一个模块的需求规格说明书中描述: (1)年薪制员工:严重过失,扣年终风险金的 )年薪制员工:严重过失, 4%;过失,扣年终风险金的 ;过失,扣年终风险金的2%。 。 (2)非年薪制员工:严重过失,扣当月薪资的 )非年薪制员工:严重过失, 8%;过失,扣当月薪资的4%。 ;过失,扣当月薪资的 。 请绘制出因果图和判定表,并给出相应的测试用例。 请绘制出因果图和判定表,并给出相应的测试用例。
因果图法举例
程序的规格说明要求: 程序的规格说明要求:输入的第一个字符 必须是“ 或 必须是“#”或“*”,第二个字符必须是 ” 一个数字,在此情况下进行文件的修改; 一个数字,在此情况下进行文件的修改; 如果第一个字符不是“#”或“*”,则给 如果第一个字符不是“ 或 ” 出信息N;如果第二个字符不是数字, 出信息 ;如果第二个字符不是数字,则 给出信息M。 给出信息 。
因果图法设计测试用例思想
首先从程序规格说明书的描述中, 首先从程序规格说明书的描述中 找出因 输入条件 输入条件)和 找出因(输入条件 和果(输出结 输出结 果或者程序状态的改变), 果或者程序状态的改变 然后通过因果图转换为判定表,最 然后通过因果图转换为判定表 最 后为判定表中的每一列设计一个 测试用例. 测试用例
步骤: 步骤:
1. 2.
3. 4.
分析程序的规格说明,列出原因和结果; 分析程序的规格说明,列出原因和结果; 找出原因与结果之间的因果关系、 找出原因与结果之间的因果关系、原因 与原因之间的约束关系,画出因果图。 与原因之间的约束关系,画出因果图。 将因果图转换成决策表; 将因果图转换成决策表; 根据3中的决策表,设计测试用例的输入 根据 中的决策表, 中的决策表 数据和预期输出。 数据和预期输出。
对于输出条件的约束只有M约束 对于输出条件的约束只有 约束
M约束(强制):若结果a是1,则结果 强制为 。 约束(强制):若结果 是 ,则结果b强制为 强制为0。 约束 ):若结果
因果图法设计测试用例步骤: 因果图法设计测试用例步骤:
分析程序规格说明书描述的语义内容, 分析程序规格说明书描述的语义内容,找出 原因” 结果” “原因”和“结果”,将其表示成连接各个原 因与各个结果的“因果图” 因与各个结果的“因果图”。 由于语法或环境限制, 由于语法或环境限制,有些原因与原因之间或 与结果之间的组合情况不能出现, 与结果之间的组合情况不能出现,用记号标明 约束或限制条件; 约束或限制条件; 将因果图转换成决策表; 将因果图转换成决策表; 根据决策表中每一列设计测试用例
10为导出结果的中间原因 为导出结果的中间原因
(2)因果图 )
c1 V 10 c2 ~ V a2 a1
c3
~
因果图表示
a3
带有E约束的因果图 带有 约束的因果图
c1 E c2 V 10 ~ V a2 a1
c3
~
a3
具有E约束的因果图表示 具有 约束的因果图表示
将因果图转化为判定表
1 1 1 1 2 1 1 0 3 1 0 1 1 √ √ √ √ #3 #B *7 *M C2 CM 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 √
在实际问题当中输入状态相互之间还可能 存在某些依赖关系,称为“约束” 存在某些依赖关系,称为“约束”
a E 异 b I 或 a b c O 唯一 b 要求 (d) a R b 强制 (e) b a a M
(a)
(b)
(c)
E约束(异):a和b中最多有一个可能 约束( ): 和 中最多有一个可能 约束 不能同时为1; 为1,即a和b不能同时为 ; , 和 不能同时为
a1:退还5 a1:退还5角硬币 退还 a2:送出 可乐” 送出“ a2:送出“可乐”饮料 √ a3:送出 雪碧” 送出“ a3:送出“雪碧”饮料 a4:送出 红茶” 送出“ a4:送出“红茶”饮料
(4)设计测试用例 )
用例编号 1 2 3 4 5 6 测试用例 投入1 投入1元5角,按“可乐” 可乐” 投入1元5角,按“雪碧” 投入1 雪碧” 投入1 投入1元5角,按“红茶” 红茶” 投入2 投入2元,按“可乐” 可乐” 投入2 投入2元,按“雪碧” 雪碧” 投入2 投入2元,按“红茶” 红茶” 预期输出 送出“可乐” 送出“可乐”饮料 送出“雪碧”饮料 送出“雪碧” 送出“红茶” 送出“红茶”饮料 找5角,送出“可乐” 送出“可乐” 找5角,送出“雪碧” 送出“雪碧” 找5角,送出“红茶” 送出“红茶”
a E 异 b
I约束(或):a、b、c中至少有一个必 约束( ): 、 、 中至少有一个必 约束 须是1, 不能同时为0; 须是 ,即a、b、c不能同时为 ; 、 、 不能同时为
a I 或 b c
O约束(唯一): 和b必须有一个且仅 约束(唯一):a和 必须有一个且仅 约束 ): 有一个为1; 有一个为 ;
主要的原因与结果之间的关系
c1 c1 (a)恒等 e1 c1 e1 c2 c3 (c)或 V e1 c1 V c2 (d)与 e1
~
(b)非
恒等: 也为1, 恒等:若c1是1,则e1也为 , 是 , 也为 否则e1为 ; 否则 为0;
c1 e1
非:若c1是1,则e1为0,否 是 , 为 , 则e1为1; 为 ;
使用因果图法的优点: 使用因果图法的优点:
(1)考虑到了输入情况的各种组合以及各个 ) 输入情况之间的相互制约关系。 输入情况之间的相互制约关系。 (2)能够帮助测试人员按照一定的步骤,高 )能够帮助测试人员按照一定的步骤, 效率的开发测试用例。 效率的开发测试用例。 (3)因果图法是将自然语言规格说明转化成 ) 形式语言规格说明的一种严格的方法, 形式语言规格说明的一种严格的方法,可以 指出规格说明存在的不完整性和二义性。 指出规格说明存在的不完整性和二义性。
C1 C2 C3 10 a1 a2 a3
不可能
测试 用例
(4)设计测试用例 设计测试用例
最左边两列,原因c1和c2同时为 不可能,排除掉, 最左边两列,原因 和 同时为1不可能,排除掉, 同时为 不可能 根据表可设计出6个测试用例 个测试用例。 根据表可设计出 个测试用例。
Test1:输入数据-#3 预期输出--修改文件 :输入数据- 预期输出-- --修改文件 Test2:输入数据-#B 预期输出--给出信息 预期输出--给出信息M --给出信息 :输入数据- Test3:输入数据-*7 预期输出--修改文件 预期输出-- --修改文件 :输入数据- Test4:输入数据-*M 预期输出--给出信息 预期输出--给出信息M --给出信息 :输入数据- Test5:输入数据-C2 预期输出--给出信息 预期输出--给出信息N --给出信息 :输入数据- Test6:输入数据-CM 预期输出--给出信息M和N :输入数据- 预期输出--给出信息 和 --给出信息
E约束(异):a和b中最多有一个可能为 ,即a和b不 约束( ): 和 中最多有一个可能为 中最多有一个可能为1, 约束 和 不 能同时为1; 能同时为 ; I约束(或): 、b、c中至少有一个必须是 ,即a、b 约束( ):a、 、 中至少有一个必须是 中至少有一个必须是1, 约束 、 c不能同时为 ; 不能同时为0; 不能同时为 O约束(唯一): 和b必须有一个且仅有一个为 ; 约束( ):a和 必须有一个且仅有一个为 必须有一个且仅有一个为1; 约束 唯一): R约束(要求): 是1时,b必须是 ; 约束( ):a是 时 必须是1; 约束 要求): 必须是
解法如下: 解法如下:
(1)在明确了上述要求后,可以明确地 )在明确了上述要求后, 将原因和结果分开。 将原因和结果分开。
原因: -第一个字符是“ 原因:c1-第一个字符是“#” c2-第一个字符是“*” -第一个字符是“ ” c3-第二个字符是一个数字 - 结果: -给出信息N 结果:a1-给出信息 a2-修改文件 - a3-给出信息 -给出信息M
恒等: 也为1,否则e1 恒等:若c1是1,则e1也为 ,否则 是 , 也为 为0; ; 非:若c1是1,则e1为0,否则 为1; 是 , 为 ,否则e1为 ; 或:若c1或c2或c3是1,则e1是1, 或 或 是 , 是 , 否则e1为 , 可有任意个输入; 否则 为0,“或”可有任意个输入; 都是1, 与:若c1和c2都是 ,则e1为1,否则 和 都是 为 , e1为0,“与”也可有任意个输入。 也可有任意个输入。 为 ,
(1)分析原因及结果 )
原因
c1:投入 元5角硬币; 投入1元 角硬币 角硬币; 投入 c2:投入 元硬币; 投入2元硬币 投入 元硬币; c3:按“可乐”按钮; 按 可乐”按钮; c4:按 雪碧”按钮; c4:按“雪碧”按钮; c5:按“红茶”按钮 按 红茶”按钮; 11:已投币 : 12:已按钮 : a1:退还 角硬币; 退还5角硬币 退还 角硬币; a2:送出“可乐”饮料; 送出“ 送出 可乐”饮料; a3:送出“雪碧”饮料; 送出“ 送出 雪碧”饮料; a4:送出“红茶”饮料 送出“ 送出 红茶”饮料;
黑盒测试用例设计 ——因果图法 因果图法
因果图法产生的背景
等价类划分法和边界值分析方法 都是着重考虑输入条件, 都是着重考虑输入条件,但没有考虑 输入条件的各种组合、 输入条件的各种组合、输入条件之间 的相互制约关系。 的相互制约关系。这样虽然各种输入 条件可能出错的情况已经测试到了, 条件可能出错的情况已经测试到了, 但多个输入条件组合起来可能出错的 情况却被忽视了。 情况却被忽视了。
因果图法的定义: 因果图法的定义: 是一种利用图解法分析输入的各 种组合情况, 种组合情况 , 从而设计测试用例 的方法, 的方法 , 它适合于检查程序输入 条件的各种组合情况。 条件的各种组合情况。
因果图中出现的基本符号
原因
结果
通常在因果图中用Ci表示原因, 通常在因果图中用Ci表示原因,用Ei 表示原因 表示结果,各结点表示状态, 表示结果,各结点表示状态,可取值 “0”或“1”。“0”表示某状态不出 表示某状态出现。 现,“1”表示某状态出现。
a OLeabharlann Baidu唯一 b
R约束(要求): 是1时,b必须是 ; 约束(要求):a是 时 必须是1; 约束 ): 必须是
a R b 要求
M约束(强制):若结果a是1,则结果b 约束(强制):若结果 是 ,则结果 约束 ):若结果 强制为0。 强制为 。
a M b 强制
对于输入条件的约束有4种 对于输入条件的约束有 种: