资源描述
Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,Click to edit Master title style,厦门理工学院 计算机信息工程学院软件工程系 崔建峰,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,Click to edit Master title style,*,/127,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,Click to edit Master title style,*,/127,第七章 功能测试,因果图法,崔建峰,第七章 功能测试崔建峰,因果图法,等价类划分方法和边界值分析方法的不足,着重考虑输入条件,而不考虑输入条件的各种组合,也不考虑输入条件之间的相互制约的关系,,但有时一些具体问题中的输入之间存在着相互依赖的关系,如,NextDate,函数问题。,2,因果图法等价类划分方法和边界值分析方法的不足2,因果图法,如果输入之间有关系,我们在测试时,必须考虑输入条件的各种组合,,那么可以考虑使用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来设计测试用例,这就需要利用因果图。,通过因果图,可以建立输入条件和输出之间的逻辑模型,,从而比较容易确定输入条件组合和输出之间的逻辑关系,有利于设计全面的测试用例。,3,因果图法如果输入之间有关系,我们在测试时必须考虑输入条件的各,输入与输出关系,Ci,:表示原因(,Cause,输入状态);,Ei,:表示结果(,Effect,输出状态)。,输入与输出之间的关系,4,输入与输出关系 Ci:表示原因(Cause,输入状态);输,输入或输出之间的约束,实际问题中,输入状态之间或输出结果之间可能存在某些依赖关系,这种依赖关系被称为,约束,.,在因果图中使用特定的符号来表示这些约束关系,E,约束:互斥,排他,I,约束:包含,或,O,约束:唯一,R,约束:要求,M,约束:屏蔽,5,输入或输出之间的约束实际问题中,输入状态之间或输出结果之间可,约束关系说明,E,约束,(,异,):a,b,最多有一个可能为,1,不能同时为,1.,6,约束关系说明E约束(异):a,b最多有一个可能为1,不能同,约束关系说明,I,约束,(,或,):a,b,c,中至少有一个必须为,1,不能同时为,0.,7,约束关系说明I约束(或):a,b,c中至少有一个必须为1,约束关系说明,O,约束,(,惟一,):a,和,b,必须有一个且仅有一个为,1,8,约束关系说明O约束(惟一):a和b必须有一个且仅有一个为1,约束关系说明,R,约束,(,要求,):a,是,1,时,b,必须是,1,即,a,为,1,时,b,不能为,0,9,约束关系说明R约束(要求):a是1时,b必须是1,即a为1时,约束关系说明,M,约束,:,对输出条件的约束,若结果,a,为,1,则结果,b,必须为,0.,10,约束关系说明M约束:对输出条件的约束,若结果a为1,则结果b,因果图法设计步骤,分析软件规格说明书中的输入输出条件并划分出,等价类,,将每个输入输出赋予一个标志符;分析规格说明中的语义,通过这些语义来,找出多个输入因素之间的关系,。,找出输入因素与输出结果之间的关联,,将对应的输入与输出之间的关系关联起来,并将其中不可能的组合情况标注成约束或者限制条件,形成因果图。,由因果图转化成决策表,,任何由输入与输出之间关系构成的路径,形成决策表的一列,将决策表的每一列拿出来作为依据,设计测试用例,。一般来说,决策表中的每一列对应一条测试用例。,11,因果图法设计步骤 分析软件规格说明书中的输入输出条件并划分出,字符问题,某个软件的规格说明书中规定,:,第一个字符必须是,A,或,B,第二个字符必须是一个数字,在此情况下进行文件的修改,但如果第一个字符不正确,则给出信息,L,;如果第二个字符不正确,则给出信息,M,。,12,字符问题某个软件的规格说明书中规定:第一个字符必须是A或B,字符问题,分析问题,按照如下步骤进行,:,(1),根据软件规格说明书,列出原因和结果,.,(2),找出原因和结果之间的关系,原因和原因之间的约束关系,画出因果图,.,(3),将因果图转化为判定表,(4),根据判定表设计测试用例,.,13,字符问题分析问题,按照如下步骤进行:13,字符问题,原因,:,C1:,第一个字符是,A;,C2:,第一个字符是,B;,C3:,第二个字符是一个数字,.,结果,:,E1:,修改文件,;,E2:,给出信息,L;(,第一个字符不对给出信息,L),E3:,给出信息,M;(,第二个字符不对给出信息,M),14,字符问题原因:14,字符问题,因果图,中间结果,15,字符问题因果图中间结果15,带有,E,约束的因果图,E,16,带有E约束的因果图E16,将因果图转化为决策表,1,2,3,4,5,6,7,8,C1,C2,C3,10,1,1,1,1,1,0,1,0,1,1,1,0,0,1,0,1,1,1,0,1,0,1,0,0,1,0,0,0,0,0,E1,E2,E3,不可能,测试用例,A3,A5,AM,A&,B3,B5,BM,B*,C2,X6,CM,D*,17,将因果图转化为决策表12345678C111110000E1,字符问题,设计测试用例,测试用例,1:,输入数据,:A3,预期输出,:,修改文件,测试用例,2:,输入数据,:AM,预期输出,:,给出信息,M,测试用例,3:,输入数据,:B3,预期输出,:,修改文件,测试用例,4:,输入数据,:B*,预期输出,:,给出信息,M,测试用例,5:,输入数据,:C2,预期输出,:,给出信息,L,测试用例,6:,输入数据,:CM,预期输出,:,给出信息,LM,18,字符问题设计测试用例18,自动售货机问题,例如,有一个处理单价为5角钱的饮料的自动售货机软件测试用例的设计。其规格说明如下:,若,投入,5角钱或1元钱的硬币,,按下,橙汁,或,啤酒,的按钮,则相应的饮料就送出来。若售货机,没有零钱找,,则一个显示,零钱找完,的红灯亮,这时在投入1元硬币并按下按钮后,饮料不送出来而且1元硬币也退出来;若,有零钱找,,则显示零钱找完的红灯灭,在送出饮料的同时退还5角硬币。,”,19,自动售货机问题例如,有一个处理单价为5角钱的饮料的自动售货机,自动售货机问题,零钱找完,投币口,退币口,橙汁,啤酒,出货口,5,角,1,元,取货,20,自动售货机问题零钱找完投币口退币口橙汁啤酒出货口5角取货20,自动售货机问题,分析这一段说明,列出原因和结果,原因:,1.,售货机有零钱找,2.,投入,1元,硬币,3.,投入,5角,硬币,4.,按下,橙汁,按钮,5.,按下,啤酒,按钮,21,自动售货机问题分析这一段说明,列出原因和结果21,自动售货机问题,结果:,21.,售货机,零钱找完,红灯亮,22.,退还1元硬币,23.,退还5角硬币,24.,送出橙汁饮料,25.,送出啤酒饮料,22,自动售货机问题结果:22,自动售货机问题,建立中间结点,表示处理中间状态,:,11.,投入,1元,硬币且按下饮料按钮,12.,按下,橙汁,或,啤酒,的按钮,13.,应当找5角零钱并且售货机有零钱找,14.,钱已付清,23,自动售货机问题建立中间结点,表示处理中间状态:11.投入,自动售货机问题,E1,:售货机“零钱找完”红灯亮,E2,:退还,1,元硬币,E3,:退还,5,角硬币,E4,:送出橙汁饮料,E5,:送出啤酒饮料,C1,:售货机有零钱,C2,:投入,1,元硬币,C3,:投入,5,角硬币,C4,:压下橙汁按钮,C5,:压下啤酒按钮,根据因果图,就可以转化为判定表。这里根据条,C2,与,C3,、,C4,与,C5,的,E,约束(互斥),可以减少组合,24,自动售货机问题E1:售货机“零钱找完”红灯亮 C1:售,自动售货机问题,25,自动售货机问题25,编号,输入条件,12345,组合,期望输出,Test1,Test2,Test3,Test4,Test5,Test6,Test7,Test8,Test9,Test10,Test11,Test12,Test13,Test14,Test15,Test16,11010,11001,11000,10110,10101,10100,10010,10001,01010,01001,01000,00110,00101,00100,00010,00001,23,24,23,25,.,24,25,.,.,.,21,22,21,22,21,21,24,21,25,21,21,21,26,编号输入条件 12345 组合期望输出Test1110102,使用因果图法的优点,考虑了多个输入之间的相互组合、相互制约关系;,能够帮助我们按一定步骤,高效率地选择测试用例,同时还能为我们指出,程序规格说明描述中存在着什么问题,27,使用因果图法的优点考虑了多个输入之间的相互组合、相互制约关系,谢 谢!,谢 谢!,
展开阅读全文