如何优雅编写测试用例

当你学会了如何设计测试用例之后,接下来便是开始用例的编写。

在设计阶段,更准确的说应该是识别测试点的过程,而编写阶段则是将测试点细化成一条条测试用例的过程,有了比较全的用例场景后,如何让别人更舒服、更方便、更清晰地去使用你的测试用例,如何更优雅地展示你的测试用例,如何让领导对你的测试用例满意呢?(“降本增效”,这里的“效”有时也指的是“效果”)

测试用例的编写是每一个测试工程师安身立命的家伙,也是测试的基础,更是软件测试的核心内容,正所谓“基础不牢,地动山摇”,所以一定要掌握好,有些转行的小伙伴一上来就开始自动化、性能的学习,却忽略了最基础的东西,这是不对的。

正好最近有小伙伴问到关于用例模板的问题,借此机会来聊一聊“如何优雅编写测试用例”这个话题。

PS:需要用例模板的点击文末小卡片领取

在编写测试用例之前,首先应该根据所在公司、项目组的特点,提前制定好对应的测试用例模板以及用例维护方式,比如:Excel、XMind、TestLink、禅道等。

测试用例的组成通常包含以下内容(具体字段根据业务需要取舍):

  • 用例编号

    作为测试用例的唯一标识。编号取值规则可以根据项目名称各中文首字母大写+六位数字构成,例如:“蔡坨坨电商项目”在登录功能子模块的第一条用例编号可取值为CTTDS_000001

  • 用例标题

    又称之为测试点,用一句话来描述测试用例的关注点,每一条用例对应一个测试目的。

    一个好的测试用例应该关注标题的规范性,一般来说如果设计用例标题不规范,别人在使用你的测试用例时,就无法做到清晰明了,就会浪费很多时间在沟通上。

    并且需要控制用例的粒度,从测试执行者的角度来说,过细的测试用例会让执行者感到疲惫繁琐,过粗的测试用例又容易导致检查点遗漏。所以测试用例标题一般控制在30个字以内。

  • 功能模块

    根据项目模块层级关系填写,例如:组织权限。

  • 测试目的

    简要的测试目的,例如:账号密码功能校验。

  • 前置条件

    用例在执行之前需要满足的一些条件,否则用例无法执行,如测试环境,需要提前执行的操作等,例如:进入到某一页面。

    测试用例其实就是在某种场景下,执行一定的动作,达到什么样的结果。而前置条件决定了“在某种场景下”,所以是不可或缺的。

  • 优先级

    根据需求的优先级来定义,高优先级要覆盖核心业务,重要特性以及使用频率比较高的部分。

    级别的枚举值也有多种形式,比如:P0\P1\P2\P3,1\2\3\4,高\较高\中\低。

    冒烟测试(高)、基础用例(较高)、特殊场景用例(中)、错误场景用例(低)。

  • 操作步骤

    测试用例的步骤描述,执行人员可以根据测试步骤完成测试的执行,一般只需要写和测试目的密切相关的步骤,一些基础的步骤可以放在前置条件中,例如:1.输入正确的账号2.输入错误的密码3.点击登录按钮4.查看结果。

    用例步骤一般不多于7步,不少于2步。

    操作步骤也是不可或缺的一部分,因为它关系到如何执行。

  • 测试数据

    在执行测试时,需要输入一些外部数据来完成测试。这些数据根据测试用例的统计情况来确定,有参数、文件或数据库记录等,例如:账号:admin,密码:123456。

  • 预期结果

    测试用例中最重要的部分,主要用来判断被测对象是否正常,例如:提示用户名或密码错误。

    预期结果关系到用例需要达到什么样的结果,所以也是不可或缺。

  • 执行结果

    每条用例的实际执行结果,只有三个枚举值:PASS(通过)、FAIL(不通过)、N/A(未执行)。

    预期结果一般不超过5个,不少于1个。

  • 对应的 Bug Id

    每条测试用例执行不通过后再记录对应一条Bug,例如:BUG-1219。

  • 编写人

    用例对应的编写人员,填写编写人员姓名,例如:测试蔡坨坨。

  • 执行人

    用例对应的执行人员,填写执行人员姓名,例如:测试蔡坨坨。

  • 备注

    每条测试用例的备注,备注内容可以按实际情况填写,一般有备注的测试用例都比较重要,需要格外关注。

