黑盒测试—因果图方法内容提纲复习因果图法的思想因果图法的步骤举例练习复习等价类划分法的思想边界值分析法的思想1、因果图法概述等价类划分方法和边界值分析方法着重考虑输入条件,而不考虑输入条件的各种组合,也不考虑输入条件之间的相互制约的关系,但有时一些具体问题中的输入之间存在着相互依赖的关系,如:NextDate函数问题。1、因果图法概述如果输入之间有关系,我们在测试时必须考虑输入条件的各种组合,那么可以考虑使用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来设计测试用例,这就需要利用因果图。因果图方法最终生成的就是判定表。它适合于检查程序输入条件的各种组合情况。因果图法的基本思想使用因果图法设计测试用例时,首先从程序规格说明书的描述中,找出因(输入条件)和果(输出结果或者程序状态的改变),然后通过因果图转换为判定表,最后为判定表中的每一列设计一个测试用例.2因果图中出现的基本符号原因结果通常在因果图中用Ci表示原因,用Ei表示结果,各结点表示状态,可取值“0”或“1”。“0”表示某状态不出现,“1”表示某状态出现。主要的原因和结果之间的关系有:C1C2C1因果图法恒等:若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.因果图法实际问题中,输入状态之间可能存在某些依赖关系,这种依赖关系被称为”约束”.在因果图中使用特定的符号来表示这些约束关系:约束关系说明:E约束(异):a,b最多有一个可能为1,不能同时为1.I约束(或):a,b,c中至少有一个必须为1,不能同时为0.O约束(惟一):a和b必须有一个且仅有一个为1R约束(要求):a是1时,b必须是1,即a为1时,b不能为0M约束:对输出条件的约束,若结果a为1,则结果b必须为0.(1)分析软件规格说明描述中,哪些是原因(即输入条件或输入条件的等价类),哪些是结果(即输出条件),并给每个原因和结果赋予一个标识符。(2)分析软件规格说明描述中的语义,找出原因与结果之间,原因与原因之间对应的是什么关系?根据这些关系,画出因果图。因果图生成测试用例的基本步骤(3)由于语法或环境限制,有些原因与原因之间,原因与结果之间的组合情况不可能出现。为表明这些特殊情况,在因果图上用一些记号标明约束或限制条件。(4)把因果图转换成判定表。(5)把判定表的每一列拿出来作为依据,设计测试用例。4应用举例某个软件的规格说明书中规定:第一个字符必须是A或B,第二个字符必须是一个数字字符,在此情况下进行文件的修改,但如果第一个字符不正确,则给出信息L;如果第二个字符不正确,则给出信息M.应用举例分析问题,按照如下步骤进行:(1)根据软件规格说明书,列出原因和结果.(2)找出原因和结果之间的关系,原因和原因之间的约束关系,画出因果图.(3)将因果图转化为判定表(4)根据判定表设计测试用例.应用举例原因:C1:第一个字符是A;C2:第一个字符是B;C3:第二个字符是一个数字字符.结果:E1:给出信息L;E2:修改文件;E3:给出信息M;因果图C1C2C310E1E2E3∨~∧~中间结果带有E约束的因果图C1C2C310E1E2E3∨~∧~E将因果图转化为决策表12345678C1C2C310111110101110010111010100100000E1E2E3不可能√√√√√√√√√测试用例A3A5AMA&B3B5BMB*C2X6CMD*设计测试用例用例1:输入数据:A3预期输出:修改文件用例2:输入数据:AM预期输出:给出信息M用例3:输入数据:B3预期输出:修改文件用例4:输入数据:B*预期输出:给出信息M用例5:输入数据:C2预期输出:给出信息L用例6:输入数据:CM预期输出:给出信息LM练习程序的规格说明要求:输入的第一个字符必须是#或*,第二个字符必须是一个数字,在此情况下进行文件的修改;如果第一个字符不是#或*,则给出信息N,如果第二个字符不是数字,则给出信息M。用因果图法设计测试用例练习2例如,有一个处理单价为5角钱的饮料的自动售货机软件测试用例的设计。其规格说明如下:若投入5角钱或1元钱的硬币,按下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。若售货机没有零钱找,则一个显示〖零钱找完〗的红灯亮,这时在投入1元硬币并按下按钮后,饮料不送出来而且1元硬币也退出来;若有零钱找,则显示〖零钱找完〗的红灯灭,在送出饮料的同时退还5角硬币。”4.因果图法(1)分析这一段说明,列出原因和结果原因:1.售货机有零钱找2.投入1元硬币3.投入5角硬币4.按下橙汁按钮5.按下啤酒按钮建立中间结点,表示处理中间状态11.投入1元硬币且按下饮料按钮12.按下〖橙汁〗或〖啤酒〗的按钮13.应当找5角零钱并且售货机有零钱找14.钱已付清4.因果图法结果:21.售货机〖零钱找完〗灯亮22.退还1元硬币23.退还5角硬币24.送出橙汁饮料25.送出啤酒饮料(2)画出因果图。所有原因结点列在左边,所有结果结点列在右边。(3)由于2与3,4与5不能同时发生,分别加上约束条件E。(4)因果图转换成判定表(5)设计测试用例编号输入条件12345组合期望输出Test1Test2Test3Test4Test5Test6Test7Test8Test9Test10Test11Test12Test13Test14Test15Test161101011001110001011010101101001001010001010100100101000001100010100100000100000123,2423,25..2425......21,2221,222121,2421,25212121练习有一个处理单价为1元5角的盒装饮料的自动售货机软件。若投入1元5角硬币,按下“可乐”、“雪碧”或“红茶”按钮,相应的饮料就送出来。若投入的是2元硬币,在送出饮料的同时退还5角硬币。因果图方法设计测试用例因果图法的优点考虑了多个输入之间的相互组合、相互制约关系;能够帮助我们按一定步骤,高效率地选择测试用例,同时还能为我们指出,程序规格说明描述中存在着什么问题小结因果图方法的适用范围因果图方法设计测试用例的步骤因果图方法优点