测试用例要如何写

2023-11-14

1、测试点与测试用例

测试点不等于测试用例,这是我们首先需要认识到的。

问题1:这些测试点在内容上有重复,存在冗余。

问题2:一些测试点的测试输入不明确,不知道测试时要测试哪些。

问题3:总是在搭相似的环境,做类似的操作。

问题4:测试点描述得太粗,不知道是不是测对了。

测试点是测试者在测试时需要关注的地方。虽然我们在分析测试点时,会使用各种测试方法,但这些方法在思路和操作上都是不同的,一些方法得到的测试点要细一些、具体一些,一些方法得到的测试点粗一些、泛一些是非常正常的。另外,谁也不能保证这些测试点之间不会重复或是相互包含。如果我们的测试就是按照这样一份粗细不一、深浅不明、关系不清的说明书来进行的,又怎么不会陷入既冗余又不足的困境中呢?

而测试用例是在测试点“加工”的基础上得到的。首先把测试点“去重”(去掉重复的内容)、“合并”(把太细的测试点合并起来)、“细化”(把太泛的测试点说清楚、说具体),然后再确定各个测试点的测试条件、测试数据和输出结果。

如果说测试点还只是一些散乱的测试思路的集合,那么测试用例就是一份真正能够指导测试的测试说明书。

2、测试用例设计流程

1、创建测试用例模板

2、设计基础测试用例

3、测试用例评审(内审+外审)

4、补充测试用例

5、扩展(探索性等)

3、编写测试用例

1、首先确定一个标准的模板

一般包含以下几项(可根据公司需要做裁剪或添加):

用例编号 所属模块 用例标题 优先级 适用阶段 前置条件 测试数据 操作步骤 预期结果 执行结果 备注

2、测试用例标题要是一个完整易懂的句子

能够清晰表达测试用例的测试目的和关键测试要素,只有当测试用例标题是一个完整的句子时,读者才能完整地了解这个测试用例的意图。

用例标题要求一句话简单描述(在/当。。。时候/之后/页面,主语+谓语+宾语)

3、用条件而不是参数来描述测试用例标题

如果你有对比就会发现,使用条件来作为测试用例标题,和使用参数相比,前者更能突出设计这个测试用例的目标,也易于读者理解测试用例的设计意图,也更易于维护。可见,在描述测试用例标题时,更适合用条件,而不是参数。

参数更适合在测试用例模板中的测试数据部分体现,不要把它们罗列在测试用例标题中。

4、如果一个用例中包含有多个参数,用例中应该是每个参数的取值

我们在写测试用例的时候,应该对涉及的每个参数给出确定的值。

5、不要在测试用例中引用别的测试用例

引用测试用例会给后期用例的修改、维护和移植带来麻烦。

我们会在测试用例中引用另外一个测试用例,在很大程度上是因为用例在执行中存在先后关系,即测试用例2一定会在测试用例1之后执行。这时我们可以考虑这样来编写测试用例:把测试用例1和测试用例2合并成一个大的测试用例。可以把测试用例1的主要内容放到测试用例2的预置条件中。

6、避免测试用例中包含过多的用户接口细节

用例执行者应该是专业人士,测试用例不必写得面面俱到。

7、明确测试步骤和预期结果的对应关系

一个测试用例通常会包含好几个测试步骤和多个预期结果。有时候不同的测试步骤可能会有相同的预期结果,为了描述简便,很多测试用例作者会省略相同的预期结果。另外,也不是所有的测试步骤都有预期结果,一般是重要、关键的测试步骤才会有预期结果。这时我们可以在测试用例中,增加简单的标记来明确测试步骤和预期结果之间的对应关系,让测试执行人员一目了然。

8、避免在测试步骤中使用笼统的词

我们在描述测试步骤时,需要尽量避免那些笼统的表述方式,如“反复”、“长时间”、“大量”等。因为这样描述,不同的测试执行者的理解会有所不同。比如“反复”,有人会认为执行两次就是反复了,有人可能会认为要执行至少10次,这样就会造成测试执行上的差异,很可能会达不到测试的效果。

例1:明确次数

问题:反复执行接口up/down的操作

解决方法1:在测试用例中确定反复的具体次数。

修改1:反复执行接口up/down操作100次。

解决方法2:也可以为测试用例确定一个反复的范围。

