第7次课-黑盒测试-2-因果图

黑盒测试-因果图法

简介:等价类划分方法和边界值分析方法,都未过多考虑输入条件之间的联系, 相互组合、相互制约等。

因果图法是基于这样的一种思想:一些程序的功能可以用判定表(或称决策表)的形式来表示,并根据输入条件的组合情况规定相应的操作。

1.什么是因果图法

一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。

image-20200703152215939image-20200703152231340image-20200703152215939image-20200703152231340

image-20200703152252212

image-20200703152307873image-20200703152319083

image-20200703152307873image-20200703152319083

eg:image-20200703152357740

image-20200703152420736

2.采用因果图法设计测试用例的步骤:

1)根据程序规格说明书描述,分析并确定因(输入条件)和果(输出结果或程序状态的改变),画出因果图。
2)将得到的因果图转换为判定表。
3)为判定表中每一列所表示的情况设计一个测试用例。

3.使用因果图法的优点

1)考虑到了输入情况的各种组合以及各个输入情况之间的相互制约关系。
2)能够帮助测试人员按照一定的步骤,高效率的开发测试用例。
3)因果图法是将自然语言规格说明转化成形式语言规格说明的一种严格的方法,可以指出规格说明存在的不完整性和二义性。

4.因果图小结

  • 因果图方法是一个非常有效的黑盒测试方法,它能够生成没有重复性的且发现错误能力强的测试用例,而且对输入、输出同时进行了分析。
  • 从因果图生成的测试用例(局部,组合关系下的)包括了所有输入数据的取TRUE与取FALSE的情况,构成的测试用例数目达到最少,且测试用例数目随输入数据数目的增加而线性地增加。
  • 如果哪个开发项目在设计阶段就采用了判定表,也就不必再画因果图,而是可以直接利用判定表设计测试用例了。

其他说明

1.因果图法:建议别用,直接用判定表法。

  • 如果输出依赖于多个输入之间的相互作用,这种最好采用因果图法或者决策表法。

2.实际中直接根据需求规格说明转成决策表(简单)

根据需求规格说明画因(输入)果(输出)图(麻烦),根据因果图转成决策表(麻烦)

3.圆圈代表输入或者输出,直线代表它们之间的关系。虚线表示约束。(11:28秒有情况)

黑盒测试-判定表法:

基于判定表的测试是最为严格、最具有逻辑性的测试方法。
决策表的优点:能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏。因此,利用决策表能够设计出完整的测试用例集合。
在一些数据处理问题当中,某些操作的实施依赖于多个逻辑条件的组合,即:针对不同逻辑条件的组合值,分别执行不同的操作。决策表很适合于处理这类问题。(比如日期Nextdate问题)

1.判定表组成

条件桩(Condition Stub):列出了问题的所有条件,通常认为列出得条件的次序无关紧要。
动作桩(Action Stub):列出了问题规定可能采取的操作,这些操作的排列顺序没有约束。
条件项(Condition Entry):列出针对它左列条件的取值,在所有可能情况下的真假值。
动作项(Action Entry):列出在条件项的各种取值情况下应该采取的动作。

image-20200703152707671

2.规则及规则合并

规则:任何一个条件组合的特定取值及其相应要执行的操作称为规则。在判定表中贯穿条件项和动作项的一列就是一条规则。显然,判定表中列出多少组条件取值,也就有多少条规则,既条件项和动作项有多少列。
化简:就是规则合并有两条或多条规则具有相同的动作,并且其条件项之间存在着极为相似的关系。

3.判定表的建立步骤:(根据软件规格说明)

①确定规则的个数.假如有n个条件。每个条件有两个取值(0,1),故有2n种规则。

②列出所有的条件桩和动作桩。

  • 如果输入初看过多,可先分析动作。
  • 如果输入任然无法转化小一些,像三角形问题。用等价类划分,如日期函数中的处理

③填入条件项。

④填入动作项。得到初始判定表。

⑤简化.合并相似规则(相同动作)。

4.举例

  • 三角形问题
  • 日期NextDate问题
    • 尽量要把问题二值化,不能的时候,按等价类划分。

判定表的建立步骤:(根据软件规格说明)