测试用例的编写并没有好坏和对错之分,每个人编写用例的思路也是各不相同,适合当前团队就是最好的,不要盲目把所有的字段都加上,应根据实际场景进行取舍。

除此之外,还有一些注意事项值得关注。

例如:

标题要清晰,推荐采用 场景+预期结果 进行描述,比如:输入正确的用户名和密码,成功登录系统;

控制用例的粒度,比如:标题字数不超过30个字、步骤数控制在2-7步、预期结果数在1-5个;

用例之间要解耦,日常工作中经常遇到几个用例有先后顺序的情况,比如:在测试编辑之前肯定要先新建一条数据,最好把新建放在编辑用例的前置条件中,每条用例都能实现闭环;

预期要明确,不要出现一些模糊字眼,对于不明确的点应该跟产品沟通;

拒绝冗余,用例可以多,但不要冗余,尽可能以最小场景覆盖最全的范围,同一个等价类只需测一条数据,当然,因为测试不可穷尽性,测试场景肯定不会最全面,往往会受限于时间和资源等成本,这时需要在有限的资源下,寻求质量和效率之间的平衡点,优先级这个字段就起到了作用,再引申就是测试策略的问题了,整体上采取基于风险驱动的模式,有侧重点地去验证一些场景,优先核心功能,或者增加资源和延长周期,同时寻求自动化相关技术去提升整体效率。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.kler.cn/a/3128.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux基本命令

相比Windows系统而言,在一般的企业开发中,使用linux系统无疑是更加广泛的,因此掌握常见的linux基本命令于我们来说是必要的,本文就是对Linux基本命令的简单介绍。 ls 列出当前目录下,所包含的目录及文件; …

宝刀未老?低代码何德何能受大厂们的推崇

风口之下,低代码蓬勃发展,本文从国内低代码的走红现象引入,浅析低代码发展中的变化趋势,重点探讨如此趋势之下,国内大厂如何通过低代码实现了良性发展。 一、国内爆火的低代码 据Gartner最新报告显示,到2…

WebSocket 测试工具

一、WebSocket 简介 WebSocket是一种在单个TCP连接上进行全双工通信的协议。 WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直…

Windows中: ‘ssh‘ 不是内部或外部命令 解决办法

目录 1. 先查看是否安装openssh -> 1.1 按下winR按键,输入services.msc,点击确定 -> 1.2 随便点一个 然后搜索o -> 1.3 有跳过2 , 没有看2 2. windows 安装 openSSH方式 -> 2.1 设置-> 应用-> 应用和功能-> 管理可选功能​编辑…

【Vue全家桶】详解Vue Router(一)

【Vue全家桶】Vue Router详解(一) Vue系列文章目录: 内容参考链接Vue(一)【Vue全家桶】邂逅Vue、Vue的多种引入方式Vue(二)【Vue全家桶】声明式编程、MVVMVue(三)【Vue…

内存操作函数

前言 🎈个人主页:🎈 :✨✨✨初阶牛✨✨✨ 🐻推荐专栏: 🍔🍟🌯 c语言进阶 🔑个人信条: 🌵知行合一 🍉本篇简介:>:介绍c语言中有关指针更深层的知识. 金句分享: ✨未来…

Portainer堪称最优秀的容器化管理平台

一、Portainer是什么? Portainer是一款开源的容器管理平台,支持多种容器技术,如Docker、Kubernetes和Swarm等。它提供了一个易于使用的Web UI界面,可用于管理和监控容器和集群。Portainer旨在使容器管理更加简单和可视化&#xf…

Visual chatgpt多模态大模型的前菜

刚开始感觉这就是一篇工程类文章,把各种的模型做了整合,把最近很热的两个方向chatgpt和文本生成图、图文提问整合在一起。看完文章发现自己太自傲了,绝对轻视了微软亚研院大佬们的实力。表面看起来这是一个用chatgpt做意图理解、对话管理&…

