测试人如何编写测试用例?一文从3个方面带你写一个合格的测试用例

2023-11-16

前言

作为一个测试新人,刚开始接触测试,对于怎么写测试用例很头疼,无法接触需求,只能根据站在用户的角度去做测试,但是这样情况会导致不能全方位的测试APP,这种情况就需要一份测试用例了,但是不会写,求指教!还有就是测试出来的bug该如何追踪?与开发的接触基本上面对面的交流,没有很好的一个规范

带着问题学习是最高效的学习方法。

目录

一.什么是测试用例

二.为什么要写测试用例

三.如何编写测试用例


因此,在介绍如何编写测试用例之前,先看一个软件系统登录功能的测试(如下截图所示):

要做这个登录页面的测试用例,你会从哪些方面思考进行测试呢?

看似简单的页面功能能够设计多少条测试用例完成较全面的测试呢?10条以内?20条?.......

那么在给出上述答案之前,先带大家熟悉一下 什么是测试用例?测试用例有什么作用? 然后在结合上述抛出的案例抛砖引玉一起讨论 如何编写测试用例?

下面就是此文目录截图:

一、什么是测试用例

测试用例:为了特定的目的(证明软件存在某问题)而设计的一组由测试输入、执行条件、预期结果构成的文档

1、测试用例简单来说就是指导如何做测试的文档,该文档主要记录需要验证被测软件的是否满足需求

2、测试用例表现形式常见的有两种,可以以模板形式展示

1)一种是通过Excel直接编写

——大多数项目中都需要按照这种方式设计编写

2)一种是通过xmind直接整理测试点

——时间紧迫,项目没有强制要求时,可以设计测试点的形式编写
——对于业务流程类的测试,也可以整理为测试点进行测试

3、设计及执行人员:测试工程师

4、用例的模板:描述编写用例核心内容,一般项目都有自己的设计用例的模板,常见测试用例模板可参照如下:

 

二.为什么要写测试用例

为什么要写测试用例,实际中产品出现问题,第一责任人首先想到的是测试为啥没有测到?

产品出现问题了,你为啥没有测出来呢?

当然,除了避免“甩锅和背锅”,其实写测试用例更重要的作用如下:

  • 技术上将需求转化为具体可验证的指标
  • 以文档的形式记录软件可能存在的问题
  • 防止测试过程的活动出现遗漏,提高工作效率
  • 测试工作量的展示

三.如何编写测试用例

既然写测试用例如此重要,那么如何更好的编写测试用例呢?个人认为需要满足如下几点: - 常规思考,设身处地的从用户角度出发(比如:实际用户是这么使用的么,会不会遇到异常情况呢?) - 测试理论方法的支撑(比如:根据需求设计测试用例时,能用到哪些常见的测试用例设计方法?) - 产品的熟悉和经验的积累(比如:已经有过类型项目经验,曾经在某个方面有过问题,当时是如何处理的呢?) 上述的设计用例过程,有个前提,就是对于测试有耐心和毅力,加上日常有意识的思维训练,才会写出全面的用例。

1、常规思考

回归到开篇的问题,对于一个基本的登录页面,按照常规思路能否会想到如下截图的测试点呢?实际,这些测试点都是源于从用户角度出发,结合需求进行细化设计的过程。实际测试中是不是只有这些测试点呢?

2、学习积累

相信大多数测试工程师都能够想到上述基本的测试点,然在实际工作中面对的项目不同,设计测试用例的颗粒度也有不同的要求,如果针对上述登录的模块,更深入一层考虑呢?此时需要对产品的熟悉程度及测试经验的加持,而且这些点的设计是不断学习、熟悉项目、测试积累中得到的。

3、理论支撑

有了常规的思考,有了经验的积累,还需要理论的支撑。测试用例毕竟是通过人去思考设计,这个过程不可避免有疏漏。如何规避?实际就需要测试理论的支撑,个人认为深入思考设计用例不外乎以下两方面:

1)测试用例的设计方法

测试理论中很关键一块就是将需求拆分为具体的测试点,然后根据用例设计方法进行具体的设计,其中拆分需求的关键是熟悉需求,将文档中已有的描述内容,按照用户使用场景、个人测试经验的积累(如果有的话)、把大段的内容拆分成能够直接用用例设计方法的测试点,这样就直接可以通过简明扼要的文字描述转化为Excel的测试用例,在这个过程通俗理解就是拆分细化的过程,直到可以直接写用例验证一个具体的功能点即可。

