一、因果图法介绍

  从用自然语言书写的程序规格说明的描述中找出因(输入条件)和果(输出或程序状态的改变),可以通过因果图转换为判定表。(百度百科)

  个人认为,因果图是通过分析因(输入)与果(输出),从而找出输入与输入、输入与输出、输出与输出之间的关系,画出便于观察的图示,来设计测试用例的方法。

二。基本的因果图符号

  

 

二、约束符号

  

  1.E(Exclusive or)约束(异)。

  2.I(In)约束(或):表示约束I为真时,a,b,c至少有一个应为1

  3.O(Only)约束(唯一):表示a,b中仅有一个必须为1

  4.R(Request)约束(要求):表示如果a为1,b也必须为1

  5.M 屏蔽,表示如果a为0,则b强制为0

三、方法步骤(自己总结)

  1. 将规格书分解为可执行的片段

  2.分析输入输出,并进行分类,找出输入输出分别有几种。

  3.分析输入之间的关系。

  4.分析怎样的输入会导致各种结果。

  5.根据分析结果画出因果图

  6.根据因果图画出判定表、人为删去判定表中不可能发生的情况。。

  7.找出测试用例

四、实例分析

  此处使用老师上课讲的例题

  产品说明书:有一个处理单价为1元5角钱的盒装饮料的自动售货机软件。若投入1元5角硬币,按下“可乐”、“雪碧”、或“红茶”按钮,相应的饮料就送出来。若投入的是2元硬币,在送出饮料的同时退还5角硬币。

  1.分析输入输出

  输入:C1投入1.5元硬币

     C2投入2元硬币

     C3按下“可乐” 按钮

     C4按下“雪碧” 按钮

     C5按下“红茶” 按钮

  输出:EF1退还0.5元硬币

     EF2送出“可乐”

       EF3送出“雪碧”

     EF4送出“红茶”

  2.分析输入之间的关系

    1)C1与C2为异或关系

    2)C3、C4、C5因投入硬币最多为2元 所以分析为异或关系

    3)C1(C2)与C3(C4、C5)为且的关系

    4)EF2、EF3、EF4为异或关系

    5)EF1与EF2(3、4)没关系

  3.分析什么原因导致结果

    1)EF1:C2与C3(4、5)导致EF1

    2)EF2(3、4):C1(2)与C3(4、5)导致

  4.画出因果图

    

  5.根据因果图画出判定表、人为删去判定表中不可能发生的情况。

  

  6.设计用例 就行了