测试用例设计的关键点

测试用例设计是每位软件测试工程师必须的基本技能之一。无论是靠测试经验,还是靠理论,在时间充足的情况下,最好一 一设计测试点,避免在执行测试时部分测试点被遗漏;在时间紧急的情况下,也应以思维导图的方式列出测试点。

1 测试用例基本概念

测试用例,即执行测试之前编写的指导测试过程的文档,主要包括:用例编号、测试目的、用例描述、预期结果。其编写原则:准确性、层次性、简洁性、可重用性、适用性、可跟踪性、可读性、合理性。具体可分为:

  • (1)用例编号
    a-b-c-d【a:产品或项目名称、 b:用例属性、 c:子项的表述(比如:用户管理)、d:编号】
  • (2)测试项
    比如:用户管理 - 注册
  • (3)测试标题
    测试标题对测试项的一种细分描述。
  • (4)用例属性
    用例属性不是所有公司都有的,与测试周期、测试目的、测试策略和测试风险相关的,如:功能测试 / 性能测试 / UI测试 / 兼容性测试 / 接口测试 / 安全性测试 / ……
  • (5)用例级别
    一般分为:低(GUI或者文字描述类或者易用性表述)、中(主项流程经过备选流处理或者经过异常处理能够正确实现)、高(实现主体功能的用例)三个等级划分。
  • (6)用例描述
  • (7)预置条件
  • (8)测试输入
  • (9)测试操作步骤
    比如登录界面:Step1:输入用户名、密码、验证码;Step2:点击【登录】按钮。
  • (10)预期结果
    一方面是预期界面表现;另一方面是预期功能表现
  • (11)实际结果
    如果预期结果与实际结果不一致,则存在Bug。

2 测试用例设计方法


编写设计测试用例的方法:等价类划分、边界值分析、错误推测法、因果图、判定表驱动分析法、正交排列法(正交试验)、场景法(流程分析法)、测试大纲法、状态转换图(状态转移法)、形式化方法、功能图分析法

  • 等价类划分
    只要有数据输入的地方(包括选择数据的地方),把无限的数据进行等价类划分,可以减少用例的数量。有效等价类:对测试有用的划分、无效等价类:对测试无用的划分。
  • 边界值分析
    找到有效数据、无效数据的分界点,对分界点(最大值、最小值)及其两边的点进行测试。
  • 错误推测法
    根据测试经验,进行错误推测,列举出所有可能的错误或容易发生错误的操作,进而追加一些测试用例。
  • 判定表驱动分析法(因果图)
    考虑多个控件的组合,会产生不同的输出组合(组合数量较少,而且要求考虑全面)。9个图形符号:4个基本符号、5个限制关系。
  • 正交排列试验法
    考虑多个控件,每个控件有多个取值,考虑不同控件取值的组合(参数配置类软件)(组合数量大,而且没有必要全部测试),用最少的组合达到最大的测试覆盖程度。
  • 场景法
    为了测试程序的主要业务流程、主要功能和错误处理能力(也包括等价类划分)。基本流:模拟正常操作、备选流:模拟用户错误的操作流程。
  • 测试大纲法
    涉及到多个窗口,每个窗口包含多个动作,找到每个窗口的动作之间的联系。
  • 形式化方法
  • 功能图分析法

在任何情况下都须用到边界值分析法,必要时用等价类划分法、场景法和错误推测法进行补充,其他方法视情况而定。

3 测试用例设计参考

为了尽可能设计出覆盖全面的测试用例,我们要参考相关技术文档(需求规格说明书、用户手册、原型图、开发设计文档)、结合开发出的软件、相关人员(测试工程师、开发工程师、用户)讨论结果以及相关方法经验。

  • 基于用户需求
    测试用例是从用户需求这个目的出发,考虑到页面的操作友好性、消息的展示面以及活动页的兼容性等是否符合各种场景,拆分原始需求,这些均是测试用例设计的出发点。
  • 基于开发代码
    基于代码实现的功能考虑,比如:编码采取前、后端分离的方式实现。在测试时,前、后端也分别进行测试,后端接口和服务根据代码层来保证接口或服务功能的完整性和正确性,而前端的测试用例则主要关注业务逻辑、数据,设定其测试用例的侧重点。
  • 基于业务流程
    基于业务流程,设计测试用例来验证需求对业务流程前后的影响,能否正确传递数据信息。
  • 基于业务经验
    对业务充分理解熟悉后,根据业务的熟悉度、技术的敏感度来做到不遗漏测试点。
  • 基于同行同业务标准
    在用户需求不明确的情况下,测试人员应参照同行同业务的一个相对规范标准来设计测试用例,以根据满足用户需求。
  • 基于测试类型
    不同类别的测试用例有相应用途,需要针对性设计。比如:在设计冒烟测试用例时,主要用来支持开发自测,以及开发提测之后测试工程师用来验证提测质量,如果该用例都不能通过,则将影响测试的正常开展;在设计功能测试用例时,以较少的用例尽可能覆盖较多的测试点和功能点,发现可能存在的问题。

4 测试用例设计工具

常用的用例设计工具有:Excel、Word、testlink、zentao、FreeMind,以及公司自研用例管理平台,根据每个公司的资源和个人喜好来定。

5 测试用例设计步骤

