A Free sample background from ,Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Slide,*,*,3.6,因果图法,3.6.1,因果图法的简介,3.6.2,因果图,3.6.3,因果图法测试举例,3.6.1,因果图法的简介,因果图法产生的背景:,等价类划分法和边界值分析方法都是着重考虑输入条件,但没有考虑输入条件的各种组合、输入条件之间的相互制约关系这样虽然各种输入条件可能出错的情况已经测试到了,但多个输入条件组合起来可能出错的情况却被忽视了如果在测试时必须考虑输入条件的各种组合,则可能的组合数目将是天文数字,因此必须考虑采用一种适合于描述多种条件的组合、相应产生多个动作的形式来进行测试用例的设计,这就需要利用因果图(逻辑模型)因果图法的简介,(续),因果图法是基于这样的一种思想:一些程序的功能可以用判定表(或称决策表)的形式来表示,并根据输入条件的组合情况规定相应的操作因果图法的定义:是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。
采用因果图法设计测试用例的步骤:,(,1,)根据程序规格说明书描述,分析并确定因(输入条件)和果(输出结果或程序状态的改变),画出因果图2,)将得到的因果图转换为判定表3,)为判定表中每一列所表示的情况设计一个测试用例因果图法的简介,(续),使用因果图法的优点:,(,1,)考虑到了输入情况的各种组合以及各个输入情况之间的相互制约关系2,)能够帮助测试人员按照一定的步骤,高效率的开发测试用例3,)因果图法是将自然语言规格说明转化成形式语言规格说明的一种严格的方法,可以指出规格说明存在的不完整性和二义性3.6.2,因果图,因果图中用来表示,4,种因果关系的基本符号:,c,1,e,1,恒等,c,1,e,1,非,c,1,e,1,或,c,2,c,3,c,1,e,1,与,c,2,因果图,(续),因果图中的4种基本关系,在因果图的基本符号中,图中的左结点,c,i,表示输入状态(或称原因),右结点,e,i,表示输出状态(或称结果)c,i,与,e,i,取值0或1,0表示某状态不出现,1则表示某状态出现恒等:若,c,1,是1,则,e,1,也为,1,,否则,e,1,为,0,非:若,c,1,是1,则,e,1,为,0,,否则,e,1,为,1,或:若,c,1,或,c,2,或,c,3,是1,则,e,1,为,1,,否则,e,1,为,0,与:若,c,1,和,c,2,都是1,则,e,1,为,1,,否则,e,1,为,0,因果图,(续),因果图中的约束,在实际问题中输入状态相互之间、输出状态相互之间可能存在某些依赖关系,称为“约束”。
对于输入条件的约束有,E,、,I,、,O,、,R,四种约束,对于输出条件的约束只有,M,约束E,约束(异):,a,和,b,中最多有一个可能为1,即,a,和,b,不能同时 为1I,约束(或):,a、b、c,中至少有一个必须为1,即,a、b、c,不能同时为0O,约束(唯一):,a,和,b,必须有一个且仅有一个为1R,约束(要求):,a,是1时,,b,必须是1,即,a,为1时,,b,不能为0M,约束(强制):若结果,a,为1,则结果,b,强制为0因果图,(续),a,b,异,E,a,b,或,I,c,a,b,唯一,O,R,a,b,要求,M,a,b,强制,因果图中用来表示约束关系的约束符号:,因果图,(续),因果图法最终生成的是决策表利用因果图生成测试用例的基本步骤如下:,(,1,)分析软件规格说明中哪些是原因(即输入条件或输入条件的等价类),哪些是结果(即输出条件),并给每个原因和结果赋予一个标识符2,)分析软件规格说明中的语义,找出原因与结果之间、原因与原因之间对应的关系,根据这些关系画出因果图3,)由于语法或环境的限制,有些原因与原因之间、原因与结果之间的组合情况不可能出现为表明这些特殊情况,在因果图上用一些记号表明约束或限制条件。
4,)把因果图转换为决策表5,)根据决策表中的每一列设计测试用例3.6.3,因果图法测试举例,实例,用因果图法测试以下程序程序的规格说明要求:输入的第一个字符必须是,#,或*,第二个字符必须是一个数字,此情况下进行文件的修改;如果第一个字符不是,#,或*,则给出信息,N,,如果第二个字符不是数字,则给出信息,M,解题步骤:,(,1,)分析程序的规格说明,列出原因和结果2,)找出原因与结果之间的因果关系、原因与原因之间的约束关系,画出因果图3,)将因果图转换成决策表4,)根据(,3,)中的决策表,设计测试用例的输入数据和预期输出因果图法测试举例,(续),(,1,)分析程序规格说明中的原因和结果:,(,2,)画出因果图(编号为,10,的中间结点是导出结果的进一步原因):,原因,结果,c1,:第一个字符是,#,e1,:给出信息,N,c2,:第一个字符是,*,e2,:修改文件,c3,:第二个字符是一个数字,e3,:给出信息,M,c,1,c,2,c,3,e,1,10,e,2,e,3,E,因果图法测试举例,(续),(,3,)将因果图转换成如下所示的决策表:,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,不可能,测试用例,#3,#A,*,6,*,B,A1,GT,规则,选项,因果图法测试举例,(续),(,4,)根据决策表中的每一列设计测试用例:,测试用例编号,输入数据,预期输出,1,#3,修改文件,2,#A,给出信息,M,3,*,6,修改文件,4,*,B,给出信息,M,5,A1,给出信息,N,6,GT,给出信息,N,和信息,M,有一个处理单价为,1,元,5,角钱的盒装饮料的自动售货机软件。
若投入,1,元,5,角硬币,按下“可乐”、“雪碧”或“红茶”按钮,相应的饮料就送出来若投入的是两元硬币,在送出饮料的同时退还,5,角硬币原因:投入,1,元,5,角硬币;投入,2,元硬币;按“可乐”按钮;按“雪碧”按钮;按“红茶”按钮中间状态:已投币;已按钮结果:退还,5,角硬币;送出“可乐”饮料;送出“雪碧”饮料;送出“红茶”饮料因果图,决策表,习题,1,、使用因果图法为三角形问题设计测试用例2,、某软件的一个模块的需求规格说明书中描述:,(,1,)年薪制员工:严重过失,扣年终风险金的,4%,;过失,扣年终风险金的,2%,2,)非年薪制员工:严重过失,扣当月薪资的,8%,;过失,扣当月薪资的,4%,请绘制出因果图和判定表,并给出相应的测试用例3.8,错误推测法,错误推测法的概念:基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法错误推测方法的基本思想:列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据它们选择测试用例例如:,在单元测试时曾列出的许多在模块中常见的错误、以前产品测试中曾经发现的错误等,这些就是经验的总结还有,输入数据和输出数据为,0,的情况、输入表格为空格或输入表格只有一行等。
这些都是容易发生错误的情况,可选择这些情况下的例子作为测试用例3.9,测试方法的选择,通常,在确定测试方法时,应遵循以下原则:,根据程序的重要性和一旦发生故障将造成的损失来确定测试等级和测试重点认真选择测试策略,以便能尽可能少的使用测试用例,发现尽可能多的程序错误因为一次完整的软件测试过后,如果程序中遗留的错误过多并且严重,则表明该次测试是不足的,而测试不足则意味着让用户承担隐藏错误带来的危险,但测试过度又会带来资源的浪费因此测试需要找到一个平衡点测试方法的选择,(续),通常在确定测试策略时,有以下5条参考原则:,(,1,)在任何情况下都必须采用边界值分析法这种方法设计出的测试用例发现程序错误的能力最强2,)必要时采用等价类划分法补充测试用例3,)采用错误推断法再追加测试用例4,)对照程序逻辑,检查已设计出的测试用例的逻辑覆盖程度如果没有达到要求的覆盖标准,则应当再补充更多的测试用例5,)如果程序的功能说明中含有输入条件的组合情况,则应一开始就选用因果图法习题,2,、有一个处理单价为,5,角钱的饮料的自动售货机,相应规格说明如下:,若投入,5,角钱或,1,元钱的硬币,按下,橙汁,或,啤酒,的按钮,则相应的饮料就送出来。
每次只投入一个硬币,只按下一种饮料的按钮),如投入,5,角的硬币,按下按钮后,总有饮料送出若售货机没有零钱找,则一个显示,零钱找完,的红灯会亮,这时再投入,1,元硬币并按下按钮后,饮料不送出来而且,1,元硬币也退出来若有零钱找,则显示,零钱找完,的红灯不会亮,若投入,1,元硬币及按饮料按钮,则送出饮料的同时找回,5,角硬币请选择适当的黑盒测试方法,写出选择该方法的原因,并使用该方法的步骤,设计出相应的测试用例。