zoukankan      html  css  js  c++  java
  • 3.5 黑盒测试方法-逻辑推断法

    一、使用因果图法设计测试用例

    1.1 因果图法概述:

         在一个功能模块或一个界面中,往往会有多个控件,这些控件一般会有一定的制约关系或者是组合关系,并且输出依赖于输入的条件。如 果只是单独去测每个控件,往往使测试有很多冗余数据,同时又会造成测试的不全面,遗漏 一些数据,这样,在设计测试用例时,可以使用因果图法,考虑这些输入的组合以及输出对 输入的依赖关系。

    1.2 因果图的核心:

        因果图的“因”---可以理解为输入条件嘛

        因果图的“果”---对应当然为输出结果了^_^

       因果图法要考虑

       所有输入条件的相互制约关系以及组合关系输出结果对输入条件的依赖关系,也就是什么样的输入组合会产生怎样的输出结果,即“因果关系”。

    1.3 因果图中的基本符号:

    1.4因果图中的约束条件:

    1.5 使用因果图法设计测试用例大家可以参考以下几个基本步骤:

     (1)找出所有的输入条件

       (2)明确所有的输出结果

       (3)明确所有条件之间的制约关系以及组合关系

            哪些条件不能组合在一起

                哪些条件可以组合在一起

       (4)明确所有输出之间的制约关系以及组合关系

            哪些输出结果不能组合在一起(不能同时输出)

            哪些输出结果可以组合在一起(可以同时输出)

      (5)找出什么样的输入条件组合会产生哪种输出结果

      (6)根据因果图,写出判定表

      (7)根据判定表设计测试用例

    给大家介绍一个案例:

    交通一卡通自动充值软件系统需求

       ♦ 系统只接收50元或100元纸币,一次充值只能使用一张纸币,一次充值金额只能为50元或100元。

       ♦ 若输入50元纸币,并选择充值50元,完成充值后退卡,提示充值成功;

       ♦ 若输入50元纸币,并选择充值100元,提示输入金额不足,并退回50元;

       ♦ 若输入100元纸币,并选择充值50元,完成充值后退卡,提示充值成功,找零50元;

       ♦ 若输入100元纸币,并选择充值100元,完成充值后退卡,提示充值成功;

       ♦ 若输入纸币后在规定时间内不选择充值按钮,退回输入的纸币,并提示错误;

       ♦ 若选择充值按钮后不输入纸币,提示错误

    步骤1: 当然先找出所有的输入条件啦(有入口,也就知道出口了),并对所有条件进行统一编号

    输入:

           (1)投币50

           (2)投币100

           (3)选择充值50

           (4)选择充值100

    步骤2:  明确所有的输出结果,并进行编号

     输出:

        (a)完成充值、退卡

        (b)提示充值成功

        (c)找零

        (d)提示错误

     步骤3明确所有条件之间的制约关系以及组合关系(男女同样也是这样的准则,俗话说男女搭配,干活不累嘛^_^……But你喜欢他,她又不喜欢你,这能合得来嘛)

         哪些条件不能组合在一起(有制约关系)

         哪些条件可以组合在一起

    步骤4:明确所有输出之间的制约关系以及组合关系(明确某人与某人之间的关系,你总不能想干嘛就干嘛吧(·ν·)But你想干嘛呢,~(≧▽≦)/~啦啦啦)

        哪些输出结果不能组合在一起(不能同时输出)

        哪些输出结果可以组合在一起(可以同时输出)

    步骤5:找出什么样的输入条件组合会产生哪种输出结果(要了解结合了才会有结晶)

    步骤6:  根据因果图,写出判定表

    以此类推,得判定表为:

    步骤7:根据判定表设计测试用例

    对于因果图法,给大家又总结了几点人生大道理:

     (1)因果图法主要考虑控件之间条件的组合关系;

     (2)每个控件的条件不宜过多,最好为2个,比如按钮点击或者不点击,单选按钮选择还是不选择,复选按钮选择还是不选择;

     (3)如果控件较多,或者每个控件的条件较多,组合量将会很大,不宜使用因果图法。

    二、使用判定表法设计测试用例

      画因果图只是一种辅助工具,通过分析最终得到判定表,再通过判定表编写测试用例。但有时画因果图非常麻烦,影响测试效率,所以在应用熟练了以后,可以直接写判定表,进而编写测试用例,在上一例题中,也大概给大家介绍了一下,在这也不多介绍了,凡是要细细体会,“阳光总在风雨后”……

    您的关注与支持是我前进的动力!--Gavin

    http://www.cnblogs.com/zwh-Seeking/

  • 相关阅读:
    ThreadLocal解析
    AIO,BIO,NIO,IO复用,同步,异步,阻塞和非阻塞
    MySql语句
    《Redis开发与运维》
    项目相关
    垃圾回收相关算法
    垃圾回收概述
    StringTable
    执行引擎
    对象的实例化内存布局和访问定位
  • 原文地址:https://www.cnblogs.com/zwh-Seeking/p/5306390.html
Copyright © 2011-2022 走看看