其中熟知的设计用例方法有:

- 观察法

- 等价类、边界值

- 判定表、因果图

- 流程图、场景法

- 错误推测法等

2)测试设计的思路开拓

倘若按照需求将已有的描述信息都已经拆分完毕了,是不是就可以确保测试没有问题了呢?
其实不然,在上述基础上如果还需要再拓展全面测试,还需要借助于软件质量模型的特性,从这些特性出发,给予测试用例设计者更多的思考空间。这样的设计就更加的全面可靠。

常见软件质量模型特性说明:

- 功能性:功能有没有,好不好用

- 性能效率:对应系统的资源耗费程度及响应时间

- 易用性:容易理解、学习、使用

- 兼容性:能够兼容不同的软硬件平台

- 可靠性:不易出问题,万一出问题容易恢复

- 安全性:对于用户的安全保障(外在的人生安全、内在的信息安全等)

- 可移植性:能否在不同环境条件下无故障运行

- 可维护性:对于后期的修复维护是否方便快捷

因此,对于上述登录功能,按照上述质量模型的思路指导,就得到如下的测试点:

四、写在最后

此时的你再回过头来看看,还会认为登录这个百试不爽的功能就设计十几条甚至几十条测试用例了吗?显然不是那么简单,需要在熟悉需求基础上,进行拆分细化,将常规的思考、经验的积累、理论的支撑结合起来使用,最终才能转化为测试待验证的结果。

熟悉需求上第一步,在此基础上进行测试点的拆分细化,这个过程如果对于复杂一点的功能点,需要借助于测试用例的设计方法,对于页面级的测试点应用最多的不外乎是等价类、边界值。

仅仅熟悉了需要,还需要结合经验的积累,从质量模型的特性出发,进行全面的思考功能点的设计,是否出现遗漏的,是否有项目特殊要求的。

用例的设计不是一蹴而就的事情,好的用例也是需要不断的练习反复的修改评审,才能编写出卓越的用例。


 今天的分享就到此结束了 ,如果文章对你有帮助,记得点赞,收藏,加关注。会不定期分享一些干货哦......

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些对从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助……

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

