
软件测试8黑盒测试因果图法课件.ppt
42页黑盒测试,因果图 康玲,因果图法产生的背景,等价类划分法和边界值分析方法都是着重考虑输入条件,但没有考虑输入条件的各种组合、输入条件之间的相互制约关系这样虽然各种输入条件可能出错的情况已经测试到了,但多个输入条件组合起来可能出错的情况却被忽视了什么是因果关系??,拿破仑说: “失一个钉子,坏了一只蹄铁; 坏了一只蹄铁,折了一匹战马; 折了一匹战马,伤了一位骑士; 伤了一位骑士,输了一场战斗; 输了一场战斗,亡了一个帝国 这就是因果关系,因果图法的定义:,是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况因果图中出现的基本符号,原因,结果,,通常在因果图中用Ci表示原因,用Ei表示结果,各结点表示状态,可取值“0”或“1”0”表示某状态不出现,“1”表示某状态出现主要的原因与结果之间的关系,(a)恒等,(b)非,(c)或,(d)与,,恒等:若c1是1,则e1也为1,否则e1为0;,,非:若c1是1,则e1为0,否则e1为1;,,或:若c1或c2或c3是1,则e1是1,否则e1为0,“或”可有任意个输入;,,与:若c1和c2都是1,则e1为1,否则e1为0,“与”也可有任意个输入。
恒等:若c1是1,则e1也为1,否则e1为0; 非:若c1是1,则e1为0,否则e1为1; 或:若c1或c2或c3是1,则e1是1,否则e1为0,“或”可有任意个输入; 与:若c1和c2都是1,则e1为1,否则e1为0,“与”也可有任意个输入在实际问题当中输入状态相互之间还可能存在某些依赖关系,称为“约束”,(a),(b),(c),(d),(e),,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;,,M约束(强制):若结果a是1,则结果b强制为0对于输入条件的约束有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; 对于输出条件的约束只有M约束 M约束(强制):若结果a是1,则结果b强制为0课堂回顾:,1、以下四个图例分别表示什么关系:,课堂回顾:,2、以下五种图例又分别表示什么关系??,因果图法设计测试用例思想,首先从程序规格说明书的描述中,找出因(输入条件)和果(输出结果或者程序状态的改变), 然后通过因果图转换为判定表,最后为判定表中的每一列设计一个测试用例.,因果图法设计测试用例步骤:,分析程序规格说明书描述的语义内容,找出“原因”和“结果”,将其表示成连接各个原因与各个结果的“因果图”。
由于语法或环境限制,有些原因与原因之间或与结果之间的组合情况不能出现,用记号标明约束或限制条件; 将因果图转换成判定表; 根据判定表中每一列设计测试用例,因果图法举例,程序的规格说明要求:输入的第一个字符必须是“#”或“*”,第二个字符必须是一个数字,在此情况下进行文件的修改;如果第一个字符不是“#”或“*”,则给出信息N;如果第二个字符不是数字,则给出信息M步骤:,分析程序的规格说明,列出原因和结果; 找出原因与结果之间的因果关系、原因与原因之间的约束关系,画出因果图 将因果图转换成决策表; 根据3中的决策表,设计测试用例的输入数据和预期输出解法如下:,(1)在明确了上述要求后,可以明确地将原因和结果分开 原因:c1第一个字符是“#” c2第一个字符是“*” c3第二个字符是一个数字 结果:a1给出信息N a2修改文件 a3给出信息M,(2)因果图,因果图表示,10为导出结果的中间原因,,带有E约束的因果图,,具有E约束的因果图表示,(3)将因果图转换成决策表,(4)设计测试用例,最左边两列,原因c1和c2同时为1不可能,排除掉,根据表可设计出6个测试用例 Test1:输入数据#3 预期输出修改文件 Test2:输入数据#B 预期输出给出信息M Test3:输入数据*7 预期输出修改文件 Test4:输入数据*M 预期输出给出信息M Test5:输入数据C2 预期输出给出信息N Test6:输入数据CM 预期输出给出信息M和N,使用因果图法的优点:,(1)考虑到了输入情况的各种组合以及各个输入情况之间的相互制约关系。
(2)能够帮助测试人员按照一定的步骤,高效率的开发测试用例 (3)因果图法是将自然语言规格说明转化成形式语言规格说明的一种严格的方法,可以指出规格说明存在的不完整性和二义性因果图法案例分析,有一个处理单价为1元5角的盒装饮料的自动售货机软件若投入1元5角硬币,按下“可乐”,“雪碧”或“红茶”按钮,相应的饮料就送出来若投入的是两元硬币,在送出饮料的同时退还5角硬币原因及结果,因果图,决策表,习题,某软件的一个模块的需求规格说明书中描述: (1)年薪制员工:严重过失,扣年终风险金的4%;过失,扣年终风险金的2% (2)非年薪制员工:严重过失,扣当月薪资的8%;过失,扣当月薪资的4% 请绘制出因果图和判定表,并给出相应的测试用例分析中国象棋中走马的实际情况,如果落点在棋盘外,则不移动棋子; 如果落点与起点不构成日字型,则不移动棋子; 如果在落点方向的邻近交叉点有棋子(绊马腿),则不移动棋子; 落点处有己方棋子,则不移动棋子; 如果不属于1-4条, 落点处无棋子,则移动棋子; 如果不属于1-4条, 落点处为对方棋子(非老将),则移动棋子并除去对方棋子; 如果不属于1-4条,且落点处为对方老将,则移动棋子,并提示战胜对方,游戏结束。
根据分析明确原因和结果,原因: 落点在棋盘上; 落点与起点构成日字; 落点方向的邻近交叉点无棋子; 落点处为自己方棋子; 落点处无棋子; 落点处为对方棋子(非老将); 落点处为对方老将结果: E1、不移动棋子; E2、移动棋子; E3、移动棋子,并除去对方棋子; E4、移动棋子,并提示战胜对方,结束游戏添加中间节点11,目的是作为导出结果的进一步原因,简化因果图导出的判定表,决策表分解,,决策表分解,,。