平板触控笔哪些品牌好?ipad触控笔推荐平价

苹果电容笔与平替电容笔两者需要根据我们的预算以及需求去选择,要是日常多用于用于绘画,建议可以用Apple Pencil,而对于日常仅仅用于学习与记笔记,可以用平替电容笔,由于平替电容笔的品质与表现都非常优秀。小编整理了…

第十三届蓝桥杯省赛 python B组复盘

文章目录前言主要内容🦞试题 A:排列字母思路代码🦞试题 B:寻找整数思路代码🦞试题 C:纸张尺寸思路代码🦞试题 D:数位排序思路代码🦞试题 E:蜂巢思路代码&…

Spring Boot 自定义应用开发框架九——基本增删改查“低代码”框架初设计2 未完待续

上一篇简单讲了下基础增、删、改、查基础操作的低代码处理的一种模式,而在实际项目中分页列表是最重要的一块,因为分页列表是每一个模块的切入点,基本所有的功能都是围绕分页列表展开,例如搜索、分组、导出、增、删、改等等。 分…

MySQL的COUNT语句,竟然都能被面试官虐的这么惨!?

关于数据库中行数统计,无论是MySQL还是Oracle,都有一个函数可以使用,那就是COUNT 但是,就是这个常用的COUNT函数,却暗藏着很多玄机,尤其是在面试的时候,一不小心就会被虐。不信的话请尝试回答下…

通信工程考研英语复试专有名词翻译

中文英文频分多址Frequency Division Multiple Access码分多址Code Division Multiple Access时分多址Time Division Multiple Access移动通信mobile communication人工智能artificial intelligence水声通信Middle-Range Uwa Communication正交频分复用Orthogonal frequency di…

【数据结构入门】-二叉树的基本概念

个人主页:平行线也会相交 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 平行线也会相交 原创 收录于专栏【数据结构初阶(C实现)】 今天的内容可是一个大头,比以往学的内容上了一个档次。大家对于这块内容一定…

Linux系统编程 - 基础IO(IO操作)

目录 预备知识 复习C文件IO相关操作 printf相关函数 fprintf snprintf 读取文件 系统文件IO操作 open函数 umask()函数 open函数返回值 预备知识 1.你真的理解文件原理和操作了吗?不是语言问题,是系统问题2.是不是只有C/C有文件操作呢&#x…

【Linux】进程理解与学习(Ⅰ)

环境:centos7.6,腾讯云服务器Linux文章都放在了专栏:【Linux】欢迎支持订阅🌹相关文章推荐:【Linux】冯.诺依曼体系结构与操作系统进程概念什么是进程?进程是什么?我们打开任务管理器可以看到有…

Vue项目实战 —— 后台管理系统( pc端 ) —— Pro最终版本

前期回顾 开源项目 —— 原生JS实现斗地主游戏 ——代码极少、功能都有、直接粘贴即用_js斗地主_0.活在风浪里的博客-CSDN博客JS 实现 斗地主网页游戏https://blog.csdn.net/m0_57904695/article/details/128982118?spm1001.2014.3001.5501 通用版后台管理系统,如果…

【Selenium自动化测试】滑动解锁与窗口截图、关闭

滑动解锁 滑动解锁是目前Web测试中最常遇到的,常见于登录验证之类的场景,针对滑动操作,webdriver提供了ActionChains类来处理此类场景的操作。下面通过两个例子来了解下如何使用。 # case1 from time import sleep from selenium import we…

Spring Boot 实现多文件上传

文件上传 Spring Boot代码 代码结构: Controller层 package com.yqifei.upload.controller;import io.swagger.annotations.Api; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile;import javax.serv…

“提效”|教你用ChatGPT玩数据

ChatGPT与数据分析(二) 上文给简单聊了一下为什么ChatGPT不能取代数据分析师,本文我们来深入感受一下如何让GPT帮助数据分析师“提效”。 场景一:SQL取数 背景:多数数据分析师都要用SQL语言从数据库中提取数据&#x…
最新文章