因果图
- 因果图法是一种适合于描述对于多种输入条件组合的测试方法
- 根据输入的条件组合约束关系和输出条件的因果关系 分析输入条件的各种组合情况,从而设计测试用例的方法
- 适合检查程序输入条件涉及的各种组合情况
因果图的关系
原因和结果的关系:恒等:原因A成立 结果B一定成立
非:原因A成立时 结果B一定不成立
或:原因A,B,C三者只要有一个成立,结果D就一定成立
与:原因A,B,C都成立时,结果D才会出现
输入状态相互之间还可能存在某些依赖关系,称为约束。例如, 某些输入条件本身不可能同时出现。输出状态之间也往往存在约束。
判定表法
是分析和表达多逻辑条件下执行不同操作的情况的工具
判定表的组成
- 条件桩(Condition Stub):列出了问题得所有条件。通常认为列出的条件的次序无关紧要。
- 动作桩(Action Stub):列出了问题规定可能采取的操作。这些操作的排列顺序没有约束。
- 条件项(Condition Entry):列出针对它左列条件的取值。在所有可能情况下的真假值。
- 动作项(Action Entry):列出在条件项的各种取值情况下应该采取的动作。
- 规则: 任何一个条件组合的特定取值及其要执行的相应操作。在判定表中贯穿条件项和动作项的一列就是一条规则。
优点缺点
优点:它能把复杂的问题按各种可能的情况一一列举出来,简明而易于理解,也可避免遗漏。
缺点:不能表达重复执行的动作,例如循环结构。
适用条件
B. Beizer 指出了适合使用判定表设计测试用例的条件:
规格说明以判定表形式给出,或很容易转换成判定表。
条件的排列顺序不会也不影响执行哪些操作。
规则的排列顺序不会也不影响执行哪些操作。
每当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则。
如果某一规则得到满足要执行多个操作,这些操作的执行顺序无关紧要。
B. Beizer提出这5个必要条件的目的是为了使操作的执行完全依赖于条件的组合。其实对于某些不满足这几条的判定表,同样可以借以设计测试用例,只不过尚需增加其它的测试用例罢了。
测试用例的设计方法:没有哪一种方法是单独使用的
- 所有的软件,都是因为某种操作才会导致一定结果----考虑使用因果图
所有的软件都有文本框----考虑必须一定使用等价类,边界值