美文网首页
3、测试用例设计方法

3、测试用例设计方法

作者: 猪儿打滚 | 来源:发表于2020-04-17 16:52 被阅读0次

    介绍几种常用的测试用例设计方法

    • 场景法
    • 等价类
    • 边界值
    • 因果图
    • 错误推测

    一、场景法

    场景法是对系统的功能点或业务流程的描述来进行设计,模拟出用户的正常操作流程和异常的流程,也就是基本流和备选流。一般情况下是一条基本流,N条备选流。
    其中,基本流就是每个步骤都是最正常的情况;备选流就是有步骤不是最正常情况,导致生成的新分支。

    设计步骤
    • 根据说明,描述出系统的基本流以及各种备选流
    • 根据基本流和各种备选流生成不同的场景
    • 对每一个场景生成相应的测试用例
    • 对生成的测试用例进行复审,去掉多余的用例。测试用例确定后,对每一个测试用例进行测试数据的确定
    个人经验
    • 编写测试用例前,先使用场景法编写出系统的基本流和各种备选流并进行整理,然后再利用其它测试用例编写方法来细分测试用例以及确定各个用例上的测试数据(等价划分法、因果图法、边界值法等)。
      在这过程中,场景法主要目的是把流程上的相关联测试点给串起来,但是不要太纠结所有的情况,只需要把主要功能测试点给串联起来即可,不过要以场景为主。
    • 编写场景的工具,推荐使用思维导图,比如说xmind,在线的可用processon
    例子
    图片来源本人公众号

    二、等价类/等价类划分法

    等价类划分法一般分成两类:有效等价类、无效等价类;等价类其实就是子集。

    • 有效等价类:对于条件来说是合理的,一般对应正常测试用例
    • 无效等价列:对于条件来说是不合理/无意义的、异常的,一般对应异常测试用例
    标准

    1、完备测试、避免冗余
    2、集合的划分,划分为互不相交的一组子集,而子集的并集是整个集合;子集互不相交:保证一种形式的无冗余性
    3、同一等价类标志一个测试用例;因为同个等价类中,往往在程序中的处理方式相同。比如说:

    • 输入框只能输入数字
      1.有效类:数字
      2.无效类:非数字的元素(符号、英文、汉字等)
      3.有效类可以对应一条输入正常的用例;而无效类则可以对应一条输入异常的用例;用例的测试数据则是对应的有效类/无效类的值
    划分等价类的方法
    • 在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。如:输入值是学生成绩,范围是0~100。


      图片来源本人公众号
    • 在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可确立一个有效等价类和一个无效等价类。

    • 在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类。

    • 在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类。
      例:输入条件说明学历可为:专科、本科、硕士、博士四种之一,则分别取这四种的四个值作为四个有效等价类,另外把四种学历之外的任何学历作为无效等价类。(这个例子可以在设计上避免BUG,比如说该输入框做成下拉框选择项)

    • 在规定了输入数据必须遵守的规则情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。

    • 在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应在将该等价类进一步的划分为更小的等价类

    设计测试用例

    在确立了等价类后,可建立等价类表,列出所有划分出的等价类输入条件:有效等价类、无效等价类,然后从划分出的等价类中按以下三个原则设计测试用例:

    • 为每一个等价类规定一个唯一的编号;
    • 设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖的有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止;
    • 设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止
    例子

    列出正三角形的有效等价类和无效等价类(答案百度有)

    三、边界值

    边界值法是对等价类划分法的一种补充(等价类法得到的测试数据太多,几乎无限),一般是对等价类划分法的分类进行边界值划分。根据经验,大量的错误是出现在输入或输出的边界值上,因此针对各种边界值情况设计测试用例,可以查出更多的错误。
    不仅是考虑输入值的边界,也要考虑输出值的边界

    编写步骤
    • 根据被测对象的输入/输出的要求,确定边界值
    • 选取等于、刚刚大于、刚刚小于边界的值作为测试数据(最小值、略高于最小值、正常值、略低于最大值、最大值)
    • 上点、内点、离点
    上点、内点、离点
    • 上点:指的是边界上的点。如果是开区间,则是域外;如果是闭区间,则是域内
    • 内点:域内的任一点都是内点
    • 离点:离上点最近的点。如果是开区间,则是域内;如果是闭区间,则是域外
    • 例子:
      [66,88]:上点是66、88;离点是65、89;内点任意值
      (66,88]:上点是67,88;离点是66,89;内点任意值
      (66,88):上点是67,87;离点是66,88;内点任意值
    典型边界值

    if、while等语句的判断条件、定义域、值域边界、空、畸形输入、未受控状态等。
    拓展知识

    因果图

    因果图法是对等价类法的一种补充(等价类法没有考虑到多个输入情况的组合)。如果一个功能逻辑,涉及多个条件或控件,则这时候要考虑它们之间的组合关系,不同的组合之间会触发什么样的输出结果。

    步骤
    • 分析原因和结果分别是什么,一般情况下输入条件是原因,输出条件是结果
    • 给原因和结果进行编号
    • 根据功能需求的描述(条件),把原因、结果分别进行组合
    • 接着把原因和结果的组合进行组合关系
    条件

    与、或、非、恒等、唯一、包含、互斥

    错误推测

    定义

    靠经验和直觉推测系统可能存在的错误,从而有针对性地去检查这些错误的方法。嗯...看人的一种“方法”。

    前提

    分析系统中最容易出错的场景和情况,在此基础上有针对性地设计测试用例。需要完成的前提条件如下:

    • 深度熟悉被测系统的业务、需求
    • 对被测系统或类似系统之前的bug分布情况进行系统的分析。包括功能bug、数据bug、接口bug和UI的bug等
    例子
    1
    2
    3

    相关文章

      网友评论

          本文标题:3、测试用例设计方法

          本文链接:https://www.haomeiwen.com/subject/jgmlvhtx.html