测试用例编写详解

news2024/10/5 20:16:47

🍅 视频学习:文末有免费的配套视频可观看

🍅 关注公众号【互联网杂货铺】,回复 1 ,免费获取软件测试全套资料,资料在手,涨薪更快

一、概念

测试用例的基本概念:

测试用例(Test Case)是为了实施测试而向被测试的系统提供的一组集合,这组集合包含:测试环境、操作步骤、测试数据、预期结果等要素 。

主要步骤:

测试环境——测试步骤——测试数据——预期结果

网易邮箱注册成功测试用例

标题:邮箱注册,邮箱输入项测试

简单案例:

image-20220109225709851

二、测试用例总体设计方案

基于需求的设计,RBT( Requirements-Based Testing)是基于需求的测试方法,会使测试更加有效,因为 它使测试专注于质量问题产生的根源,即需求。【点击文末小卡片免费领取测试资源】

1、从整体角度设计分析测试用例:基于需求

用户需求——(整理出软件需求)产品设计文档(产品经理)——开发——测试——上线

(1)、验证需求的正确性和合理性

(2)、分析需求、细化需求、从需求中分解出测试项 ,根据测试项找出功能,进行测试用例的编写。

案列:

用户需求:
购买3000块钱以内的华为智能手机 。

假如说:有一个活动秒杀 5999 为1块钱,这样也是发河价格的。

测试用例:

(1)合理

(2)分析:

价格:<=3000;

品牌:华为

手机类型:智能手机

手机基本功能:…

软件需求:
事件流

若用户未收到激活邮件,可在登录界面录入电子邮件及密码后,再次发送激活邮件 。
每次发送的激活邮件,仅在发送邮件后起24小时之内有效,超过24小时后需重新发送激活邮件
测试用例:

1、用户收到邮件,不在此发送激活邮件;

​ 用户收到邮件,再次录入电子邮件及密码,提示:已激活邮件;

​ 用户未收到邮件,再次发送激活邮件;

2、24小时以内,有效

​ 大于等于24小时 ,无效激活邮件

​ 边界值:24小时点击激活,25小时 重新发送邮件

容易忽略:24小时之内已经点击激活邮件,超过24小时又重新激活,将提示“系统已激活:。
 

测试激活邮寄的基本功能:

邮件能不能打开
邮件的格式,内容够是否正确;
邮件里面的激活链接是否正常;
这些是逻辑来测试用例。

1、等价类 ☆

等价类就是把输入划分成若干个等价类,从每一个等价类中取出一个测试用例,如果这个测试用例能够测试通过,那么我们就说这个测试用例代表的等价类测试通过。(衣柜分类衣服的例子)

通俗来讲,具有某种共同特征的数据集合进行划分!!

使用场景:测试用例无法穷举,我们无法一样测试。

有效等价类:符合程序规格说明的数据集合;

无效等价类:不符合软件需求规格说明的数据集合;

步骤:

案例一:
需求:验证qq账号的合法性
要求:6~8为自然数

案例一:

image-20220213174357895

 案例二(电话):

需求:验证某城市电话号码的正确性
要求:
1.区号:空或者是三位数字
2.前缀码:非“O”且非“1”开头的三位数字
3.后缀码:四位数字

image-20220214181555209

2、边界值 ☆

针对输入和输出的边界进行测试用例的设计。

案例:

购买3000元以内的华为只能手机

价格:<=3000, 3001就不行

等价类:

有效等价类:小于3000

无效等价类:大于3000

边界值:2999 3000 3001

2.1 边界值法设计用例步骤

1、明确需求

2、确定有效和无效等价类

3、确定边界范围值

4、提取数据编写测试用例

案例一:

需求:通过边界值法验证标题长度的合法性
要求:标题大于0,小于等于30个字符

image-20220214201754883

补充:边界范围节点:

 1、上点,边界上的点

2、离点,举例边界上的点最近的点(刚好大于,刚好小于)遵循 开内闭外 原则

3、内点,范围内的点。

优化:

边界上的点:开内闭外。

3、判定表 ☆

解决多条件的依赖问题。

1、定义:是一种以表格形式表达多条件逻辑判断的工具。

2、组成:

条件桩:列出问题中的所有条件
动作桩:列出问题中可能采取的操作
条件项:列出条件对应的取值,所有可能条件下的真假值
动作项:列出条件项的、各种取值情况下应该采取的动作结果。

