《[IT认证]因果图.ppt》由会员分享,可在线阅读,更多相关《[IT认证]因果图.ppt(38页珍藏版)》请在三一办公上搜索。
1、高效设计测试用例,第四章 扩充知识,什么是因果关系?,拿破仑说:“失一个钉子,坏了一只蹄铁;坏了一只蹄铁,折了一匹战马;折了一匹战马,伤了一位骑士;伤了一位骑士,输了一场战斗;输了一场战斗,亡了一个帝国。”这就是因果关系,因果图法产生的背景,等价类划分法和边界值分析方法都是着重考虑输入条件,但没有考虑输入条件的各种组合、输入条件之间的相互制约关系。这样虽然各种输入条件可能出错的情况已经测试到了,但多个输入条件组合起来可能出错的情况却被忽视了。,因果图法设计测试用例思想,首先从程序规格说明书的描述中,找出因(输入条件)和果(输出结果或者程序状态的改变)然后通过因果图转换为判定表,最后为判定表中的
2、每一列设计一个测试用例.,因果图法的定义:,是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。,因果图中出现的基本符号,原因,结果,通常在因果图中用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,否则e
3、1为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
4、必须是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。,因果图法设计测试用例步骤:,分析程序规格说明书描述的语义内容,找出“原因”和“结果”,将其表示成连接各个原因与各个结果的“因果图”。由于语法或环境限制,有些原因与原因之间或与结果之间的组合情况不能出现,用记号标明
5、约束或限制条件;将因果图转换成决策表;根据决策表中每一列设计测试用例,因果图法举例,程序的规格说明要求:输入的第一个字符必须是“#”或“*”,第二个字符必须是一个数字,在此情况下进行文件的修改;如果第一个字符不是“#”或“*”,则给出信息N;如果第二个字符不是数字,则给出信息M。,步骤:,分析程序的规格说明,列出原因和结果;找出原因与结果之间的因果关系、原因与原因之间的约束关系,画出因果图。将因果图转换成决策表;根据3中的决策表,设计测试用例的输入数据和预期输出。,解法如下:,(1)在明确了上述要求后,可以明确地将原因和结果分开。原因:c1第一个字符是“#”c2第一个字符是“*”c3第二个字符
6、是一个数字结果:a1给出信息N a2修改文件 a3给出信息M,(2)因果图,因果图表示,10为导出结果的中间原因,带有E约束的因果图,具有E约束的因果图表示,将因果图转化为判定表,(4)设计测试用例,最左边两列,原因c1和c2同时为1不可能,排除掉,根据表可设计出6个测试用例。Test1:输入数据#3 预期输出修改文件Test2:输入数据#B 预期输出给出信息MTest3:输入数据*7 预期输出修改文件Test4:输入数据*M 预期输出给出信息MTest5:输入数据C2 预期输出给出信息NTest6:输入数据CM 预期输出给出信息M和N,使用因果图法的优点:,(1)考虑到了输入情况的各种组合以
7、及各个输入情况之间的相互制约关系。(2)能够帮助测试人员按照一定的步骤,高效率的开发测试用例。(3)因果图法是将自然语言规格说明转化成形式语言规格说明的一种严格的方法,可以指出规格说明存在的不完整性和二义性。,案例分析1,有一个处理单价为1元5角的盒装饮料的自动售货机软件。若投入1元5角硬币,按下“可乐”,“雪碧”或“红茶”按钮,相应的饮料就送出来。若投入的是两元硬币,在送出饮料的同时退还5角硬币。,(1)分析原因结果(2)因果图,(3)决策表,(4)设计测试用例,案例分析2,中国象棋中走马的测试用例设计为例学习因果图的使用方法(下面未注明的均指的是对马的说明),一、分析中国象棋中走马的实际情
8、况,如果落点在棋盘外,则不移动棋子;如果落点与起点不构成日字型,则不移动棋子;如果在落点方向的邻近交叉点有棋子(绊马腿),则不移动棋子;如果不属于1-3条,落点处有己方棋子,则不移动棋子;如果不属于1-3条,落点处无棋子,则移动棋子;如果不属于1-3条,落点处为对方棋子(非老将),则移动棋子并除去对方棋子;如果不属于1-3条,且落点处为对方老将,则移动棋子,并提示战胜对方,游戏结束。,二、根据分析明确原因和结果,原因:C1.落点在棋盘上;C2.落点与起点构成日字;C3.落点方向的邻近交叉点无棋子;C4.落点处为自己方棋子;C5.落点处无棋子;C6.落点处为对方棋子(非老将);C7.落点处为对方老将。,结果:E1.不移动棋子;E2.移动棋子;E3.移动棋子,并除去对方棋子;E4.移动棋子,并提示战胜对方,结束游戏。,中间状态:11 落点合理且无半马腿,可以前进,添加中间节点11,目的是作为导出结果的进一步原因,简化因果图导出的判定表一,决策表分解,