测试基础理论-需求转用例

一 前言

  • 在软件测试中,将需求转换为最终的用例是一个至关重要的步骤。然而,有人可能会认为,只需要对着需求文档翻译一遍就可以了,那么用例设计的意义究竟何在呢?

二 标准操作

1 解析需求

在用例设计的过程中,首先需要对需求进行深入的解析。这包括找出需求文档中的所有动词,并以此列出所有的测试点。在这个过程中,我们需要不断地发散思维,对于模糊不清的标准要及时与产品人员进行确认。

例如,对于一个弹窗的功能,我们可能需要考虑如下测试点:

  • 弹窗几秒消失
  • 弹窗样式等
  • 比如用户头像先读取缓存头像,没有的时候再去接口请求头像
  • 接口拿到头像后,是先写入缓存,还是先展示到app上

2 划定测试点测试范围

在列出所有的测试点之后,我们需要进一步审核并确定每个测试点的测试范围。这有助于我们更准确地评估测试的完整性和覆盖率。

例如,对于金额输入框的测试,我们可以划定的测试范围如下:

  • 功能:如金额类型的正确性、输入限制等。
  • 非功能:如金额的精确度、四舍五入规则等。
  • 接口:如接口返回非数字类型金额的处理方式等。

3 运用常见黑盒测试方法

在用例设计阶段,我们会根据测试点来编写相应的用例。为了确保用例的完整性和有效性,我们通常会采用一些常见的用例设计方法,如等价类、边界值和场景法等。这些方法可以帮助我们全面地覆盖各种可能的输入和场景,从而确保软件的质量和稳定性。

4 用例属性标头完善

  • 相对全面的用例标头
  • 需求编号
  • 用例编号
  • 测试项目
  • 测试标题
  • 重要级别
  • 预置条件
  • 输入参数
  • 执行步骤
  • 预期输出
  • 备注
  • 提交人

5 写用例规程

  • 设计一个用例的执行顺序,能让执行者可以大幅度减少执行时间
  • 比如播放器的俩条用例:“A:在播放过程中点击停止按钮” 和 “B:点击播放按钮后快进到1小时处。” 。这俩条用例如果按照A-B的顺序执行,那么执行者就要先 点击播放按钮-然后播放一段时间后点击停止按钮-然后再点击播放按钮-再快进到1小时处。
  • 如果按照B-A的顺序执行,那么就可以:先点击播放按钮-快进到1小时处-点击停止按钮 。即可完成俩条用例的执行了。节省了环境准备时间。
  • 编写用例规程对于新人来说,时间成本会增加,等到熟练了可以尝试编写

三 常用用例设计方法

  • 等价类、边界值、场景法、判定表、因果图

1 等价类

1.1 等价类测试基础

 1.1.1 等价类测试的作用

  • 等价类方法可在有限测试的情况下,用少量有代表性的数据,得到比较好的测试结果。

 1.1.2 等价类测试的思想

  • 把所有可能输入的数据,划分为若干个子集,然后从每一个子集中选取少数有代表性的数据作为测试用例。
  • 划分对于测试的作用
  • 完备性:各个子集的并是整个集合
  • 无冗余性:各个子集的交是空

 1.1.3 等价类测试的假设

  • 测试某等价类的代表值,就等效于对这个等价类中其他值的测试。

