zoukankan      html  css  js  c++  java
  • 编写测试用例的基本方法

    测试用例的基本方法包括:1.等价类划分法;
                   2.边界值法
                3. 场景法
                4.正交表法
                5.因果图法
                6.错误推测法
                7.判定表法
    在我们工作中,常用的方法为前三种:等价类划分法、边界值法和场景法,由于工作中主要用到前三种,我将介绍他们和考虑控件组合中自认为比较好的正交表法

    1.等价类划分法

    应用场景:多用于输入框

       等价类划分是指分步骤的把海量(无限)的测试用例集减得很小,但过程同样有效。等价类指某个输入域的集合,在这个集合中每个输入条件都是等效的,一般分为有效等价类无效等价类

    例如:我们要计算连个1~100之间的整数和

    如果要进行完全测试,加数共计需取100个值,加数2也一样,所以要测正常范围的就有1万种,如果不在这个区间中,就会穷举测试,那肯定是不可能的,由此引入了等价类划分思想

    有效等价类:指符合《需求规格说明书》,输入合理的数据集合
    无效等价类:指不符合《需求规格说明书》,输入不合理的数据集合

    2. 边界值法

    一般边界值分析是因为程序开发循环体时的区属可能会因为<,<=搞错

    确定边界值的方法:选取正好等于、刚刚大于或刚刚小于边界值作为测试数据

    在边界值中掌握上点和离点的取数

    上点:正好等于边界值的点,在这个区域集选上的点称为上点。
    离点:刚刚大于小于边界值的点,称为离点。

    例如:1~100之间的整数中四种情况分别取上点和离点 (重点)

    一、  [1,100]     上点为1和100;离点为0和101
    二、  (1,100)     上点为2和99;离点为1和100
    三、  (1,100]      上点为2和100;离点为1和101
    四、  [1,100)      上点为1和99;离点为0和100

    例2:由等价类划分中的例子接着来,如果加入边界值法,1~100区间取(上点),则为加数为1和为2,离点为0和101,故小于1情况取0,大于100情况取101

    根据边界值方法,测试用例修改如下:

     注明:边界值不是从每个等价类中挑一个作为代表,而是吧每个等价类的边界都进行测试。

    3.场景法

         现在的软件几乎都是用事件触发来控制流程的,事件触发时的情景便形成了场景,而同一时间不同的触发顺序和处理结果就行成了事件流。
      用例场景是通过描述流经用例的路径来确定的过程,这个流经过程要从用例开始到结束遍历其中所有基本流和备选流

    基本流:从系统某个初始态开始,经一系列状态后到达终止状态的过程中最主要的一个业务流程。

    备选流:以基本流为基础的每个判定节点出满足不同的触发条件而导致的其他事件流。

    例如 我们用ATM取款,我画了个简易流程图

                           图3.1 ATM取款简易流程图

    蓝色框代表主要场景也就是基本流,红色框代表备选流,*****备选流必须和基本流结合起来*****,
    假设场景备选流2,则为基本流1+备选流2,这个场景测完成功才会往下进行。

    4.正交表法

      正交实验设计包括两部分内容:1.是怎样安排实验;2.是怎样分析实验结果
     应用场景:在一个界面中有多个空间,每个控件有多个取值,控件之间可以相互组合,例如下拉框、选项框等,不可能(也没有必要)为每一种组合编写一条用例,如何使用最少最优的组合进行测试。--正交排列法

    判定表,因果图也是考虑控件组合,但是组合数量较少(一般不会超过20种)

    如下面案例

    • 这里正交表也是有工具的,我用的是正交设计助手,根据公式得出相应的正交表为L9_3_4

      

      

       直接获得: 
       
    编写不易,转载声明哈哈
    落后就要吃土,努力吧,骚年!!!
  • 相关阅读:
    iPhone网络编程之--Reachability
    ASIHTTPRequest 详解, http 请求终结者2
    什么情况下使用break关键字? 什么情况下使用Continue关键字? Java如何声明一个数组?JS如何声明一个数组?如何获取数组长度? 如何遍历数组?
    说说三元运算和if...else的相同之处? Switch语句的条件只能接受什么类型的值? 说说do...while和while的区别? 说说for循环的两种写法?
    String类的常用方法
    逻辑结算的结果是什么类型? 比较运算的值是什么类型? 声明字符串有哪几种方式?怎么写? Math类有哪些常用的方法? 三元运算怎么写?
    算术运算有哪些?逻辑运算有哪些?比较运算有哪些?
    Java中8种基本数据类型是哪些?
    Java如何声明变量?JS如何声明变量?
    回顾之前知识: 注释
  • 原文地址:https://www.cnblogs.com/u-damowang1/p/14725386.html
Copyright © 2011-2022 走看看