资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,软件测试基础,第八讲 黑盒测试,因果图法,长春工业大学软件职业技术学院,Email,:,wenze666,主讲:闻喆,因果图法,1,、因果法(,Cause/Effect Graphing,)简介,因果图法产生的背景:,等价类划分法和边界值分析方法都是着重考虑输入条件,但没有考虑输入条件的各种,组合,、输入条件之间的相互,制约,关系。,这样虽然各种输入条件可能出错的情况已经测试到了,但多个输入条件组合起来可能出错的情况却被忽视了,。,如果在测试时必须考虑输入条件的各种组合,则可能的组合数目将是,天文数字,因此必须考虑采用一种适合于描述多种条件的组合、相应产生多个动作的形式来进行测试用例的设计,这就需要利用,因果图,(逻辑模型)。,思想:,一些程序的功能可以用决策表(或称判定表)的形式来表示,并根据输入条件的组合情况规定相应的操作,为决策表中的每一列设计一个测试用例,测试程序在输入条件的某种组合下的输出是否正确,因果图法的定义:,是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。,因果图法也是一种黑盒测试技术,但是不如等价类、边界值那样常用,“,因”,输入,“果”,输出,因果图法比较适合输入条件较多的情况,测试所有的输入条件的排列组合,案例,奖金计算软件,该软件可以计算某公司的年终奖,该公司员工分为,普通员工,和,管理人员,;,员工表现分为,普通,、,优秀,和,特殊贡献,(普通、优秀员工都可以有特殊贡献,不同组合所得工资是不同的),根据员工的分类和表现,将奖金分为,1,类奖金,,,2,类奖金,,,.,使用该软件时,输入员工的种类和表现,就会输出相应的奖金类别。,请为该软件设计测试用例,提示:,这道题概括比较笼统,不涉及具体细节,只是一个总体的框架。,(,1,)找到所有的输入条件(原因)和输出条件(结果),并为其编号,输入条件,员工类别:普通员工,A1,、管理人员,A2,员工表现:普通,B1,、优秀,B2,、特殊贡献,B3,输出条件,奖金类别:,1,类奖金,C1,、,2,类奖金,C2.,(,2,)分析输入条件之间的关系,根据需求我们知道,,A1,和,A2,是互斥的(一个人不可能既是普通员工又是管理人员),,B1,和,B2,是互斥的(一个人不可能既表现普通又表现优秀),,B1,和,B3,,,B2,和,B3,可以同时满足。由此分析,我们可以列出所有的输入条件排列组合:,普通员工,A1+B1,C1,A1+B2,C2,A1+B1+B3 C3,A1+B2+B3 C4,管理人员,A2+B1,C5,A2+B2,C6,A2+B1+B3 C7,A2+B2+B3 C8,(,3,)根据对输入输出条件的分析,编写测试用例,因果图的基本符号:,简单逻辑符号,直线连接左右节点,通常情况下,左部的圆中写原因,右部的圆中写结果,两个圆中间以直线连接,连接线上再加符号表示因与果的不同关系,ci,表示原因;,ei,表示结果,各结点表示状态,可取值“,0”,或“,1”,。“,0”,表示某状态不出现,“,1”,表示某状态出现,有以下四种逻辑关系,因果图的逻辑关系,为了表示原因与原因之间,结果与结果之间可能存在的,约束,条件,在因果图中可以附加一些表示约束条件的符号。,因果图法最终生成的是决策表。利用因果图生成测试用例的基本步骤如下:(,1,)分析软件规格说明中哪些是原因(即输入条件或输入条件的等价类),哪些是结果(即输出条件),并给每个原因和结果赋予一个标识符。,(,2,)分析软件规格说明中的语义,找出原因与结果之间、原因与原因之间对应的关系, 根据这些关系画出因果图。,(,3,)由于语法或环境的限制,有些原因与原因之间、原因与结果之间的组合情况不可能出现。为表明这些特殊情况,在因果图上用一些记号表明约束或限制条件。,(,4,)把因果图转换为决策表。,(,5,)根据决策表中的每一列设计测试用例。,使用因果图法的优点:,(,1,)考虑到了输入情况的各种组合以及各个输入情况之间的相互制约关系。(,2,)能够帮助测试人员按照一定的步骤,高效率的开发测试用例。(,3,)因果图法是将自然语言规格说明转化成形式语言规格说明的一种严格的方法,可以指出规格说明存在的不完整性和二义性。,2,、因果图法应用,例子:,某软件规格说明要求:,第一个字符必须是,#,或*,第二个字符必须是一个数字,在此情况下进行文件的修改,如果第一个字符不是,#,或*,则给出信息,N,如果第二个字符不是数字,则给出信息,M,例题分析:,原因:,c1,第一个字符是,#,c2,第一个字符是*,c3,第二个字符是一个数字,结果:,e1,给出信息,N,e2,修改文件,e3,给出信息,M,因果图表示,C1,C2,C3,e1,e2,e3,I0,具有,E,约束的因果图表示,E,E,C1,C2,C3,e1,e2,e3,I0,根据因果图建立的决策表,练习,如图所示,一个网络登录对话框用于向服务器进行登录操作,.,说明,:,Username,只能包含字母和数字,Password,可以包含任何字符,两者都不能为空,如果两者为空或不合法输入,不执行登录并提示输入错误信息,如果两者都不合法,则只提示,Username,的错误信息,如果两者输入都合法,执行登录操作,并显示从服务器可能返回的,3,种提示信息之一,Username,不存在,Password,错误,登录成功,假设,我们已经对登录对话框里限制了用户名和密码的最大长度,测试时可以不考虑超长字符串的情况,.,试为用户名和密码的各种组合设计测试用例,.,分析,找出原因,输入的用户名为空,;,输入的用户名包含非字母非数字字符,;,输入的用户名在服务器上存在,;,输入的密码为空,;,输入错误的密码,;,输入正确的密码,.,找出可能的结果,执行登录并提示用户名不能为空,;,不执行登录并提示用户名不能包含非字母非数字的非法字符,;,不执行登录并提示密码不能为空,;,执行登录并提示用户名在服务器上不存在,;,执行登录并提示密码错误,;,执行登录并提示登录成功,.,C1,C2,C3,C4,C5,C6,e1,e2,e3,e4,e5,e6,E,O,O,进一步分析,由画出的因果图,我们看到输入间有约束关系,C1,C2,C3,之间是异的约束关系,C4,C5,C6,之间是唯一的约束关系,统计最后几种组合?,转化为判定表,4,种组合,3,种组合,12,种组合,1,2,3,4,5,6,7,8,9,10,11,12,原因,C1,1,1,1,0,0,0,0,0,0,0,0,0,C2,0,0,0,1,1,1,0,0,0,0,0,0,C3,0,0,0,0,0,0,1,1,1,0,0,0,C4,1,0,0,1,0,0,1,0,0,1,0,0,C5,0,1,0,0,1,0,0,1,0,0,1,0,C6,0,0,1,0,0,1,0,0,1,0,0,1,结果,e1,1,1,1,0,0,0,0,0,0,0,0,0,e2,0,0,0,1,1,0,0,0,0,0,0,0,e3,0,0,0,0,0,1,1,0,0,1,0,0,e4,0,0,0,0,0,0,0,0,0,0,1,1,e5,0,0,0,0,0,0,0,1,0,0,0,0,e6,0,0,0,0,0,0,0,0,1,0,0,0,用例编号,Username,Password,预期结果,1,空,空,不执行登录并提示用户名不能为空,2,空,密码错误,不执行登录并提示用户名不能为空,3,空,密码正确,不执行登录并提示用户名不能为空,4,含非字母非数字字符,空,不执行登录并提示用户名不能包含非字母非数字字符,5,含非字母非数字字符,密码错误,不执行登录并提示用户名不能包含非字母非数字字符,6,含非字母非数字字符,密码正确,不执行登录并提示用户名不能包含非字母非数字字符,7,存在用户名,空,不执行登录并提示密码不能为空,8,存在用户名,密码错误,执行登录并提示密码错误,9,存在用户名,密码正确,执行登录并提示登录成功,10,合法输入但不存在,空,不执行登录并提示密码不能为空,11,合法输入但不存在,密码错误,执行登录并提示用户名在服务器上不存在,12,合法输入但不存在,密码正确,执行登录并提示用户在服务器上不存在,
展开阅读全文