1.2 等价类划分

 1.2.1等价类划分的定义

  • 给定集合B,以及B的一组子集A1、A2……、An,这些子集是B的一个划分,当且仅当:A1∪A2∪…∪An=B,且 i≠j Ai∩Aj=Φ(并为整,交为空)。

 1.2.2有效等价类

  • 对于程序的规格说明来说,是合理的、有意义的输入数据所构成的集合。

 1.2.3无效等价类

  • 对于程序的规格说明来说,是不合理的、没有意义的输入数据所构成的集合。
  • 分别拒绝每一个有效条件。
  • 自然数–拒绝–负数、小数、有字母、有特殊字符、有中文、空格。
  • 注意非数字、空格、空白等。

 1.2.4 确定等价类的方法

  • 如果输入条件规定了取值范围或值的个数就可确定一个有效等价类和两个无效等价类。
  • 按照数值划分。如果规定了输入数据的n个值,且程序要对每一个输入值分别进行处理,可确定n个有效等价类和一个无效等价类。
  • 输入条件规定了输入值的集合或是规定了“必须如何 ”的条件,则可确定一个有效等价类和一个无效等价类。
  • 规定了输入数据必须遵守规则或是限制条件的情况下,可以确定一个有效等价类和若干个无效等价类。
  • 如果输入条件是一个布尔量,则可以确立一个有效等价类和一个无效等价类。
  • 如果已划分的等价类各元素在程序中的处理方式不同,这应将此等价类进一步划分成更小的等价类。
  • 特别注意默认值、空值、null、零值的情况。
  • 注意隐含条件。

1.3 等价类测试的分类

Alt text

 1.3.1 弱一般等价类测试(定其他变一)

  • 基于单缺陷假设,不考虑无效等价类
  • 测试用例设计
  • 选取的测试用例覆盖所用的有效等价类。

 1.3.2 强一般等价类测试(所有组合都取)

  • 基于多缺陷假设,不考虑无效等价类
  • 测试用例设计
  • 将每一个变量的有效等价类做笛卡尔积,设计测试用例覆盖笛卡尔积的每一个元素。

 1.3.3 弱健壮等价类测试用例

  • 单缺陷、考虑无效等价类
  • 测试用例设计
  • 对有效输入,使用每个有效等价类的一个值
  • 对无效输入,测试用例将拥有一个无效值,并保持其余的值都是有效的
  • 强健壮等价类测试
  • 多缺陷、考虑无效等价类
  • 测试用例设计
  • 从所有等价类的笛卡尔积的每一个元素中获得测试用例。

1.4 用等价类设计测试用例

  • 先划分等价类
  • 再建立等价类表
    Alt text
  • 最后设计测试用例
  • 为每一个等价类规定一个唯一的编号。
  • 设计一个测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类。重复这一过程直至多有的有效等价类全部被覆盖。
  • 设计一个测试用例,使其仅覆盖一个尚未覆盖的无效等价类,重复这一过程,直至所有的无效等价类全部被覆盖。

2 边界值

2.1 分析方法选择测试用例原则

  • 如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据。
  • 例如,如果程序的规格说明中规定:”重量在10公斤至50公斤范围内的邮件,其邮费计算公式为……”。作为测试用例,我们应取10及50,还应取10.01,49.99,9.99及50.01等。
  • 如果输入条件规定了值的个数,则用最大个数,最小个数,比最小个数少一,比最大个数多一的数作为测试数据
  • 例如,一个输入文件应包括1~255个记录,则测试用例可取1和255,还应取0及256等。
  • 将规则1和2应用于输出条件,即设计测试用例使输出值达到边界值及其左右的值。
  • 例如,某程序的规格说明要求计算出”每月保险金扣除额为0至1165.25元”,其测试用例可取0.00及1165.24、还可取一0.01及1165.26等。
  • 再如一程序属于情报检索系统,要求每次“最少显示1条、最多显示4条情报摘要”,这时我们应考虑的测试用例包括1和4,还应包括0和5等。
  • 如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例。
  • 如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例。
  • 分析规格说明,找出其它可能的边界条件。

2.2 点概念

  • 上点:输入域边界上的点
  • 离点:离上点最近的点。如果输入域为开区间,离点在有效范围内:如果为闭区间,离点在有效范围外
  • 内点:输入域范围内的点
  • [2,6],上点2,6(有效);离点1,7(无效)
  • [2,6),上点2(有效),6(无效);离点1(无效),5(有效)

测试基础理论-需求转用例
https://xuxuchao.github.io.git/2024/03/28/测试基础理论-需求转用例/
作者
Yonth
发布于
2024年3月28日
许可协议