在测试用例设计时,通常情况下的步骤依次是:首先根据需求设计基本功能测试用例;接着进行设计边界值测试用例、状态转换测试用例和错误推测测试用例;然后进行设计异常测试用例;最后再进行设计性能和压力测试用例。

  • 第一:较好的测试用例一定是一个完备集合,能够使其覆盖所有等价类、边界值,尽大可能地运用等价类划分、边界值分析以及错误推测方法,而能否发现软件缺陷并不是衡量测试用例的好坏标准;
  • 第二:在设计用例时,不仅需要从软件功能需求出发,全面无遗漏地识别出测试需求非常重要;而且必须深入理解被测软件的架构设计、深入软件内部的处理逻辑,需求覆盖率、代码覆盖率能很好衡量测试执行的完备性。

测试用例设计好后,在进行测试用例评审之前,一定先自我检查,列出自我疑惑的测试点,以方便在产品、开发和测试相关人员评审用例时进行讨论解答或者补充。

  • 致谢
    若对大家有用,感谢点赞或评论;若有不足或补充之处,也感谢大家评论进行指正或完善。相信这是互相进步的开始!

【测试用例】测试用例设计的关键点总结相关推荐

  1. (转)测试用例的设计方法(全)之二 错误推断、因果图

    测试用例的设计方法(全)之二 (3)错误推测方法 一.    方法简介 1.         定义:基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法. 2.      ...

  2. 【软件测试】4、测试用例的设计

    众所周知,试图对软件进行完全的测试并发现全部的问题是一件不可能的任务,对于测试而言,最有效的思想就是努力使测试尽可能完全. 在这个过程中,测试用例的设计至关重要.因为软件测试最关键的问题是:如何从所有 ...

  3. 3.4 黑盒测试用例的设计方法 之 等价类划分与边界值分析

    3.4 黑盒测试用例的设计方法 具体的黑盒测试用例设计方法包括等价类划分法.边界值分析法.场景法.错误推测法.因果图法.判定表驱动法.正交试验设计法.功能图法等. 这些方法是比较实用的,但采用什么方法 ...

  4. (转)测试用例的设计方法(全)之三 判定表、正交实验

    测试用例的设计方法(全)之三 (5)判定表驱动分析方法 一.    方法简介 1.定义:判定表是分析和表达多逻辑条件下执行不同操作的情况的工具. 2.判定表的优点 能够将复杂的问题按照各种可能的情况全 ...

  5. 电梯的测试用例的设计点

    电梯的测试用例的设计点: 1.功能测试: ① 按钮功能,开门(运行中按开门键不开门),关门,电梯内按钮功能(电梯按键在按下时是否点亮,按错楼层是否可以取消) ② 上升,下降(每一层申请是否有效,是否可 ...

  6. 测试用例的设计-提高测试覆盖率

    前言 说到测试用例的设计,我想每个有过测试经历的测试工程师都会认为很简单,不就是:按需求或概要设计,得到软件功能划分图,然后据此按每个功能,采用等价类划分.临界值.因果图等方法来设计用例就行了. 但事 ...

  7. 软件测试之测试用例的设计

    目录 测试用例 什么是测试用例 测试用例的基本要素 评价测试用例的标准: 测试用例的设计方法 测试用例的总体设计方法还是基于需求设计 具体的设计方法(6种) 等价类划分 边界值 因果图(逻辑图) 正交 ...

  8. 测试用例的设计方法(全)

                                                 测试用例的设计方法(全) 等价类划分方法: 一.方法简介 1.定义   是把所有可能的输入数据,即程序的输入域 ...

  9. 02—测试用例内容包含、测试用例的设计点

    1.测试用例包含 用例编号 用例描述 [用例所属模块] 执行条件 预期结果 测试输入 实际结果 [测试人] [测试版本] [测试日期][备注] 2.测试用例开始写的时间 拿到对应的模块进行编写 3.测 ...

最新文章

  1. 数据科学中常见的9种距离度量方法
  2. Python基础编程——字典
  3. csharp DataTable and DataGridView delete a Row
  4. Linux系统普通用户切换省略输入用户名密码
  5. mysql identity 获取_如何获取MySQL中Identity列的种子值?
  6. Ansible初级应用
  7. extract 模板 php,PHP自定义函数实现assign()数组分配到模板及extract()变量分配到模板功能示例...
  8. 【语音加密】基于matlab语音加密【含Matlab源码 1303期】
  9. Webtrends的跨域访客跟踪机制
  10. 视频质量评价 VMAF,为何让人又喜又忧?
  11. 文件批量提取工具,从大量文件中批量提取指定文件的实现思路,文件批量复制
  12. 宝宝便秘,这些习惯都是元凶!
  13. UnicodeTOGB,能够将Unicode串转换成GB码,方便开发。
  14. sklearn.neighbors_Nearest Neighbors
  15. pc版android系统 app,掏空国产App,这国产系统究竟想干啥?
  16. java编写一个文件查找器
  17. Threejs入门之五:Threejs中的辅助对象
  18. 笔记本 服务器 性能,笔记本CPU性能天梯图2021最新6月
  19. 概率论-一维随机变量及其分布思维导图
  20. 【linux find命令】在目录中查找文件并删除文件

热门文章

  1. 【BZOJ】4292: [PA2015]Równanie
  2. 无需插件修改chrome浏览器UA标识为手机版
  3. Maven之(九)依赖关系
  4. Struts2+Spring+Hibernate 三大框架的合并集成
  5. 基因数据处理98之SparkBWA运行时spark on Yarn问题日志完整记录
  6. python模块 -- pymysql
  7. matlab作时间轴有关的图
  8. 浏览器「无痕模式」可能要没…
  9. Chrome无痕模式
  10. mysql之函数创建