测试 - 用例篇

article/2025/5/11 1:03:04

文章目录

    • 测试用例的基本要素
      • 基于需求设计的测试用例
        • 接下来就是针对一个功能的不同输入,对应着不同的输出
        • 功能之间的交互性
        • 异常信息的处理
      • 等价类
        • 边界值
        • 错误猜测法
      • 美团面试题:水杯测试用例
        • 场景法
        • 因果图法

复习
在这里插入图片描述

因为这篇博客是关于如何写测试用例,尽可能多的涵盖测试用例,所以我们要去回想一下之前讲过的什么是测试用例

测试用例实际上就是像被测系统发起的一组集合,这组集合包括测试环境,测试步骤,测试数据,预期结果

2,为什么软件测试人员要写测试用例?(1)测试用例是测试执行的依据
(2)测试用例可以复用,在进行回归测试的时候不用重新编写(3)测试用例可以衡量需求的覆盖率
(4)后人可以借鉴
(5)手工测试用例是自动化测试的依据

用例篇

主要问题就是两个
测试用例的基本要素
测试用例的设计方法
3、测试用例的有效性
4、测试用例的粒度和评价
在这里插入图片描述

测试用例的基本要素

测试用例(Test Case)是为了实施测试而向被测试的系统提供的一组集合,这组集合包含:测试环境、操作步骤、测试数据、预期结果等要素。
好的测试用例是一个不熟悉业务的人也能依据用例来很快的进行测试评价测试用例的标准:对比好坏用例的评价标准
用例表达清楚,无二义性。。
用例可操作性强。
用例的输入与输出明确。一条用例只有一个预期结果。
用例的可维护性好。
用例对需求的覆盖率高。

测试用例的设计方法

基于需求设计的测试用例

我们在讲需求的时候,说过:需求是测试人员进行测试的依据。;
当我们测试人员拿到需求之后,需要分析需求,验证需求的合理性与正确性。
随后,从需求中提取出测试项,再去根据测试项进行进一步的细份,提取出测试点,编写测试用例。
虽然我们书写测试用例的时候是从软件功能上入手的,但是当我们进行测试的时候,最先引入眼帘的是 程序界面。
因此,我们测试一般是从软件界面开始进行测试。
也就是观察界面是否符合 UI(User Interface - 用户界面)的设计稿。
这个设计稿,你可以理解为是软件的静态页面,也说是前端程序员的 页面模板。
前端程序员就是按照 UI 的 设计稿 进行 页面设计的。

软件页面测试完成之后,就是验证软件的功能。
我们可以把业务相关的功能串起来进行测试。
在这里插入图片描述

接下来就是针对一个功能的不同输入,对应着不同的输出

在这里插入图片描述

功能之间的交互性

在这里插入图片描述

异常信息的处理

在这里插入图片描述

还有一些比较难的测试项
比如:实现功能所用到的算法,也是需要进行验证的
在这里插入图片描述
然后,就是从易用性,兼容性性能等几个方面去考虑
在这里插入图片描述
总结:

基于需求设计的测试用例
1.
像从易用性\兼容性能的方面去考虑 都是针对非功能行测试
练习:
在这里插入图片描述
关于非功能测试
易用性,兼容性,性能,安全性,可移植性,可维护性。
非功能性测试 就是测试在软件本身有的功能之上做的一些限制。
比如:
QQ用户登录测试用例中的,关于登录操作的测试。
即使 用户登录操作是可以进行登录的。
而非功能测试,就比如:拿性能来说
在这里插入图片描述
其实这句话 “非功能性测试 就是测试在软件本身有的功能之上做的一些限制。”
还可以这么去理解:
这里的限制,你可以理解为是一种 要求 / 指标。
这么说吧:“非功能性测试”就是为了提升用户的体验;对软件的执行没有影响。

但是针对不同类型的软件,要求的非功能性也是不一样的. 比如
1、面向客户端的软件:【画图板,office,Word,xmind】
这种软件对 性能,安全性要求不高。
但是对于 兼容性,可移植性,稳定性要求较高。
理由很简单,因为是面向客户端的,也就是 1v1 的服务。
面向一个客户的服务软件。
这么说吧:在你的电脑上,是访问不到我电脑的的画图板的。
不存在用户之间的交互,1 v 1 服务。
既然是 1 v 1 服务,软件只需要满足你一个人的需求即可,因此对性能的要求肯定不高。

其次,不存在客户端与服务器之间的交互,也就不存在中间人攻击的说法。
因此对于 安全性 的要求也不高