测试人如何编写测试用例?一文从3个方面带你写一个合格的测试用例 的相关文章

  • 软件测试|Pydantic详细介绍与基础入门

    简介 Pydantic 是一个强大的 Python 库 用于数据验证和解析 特别是用于处理 JSON 数据 它的主要目标是使数据验证和解析变得简单 直观和可维护 本文将介绍 Pydantic 的基础知识 包括如何定义模型 验证数据以及处理错
  • 软件测试|Pydantic处理时间类型数据

    简介 我们之前介绍过使用 pydantic 验证数据 比如校验数据的格式等 但是在我们的日常工作中 还有一种数据是需要我们验证的 比如时间数据 时间数据不同于字符串 列表等数据 与他们的验证不一样 本文就来为大家介绍一下 pydantic
  • 软件测试|教你如何使用Python绘制出奥运五环旗

    简介 我们之前介绍过使用turtle来绘制正多边形 但是绘制正多边形只是turtle模块最基础的使用 我们可以使用turtle模块绘制出更多不一样的精彩图形 本文就来给大家介绍一个比较简单的turtle绘图实例 绘制奥运五环旗 初始化参数
  • 盲猜你不懂H5架构和原生架构的区别

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 一篇文章带你了解Python常用自动化测试框架——Pytest

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • Jmeter 性能-阶梯负载最终请求数

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 摸爬滚打多年的打工人,总结了三条职场真理,绝不假大空!

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 开眼了,自动化测试还能这样用?

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 新手也能看懂的【前端自动化测试入门】

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • MySQL 核心模块揭秘 | 03 期 | 我是一个事务,请给我一个对象

    每个事务都有一个对象 这篇文章我们聊聊 事务的对象从哪里来 要到哪里去 作者 操盛春 爱可生技术专家 公众号 一树一溪 作者 专注于研究 MySQL 和 OceanBase 源码 爱可生开源社区出品 原创内容未经授权不得随意使用 转载请联系
  • 甜蜜而简洁 —— 深入了解Pytest插件pytest-sugar

    在日常的软件开发中 测试是确保代码质量的关键步骤之一 然而 对于测试报告的生成和测试结果的可读性 一直以来都是开发者关注的焦点 Pytest插件 pytest sugar 以其清晰而美观的输出 为我们提供了一种愉悦的测试体验 本文将深入介绍
  • Python常用的自动化小脚本!

    一 list转json string转json 可以使用Python内置的 json 模块将列表 List 和字符串 String 转换成JSON格式 List转JSON假设我们有一个列表 List my list apple banana
  • 探索自动化测试断言:提升测试效率与质量的关键!

    前言 断言在自动化测试中起着关键的作用 它是验证测试结果是否符合预期的重要手段 如果在自动化测试过程中忽视了断言 那么这个测试就失去了其本质的意义 因为我们无法得知测试结果是否达到了预期的效果 因此 断言在自动化测试中的重要性不言而喻 那么
  • 软件测试/测试开发/全日制/测试管理丨Android WebView 技术原理

    Android WebView是一个内置的组件 允许在Android应用中嵌套显示Web内容 Android WebView的技术原理涉及到使用WebKit引擎来渲染Web内容 并提供一系列API和回调函数 使得开发人员可以控制和定制Web
  • 一文让你了解UI自动化测试

    测试都起什么作用 是项目的保险 但不是项目的救命草 测试无实际产出 但作用远大于实际产出 测试是从项目维度保证质量 而不是测试阶段 UI自动化 下面简称自动化 基于UI进行自动功能测试 以Web端作为例子 一般的UI功能自动化都是基于HTM
  • 15:00面试,15:06就出来了,问的问题有点变态。。。

    从小厂出来 没想到在另一家公司又寄了 到这家公司开始上班 加班是每天必不可少的 看在钱给的比较多的份上 就不太计较了 没想到9月一纸通知 所有人不准加班 加班费不仅没有了 薪资还要降40 这下搞的饭都吃不起了 还在有个朋友内推我去了一家互联
  • Web自动化测试 —— cookie复用

    一 cookie简介 cookie是一些数据 存储于用户电脑的文本文件中 当web服务器想浏览器发送web页面时 在链接关闭后 服务端不会记录用户信息 二 为什么要使用Cookie自动化登录 复用浏览器仍然在每次用例开始都需要人为介入 若用
  • 一文让你快速写出高效的软件测试用例

    前言 编写测试用例的目的就是确保测试过程全面高效 有据可查 但要编写出高效的测试用例 需要搞清楚什么是测试用例 以及如何编写出高效的测试用例 接下来将从以下几个部分来进行展开 1 什么是测试用例 2 如何编写测试用例 3 软件测试学习资源分
  • 一文从0到1手把手教学UI自动化测试之数据驱动!

    在UI的自动化测试中 我们需要把测试使用到的数据分离到文件中 如果单纯的写在我们的测试模块里面 不是一个好的设计 所以不管是什么类型的自动化测试 都是需要把数据分离出来的 当然分离到具体的文件里面 文件的形式其实有很多的 这里主要说明JSO
  • 软件测试面试:还没有自动化测试项目经验,3个项目帮你走入软测职场!

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自

