【软件测试】第4章 用例篇(上)

片头

嗨~小伙伴们,大家好!今天咱们一起来学习第4章 用例篇,主要介绍测试用例的概念、设计测试用例的万能思路以及设计测试用例的方法,准备好了吗?咱们开始咯~


一、测试用例

1.1 概念

什么是测试用例?

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

设计测试用例原则一:

测试用例中一个必须部分是对预期输出或结果进行定义

什么是要素?我们在编写用例时,每个用例需要给出这些要素对应的信息

用例编号test-01
标题成功注册网易邮箱
测试方式手工测试
功能模块注册登陆
重要性重要
测试前提系统运行正常,邮件服务器已开启
测试环境win10 Chrome版本103.0.5060.66(正式版本)(64位)
测试数据

邮箱地址:1111111111@qq.com

密码:123456

手机号:12341234123

测试步骤

1、打开谷歌浏览器,输入网易注册地址:https://mail.163.com/register/index.html

2、输入邮箱地址,密码,手机号,获取验证码并输入正确的验证码,勾选协议

3、点击注册按钮

期望结果展现注册成功的结果页,并且使用刚注册的账号可以正常登陆并进入邮箱首页

为什么需要测试用例呢,不写测试用例可以进行测试吗?

测试中可能会遇到很多问题,比如:

  • 不知道是否较全面的测试了所有功能
  • 测试的覆盖率无法衡量
  • 对新版本的重复测试很难实施(即回归测试无法仅通过人工测试的方式进行历史功能的回归)
  • 存在大量冗余测试影响测试效率

测试用例的出现就是解决这些问题。另外,测试用例的作用还可以避免测试人员被迫背锅~~

实际中产品出现问题,第一责任人首先想到的是测试人员为啥我们检测到?

上面展示的是传统的编写测试用例的方式,我们在学习敏捷模型的时候了解到,如今,大多数企业采用的都是思维导图的方式来编写测试用例。

下面的内容包括日常用例练习都是用思维导图/脑图进行编写


二、设计测试用例的万能公式

现在有一款产品,要求我们对"门锁"设计测试用例,假如你是测试人员,你会怎么设计呢?

可以看出,用例的设计最重要的一点是保证功能是正确的。上图给出的案例,在互联网行业中,这样去设计测试用例的非常少,缺乏经验的友友往往以这样的思路去设计

2.1 常规思考+逆向思维+发散性思维

正确设计测试用例的思想:常规思维+逆向思维+发散性思维

设计测试用例的原则二:

1、测试用例的编写不仅应当根据有效和预料到的输入情况,而且也应该根据无效和未预料到的输入情况

2、检查程序是否"未做其应该做的"仅是成功的一半,测试的另一半是检查程序是否"做了其不应该做的"。(是上一条原则的必然结果)

3、计划测试工作时不应默许假定不会发现错误

明白了设计测试用例是思维的正确还远远不够

若仅仅通过头脑风暴去设计测试用例,那么当我们面对面试官时,能够想出来的用例是寥寥无几的,所以在设计测试用例的时候需要有思路的去设计

2.2 万能公式

设计测试用例的万能公式:功能测试+界面测试+性能测试+兼容性测试+易用性测试+安全测试

功能测试

功能测试是一个试图发现程序与其外部规格说明之间存在不一致的过程

外部规格说明是一份从最终用户的角度对程序行为的精确描述

功能测试通常是一项黑盒操作,在进行功能测试时,需要对规格说明进行分析以提炼测试用例

本章节中讨论的具体设计测试用例的方法尤其适用于功能测试

然而,不仅是工作中还是面试中,可能会存在需求不明确的功能,这种情况下如何进行功能测试呢

  1. 查找其他相关文档,来帮助理解所要测试的产品需要完成的目标
  2. 尽量多参加项目组内的会议,比如:需求讨论、设计讨论、计划讨论等,能够加深对产品的理解
  3. 召集相关人员,对你整理的结果进行讨论,通过评审后,这份文档就可以作为依据来设计你的case了
  4. 如果是一款已经上线的产品,可以多使用产品,有不懂的问产品经理
  5. 也可以去看历史bug,可以了解到一些需要关注的东西