另外,这都是办公必备软件,因此必须在不同类型的系统上,都能安装运行。
因此对于 兼容性 的要求,比较高。

还有就是,我发送给你的 Word,office 之类的文件,只要对方也安装了相应的文件,也能打开使用。因此对于可移植性的要求也是比较高的。

既然这些软件都是公办必备软件,肯定是会被频繁使用的。
因此,对于软件的 稳定性 要求就比较高!你这软件不能用着用着就崩了

2、面向企业内部的软件
比如:飞Q,飞书(字节跳动)。。。。这种用于企业内部员工使用的交流软件。
因为这种类型的软件,只是针对自己公司的内部人员使用。
公司可以统一电脑的操作系统,因此对于 系统的兼容性要求不高
公司内部的人员,其实不是很多。
别看着几千人,其实对于计算机来说也就那样。
因此对于 性能的要求 也不是很高。

但是对于功能性,可靠性的要求高。
因为是公司内部人员使用,那么肯定是用来 互传文件,互相沟通之类。
至少需要满足 员工 的一些日常操作。
因此对于功能性的要求高。

对于传文件,肯定是要求不能发生 传输残缺/丢包 的情况!!!
文件里都是代码,缺胳膊少腿,谁知道是哪里少了点什么???
因此对于 可靠性的要求 是比较高的!

3、大型的商用软件
比如:微信,QQ
别边看它们是免费使用的。。。
你想想会员和各种钻,还有超级版本的(更贵的)。你敢说你没往里面砸一分钱?
另外,用户基数多,说明流量多,广告商就会投资,让 QQ/微信 投放 他们的广告.
这是要给腾讯钱的!!!
也就是说:我们都在直接或间接的 为腾讯赚钱!
奈何自己不花钱的是真的香,广告商的钱又不是我们的钱。。。

这种大型商用软件对 非功能性 的 各个方面要求都很高。
你这么想:用户多,对软件的性能的要求就高。不然请求一多,服务器根本处理不过来。

另外,对于这种大型商用软件,尤其用户基数特别大的软件。
它不可能说,要求必须是某某系统,才能安装吧?这不是在 “作死”嘛!
摆明就是想损失用户。
因此,想这种大型商用软件 对于 兼容性的要求,就很高。
巴不得什么设备都能装它们的软件,这些都是钱啊!
啊。不。这些都是衣食父母啊!!

接着,像QQ 和 微信 这种交流软件,对于 可靠性的要求也很高。
总不能,我给 A 发消息,结果B收到了。
万一聊天内容特别劲爆,发错人就很尴尬!
另外,聊着聊着就丢包,数据无法进行传输,也是不好的。

同时对 可移植性 和 安全性 的要求,同样也很高。
可移植性 体现在 我们在换手机之后,进行软件搬家的时候,把软件从一个系统到另一个系统的难易程度。

对于安全性,这是最好理解。
每个人的聊天信息都属于个人隐私,没有人愿意说给一个外人看。
另外,现在的 QQ号/微信 多数都是和游戏账号绑定的。
如果QQ号被盗,那么这些绑定的“财产”也就没了。

等价类

根据输入(特殊情况下才考虑输出),把输入划分成若干个等价类)从每一个等价类当中选择测试用例进行测试,如果这个测试用例测试通过,我们就说这《测试用例代表的等价类测试通过。
等价类帮助我们解决测试用例无法穷举的情况。

