资源描述:
《测试用例设计因果图和判定表.ppt》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、测试用例设计方法之因果图引言等价类划分法和边界值分析方法都是着重考虑输入条件,但没有考虑输入条件的各种组合、输入条件之间的相互制约关系。这样虽然各种输入条件可能出错的情况已经测试到了,但多个输入条件组合起来可能出错的情况却被忽视了。如果在测试时必须考虑输入条件的各种组合,则可能的组合数目将是天文数字,因此必须考虑采用一种适合于描述多种条件的组合、相应产生多个动作的形式来进行测试用例的设计,这就需要利用因果图。因果图因果图法是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情
2、况。因果图-因果关系1、因果关系4种符号分别表示了规格说明中向4种因果关系说明:因果图中使用了简单的逻辑符号,以直线联接左右结点。左结点表示输入状态(或称原因),右结点表示输出状态(或称结果)。C1表示原因,通常置于图的左部;e1表示结果,通常在图的右部。C1和e1均可取值0或1,0表示某状态不出现,1表示某状态出现。因果图-因果关系1)恒等关系:若c1是1,则e1也是1;否则e1为02)非:若c1是1,则e1是0;否则e1是1c1e1c1e1因果图-因果关系3)或(V):若c1或c2或c3是1,则e1是1;否则e1为0
3、,“或”可有任意个输入c1c2c3e1因果图-因果关系4)与(^):若c1和c2都是1,则e1为1;否则e1为0,“与”也可有任意个输入c1c2e1因果图-约束2、约束输入状态相互之间还可能存在某些依赖关系,称为约束。例如,某些输入条件本身不可能同时出现。输出状态之间也往往存在约束。在因果图中,用特定的符号标明这些约束。4)与(^):若c1和c2都是1,则e1为1;否则e1为0,“与”也可有任意个输入因果图-约束1)输入条件约束:异E、或I、唯一O、要求R因果图-约束E约束(异):a和b中至多有一个可能为1,即a和b不能
4、同时为1。I约束(或):a、b和c中至少有一个必须是1,即a、b和c不能同时为0。O约束(唯一);a和b必须有一个,且仅有1个为1。R约束(要求):a是1时,b必须是1,即不可能a是1时b是0。因果图-约束2)输出条件约束:输出条件的约束只有M约束(强制):若结果a是1,则结果b强制为0。因果图采用因果图法设计测试用例的步骤:1)分析软件规格说明描述中,那些是原因(即输入条件或输入条件的等价类),那些是结果(即输出条件),并给每个原因和结果赋予一个标识符。2)分析软件规格说明描述中的语义,找出原因与结果之间,原因与原因之
5、间对应的关系,根据这些关系,画出因果图。3)由于语法或环境限制,有些原因与原因之间,原因与结果之间的组合情况不可能出现,为表明这些特殊情况,在因果图上用一些记号表明约束或限制条件。4)把因果图转换为判定表。5)把判定表的每一列拿出来作为依据,设计测试用例。测试用例设计方法之判定表判定表1、判定表:判定表是分析和表达多逻辑条件下执行不同操作的情况的工具。2、优点:能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏。因此,利用判定表能够设计出完整的测试用例集合。在一些数据处理问题当中,某些操作的实施依赖于多个逻辑
6、条件的组合,即:针对不同逻辑条件的组合值,分别执行不同的操作。判定表很适合于处理这类问题。判定表3、组成:1)条件桩(ConditionStub):列出了问题得所有条件。通常认为列出的条件的次序无关紧要。2)动作桩(ActionStub):列出了问题规定可能采取的操作。这些操作的排列顺序没有约束。3)条件项(ConditionEntry):列出针对它左列条件的取值。在所有可能情况下的真假值。4)动作项(ActionEntry):列出在条件项的各种取值情况下应该采取的动作。判定表4、规则及规则合并规则:任何一个条件组合的特
7、定取值及其相应要执行的操作称为规则。在判定表中贯穿条件项和动作项的一列就是一条规则。显然,判定表中列出多少组条件取值,也就有多少条规则,既条件项和动作项有多少列。化简:就是规则合并有两条或多条规则具有相同的动作,并且其条件项之间存在着极为相似的关系。判定表5、规则合并举例如下图左端,两规则动作项一样,条件项类似,在1、2条件项分别取Y、N时,无论条件3取何值,都执行同一操作。即要执行的动作与条件3无关。于是可合并。“-”表示与取值无关。判定表6、判定表的建立步骤:(根据软件规格说明)1)确定规则的个数。假如有n个条件。每
8、个条件有两个取值(0,1),有2^n种规则。2)列出所有的条件桩和动作桩。3)填入条件项。4)填入动作项。等到初始判定表。5)简化.合并相似规则(相同动作)。使用各种测试方法的综合策略1)在任何情况下都必须使用边界值分析方法,经验表明用这种方法设计出测试用例发现程序错误的能力最强。】2)必要时用等价类划分方法补充一些