规则:
1、判定表中贯穿条件项和动作项的一列就是一条规则
2、假设有n个条件,每个条件的取值有两个(0,1),全组合有2的n次方种规则

3、步骤:

​ 1)、明确需求

​ 2)、画出判定表

列出条件桩和动作桩
填写条件项,对条件进行全组合3)、根据条件项的组合确定动作项
简化、合并相似规则(有相同的动作)
​ 3)、根据规则编写测试用例

4、案列一:

image-20220215111953335

应用场景:
1、有多个输入条件,多个输出结果,输入条件之间有组合关系,输入条件和输出结果之间有依赖(制约)关系
2、判定表一般适用于条件组合数量较少的情况(比如4个条件以下)
3、提示:如果碰到项目中多条件组合大于4个相互依赖,可以使用
(正交表和因果图来实现)

4、因果图

当输入很多,并且不同的输入组合对应这不同的输出,这个时候用因果图法来分析不同输入组合和输出之间的对应关系。(相当于逻辑图) 

逻辑关系:恒等 与 或 非

image-20220110195249867

因果图法设计测试用例的步骤:

1、分析出所有的输入和输出;

2、找出输出和输出之间的关系;

3、画因果图;

4、画判定图;

5、把判定表转换成测试用例;

案例:淘宝618活动,订单满300,或者有红包,测提交订单后享受优惠。

1、输入和输出

输入:金额<300,金额>300, 金额==300,有红包,无红包,提交订单

输出:享受优惠,不享受优惠

2、输入和输出之间的关系

订单已提交,金额大于等于300 ,无红包,享受优惠;
订单已提交,金额大于等于300 ,有红包,享受优惠;
订单已提交,金额小于300,有红包,享受优惠;
订单已提交,金额小于300,无红包,无优惠;
订单没有提交,无优惠;

3、画因果图

image-20220110201624623

4、根据因果图画判定表

image-20220110205150297

5、场景设计法 ☆

现在的软件几乎都是用事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成事件流。该方法可以比较生动地描绘出事件触发时的情景,有利于测试设计者设计测试用例,是测试
用例更容易理解和执行。

典型的应用是是用业务流把各个孤立的功能点串起来,为测试人员建立整体业务感觉,从而避免陷入功能细节忽视业务流程要点的错误倾向.

案例:

ATM机取款场景

功能点:插卡——输入密码——输入钱数——取款(主要功能,核心流程)

具体功能点:

(1)、插卡:插反,插错卡(饭卡,会员卡,不是本行卡),注销,消磁,冻结,有不良记录的卡

(2)、输入密码:密码错误,密码输入正确,密码三次错误,第一次密码错第二次密码对,前两次密码错第三次密码对

(3)、输入钱数:钱数<=银行卡余额,输入钱数>=银行卡余额,输入的不是整百,ATM机余额不足,超过每日取款限额,超过每次取款最大上限,超过每次取款最大次数。

(4)、取款:确认取款钱数后,ATM机吐出对应钱数;ATM机吐钞规则,操作超时,长时间不吐钱;

(5)、其他:ATM机断网,断电,出现故障;超时,所有的操作如果超时,那么会出现吞卡(安全机制)

每个具体功能点都是可以写测试用例的。

如:1、插卡插反:第二次重新插入正确插入,仍可以正常取钱;卡冻结/注销,无法正常取钱;

      ​ 2、输入三次密码错误,账户冻结,无法取款;前两次密码错第三次密码对,仍可以正常取钱

测试用例:

image-20220215121219113

6、错误猜测法

根据测试人员的直觉,知识,经验,判断软件的那一块有问题,专门针对性的设计测试用例,适合作为一种补充设计测试用例的方法。

如:1、验证码大小写不区分;

      ​ 2、空格搜索,把输入的搜索信息前后空格忽略;

7、正交排列

研究多因素多水平的一种方法,根据正交性选出最优的水平组合进行实验,用实验的结果来分析这个测试用例的结果。(选择最优的组合)

因素:输入的变量;

水平:因素的取值;

因素数:变量的个数;

水平数:变量取值的最大个数;

正交表的性质:

1、每一列不同数据出现的次数一样多;

2、任意两列各数据组合出现的次数一样多;

