2.1 黑盒测试 :边界值测试、等价类测试、决策表测试、组合测试(课堂笔记)TBD

边界值测试:(例子,素材库)

  1. 要解决的问题

    1. 边界在哪

      1. 识别:位置、尺寸、数量、长度、速度…

      2. 可能的边界点:第一个/最后一个、最大/最小、最少/最多…

      3. 输入有边界值,输出也有边界值,可以从输出边界值反推输入边界值

    2. 如何定义边界的邻域

    3. 如何选择测试数据

    4. 如何设计测试用例

      1. 穷尽测试:在边界以及边界的邻域内选择所有的测试数据,数量多

      2. 基于多边界的测试:在边界和边界邻域内选择都是边界的测试数据,无法定位缺陷

      3. 穷尽有效测试:数据覆盖边界输入域内所有有效的数据,数量多

      4. 单边界测试:所有输入方案中,只有一个输入取边界值,数量多但能定位

  2. 流程:

    1. 确定有几个输入条件

    2. 确定每个输入条件的边界点

    3. 划定边界邻域Delta

    4. 每个边界对应三个测试数据

    5. 单边界设计测试用例

 

等价类测试:将无穷多数据缩减到有限个等价区域中,通过测试等价区域,完成穷尽测试

  1. 三个约束:

    1. 分而不交 – 划分出的任意两个等价类之间不存在交集,测试无冗余

    2. 合而不变 – 所有等价类的并集仍然是原始的输入域,测试无漏洞

    3. 类内等价 – 任意一个等价类中的数据相互“等价”,以一代全

  2. 如何划分等价类

    1. 有效等价类

      1. 对应有效输入域的数据

      2. 设计的测试用例用于检验被测系统是否能够完成制定功能

    2. 无效等价类

      1. 对应无效输入域中的数据

      2. 设计的测试用例用来考察被测系统的容错性

  3. 如何设计测试用例(例子,素材库),覆盖标准:

    1. 弱覆盖:测试用例覆盖所有有效等价类

    2. 强覆盖:测试用例覆盖所有有效等价类的所有组合

  4. 针对输入域的流程:

    1. 确定有几个输入条件

    2. 划分每个输入条件的等价类

    3. 选择合适的覆盖标准

    4. 设计测试用例

  5. 陷阱:

    1. 确定输入域时,可能会改变原始的输入域

      1. 有两种方式划分等价类:

        1. 基于系统实现的等价类划分:从程序员实现系统的角度出发,关注接口

        2. 基于用户需求的等价类划分:从用户的角度出发,关注隐含的系统内部处理流程

    2. 对于有效等价类和无效等价类可以用相同方式进行等价类测试吗

      1. 对无效等价类设计测试用例时,应采用单缺陷原则

      2. 对有效等价类设计测试用例时,应确保每个测试用例覆盖的均为有效等价类

    3. 如何选择合适的覆盖标准

      1. 划分出最多有效等价类的输入条件决定弱覆盖标准的最少测试用例数

      2. 强覆盖标准下,测试用例的数量是每个输入条件所拥有的有效等价类数量的乘积

    4. 等价类测试真的和理论上一样,没有漏洞和冗余吗

      1. 当等价类划分不彻底时,将导致测试的漏洞

        1. 对策:划分等价类时务必仔细分析需求,严格保证数据的等价

      2. 当输入条件之间存在关联时,引入独立性原则将导致测试的冗余

        1. 对策一:尽量基于关联性划分等价类

        2. 对策二:创建决策表(后续)

  6. 针对输出域的流程:

    1. 确定有几类输出结果

    2. 对每类输出结果划分等价类

    3. 选择合适的覆盖标准,将等价类组合起来

    4. 设计测试用例

  7. 基于场景的测试(基本原理,素材库)

    1. 复杂系统的黑盒测试

      1. 应从全局把握业务流程

      2. 了解功能模块

      3. 局部细节的测试设计

    2. 场景法产生的原因

      1. 越来越多的系统采用事件触发来控制流程

      2. 事件触发时的情景形成场景

      3. 同一事件不同的触发顺序和处理结果形成事件流

    3. 以事件流为核心的场景法是高层测试用例设计的基础,在功能测试中使用较多

    4. 定义基本流和备选流

      1. 基本流

        1. 从初始状态开始经过一系列状态后到达终止状态的一个业务流程

        2. 应选择容易出错的,或者出错后导致损失严重的高风险事件流作为基本流

          1. 操作频率高

          2. 涉及业务规则复杂

          3. 涉及重要功能

          4. 涉及用户类型广泛

          5. 涉及用户数量多

          6. 涉及交互复杂

      2. 备选流

        1. 节点形式

          1. 起始节点从基本流的某个判定节点开始

          2. 起始节点从备选流的某个判定节点开始

          3. 终止节点可以是基本流上的某个状态

          4. 终止节点可以是其他的系统终止状态

          5. 备选流上的每个节点执行后,可以继续往下执行(判定结构),也可以返回基本流上的某个节点继续执行(循环结构)

      3. 基本流和备选流的区别

        1.  

      4. 场景

        1. 基本流与备选流的有序集合

        2. 一个场景至少包含一条基本流

      5. 场景爆炸问题

        1. 当基本流中存在循环时,会产生大量备选流

      6. 从场景设计测试用例

        1. 找到输入条件

        2. 判断是否有效条件

        3. 判断是否触发条件

        4. 需要取哪些测试数据

        5. 得到系统预期输出

      7. 测试中至少需要确保系统基本流的执行是正确的

 

决策表测试

  1. 由于输入条件之间存在关联,独立的划分等价类将导致测试的冗余,决策表用于消除这种冗余

  2. 特性

    1. 保证完备,没有漏洞

    2. 消除测试用例的冗余

  3. 消除测试的冗余

    1. 建立表格

    2. 将等价类测试用例填入表格

    3. 对相似的测试用例合并化简

 

组合测试

  1. 组合问题:无限的软件输入空间,用有限的输入空间来表示

  2. 正交表测试(核心:正交表)

    1. S:输入条件个数

    2. q:取值个数

    3. n:测试用例的个数

    4. 公式:

    5. 要求:
      1. S>=实际输入条件个数
      2. q
      3. n>=实际最少测试用例数
    6. 行数=1+4*(3-1)=9

    7. 特点:数据均匀分散,保证测试的代表性

 

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年3月16日
下一篇 2020年3月16日

相关推荐