修改2:反复执行接口up/down操作至少100次。

解决方法3:如果反复多次执行某个操作多次后,会出现某种特定的效果(例如内存会升高到某个特别值),但是需要反复执行多少次这样的操作确并不确定,可以这样描述。

修改3:反复执行接口up/down操作,直至系统内存值达到最大值的45%。

例2:明确时间

问题:系统长时间转发HTTP业务

解决方法1:在测试用例中确定长时间的测试时长。

修改1:系统持续转发HTTP业务24小时。

解决方法2:也可以为测试用例确定一个长时间的测试时间范围。

修改2:系统持续转发HTTP业务至少24小时。

例3:明确数量

问题:大量用户同时连接服务器

解决方法1:需要确定大量的具体数量,如1000、2000。

修改1:2000个用户同时连接服务器。

解决方法2:可以以产品规格作为大量的参照值,如满规格、系统支持数的50%。

修改2:满规格用户同时连接服务器。

4、测试用例评估

测试过程评估分析的对象是测试用例、测试方法和测试投入。

为什么进行产品质量评估还需要对测试过程进行分析呢?试想对一个产品测试来说:

1、有充分完备的测试用例和没有测试用例进行随机测试相比,哪一种测试的结果更可靠?

2、使用了多种测试方法与测试方法单一相比,哪一种测试结果更有助于进行产品质量评估?

3、有经验的测试人员、充足的测试投入与没有经验的测试人员、测试投入不足相比,哪种测试情况更有利于测试目标的实现呢?

可见,对测试过程进行评估,对产品质量评估而言十分重要。不仅如此,如果我们能够在测试之前就对测试过程进行计划,还能帮助我们更好地进行测试,更好地完成产品的测试目标。

我们可以通过如下3个指标来对“测试用例”进行评估:

1、测试用例执行率

(1)测试阻塞 - 试用例因为产品开发(一般是指缺陷)、测试(如测试环境不具备)等原因,无法被执行的测试用例。

(2)未执行 - 可以执行,但是因为进度、人力或其他原因等还没有被执行的测试用例。

2、测试用例执行通过率

(1)首次执行通过率 - 测试用例首次执行通过率可以帮助我们评估开发版本的质量,测试用例首次执行通过率越高,说明开发的版本质量不错;相反,如果开发需要多次修复,最后才能使得测试用例执行通过,说明版本质量可能不高,产品在设计、编码方面可能存在一些问题,即便是修复bug,在修复时引入新bug的风险也会更大一些。

(2)累积通过率 - 测试用例累积执行通过率可以帮助我们评估产品在发布时的质量,一般说来,测试用例累积执行通过率越高,说明当前的版本质量可能已经达到了基本要求,可以考虑发布。

3、测试用例和非测试用例发现缺陷比

测试人员在按照测试用例执行测试的时候,也会抛开测试用例,自我发挥,做些随机测试。显然,随机测试也能发现缺陷,有时候甚至比测试用例更能发现产品缺陷,而且“突然一个灵感来了,然后去测试,并且真的发现了产品缺陷”的过程,会让人很有成就感。因此在团队中,我们往往会鼓励大家在执行测试用例的时候适当进行一些探索性测试,挖掘bug,找找感觉。

我们希望“通过测试用例发现的缺陷”和“探索性测试,也就是非测试用例发现的缺陷”的比值能够在一个合理的范围内。

5、跟踪测试用例执行情况

跟踪测试执行的目的有3个:

1、确保测试团队是按照测试策略来执行测试的。

2、实时关注缺陷,通过缺陷分析来确认测试策略是否合适,是否需要调整。

3、关注项目中的实时风险,基于风险来调整测试策略。

需要特别注意的是,按照优先级来执行测试用例,不是说我们一开始就只执行高优先级的测试用例,而不去执行中、低优先级的测试用例。

我们需要在测试刚开始的时候,对每个功能都执行一些基础性的测试用例,以确认这些功能基本可用,不会阻塞后续的测试。

配置测试→功能测试→功能交互→业务流程测试

现在我邀请你进入我们的软件测试学习交流群:746506216】,备注“入群”, 大家可以一起探讨交流软件测试,共同学习软件测试技术、面试等软件测试方方面面,还会有免费直播课,收获更多测试技巧,我们一起进阶Python自动化测试/测试开发,走向高薪之路。