image-20220110221335796

正交表设计测试用例的步骤:

1、找出所有的输入变量(因素),确定因素数;

2、确定变量的取值,确定水平数;

3、确定正交表的行和列;

4、根据正交表的性质去填写正交表

5、把正交表的每一行对应写成一个测试用例;

6、补充你认为重要的但没有体现在正交表中的测试用例;

例子:姓名,邮箱,密码,确认密码,验证码(输入和不输入)——不用正交表要列出2^5=32情况

1、因素:5

2、水平数:2(输入和不输入)

3、行:(水平数-1)*因素数+1=6

​ 列:因素数:5

4、填写正交表

image-20220110223037980

5、测试用例:

(1)、姓名输入,邮箱不输入,密码输入,确认密码输入,验证码不输入;

(2)、姓名输入,邮箱输入,密码不输入,确认密码不输入,验证码输入;

(3)、姓名输入,邮箱输入,密码输入,确认密码不输入,验证码不输入;

(4)、姓名不输入,邮箱不输入,密码不输入,确认密码输入,验证码输入;

(5)、姓名输不不入,邮箱输入,密码输入,确认密码输入,验证码输入;

(6)、姓名不输入,邮箱输入,密码不输入,确认密码不输入,验证码不输入;

三、实际操作中注意的点

3.1测试用例的注意点

image-20220212211347313

作用:方便评审,方便执行
1、用例标题:预期结果(测试点)
2、验证码测试点:为空,正确,错误,过期
3、前置条件和测试步骤,测试步骤是按前置条件后进行的,要么前置条件写的多,要么测试步骤写的多。

合格测试用例标题:

 image-20220212212136181

四、缺陷介绍

软件中使用中任何问题都为缺陷,简称:bug

1、缺陷的判定标准

软件为实现需求(规格)说明书中明确要求的功能 — 少功能
软件出现了需求(规格)说明书中致命不应该出现的错误 —功能错误
软件实现的功能超出需求(规格)说明书指明的范围 —多功能 (例:理发店)
软件未实现需求(规格)说明书中虽然为明确指明但应该实现的要求—隐形功能错误 (例:手机点餐,显示有哪些菜)
测试人员认为软件难以理解,不易使用,运行缓慢,用户体验不好 —不易使用

2、缺陷产生的原因

image-20220212152748622
是软件就有缺陷!!!!!!

3、软件缺陷的核心内容

image-20220212160436183

image-20220212161010041

4、缺陷类型

功能错误
界面(Ui)错误 ,兼容性 (前端)
数据,易用性,改进建议,架构

1、如何区分是前端bug还是后端bug
1)、如果是界面和兼容性问题——前端问题
2)、如果是功能错误,需要 抓包 查看请求和响应!

扩展:什么是抓包

image-20220213163149180

5、缺陷编写

1、缺陷报告示例:

 image-20220212202318168

 2、缺陷的跟踪流程

image-20220212203125572

 面试题:发现bug后,首先会怎么办? ——确认bug可复现。

5.1缺陷练习

错误示范:

image-20220212212231694

1、缺陷Id:使用了用例id
2、标题:操作数据描述+预期+实际
		测试数据结果描述+实际结果+预期
		测试数据结果描述+实际结果+需求
3、缺陷描述:操作步骤+数据

正确示范:

image-20220215123649487

缺陷标题实例:

1、测试数据描述+实际结果+预期:

不合格的4位qq验证合格(预期:不合格)
空密码登录成功(预期:登录失败,提示密码不可为空)
2、测试数据结果描述+预期+实际

验证4位qq不合格(实际:合格)
验证空密码登录不成功(实际:登录成功)
3、测试数据描述+实际结果+需求

不合格的4位qq验证合格(需求:6-10自然数)
空密码登录成功(需求:密码位6-12位数字+字母)
以上三个模板都是可以套用的。

​以上就是软件测试用例的全部方法,重点掌握等价类、边界值、判定表、场景设计法,因为这四个是实际运用的多的,因果图和正交排列可以看看,知道下概念,写测试用例的时候尤其注意标题,标题可能影响你测试用例的好还,缺陷用例也是一样!

在这我为大家准备了一份软件测试视频教程(含面试、接口、自动化、性能测试等),就在下方,需要的可以直接去观看,也可以直接【点击文末小卡片免费领取资料文档】