随机推荐

  • C++并发编程框架Theron(8)——Theron中包含的类(二)

    1 前言 本篇文章主要接着上一篇来介绍Theron框架库中包含的类 上一篇中主要介绍了Theron下Actor Address AllocatorManager和Catcher类 在本篇文章中我会相继介绍DefaultAllocator E
  • 解决vscode找不到arduino esp8266头文件

    用Arduino IDE写ESP8266没有代码补全 不能跳转查看头文件 个人觉得这是最难受的 vscode装上Microsoft的arduino扩展后 有时候会找不到头文件 刚开始自己傻傻的一个个往includePath里面添加 后来在引
  • 决策树(Decision Tree)简介

    决策树 Decision Tree 及其变种是另一类将输入空间分成不同的区域 每个区域有独立参数的算法 决策树分类算法是一种基于实例的归纳学习方法 它能从给定的无序的训练样本中 提炼出树型的分类模型 树中的每个非叶子节点记录了使用哪个特征来
  • 李宏毅机器学习课程第4讲:Estimator

    李宏毅机器学习课程第4讲 Estimator 味儿太冲了 开头又是宝可梦哈哈哈哈哈 不过听了这一讲 我对于过拟合和欠拟合的理解更深刻了 李老师从Bias和Variance两个角度进行了解释 对 于 这 样 一 个
  • linux centos7 centos8 Rocky8.8 Rocky9.2 sed错误sed: -e expression #1, unknown option to `s‘解决办法

    报错如下 sed e expression 1 char 13 unknown option to s 需要替换的行为 monitor url http 192 168 25 100 8443 rest 查询资料得知 报错是因为替换的字符串
  • 高等数学(工本)填空题

    1 2 3 4 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 4
  • Error: listen EADDRINUSE: address already in use 127.16.20.217:8090

    端口占用npm run staert无效 今天遇到一个问题 就是在提交代码时怕把本地端口号提交到远程 然后将已经启用的端口设置为localhost 待提交完代码后再刷新页面 结果一直更新不出来 然后重启代码 终端报 Error listen
  • 怎么上传代码到GitHub

    怎么上传代码到GitHub 2021 9 我们想要把代码上传到github上面用git管理 但是怎么操作呢 首先在本地电脑安装git 和在github上面注册账号 git下载地址 git官网链接 然后我们要知道有二种方式可以配置操作 一种是
  • 机器学习有监督学习之--回归

    一 引言 本材料参考Andrew Ng大神的机器学习课程 http cs229 stanford edu 以及斯坦福无监督学习UFLDL tutorial http ufldl stanford edu wiki index php UFL
  • Linux 多线程调试(内存占用、死循环、CPU占用率高……)

    你的软件在某个时刻停止服务 CPU占用达到100 这种问题一个可能的原因是产生了死循环 假设程序某处存在潜在的死循环 并在某种条件下会引发 本文以一个示例来定位出现死循环的位置 当程序某处存在死循环 通常定位问题及缩小范围的方法是 在可疑的
  • 数据库Sharding集群:扩容问题解决方案

    数据库Sharding集群扩容问题方案 MySQLSharding集群一般按照用户id进行哈希分区 这里面存在两个问题 1 集群的容量不够怎么办 2 单个用户的数据量太大怎么办 一 问题一 对于第1个问题 MySQLSharding集群往往
  • UART与TTL

    一 首先UART和TTL完全就是两码事 UART是通用异步收发传输器 Universal Asynchronous Receiver Transmitter 通常称作UART 是一种串行异步收发协议 TTL电平信号规定 5V等价于逻辑 1
  • DataOutputStream 类与BufferedOutputStream类的区别是什么

    DataOutputStream 类与Buffere dOutputStream类的区别是什么 DataOutputStream dataout new DataOutputStream new FileOutputStream file
  • Google Earth Engine(GEE) 01-中输入提示快捷键Ctrl+space无法使用的问题

    Google Earth Engine GEE 01 中输入提示快捷键Ctrl space无法使用的问题 GEE中 Ctrl space组合键用于代码输入快捷提示 能够提高编码的准确度和速度 但是 windows系统默认Ctrl space
  • Windows下Jenkins的运行环境由Java8 升级为Java11

    开源 Devops 工具 Jenkins 在官方博客宣布 从 6 月 28 日发布的 Jenkins 2 357 和将于 9 月发布的 LTS 版本开始 Jenkins 需要 Java 11 才能使用 将放弃 Java 8 步骤 1 安装j
  • STM32CUBEMX配置教程(一)基础配置

    STM32CUBEMX配置教程 一 基础配置 基于STM32H743VI 使用STM32CUBEMX两年了 始终觉得这个工具非常的方便 但因为不是经常使用 导致有些要点总是会有些遗忘 因此写下这一系列教程以供记忆 顺便让我这个大萌新给广大小
  • c++智能指针之auto_ptr详解(有源码有实例)

    前言 内存泄漏大概是每一个c c 程序员最深恶痛绝的问题 因为大部分此类问题都是令广大c程序员很抓狂 掉头发的疑难杂症 而内存泄漏的根本原因就是指针的使用不当引起的 例如指针指向的内存没有释放 导致产生了程序无法控制的内存块 而随着程序不断
  • Pycharm连接MySQL

    使用MySQL内置工具 命令 创建数据库 unicom 数据表 admin 表名 admin 列 id 整型 自增 主键 username 字符串 不为空 password 字符串 不为空 mobile 字符串 不为空 Python代码实现
  • VC++实现视频压缩编码标准 MPEG-4

    转载请标明是引用于 http blog csdn net chenyujing1234 欢迎大家提出意见 一起讨论 需要源码的请与我联系 参考书籍 lt
  • 测试人如何编写测试用例?一文从3个方面带你写一个合格的测试用例

    前言 作为一个测试新人 刚开始接触测试 对于怎么写测试用例很头疼 无法接触需求 只能根据站在用户的角度去做测试 但是这样情况会导致不能全方位的测试APP 这种情况就需要一份测试用例了 但是不会写 求指教 还有就是测试出来的bug该如何追踪