您好,欢迎访问三七文档
因果图法产生的背景等价类划分法和边界值分析方法都是着重考虑输入条件,但没有考虑输入条件的各种组合、输入条件之间的相互制约关系。这样虽然各种输入条件可能出错的情况已经测试到了,但多个输入条件组合起来可能出错的情况却被忽视了。因果图法设计测试用例思想首先从程序规格说明书的描述中,找出因(输入条件)和果(输出结果或者程序状态的改变),然后通过因果图转换为判定表,最后为判定表中的每一列设计一个测试用例.因果图法的定义:是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。因果图中出现的基本符号原因结果通常在因果图中用Ci表示原因,用Ei表示结果,各结点表示状态,可取值“0”或“1”。“0”表示某状态不出现,“1”表示某状态出现。主要的原因与结果之间的关系c1e1c1e1~c2e1c1c3Vc2e1c1V(a)恒等(b)非(c)或(d)与恒等:若c1是1,则e1也为1,否则e1为0;c1e1非:若c1是1,则e1为0,否则e1为1;c1e1~或:若c1或c2或c3是1,则e1是1,否则e1为0,“或”可有任意个输入;c2e1c1c3V与:若c1和c2都是1,则e1为1,否则e1为0,“与”也可有任意个输入。c2e1c1V恒等:若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,“与”也可有任意个输入。在实际问题当中输入状态相互之间还可能存在某些依赖关系,称为“约束”abE异(a)acI或babO唯一abR要求ab强制M(b)(c)(d)(e)E约束(异):a和b中最多有一个可能为1,即a和b不能同时为1;abE异I约束(或):a、b、c中至少有一个必须是1,即a、b、c不能同时为0;acI或bO约束(唯一):a和b必须有一个且仅有一个为1;abO唯一R约束(要求):a是1时,b必须是1;abR要求M约束(强制):若结果a是1,则结果b强制为0。ab强制M对于输入条件的约束有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。因果图法设计测试用例步骤:分析程序规格说明书描述的语义内容,找出“原因”和“结果”,将其表示成连接各个原因与各个结果的“因果图”。由于语法或环境限制,有些原因与原因之间或与结果之间的组合情况不能出现,用记号标明约束或限制条件;将因果图转换成决策表;根据决策表中每一列设计测试用例因果图法举例程序的规格说明要求:输入的第一个字符必须是“#”或“*”,第二个字符必须是一个数字,在此情况下进行文件的修改;如果第一个字符不是“#”或“*”,则给出信息N;如果第二个字符不是数字,则给出信息M。步骤:1.分析程序的规格说明,列出原因和结果;2.找出原因与结果之间的因果关系、原因与原因之间的约束关系,画出因果图。3.将因果图转换成决策表;4.根据3中的决策表,设计测试用例的输入数据和预期输出。解法如下:(1)在明确了上述要求后,可以明确地将原因和结果分开。原因:c1-第一个字符是“#”c2-第一个字符是“*”c3-第二个字符是一个数字结果:a1-给出信息Na2-修改文件a3-给出信息M(2)因果图c1c2c310a3a2a1V~~V因果图表示10为导出结果的中间原因带有E约束的因果图c1c2c310a3a2a1V~~VE具有E约束的因果图表示将因果图转化为判定表12345678C1C2C310111110101110010111010100100000a1a2a3不可能√√√√√√√√√测试用例#3#B*7*MC2CM(4)设计测试用例最左边两列,原因c1和c2同时为1不可能,排除掉,根据表可设计出6个测试用例。Test1:输入数据-#3预期输出--修改文件Test2:输入数据-#B预期输出--给出信息MTest3:输入数据-*7预期输出--修改文件Test4:输入数据-*M预期输出--给出信息MTest5:输入数据-C2预期输出--给出信息NTest6:输入数据-CM预期输出--给出信息M和N使用因果图法的优点:(1)考虑到了输入情况的各种组合以及各个输入情况之间的相互制约关系。(2)能够帮助测试人员按照一定的步骤,高效率的开发测试用例。(3)因果图法是将自然语言规格说明转化成形式语言规格说明的一种严格的方法,可以指出规格说明存在的不完整性和二义性。案例分析1有一个处理单价为1元5角的盒装饮料的自动售货机软件。若投入1元5角硬币,按下“可乐”,“雪碧”或“红茶”按钮,相应的饮料就送出来。若投入的是两元硬币,在送出饮料的同时退还5角硬币。(1)分析原因及结果原因c1:投入1元5角硬币;c2:投入2元硬币;c3:按“可乐”按钮;c4:按“雪碧”按钮;c5:按“红茶”按钮;中间状态11:已投币12:已按钮结果a1:退还5角硬币;a2:送出“可乐”饮料;a3:送出“雪碧”饮料;a4:送出“红茶”饮料;(2)画出因果图VVVVC1C5C4C3C2E4E3E2E11211EEVV(3)决策表1234567891011c1:投入1元5角硬币c2:投入2元硬币c3:按“可乐”按钮c4:按“雪碧”按钮c5:按“红茶”按钮101001001010001100000110001010010010100000100000100000111:已投币12:已按钮1111111011111110010101a1:退还5角硬币a2:送出“可乐”饮料a3:送出“雪碧”饮料a4:送出“红茶”饮料√√√√√√√√√(4)设计测试用例用例编号测试用例预期输出1投入1元5角,按“可乐”送出“可乐”饮料2投入1元5角,按“雪碧”送出“雪碧”饮料3投入1元5角,按“红茶”送出“红茶”饮料4投入2元,按“可乐”找5角,送出“可乐”5投入2元,按“雪碧”找5角,送出“雪碧”6投入2元,按“红茶”找5角,送出“红茶”习题1某软件的一个模块的需求规格说明书中描述:(1)年薪制员工:严重过失,扣年终风险金的4%;过失,扣年终风险金的2%。(2)非年薪制员工:严重过失,扣当月薪资的8%;过失,扣当月薪资的4%。请绘制出因果图和判定表,并给出相应的测试用例。习题2中国象棋中走马的测试用例设计为例学习因果图的使用方法(下面未注明的均指的是对马的说明)一、分析中国象棋中走马的实际情况1.如果落点在棋盘外,则不移动棋子;2.如果落点与起点不构成日字型,则不移动棋子;3.如果在落点方向的邻近交叉点有棋子(绊马腿),则不移动棋子;4.如果不属于1-3条,落点处有己方棋子,则不移动棋子;5.如果不属于1-3条,落点处无棋子,则移动棋子;6.如果不属于1-3条,落点处为对方棋子(非老将),则移动棋子并除去对方棋子;7.如果不属于1-3条,且落点处为对方老将,则移动棋子,并提示战胜对方,游戏结束。二、根据分析明确原因和结果原因:C1.落点在棋盘上;C2.落点与起点构成日字;C3.落点方向的邻近交叉点无棋子;C4.落点处为自己方棋子;C5.落点处无棋子;C6.落点处为对方棋子(非老将);C7.落点处为对方老将。结果:E1.不移动棋子;E2.移动棋子;E3.移动棋子,并除去对方棋子;E4.移动棋子,并提示战胜对方,结束游戏。中间状态:11–落点合理且无半马腿,可以前进添加中间节点11,目的是作为导出结果的进一步原因,简化因果图导出的判定表一c1c3c4c5E1c7c6c2E2E3E411~~~VVVVVE~决策表分解规则选项12345678910111213141516C1C2C3C41111111011011100101110101001100001110110010101000011001000010000110100000000000000E11011111111111111规则选项1234567891011121314151611C5C6C71111111011011100101110101001100001110110010101000011001000010000E2E3E4不可能不可能不可能100不可能010001不可能不可能不可能不可能不可能
本文标题:测试方法因果图法
链接地址:https://www.777doc.com/doc-5963314 .html