zoukankan      html  css  js  c++  java
  • 因果图法

    基本概念

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

    设计测试用例的步骤

    1. 分析软件规格说明描述中, 哪些是原因(即输入条件或输入条件的等价类),哪些是结果(即输出条件), 并给每个原因和结果赋予一个标识符。
    2. 分析软件规格说明描述中的语义,找出原因与结果之间, 原因与原因之间对应的关系,根据这些关系,画出因果图。
    3. 由于语法或环境限制, 有些原因与原因之间,原因与结果之间的组合情况不可能出现,为表明这些特殊情况, 在因果图上用一些记号表明约束或限制条件。
    4. 把因果图转换为判定表。
    5. 把判定表的每一列拿出来作为依据,设计测试用例。

    需要掌握的知识

    原因和结果之间的关系
    (NOT、AND、OR、 NAND、NOR、恒等)
    恒等:如果原因为真,那么结果必定为真。
    例如:动物园运来大熊猫,动物 园一定有大熊猫

    与:只有2个原因都为真,那么结果为真
    例如:北京姑娘,必须有车且有房

    或:2个原因中有一个为真时, 结果就为真。
    例如:长沙姑娘,你有车或者有房

    非:只有原因为假,结果才为真。
    例如:你不好好学习,找到好工作

    原因和原因的关系
    各个原因之间不能同时为真,但可以同时为假
    (例如:小明不是11班学生,也不 是12班学生)

    实例1

    有一个处理单价为1元5角钱的盒装饮料的自动售货机软件。若投入1元5角硬币,按下“可乐”、“雪碧”、“红茶”按钮,相应的饮料就送出来。若投入的是两元硬币,在送出饮料的同时退还5角硬币。
    原因:① 投入1元5角硬币; ② 投入2元硬币;③ 按“可乐”按钮; ④ 按“雪碧”按钮; ⑤ 按“红茶”按钮。
    中间状态:① 已投币; ② 已按钮。
    结果:① 退还5角硬币; ② 送出“可乐”饮料③ 送出“雪碧”饮料; ④ 送出“红茶”饮料。

    实例2

    有一个处理单价为 5 角钱的饮料自动售货机, 软件测试用例的设计规格说明如下: 若投入 5角钱或 1 元钱的硬币,押下 〖橙汁〗或〖啤酒〗的按钮,则相应的饮料 就送出来;若售货机没有零钱找,则一个显示 〖零钱找完〗的红灯亮,这时在投入 1 元硬 币并押下按钮后,饮料不送出来而且 1 元硬 币也退出来;若有零钱找,则显示〖零钱找 完〗的红灯灭,在送出饮料的同时退还 5 角 硬币。 ”

    分析:
    条件的组合,适用因果图

    • 条件桩
    • 投入5角 c1
    • 投入1元 c2
    • 按下橙汁c3
    • 按下啤酒c4
    • 有零钱找c5
    • 无零钱找c6
    • 动作桩
    • [零钱找完]的红灯灭,退还5角钱,送出橙汁 e1
    • [零钱找完]的红灯灭,退还5角钱,送出啤酒 e2
    • [零钱找完]的红灯灭,送出橙汁 e3
    • [零钱找完]的红灯灭,送出啤酒 e4
    • [零钱找完]的红灯亮,退出1元钱,饮料不送出来 e5

    小结

    • 步骤
      1. 分析输入输出条件(确定因果关系)
      2. 画因果图
      3. 出判定表(分析、简化)
      4. 得出测试用例
    • 核心要点
      • 条件和规则
    • 适用范围
      • 适用于多种条件的组合
    • 局限性
      • 软件规模
      • 条件的顺序问题
  • 相关阅读:
    HDU1720 A+B Coming
    HDU1390 ZOJ1383 Binary Numbers
    HDU1390 ZOJ1383 Binary Numbers
    HDU2504 又见GCD
    HDU2504 又见GCD
    HDU1335 POJ1546 UVA389 UVALive5306 ZOJ1334 Basically Speaking
    HDU1335 POJ1546 UVA389 UVALive5306 ZOJ1334 Basically Speaking
    HDU1020 ZOJ2478 Encoding
    HDU1020 ZOJ2478 Encoding
    HDU2097 Sky数
  • 原文地址:https://www.cnblogs.com/TD1900/p/12190644.html
Copyright © 2011-2022 走看看