在一个程序中,如果输入输出比较多,输入之间和输出之间相互制约的条件比较多,在这种情况下应用决策表合适,他可以很清楚的表达他们之间的各种复杂关系。
简述:决策表是把作为条件的所有输入的各种组合值以及对应输出值都罗列出来二形成的表格。他能够将复杂的问题按照各种可能的情况全部列举出来,简明并可避免遗漏。因此,利用决策表能够设计出完整的测试用例集合。
决策表由四部分组成:
条件桩--列出问题的所有条件
条件项--针对条件桩给出的条件列出所有可能的取值
动作桩--列出问题所规定的可能采取的操作
动作项--指出在条件项的各组取值情况下应采取的动作
1、等价类不能解决多输入而且输入之间不同组合产生不同的结果
输出之间存在逻辑关系
类无效类每个用例只出现一次,不能覆盖多个无效等价类并存的情况
2、判定表
可以通过输入的不同组合,产生不同的结果,而不同的组合我们利用二进制解决
3、二进制
1 3位 8 0---7 000 111
2 4位 16 0---15 0000 1111
3 5位 32 0---31 00000 11111
合并 怎么合并
一组条件引起一个动作
6、正交试验
所有因子的值两两相交(两个因子的值在同一用例中出现)
多个选项,都是正值,没有逻辑关系
因子的值两两相交一次(两个因子的值在一个用例中出现一次)
利用正交工具
一个功能的实现需要多个界面协同完成(跨界面)
存在逻辑关系(对错不能同时存在,同意/不同意、上一步/下一步)
并且不同参数组合会输出不同结果
2、流程分析法的优缺点
优点:流程分析法既能覆盖条件为真的分支,也能覆盖条件为假的分支
缺点:流程分析法不能验证每个界面的参数是否正确,验证的是流程,所以需要与开发进行沟通需求,需要在每个界面进行校验,如果错误,直接在当前界面提示信息,所以需要多种方法组合使用。
1、状态迁移:
所有参数都是有效的
参数之间存在约束条件(功能之间的约束、状态之间的约束)
2、状态迁移图的优缺点
优点:保证每一个功能/状态的可达项都被覆盖
缺点:对无效的路径无法覆盖
参数之间存在逻辑关系,不同逻辑组合会输出不同结果。
参数之间存在约束关系,输出结果不确定。
因果符号:
恒等、非、或、与
原因符号:
异、或、唯一、要求
结果符号:强制
因果关系:
恒等:条件C满足要求时,一定会输出结果E
例如:投5毛点橙汁,一定会输出橙汁
非:条件C满足要求时,一定不会输出结果E
例如:投5毛点橙汁,一定不会输出啤酒
或:条件C1、C2、C3任何一项满足要求时,就会输出结果E
例如:测试管理工具QC、禅道、Jira中会使用任何一款工具即会被录用
与:条件C1、C2、C3同时满足要求时,才会输出结果E
例如:同时会使用禅道、SVN、selenium三款工具才会被录用
原因与原因之间的关系:
异:原因a、b中只能有一个为真(只有2个条件)
例如:两支笔(签字笔、白板笔)中有且只有一支是白板笔
或:原因a、b中至少有一个为真(a为真,b也可以为真)
例如:两支笔(白板笔)中至少有一支是白板笔
唯一:在多组判定条件中,有且只有一个为真(多个条件)
例如:在多人的间谍游戏中,有且只有一个是间谍
要求:原因a满足条件时,原因b一定满足条件
例如:面试穿正装(约束,共同努力完成一件事情)
结果与结果之间的关系:
强制:结果a出现时,结果b一定不出现
例如:橙汁出现时,啤酒一定不出现
优点:
1.充分考虑了输入条件之间的组合,对组合情况覆盖充分。
2.最终每个用例覆盖多种输入情况,有利于提高测试效率。
3.设计过程中,对输入条件间的约束关系做了考虑,避免了无效用例,用例的有效性高。
4.能够同时得出每个测试项目的预期输出
缺点:
1.当被测试特性输入较多时,判定表的规模会非常大。
2.输入之间的约束条件不能有效区分输入是否确实需要进行组合测试,会造成不需要组合测试的输入做了组合,从而产生用例冗余。