界面测试

对软件界面上所有的内容都需要进行测试

要求:

(1)对于整体界面测试,界面的实现与设计图要求一致

(2)界面元素测试:控件操作验证

性能测试

性能测试和功能测试的区别是:功能测试检查软件是否做了,而性能测试是测试软件做的好不好

兼容性测试

软件是部署于硬件系统之上,并依赖所需要的软件环境

如:QQ可以在PC端打开,也可以在移动端打开

移动端又分为IOS系统和Andriod系统,且市面上手机又有不同的品牌、不同的机型、不同的版本

软件是否能够在不同的环境下正确运行需要测试人员进行验证

question:既然市面上有众多版本的机器,那么在执行兼容性测试时难道所有的机型都需要全面覆盖吗?

选取标准:

  • 优先选择使用当前产品top级别的机型进行测试
  • 实际在产业中,后台是可以获取到使用产品的机型,并以报表的形式统计在后台,供产品人员或其他人员制定策略参考
  • 选择主流的浏览器/机型进行测试

易用性测试

易用性测试的标准是检查产品是否具备简单易上手的属性

假如,测试人员从来没有安装或使用过该产品,作为一个新用户,对当前产品是否能够快速适用产品的使用流程

安全测试

安全测试和性能测试一样都是比较大的领域,常见的安全问题如:

  • 隐私数据明文显示
  • 参数未强校验导致SQL注入
  • 越权:普通用户也可以执行管理员权限的操作

除了万能公式之外,还有一个比较常用的测试类型:弱网测试、安装卸载测试

弱网测试

弱网测试的目的就是尽可能保证用户体验,关注的关键点包括:

  • 页面响应时间是否可以接受,关注包括热启动、冷启动时间、页面切换、前后台切换、首字时间,首屏时间等
  • 页面呈现是否完成一致
  • 超时文案是否符合定义,异常信息是否显示正常
  • 是否有超时重连
  • 安全角度:是否会发生dns劫持、登陆ip更换频繁、单点登陆异常等
  • 大流量事件风险:是否会在弱网下进行更新apk包、下载文件等大流量操作

弱网需要借助工具来构造弱网,这里推荐使用fiddler

(1)fiddler配置代理

(2)fiddler进行抓包(桌面/移动端)

(3)fiddler如何构造弱网条件

step1:打开弱网设置选项

step2:打开设置弱网的脚本

接着弹出一个窗口,继续观察

注意:设置的数字越大,传输速率越慢

安装卸载测试

针对需要进行部署的软件,除了软件功能外,我们还需要关注软件是否能够成功安装和卸载

使用万能公式对水杯进行用例的设计


三、设计测试用例的方法

3.1 基于需求的设计方法

基于需求的设计方法也是总的设计测试用例的方法,在工作中,我们需要参考需求文档/产品规格说明书来设计测试用例

测试人员接到需求之后,要对需求进行分析和验证,从合理的需求中进一步分析细化需求,从细化的需求中找出测试点,根据这些测试点再去设计测试用例

以该注册邮箱账号需求为例,我们来设计测试用例

1.1.1.1       注册账号

1.1.1.1.1    功能概述

用户可以通过填写邮箱信息在平台注册个人用户

1.1.1.1.2    用户角色

匿名用户

1.1.1.1.3    前置条件

1.1.1.1.4    输入

序号栏位名称栏位说明长度类型备注
1姓名必填,录入个人姓名6~15位字符型
2电子邮箱必填,录入电子邮箱字符型
3密码必填,输入的密码隐藏*号显示6~15位字符型
4确认密码必填,输入的密码隐藏*号显示6~15位字符型
5验证码必填,录入验证码字符型
6注册注册操作操作型