资源分享

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

在这里插入图片描述

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

在这里插入图片描述

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

测试用例要如何写 的相关文章

  • Python自动化操作:简单、有趣、高效!解放你的工作流程!

    今天跟大家分享一套自动化操作流程解决方案 基于 Python语言 涉及 pyautogui pyperclip pythoncom win32com 依赖包 安装命令为 pip install pyautogui pip install p
  • Jenkins 插件下载速度慢、安装失败了!我教你怎么解决!

    Jenkins部署完毕 如果不安装插件的话 那它就是一个光杆司令 啥事也做不了 所以首先要登陆管理员账号然后点击系统管理再点击右边的插件管理安装CI CD必要插件 但是问题来了 jenkins下载插件速度非常慢 而且经常提示下载插件失败 真
  • 外包干了3个月,技术退步明显。。。。。

    先说一下自己的情况 本科生 19年通过校招进入广州某软件公司 干了接近4年的功能测试 今年年初 感觉自己不能够在这样下去了 长时间呆在一个舒适的环境会让一个人堕落 而我已经在一个企业干了四年的功能测试 已经让我变得不思进取 谈了2年的女朋友
  • 步骤详图 教你在linux搭建容器环境

    警告 切勿在没有配置 Docker YUM 源的情况下直接使用 yum 命令安装 Docker 1 准备工作 系统要求 要安装Docker CE 社区版 操作系统的最低要求是CentOS7 7以下版本都不被支持 卸载旧版本 Docker改版
  • 测试开发必知:有Tomcat,为什么还要Nginx?

    只用Tomcat 不用Nginx搭建Web服务 行不行 我曾经提出的愚蠢问题 今天详细给自己解释下 为什么必须用Nginx 不用Nginx 只用Tomcat的Http请求流程 浏览器处理一个Http请求时 会首先通过DNS服务器找到域名关联
  • 软件测试|使用matplotlib绘制多种折线图

    简介 在数据可视化领域 Matplotlib是一款非常强大的Python库 它可以用于绘制各种类型的图表 包括折线图 本文将介绍如何使用Matplotlib创建多种不同类型的折线图 并提供示例代码 创建模版 在绘图之前 我们可以先创建我们的
  • 软件测试|Python中如何提取列表中索引为奇数的元素

    简介 在Python中 我们经常需要从列表中提取特定位置的元素 如果我们想要提取列表中索引为奇数的元素 可以使用一些简单的方法来实现这一目标 本文将介绍如何在Python中提取列表中索引为奇数的元素 并提供示例代码来帮助大家更好地理解这个过
  • 软件测试|使用matplotlib绘制平行坐标系图

    简介 绘制平行坐标系图 Parallel Coordinates Plot 是一种用于可视化多维数据的强大方法 在这篇文章中 我们将介绍如何使用Matplotlib库创建平行坐标系图 以及如何解释和定制这种图表 我们将使用一个示例数据集来演
  • 软件测试|web自动化测试神器playwright教程(三十八)

    简介 在我们使用selenium时 我们可以获取元素的属性 元素的文本值 以及输入框的内容等 作为比selenium更为强大的web自动化测试神器 playwright也可以实现对元素属性 文本值和输入框内容的抓取 并且实现比seleniu
  • 软件测试|Python数据可视化神器——pyecharts教程(九)

    使用pyecharts绘制K线图进阶版 简介 K线图 Kandlestick Chart 又称蜡烛图 是一种用于可视化金融市场价格走势和交易数据的图表类型 它是股票 外汇 期货等金融市场中最常用的技术分析工具之一 可以提供关于价格变动 趋势
  • 软件测试|使用matplotlib绘制多种柱状图

    简介 在数据可视化领域 Matplotlib是一款强大的Python库 它可以用于创建多种类型的图表 包括柱状图 本文将介绍如何使用Matplotlib创建多种不同类型的柱状图 并提供示例代码 创建基本柱状图 首先 让我们创建一个基本的柱状
  • 如何写好一个错误报告

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

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

    引言 前一阵子有一个帖子引起了非常广泛的讨论 描述的就是一个公司的外包工作人员 加班的时候因为吃了公司给员工准备的零食 被公司的HR当场批评 这个帖子一发出来 让现在测试行业日益新增的外包公司备受关注 那么外包公司和非外包公司有什么样的不一
  • 最新整理Java面试八股文,大厂必备神器

    在此 我采访了数十名大厂的面试官和上百的的面试者 总结出了这一套Java面试八股文 这套八股文已经帮助了上百人拿到自己心仪的offer 我们先来看看这套八股文 Java基础面试八股文 操作系统中 heap 和 stack 的区别 什么是基于
  • 一文让你了解UI自动化测试

    测试都起什么作用 是项目的保险 但不是项目的救命草 测试无实际产出 但作用远大于实际产出 测试是从项目维度保证质量 而不是测试阶段 UI自动化 下面简称自动化 基于UI进行自动功能测试 以Web端作为例子 一般的UI功能自动化都是基于HTM
  • 外包干了2个月,技术倒退2年。。。

    先说一下自己的情况 本科生 20年通过校招进入深圳某软件公司 干了接近4年的 功能测试 今年国庆 感觉自己不能够在这样下去了 长时间呆在一个舒适的环境会让一个人堕落 而我已经在一个企业干了四年的功能测试 已经让我变得不思进取 谈了3年的女朋
  • Web自动化测试 —— cookie复用

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

    一 capability概述 capability是webdriver支持的标准命令之外的扩展命令 配置信息 配置web驱动属性 如浏览器名称 浏览器平台 结合selenium gird完成分布式 兼容性测试 官网地址 https www
  • Airtest自动化测试工具

    一开始知道Airtest大概是在年初的时候 当时 看了一下官方的文档 大概是类似Sikuli的一个工具 主要用来做游戏自动化的 通过截图的方式用来解决游戏自动化测试的难题 最近 移动端测试的同事尝试用它的poco库来做自动化 看样子还不错

