《黑盒测试因果图方法10》由会员分享,可在线阅读,更多相关《黑盒测试因果图方法10(35页珍藏版)》请在金锄头文库上搜索。
1、第三章第三章 黑盒测试黑盒测试因果图方法因果图方法1010内容提纲n复习n因果图法的思想n因果图法的步骤n举例n练习复习n等价类划分法的思想n边界值分析法的思想1、因果图法概述n n等价类划分方法和边界值分析方等价类划分方法和边界值分析方 法着重考虑输入条件,而不考虑法着重考虑输入条件,而不考虑 输入条件的各种组合,也不考虑输入条件的各种组合,也不考虑 输入条件之间的相互制约的关系输入条件之间的相互制约的关系 ,但有时一些具体问题中的输入,但有时一些具体问题中的输入 之间存在着相互依赖的关系,如之间存在着相互依赖的关系,如 :NextDateNextDate函数问题。函数问题。1、因果图法概述
2、n n如果输入之间有关系,我们在测试时必如果输入之间有关系,我们在测试时必 须考虑须考虑输入条件的各种组合输入条件的各种组合,那么可以,那么可以 考虑使用一种适合于描述对于多种条件考虑使用一种适合于描述对于多种条件 的组合,相应产生多个动作的形式来设的组合,相应产生多个动作的形式来设 计测试用例,这就需要利用因果图。计测试用例,这就需要利用因果图。n n因果图方法最终生成的就是因果图方法最终生成的就是判定表判定表 。它适合于检查程序输入条件的各。它适合于检查程序输入条件的各 种组合情况。种组合情况。因果图法的基本思想n使用因果图法设计测试用例时, 首先从程序规格说明书的描述中, 找出因因(输入
3、条件)和果果(输出结果 或者程序状态的改变),然后通过因 果图转换为判定表,最后为判定表 中的每一列设计一个测试用例.2 因果图中出现的基本符号原因结果n n通常在因果图中用通常在因果图中用CiCi表示原因,用表示原因,用EiEi 表示结果,各结点表示状态,可取值表示结果,各结点表示状态,可取值 “ “0”0”或或“ “1”1”。“ “0”0”表示某状态不出现,表示某状态不出现, “ “1”1”表示某状态出现。表示某状态出现。n n主要的原因和结果之间的关系有主要的原因和结果之间的关系有: :C1C2C1因果图法n恒等: 若c1为1,则e1也为1,否则 e1为0.n非: 若c1是1,则e1为0
4、,否则e1是 1.n或: 若c1或c2或c3是1,则e1是1, 若三者都不为1,则e1为0.n与: 若c1和c2都是1,则e1为1,否 则若有其中一个不为1,则e1为0.因果图法n实际问题中,输入状态之间可能 存在某些依赖关系,这种依赖关 系被称为”约束”.n在因果图中使用特定的符号来表 示这些约束关系:n约束关系说明:n nE E约束(异): a,b最多有一个可能为 1,不能同时为1.n nI I约束(或): a,b,c中至少有一个必须 为1,不能同时为0.n nOO约束(惟一): a和b必须有一个且仅 有一个为1n nR R约束(要求):a是1时,b必须是1,即a 为1时,b不能为0n n
5、MM约束:对输出条件的约束,若结果a 为1,则结果b必须为0.n3用因果图生成测试用例的基本步骤n n(1)(1) 分析软件规格说明描述中,哪些分析软件规格说明描述中,哪些 是原因是原因 ( (即输入条件或输入条件的等即输入条件或输入条件的等 价类价类) ),哪些是结果,哪些是结果 ( (即输出条件即输出条件) ), 并给每个原因和结果赋予一个标识并给每个原因和结果赋予一个标识 符。符。 (2)(2) 分析软件规格说明描述中的语义分析软件规格说明描述中的语义 ,找出原因与结果之间,原因与原,找出原因与结果之间,原因与原 因之间对应的是什么关系因之间对应的是什么关系? ? 根据这些根据这些 关系
6、,画出因果图。关系,画出因果图。(3)(3) 由于语法或环境限制,有些原因由于语法或环境限制,有些原因 与原因之间,原因与结果之间的组与原因之间,原因与结果之间的组 合情况不可能出现。为表明这些特合情况不可能出现。为表明这些特 殊情况,在因果图上用一些记号标殊情况,在因果图上用一些记号标 明约束或限制条件。明约束或限制条件。 (4)(4) 把因果图转换成判定表。把因果图转换成判定表。 (5)(5) 把判定表的每一列拿出来作为依把判定表的每一列拿出来作为依 据,设计测试用例。据,设计测试用例。4 应用举例n某个软件的规格说明书中规定: 第一个字符必须是A或B,第二个 字符必须是一个数字字符,在此
7、 情况下进行文件的修改,但如果 第一个字符不正确,则给出信息 L;如果第二个字符不正确,则给 出信息M.应用举例n分析问题,按照如下步骤进行:n(1)根据软件规格说明书,列出原因和 结果.n(2)找出原因和结果之间的关系,原因 和原因之间的约束关系,画出因果图.n(3)将因果图转化为判定表n(4)根据判定表设计测试用例.应用举例n原因:nC1:第一个字符是A;nC2:第一个字符是B;nC3:第二个字符是一个数字字符.n结果:nE1:给出信息L;nE2:修改文件;nE3:给出信息M;因果图中间结果中间结果带有E约束的因果图E将因果图转化为判定表12345678 C1 C2 C3 101 1 11
8、 1 01 0 1 11 0 0 10 1 1 10 1 0 10 0 1 00 0 0 0 E1 E2 E3不可 能 测 试 用例A3 A5AM A&B3 B5BM B*C2 X6C M D*设计测试用例n测试用例1: 输入数据:A3 预期输出:修改文件n测试用例2: 输入数据:AM 预期输出:给出信息Mn测试用例3: 输入数据:B3 预期输出:修改文件n测试用例4: 输入数据:B* 预期输出:给出信息Mn测试用例5: 输入数据:C2 预期输出:给出信息Ln测试用例6: 输入数据:CM 预期输出:给出信息 LM练习n程序的规格说明要求:输入的第一个字 符必须是#或*,第二个字符必须是一个 数
9、字,在此情况下进行文件的修改;如 果第一个字符不是#或*,则给出信息N ,如果第二个字符不是数字,则给出信 息M。n用因果图法设计测试用例练习2n n例如,有一个处理单价为例如,有一个处理单价为5 5角钱的饮角钱的饮 料的自动售货机软件测试用例的设计料的自动售货机软件测试用例的设计 。其规格说明如下:。其规格说明如下:n n若若投入投入5 5角钱或角钱或1 1元钱的硬币,元钱的硬币,按下按下 橙汁橙汁或或啤酒啤酒的按钮,则相应的的按钮,则相应的 饮料就送出来。若售货机饮料就送出来。若售货机没有零钱找没有零钱找 ,则一个显示,则一个显示零钱找完零钱找完的红灯亮的红灯亮 ,这时在投入,这时在投入1
10、 1元硬币并按下按钮后元硬币并按下按钮后 ,饮料不送出来而且,饮料不送出来而且1 1元硬币也退出元硬币也退出 来;若来;若有零钱找有零钱找,则显示,则显示零钱找完零钱找完 的红灯灭,在送出饮料的同时退还的红灯灭,在送出饮料的同时退还 5 5角硬币。角硬币。” ”4.因果图法 (1) (1) 分析这一段说明,列出原因和结果分析这一段说明,列出原因和结果 原因原因: : 1. 1. 售货机有零钱找售货机有零钱找2. 2. 投入投入1 1元硬币元硬币 3. 3. 投入投入5 5角硬币角硬币4. 4. 按下橙汁按钮按下橙汁按钮5. 5. 按下啤酒按钮按下啤酒按钮 建立中间结点,表示处理中间状态建立中间
11、结点,表示处理中间状态 11.11. 投入投入1 1元硬币且按下饮料按钮元硬币且按下饮料按钮 12.12. 按下按下橙汁橙汁或或啤酒啤酒的按钮的按钮 13.13. 应当找应当找5 5角零钱并且售货机有零钱找角零钱并且售货机有零钱找 14.14. 钱已付清钱已付清4.因果图法结果:结果: 21.21. 售货机售货机零钱找完零钱找完灯亮灯亮 22.22. 退还退还1 1元硬币元硬币 23.23. 退还退还5 5角硬币角硬币24.24. 送出橙汁饮料送出橙汁饮料25.25. 送出啤酒饮料送出啤酒饮料(2) (2) 画出因果图。画出因果图。所有原因结点列在左边,所有原因结点列在左边, 所有结果结点列在
12、右边。所有结果结点列在右边。(3)(3) 由于由于 2 2 与与 3 3 ,4 4 与与 5 5 不能同时发生不能同时发生 ,分别加上约束条件分别加上约束条件E E。 (4) (4) 因果图转换成判定表因果图转换成判定表 (5) (5) 设计测试用例设计测试用例编号编号输入条件输入条件 12345 12345 组合组合期望输出期望输出Test1 Test2 Test3 Test4 Test5 Test6 Test7 Test8 Test9 Test10 Test11 Test12 Test13 Test14 Test15 Test1611010 11001 11000 10110 10101
13、10100 10010 10001 01010 01001 01000 00110 00101 00100 00010 0000123,24 23,25 . 24 25 . . . 21,22 21,22 21 21,24 21,25 21 21 21练习n有一个处理单价为1元5角的盒装饮料的 自动售货机软件。若投入1元5角硬币, 按下“可乐”、“雪碧”或“红茶”按钮,相应 的饮料就送出来。若投入的是2元硬币, 在送出饮料的同时退还5角硬币。n因果图方法设计测试用例因果图法的优点o考虑了多个输入之间的相互组合、相 互制约关系;o能够帮助我们按一定步骤,高效率地 选择测试用例,同时还能为我们指出 ,程序规格说明描述中存在着什么问 题小结n因果图方法的适用范围n因果图方法设计测试用例的步骤n因果图方法优点