1.1.1.1.5    处理

1.1.1.1.5.1    基本事件流

1、用户选择注册

2、系统展现用户协议界面,并请用户确认是否同意用户协议

若用户不同意协议,系统禁止用户注册

若用户同意协议,用户进行注册信息填写

3、用户填写注册信息

注册个人,填写:姓名,电子邮箱,密码,确认密码,验证码

4、用户提交注册信息

5、系统提示用户并向用户注册的电子邮件地址发送一封含有激活信息的电子邮件。系统并提示用户,若未收到激活邮件,可使用注册的邮箱和密码登录系统后再次发送激活邮件

6、用户可执行激活操作,直接跳转至注册邮箱门户页面

7、用户通过接收到的电子邮件中的激活信息激活账号,用户注册完成,流程结束

1.1.1.1.5.2   扩展事件流

用户注册并激活成功后,第1次登录平台时,提示用户完善信息

1.1.1.1.5.3   异常事件流

若用户未收到激活邮件,可在登录界面录入电子邮件及密码后,再次发送激活邮件

每次发送的激活邮件,仅在发送邮件后起24小时之内有效,超过24小时后需重新发送激活邮件

1.1.1.1.5.4    输出

用户注册成功

1.1.1.1.5.5    后置条件

该模块为用户登录等的前置模块


(1)明确需求中的功能点

账号注册,账号登陆

(2)结合万能公式设计测试点

3.2 具体的设计方法
3.2.1  等价类

上述设计的测试用例,存在用例还未完成设计完成,"姓名必填,6~15位的字符类型",这样一个具体的需求该如何来设计测试用例呢?

测试的时候通过穷举法来测试6位、7位、8位......14位,15位是否测试通过,这样的方法能够满足测试的要求吗?若此时把范围从 "6~15位" 改成 "6~150位呢" ?

试想一下这样一个简单的测试点需要测试多久呢?显然是不符合企业测试要求的

而等价类法的出现就解决了穷举法不能解决的问题

依据需求将输入(特殊情况下会考虑输出)划分若干个等价类,从等价类中选出一个测试用例,如果这个测试用例测试通过,则认为所代表的等价类测试通过,这样就可以用较少的测试用例达到尽量多的功能覆盖,解决了不能穷举测试的问题

生活中等价类的案例:

因材施教的例子:

原则上讲,老师应该依据每个学生自身的情况,指定符合的学习方案,但实际上学生太多老师管不过来,只能分成几类:

优等生强调知识面的扩展和综合能力的提升;

中等生强调夯实基础,查缺补漏;

差等生强调优先掌握重点,暂时跳过难点

思路:输入的集合是无穷的,不能全部覆盖到


等价类分类:

  • 有效等价类:对于程序的规格说明书是合理的、有意义的输入数据构成的集合,利用有效等价类验证程序是否实现了规格说明书中所规定的功能和性能
  • 无效等价类:根据需求说明书,不满足需求的集合

根据等价类设计测试用例的方式:

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

2、编写测试用例,设计具体测试数据

练习:根据学到的边界值将上述未完成的用例进行完善

根据上图,我们得出,有效等价类:6~15位;无效等价类:小于6位,大于15位

缺点:等价类只考虑输入域的分类,没有考虑输入域的组合,需要其他的设计方法和补充


3.3.2  边界值

边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。

通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界

边界值包含:边界值 + 次边界值

  • 输入框长度为1~11,取边界值为1、11、12、0
  • 运动员的参赛项目为1~3项,取边界值为:0项、1项、3项、4项
  • 查询面页面有999行,每50行为1页,取边界值为:输出0行、1行、50行、51行、999行

继续将上述用例通过边界值补充完整:


3.2.3  正交法

通过等价类和边界值方法我们完成了部分用例的补充