![在这里插入图片描述](https://img-blog.csdnimg.cn/71344af3bb98451a8058270f4638e54e.png

边界值

而我们测试中的边界值,是 输入 和 输出 的边界。
我们要针对 输入 和 输出 的 边界 进行 测试用例的设计。
在这里插入图片描述

错误猜测法

注意!不是瞎猜!!!
而是根据 测试人员的经验 和 知识 的 积累,来猜测某一块功能有问题。
随后,有针对性的进行测试用例的编写。

说白了:就是程序员的经验之谈。

有的朋友可能就会有疑问:你觉得我像是有经验的佬嘛。。。
其实!我们是有经验的!!!
因为我们一直在使用各种 APP,打游戏,听音乐,看小说等等。。。。
我们具有使用经验,也就是用户体验软件的经验。
我们很容易就能 get 到 用户的需求有哪些,因为我们也是用户。
也就是说:我们至少拥有用户的经验。
而我们缺少的是:站在测试的角度去看待需求的经验。

错误 猜测法,有点类似于 探索性测试。

针对性比较强,比较依赖测试人员个人的水平。
比如:
1、搜索查询框 - 空格
在某个 软件/网页 中,搜索关键字的时候,而且这个关键字,在服务器的数据库中是有对应的数据的。
只要我们在关键字的左右两侧敲一个空格(关键字 :“空格 + 奥特曼 + 空格”),就搜索不到。
因为这两个空格,导致原本可以搜索到的数据,现在搜索不到了。
在Java中,String类型有一个方法 trim(),可以去除 字符串 前后的 空格。
由这个问题引申出另外一个问题:字符串中间的空格是否要去掉?
答案:不能!
中间的空格,一般是用户刻意敲的,可能具有实际的意义。
而两侧的空格,可能是用户误敲的,没有实际的意义。

2、搜索查询出的信息:500条
每一页展示 100 条,共展示5页。
但是发现不同的页面上有相同的数据,数据ID也是一样的。
一般查询到的结果,是需要经过排序的。
排序的条件,暂且忽略。反正,就是根据某种唯一的参数进行排序。
比如:数据ID

下面我们来分析一下:
在这里插入图片描述

美团面试题:水杯测试用例

在这里插入图片描述![
](https://img-blog.csdnimg.cn/c85e83a8dc7c47e58d57c16b6dffc188.png)

场景法

很多软件不同的场景,是基于不同的事件的触发,不同事件的触发,导致场景走向不同的事件流。
不同的功能点串起来形成一个场景。不同的功能点又有不同的输出,不同的输出导致不同的测试场景。

ATM取款情景:
插卡 —> 输入密码 —> 输入取款数 —> 取款 —> 退卡

  1. 插卡

插错卡 (公交卡,会员卡等等)
卡插反
卡损坏
停电吞卡
卡号冻结,账号锁死
网络不好,无法识别卡号

2)输入密码

输入正确的密码
输入错误的密码(密码格式不正确)不输入密码,直接点击确认
密码输入错误超过三次,账户锁定
密码第一次输入错误,第二次或第三次输入正确密码
输入框是否支持删除输入操作
测试密码是否加密
是否支持不同字符的输入

3)输入取款钱数

输入小于卡余额的钱数
输入等于卡余额的钱数
输入大于卡余额的钱数
输入非整百的数
不输入直接按取钱按钮(取钱按钮置灰)
多久不操作超时

4)取款

输入小于等于银行卡余额的钱数时,取款成功
输入大于银行卡余额的钱数,取款失败,并提示“余额不足”
超过每日取款余额的上线
超过每日取款次数的上线

5)退卡

取钱后正常退卡
操作超时,吞卡

6)ATM机

ATM机正常
ATM一切正常
ATM余额不足
ATM断网,断电,硬件故障软件系统崩溃
发生异常情况ATM机是否支持事务回滚

在这里插入图片描述

因果图法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


http://chatgpt.dhexx.cn/article/3c6d9NFs.shtml

相关文章

软件测试当中的测试用例模板,仅供参考