随机推荐

  • AI小白快上车!这是发往高薪职位的车!

    欢迎大家前往腾讯云 社区 获取更多腾讯海量技术实践干货哦 本文由腾讯云AI中心 发表于云 社区专栏 AI到底有多火 看看下面这组数据 腾讯研究院 2017全球人工智能人才白皮书 报告中提到 现全球AI领域人才约30万 而市场对人才的需求在百
  • 【毕业设计 / 课程设计】 基于深度学习的人体动作姿势识别系统

    文章目录 0 项目说明 1 研究目的 2 研究方法 3 研究结论 4 目录 5 项目源码 0 项目说明 基于深度学习的人体动作姿势识别系统 提示 适合用于课程设计或毕业设计 工作量达标 源码开放 获取项目源码 https download
  • 常见的数据增强方式

    详见 Pytorch基础学习 第二章 Pytorch数据处理 Billie使劲学的博客 CSDN博客 pytorch 数据集处理
  • AI软件克隆你的声音,全球诈骗案件已屡次得逞!

    在2月28号刚于旧金山结束的RSA大会上 一家名为Pindrop的专门检测语音诈骗的初创公司再次向业内发出警告 网络诈骗份子已经开始借助AI软件克隆声音进行诈骗了 Pindrop的CEO 右 和CTO 左 图片来自网络 Pindrop的CE
  • Jupyter Notebook修改背景添加jupyterthemes后,输入‘jt -l‘,报错‘jt‘ 不是内部或外部命令,也不是可运行的程序

    目录 1 报错原因 2 继续操作 1 报错原因 jupyterthemes 装到了C Users bs AppData Roaming Python Python37 site packages中 然而 这个路径并不在环境变量的PATH变量
  • artipub点击“更新cookie状态“无任何反应

    作者 弗拉德 来源 弗拉德 公众号 fulade me artipub ArtiPub Article Publisher 的简称 意为 文章发布者 是一款开源的一文多发平台 可以帮助文章作者将编写好的文章自动发布到掘金 SegmentFa
  • jQuery的todolist案例实现

    想必大家都需要记录一些小事情 类似于记录生活 以后还能翻出来看看 本次就可以用jQuery来实现一下 对于本案例其实也不难 无非是一个增删查改加上本地存储缓存机制来实现的操作 下面就给出代码相关分析 相关样式资源可以私下找我 QQ35349
  • 如何杀掉其他人远程ssh的进程

    执行w 看当前远程的终端 执行pkill kill t pts 3 杀死pts 3的 ssh进程
  • VScode配置C/C++环境,MinGW,最新成功实例分享(win10)

    win10 VScode配置C语言 自己调试成功后 分享出来 首先下载VScode 这个十分简单 直接官网搜索最新的就行了 VScode下载官网VScode下载官网 然后安装 其中windows下支持C语言的编译 有两个好用的分别是MinG
  • 什么是Docker

    文章目录 一 什么是Docker 一 什么是Docker 微服务虽然具备各种各样的优势 但服务的拆分通用给部署带来了很大的麻烦 特别是一些大型项目组件较多 运行环境也较为复杂 部署时会碰到一些问题 依赖关系复杂 容易出现兼容性问题 分布式系
  • 简单使用matlab做回归分析、拟合分析

    简单使用matlab做回归分析 拟合分析 前言 一元线非线性回归 例子 多元线性回归 例子 多元线非线性回归 前言 这里是简单做一元非线性 及多元线性 一元 就是只有一个X 比如 y x 2 x 1 多元 就是多个X 比如 y x1 x2
  • Unity 小球在两点之间往返运动

    在Vectoer3类中有一个Lerp方法 可以让一个物体从一个点到另外一个点 如果要在 这里点加往返运动我们可以借助Mathf PingPong 这个方法 这个方法会从0 Lenght持续增加 达到最大值后 持续减小 然后到0 如此反复 每
  • 基于协同过滤算法实现选课推荐系统

    新版本教务管理系统 教务管理系统 选课功能 1 系统功能 1 用户账户管理 2 学生个人信息的查看与修改 3 学生的网上选课与课程的评分 4 教师个人信息的查看与修改 5 教师对学生课程评价结果的查看 6 管理员对学生信息与教师信息的查看与
  • 前端绘制地铁路线图

    前端绘制地铁路线图 前端可以使用多种技术绘制二维地图 以下是几种常见的方法 SVG SVG是一种基于XML的矢量图形格式 可以使用SVG元素绘制各种形状和路径 包括线 圆 多边形等 可以使用JavaScript库如D3 js来绘制SVG地图
  • 【推荐系统】{1} —— 基于用户的协同过滤算法

    协同过滤 英语 Collaborative Filtering 简称CF 简单来说是利用某兴趣相投 拥有共同经验之群体的喜好来推荐用户感兴趣的信息 个人透过合作的机制给予信息相当程度的回应 如评分 并记录下来以达到过滤的目的进而帮助别人筛选
  • 【Pytorch】Inplace operation(待完善)

    什么是Inplace操作 本质上讲 inplace操作是指将新值赋到原变量地址上的操作 目的是节约内存空间 例如inplace操作 x 1 假设原x值为0 储存在id为139973228650216的内存地址中 在进行该inplace操作后
  • 【LeetCode每日刷题】一单词长度的最大乘积

    一 题目 给定一个字符串数组 words 请计算当两个字符串 words i 和 words j 不包含相同字符时 它们长度的乘积的最大值 假设字符串中只包含英语的小写字母 如果没有不包含相同字符的一对字符串 返回 0 输入输出样例 示例1
  • LVS、Nginx、HAProxy、keepalive 的工作原理详解

    当前大多数的互联网系统都使用了服务器集群技术 集群是将相同服务部署在多台服务器上构成一个集群整体对外提供服务 这些集群可以是 Web 应用服务器集群 也可以是数据库服务器集群 还可以是分布式缓存服务器集群等等 在实际应用中 在 Web 服务
  • 阿里云ACK(容器服务)+ElasticWorkload弹性负载+HPA弹性伸缩实践

    背景 阿里云ACK kubernetes容器服务 高弹性 高稳定性 低成本解决方案 通过将ECI服务以虚拟节点的方式接入ACK容器集群 将集群中pod应用的固定量调度到现有的ACK容器服务的ECS node节点上 将集群中pod应用的弹性量
  • 测试用例要如何写

    1 测试点与测试用例 测试点不等于测试用例 这是我们首先需要认识到的 问题1 这些测试点在内容上有重复 存在冗余 问题2 一些测试点的测试输入不明确 不知道测试时要测试哪些 问题3 总是在搭相似的环境 做类似的操作 问题4 测试点描述得太粗