【2024年最新版】字节大佬一周讲完的自动化测试教程,挑战15天学完就业,从入门到实战,少走99%的弯路!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【物联网】stm32芯片结构组成,固件库、启动过程、时钟系统、GPIO、NVIC、DMA、UART以及看门狗电路的全面详解

一、stm32的介绍 1、概述 stm32: ST&#xff1a;指意法半导体 M&#xff1a;指定微处理器 32&#xff1a;表示计算机处理器位数 与ARM关系:采用ARM推出cortex-A&#xff0c;R,M三系中的M系列&#xff0c;其架构主要基于ARMv7-M实现 ARM分成三个系列&#xff1a; Cortex-A&…

position定位学习

加了绝对定位的盒子不能通过margin:0 auto水平居中 脱标元素不会产生外边距合并问题

macos m1 arm芯片 使用jpype报错 FileNotFoundError: [Errno 2] JVM DLL not found

startJVM(jpype.getDefaultJVMPath()) 报错 Traceback (most recent call last):File "/Users/thomas990p/PycharmProjects/tuya/volcano-biz-scripts/WenKongFa/FinalCode/java2python/CallJavaAPI.py", line 12, in <module>startJVM(jpype.getDefaultJVMPa…

【Azure 架构师学习笔记】- Azure Private Endpoint

本文属于【Azure 架构师学习笔记】系列。 前言 公有云的其中一个特点是默认允许公网访问&#xff0c; 这就对企业环境带来风险&#xff0c;也是很多年前企业对公有云抵触的其中一个原因&#xff0c;现在这类问题已经很少&#xff0c;因为有了很多技术来确保云上的资源被安全地…

讲解linux下的Qt如何编译oracle的驱动库libqsqloci.so

1.需求 最近linux下的Qt项目中要连接oracle数据库&#xff0c;用户需要我们访问他们的oracle数据库&#xff0c;查询数据 2.遇到的问题 qt连接oracle数据库需要oracle的驱动库libqsqloci.so插件&#xff0c;需要编译下&#xff0c;之前没有编译过&#xff0c;看了网上的…

#微信小程序(布局、渲染层基础知识)

1.IDE&#xff1a;微信开发者工具 2.实验&#xff1a; 3.记录: &#xff08;1&#xff09;view&#xff08;类似于div&#xff09; &#xff08;2&#xff09;块级元素不占满一行且水平均分布局flex,justify(space-around) &#xff08;3&#xff09;滚动<scroll view sc…

一文搞懂电容两端电压为啥不能突变?

大家好&#xff0c;我是砖一。 我们工作学习过程中&#xff0c;经常会遇到的电容&#xff0c;对于电容的作用&#xff0c;可能大家一般去网上搜有很多&#xff0c;比如储能&#xff0c;滤波&#xff0c;旁路&#xff0c;去耦等等。 但是我要告诉大家的是&#xff0c;电容最重…

基于yolov5的SAR舰船检测系统,可进行图像目标检测,也可进行视屏和摄像检测(pytorch框架)【python源码+UI界面+功能源码详解】

功能演示&#xff1a; 基于yolov5的SAR舰船检测系统&#xff0c;系统既能够实现图像检测&#xff0c;也可以进行视屏和摄像实时检测_哔哩哔哩_bilibili &#xff08;一&#xff09;简介 基于yolov5的SAR舰船检测系统是在pytorch框架下实现的&#xff0c;这是一个完整的项目&…

ai直播数字人:AI大模型应用开发的神奇世界

当AI技术的发展走向一个新的高峰&#xff0c;AI直播数字人逐渐成为人们关注的焦点。这种全新的数字人形态&#xff0c;通过大模型应用开发&#xff0c;带来了一个神奇世界。 在这个神奇世界里&#xff0c;AI直播数字人可以展现出与真实人类相媲美的外貌和声音。通过先进的图像…

RoaringBitmap 源码

当调用add方法时&#xff0c;先把x分成高16位和低16位。 ">>> "是 Java 中的无符号右移操作符&#xff0c;表示将 x 的二进制表示向右移动 16 位 当x为 65535 &#xff0c;二进制为1111111111111111&#xff0c;16个1&#xff0c;即丢掉右16位&#xff0c;左…

FX110网:CTRL FX 是典型的诈骗平台!汇友发出肺腑之言

“CTRL FX 是一个典型的投资骗局&#xff0c;以‘出金缴税’等为幌子反复割韭菜&#xff0c;入金了这么多&#xff0c;但没有一次出金获得批准。揭露他们的骗局&#xff0c;保护受害者对我是一种宽慰。” 这是近日一汇友在对CTRL FX平台彻底失望后发出的声音。珍惜别的投资者用…

如何使用apk2url从APK中快速提取IP地址和URL节点

关于apk2url apk2url是一款功能强大的公开资源情报OSINT工具&#xff0c;该工具可以通过对APK文件执行反汇编和反编译&#xff0c;以从中快速提取出IP地址和URL节点&#xff0c;然后将结果过滤并存储到一个.txt输出文件中。 该工具本质上是一个Shell脚本&#xff0c;专为红队…

Claude3综合能力媲美GPT4.0!逻辑推理能力独一档的存在!

当人们还在期待GPT5.0的时候&#xff0c;openai竞争对手Anthropic公司又献出了Claude3&#xff0c;它在综合能力实测当中可以媲美GPT4.0&#xff01;尤其它的逻辑推理能力&#xff0c;有过之而无不及&#xff0c;几乎独一档的存在。一问世就吸引了大量用户使用。 接下来分享一…

游泳——所须知的那些事

游泳是一项大家喜爱的健身活动&#xff0c;带夏季的时候游泳场所成了大家常去的休闲活动场地&#xff0c;但也会存在一定的安全风险&#xff0c;为了保证游泳的安全&#xff0c;需要知道一些事情&#xff1a; 1.清楚的知道游泳池的深度 大部分游泳场馆的泳池是有深浅区的&…

如何一键发布离线地图(二次开发)

离线地图发布工具支持 离线浏览 离线地图二次开发 离线工具应用(绘制&#xff1a;点、线、面&#xff0c;导入导出矢量数据)以及轨迹纪录等等应用&#xff0c;具体可参看&#xff1a;演示实例 Bigemap Server离线地图服务器下载地址&#xff1a;http://download.bigemap.com…

亚洲股市下一步的关键:中国看财报、日本看汇率、韩国看治理、印度看基建

汇丰认为财报将是驱动中国股市走势的关键因素。目前市场预计2024年中国企业每股收益将增长16%。 日本央行转向、A股业绩复苏、印度基建、韩国市场改革......最近这段时间&#xff0c;亚洲各大市场涌现出了不同的交易主题。 汇丰银行指出&#xff0c;中国受到本土企业盈利能力…

VR数字化线上展馆降低企业投入成本和周期

VR云展会是一种全新的展览形式&#xff0c;它利用虚拟现实技术&#xff0c;将实体展览搬到线上&#xff0c;让观众可以在家中就能参观各种展览。这种新型的展览方式有许多亮点&#xff0c;下面就来详细介绍一下。 首先&#xff0c;VR云展会打破了地域限制。传统的实体展览通常只…

JavaWeb-MyBatis(上)

学完项目管理工具Maven后&#xff0c;继续学习MyBatis。我们都知道&#xff0c;JDBC是一个与数据库连接相关的API&#xff0c;最开始学习数据库连接都是从JDBC开始学起&#xff0c;但是其也有缺点&#xff0c;比如硬编码和操作繁琐等等。而今天学习的MyBatis就是专门为简化JDBC…

Python 通过掩膜剪切栅格多边形

剪切、提取到掩码和栅格子集是常见的 GIS 操作。使用 Python 的 gdal 软件包可以非常容易地实现这些过程的自动化。本教程将演示如何使用 gdal Python API 中的 Warp() 函数将栅格剪切到指定范围并将栅格剪切到多边形图层。这些操作通常也被称为掩码提取或提取到掩码。 安装 GD…

将 VHDX 或 VHD 添加到启动菜单(为电脑创建第二个系统)

此文章记录如何创建一个虚拟磁盘,然后将Windows映像安装到硬盘中. 分为两种方法,一个是纯命令符一个是图形操作 [TOC](将 VHDX 或 VHD 添加到启动菜单(为电脑创建第二个系统)) 准备工作 磁盘空间大于25G系统映像文件 使用Diskpart 1. 从diskpart创建VHDX 首先,打开命令提示…