测试用例这块知识、经验,小酋在前面陆续都讲完了。这章提供几种用例模板,作为这块知识的收尾。 - 1 - 测试用例(主指功能测试用例模板)的内容通常包括测试目标(目的),需求标示(一般…

测试用例分析及编写

文章目录 1.测试用例1.1 用例与测试用例1.2 测试用例的作用1.3 测试用例的编写格式 2. 测试点的设计方法2.1 等价类划分法2.1.1 定义2.1.2 分类2.1.3 划分规则2.1.4 步骤2.1.5 适用场景2.1.6 案例2.1.6.1 验证QQ帐号的合法性2.1.6.2 验证某城市号码的正确性 2.2 边界值划分法2.…

测试用例,怎么写 ?

本文的测试用例主要针对功能测试。 软件测试中最重要的因素是设计和生成有效的测试用例。 穷举的测试是不可能的,合理的测试策略是通过使用特定的面向黑盒测试的测试用例设计方法,而后使用白盒测试方法对程序的逻辑结构进行检查以补充这些测试用例&…

测试:用例篇

上一章讲述的是测试的基本概念。在我们开始做了一段时间基础测试,熟悉了业务之后,往往会 分配来写测试用例,并且在日常测试中,有时也需要补充测试用例到现有的案例库中 在开始之前先讲讲测试中经典的测试方法:黑盒测试…

软件测试用例.范文,软件测试用例模板范文

软件测试用例模板范文 (8页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.9 积分 XX 系统系统 测试用例测试用例 XX 系统-测试用例 1 由安博测试空间技术中心由安博测试空间技术中心 http://ww…

路由器与交换机知识总

路由器与交换机知识总结 路由器(Router)是一种计算机网络设备,提供了路由与转发机制,可以决定数据包从源到目的所经过的路径,这个过程就叫做路由;将路由器输入端的数据包交移到目的路由器,这个…

【计算机网络】路由器与交换机

-计算机网络 路由器就是 路由器:寻址,转发(依靠 IP 地址),局域网内网的数据转发交换机:过滤,转发(依靠 MAC 地址),连接局域网和外网 相信有很多人在学习网络…

OSI七层模型的各个功能?路由器与交换机的区别?冲突域,广播域

一、OSI总结 二、路由器与交换机的区别 2.1 外观 路由器和交换机的外观长得一样一样的,他们有个超级明显的区别,交换机的各个接口上标注的序列数字是有规律的,接口颜色也是一致的。 在路由器的接口上我们可以看到标注的数字是有规律的,标注为wan或者i…

第6节 构建简单局域网并实现远程管理路由器与交换机——基于PacketTracer仿真

1实验目标 在PacketTracer平台上构建以下两个局域网,并使用路由器相连。路由器,连接不同的局域网,其上的各个端口需要属于不同网段。交换机,连接同一网段内的设备。为各个设备配置IP、子网掩码、网关等。实现各个设备间能互相pin…

认识路由器与交换机,在常见的企业组网中起什么样的作用呢?

作者:一天,公众号:网络之路博客(ID:NetworkBlog)。让你的网络之路不在孤单,一起学习,一起成长。 前言 从这篇开始正式进入路由交换网络的讲解,这一篇,不讲解…

3.路由器与交换机的管理

路由器与交换机的管理 (1)通过带外方式对设备进行管理 (2)通过Telnet对设备进行远程管理 (3)通过Web对设备进行远程管理 (4)通过SNMP管理工作站对设备进行远程管理 实验1 交换机基…

路由器与交换机基本原理

路由器工作原理 定义 路由器是一种实现网络互联的设备,作为三层网络层设备提供路由与转发两种机制,可以决定数据包从源端到目的端的经过路径(路由),以及将路由器输入端的数据包送到适当的路由器输出端(内…

路由器与交换机的作用

路由器与交换机的作用(浅析) 拿到这个题目,不用想,先百度。 首先是路由器 说实话,看不懂,不过我看到了一个眼熟的东西(TCP/IP),如果我没有记错的话,这个名词我在写post和get传参作…

路由器与交换机的区别是什么

路由器与交换机的主要区别体现在以下几个方面: (1)工作层次不同 (2)数据转发所依据的对象不同 交换机是利用物理地址或者说mac地址来确定转发数据的目的地址。 而路由器则是利用不同网络的id号(即iP地址…

eNSP实验记录(一):路由器与交换机

eNSP实验记录(一):路由器与交换机 本次实验拓扑图如下: 实验目的:探究路由器与交换机之间的连接及设置方法,以及Ping通4台PC端!! 一:配置各端口的IP (一&…

路由器与交换机有什么区别

路由器与交换机的主要区别体现在以下几个方面: (1)工作层次不同 (2)数据转发所依据的对象不同 交换机是利用物理地址或者说mac地址来确定转发数据的目的地址。 而路由器则是利用不同网络的id号(即iP地址…

路由器与交换机的区别(基础知识)

文章目录 交换机路由器路由器和交换机的区别(1)工作层次不同(2)数据转发所依据的对象不同(3)传统的交换机只能分割冲突域,不能分割广播域;而路由器可以分割广播域(4&…

程序员职业划分

一、目的: 1、知道程序员很多的职业,但是想了解一下 二、参考 1、带你了解IT互联网行业程序员岗位有些什么类型? 带你了解IT互联网行业程序员岗位有些什么类型?_weixin_33709219的博客-CSDN博客 1、程序员的岗位,每…

Java程序员职业发展规划和方向有哪些?

Java程序员职业发展规划和方向有哪些?Java程序员需要不断学习,要深入了解Java底层和Java类库,JVM和JDK相关的内容,还要了解大数据、分布式缓存、分布式消息服务、分布式计算、软负载均衡等技术,当精通专业技能后会有很…

关于程序员的职业规划分析

对于绝大部分从事互联网、程序员的群体来说,看中的不仅是一个白领工作,更重要的是他高薪资的待遇,就当前来说,IT行业发展速度突飞猛进,就业方向和前景更是百家争鸣,如果对自己没有一个明确的目标而漫无目的,那只会殆误时机,俗话说,欲行千里,先立其志。因此,要为自己拟定…