当前还剩下一个场景的用例未补充完成,"只填写部分选项",这里到底要设计多少测试用例呢?

通常来说,为了保证系统的测试覆盖率,我们首先能够想到的就是排列组合

假如当前有2个选项A和B,可以设计出都填写、都不填写、填写A、填写B,这4个测试用例(2^{2}

假如当前有3个选项A、B、C,通过设计可以得到8个测试用例(2^{3}

.........

当前可选的选项是5个,分别为姓名、电子邮箱、密码、确认密码、验证码。按照排列组合设计出来的用例是32个.......

✅ 证交法的目的是为了减少用例数目。用尽量少的用例覆盖输入的两两组合

正交实验设计是研究多因素多水平的一种设计方法

它是根据正交性,由试验因素的全部水平组合中挑选出部分有代表性的点进行试验,通过对这部分试验结果的分析了解全面试验的情况,找出最优的水平组合

正交试验设计是一种基于正交表的、高效率、快速、经济的试验

正交表:

如图,最简单的正交表是L(4)(2(3)),含意如下:

"L"代表正交表;L下角的数字"4"表示有4横行,简称行,即要做4次试验

括号内的指数"3"表示有3纵列,简称列,即最多允许安排的因素是3个

括号内的数"2"表示表的主要部分只有2种数字,即因素有2种水平1与2

正交表的构成:因素数、水平数、行数

因素:对指标的影响条件,通常是正交表中的一列

水平:因素对应的可选项


正交表的性质:

a、每一列中,不同的数字出现的次数相等

b、任意两列中数字的排列方式齐全并且均衡

根据正交表的性质,一般人很难通过手动设计出正交表

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

1、找到因素和水平

2、用allparis工具生成正交表:

① 将因素和水平写入Excel表格中

② allparis目录下创建新的文本文件new.txt,复制Excel中的因素和水平,直接粘贴到文本中保存并退出

③ 使用allparis命令生成正交表:allparis.exe new txt>zhengjiao.txt

3、根据正交表编写测试用例

4、补充遗漏的重要测试用例


继续以邮箱注册为例,采用正交法补全剩下的测试用例

step1:根据需求找出因素和水平

因素:姓名、电子邮箱、密码、确认密码、验证码

水平:填写、不填写

step2:将因素和水平写入到Excel表中(表格不需要保存)

建议使用微软自带的Excel工具,不建议使用wps、QQ文档等其他表格工具

使用Excel可以保证格式是正确的

step3:在allparis.exe同级文件夹下创建一个.txt文档,将excel表格中的内容复制到.txt文档中,不要有其他操作,直接保存文档

step4:使用allparis.exe工具对txt文档生成正交表文件

打开cmd窗口,进入到txt对应的位置,输入allpairs.exe text01.txt > res-test01.txt

step5:根据生成好的正交表来编写测试用例,继续将重要的用例补全

(1)姓名填写,电子邮箱填写,密码填写,确认密码填写,验证码填写(全部填写)

(2)姓名填写,电子邮箱不填写,密码不填写,确认密码不填写,验证码不填写

(3)姓名不填写,电子邮箱填写,密码不填写,确认密码填写,验证码不填写

(4)姓名不填写,电子邮箱不填写,密码填写,确认密码不填写,验证码填写

(5)姓名不/填写,电子邮箱填写,密码填写,确认密码不填写,验证码不填写

(6)姓名不/填写,电子邮箱不填写,密码不填写,确认密码填写,验证码填写

(7)姓名不填写,电子邮箱不填写,密码不填写,确认密码不填写,验证码不填写(全部不填写)

若不使用Excel,而直接手动在txt文件中编写因素和水平,使用命令生成正交表会存在格式校验错误的情况,allpairs工具对格式的要求非常严格


片尾

今天我们学习了【软件测试】第4章 用例篇(上),希望对看完这篇文章的小伙伴有所帮助!

求点赞收藏加关注!!!

谢谢大家!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值