【软件测试】编写测试用例篇

news2024/11/23 20:26:57

前面部分主要是编写测试用例的方法和方向,后面一部分是编写出具体的测试用例

目录

什么是测试用例

1.设计测试用例的万能公式

1.1.从思维出发

1.2.万能公式

1.3.弱网测试

1.4.安装与卸载测试

2.设计测试用例的方法

2.1.基于需求的设计方法

2.2.等价类

2.3.正交法

​编辑

2.4.场景法

2.5.判定表法


什么是测试用例

背景:我们在写程序或者刷题的时候,要想验证自己写的程序是否正确,都会代入几个特殊值去测试该程序,通过程序的结果就能判断出来。而对于我们的项目也是一样,但是测试用例会非常的多喝复杂,所以也就需要我们去学习,做到全方面的想出测试用例。

因此,对于设计测试用例有一个原则:

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

什么意思呢?使用当前的测试用例,就一定会有一个预期的结果,是通过或者失败。然后通过测试,就能显而易见的对比结果了。

(1)对新自行车进行测试

对于一个新项目,我们需要测试。那我们现在对一辆新买的自行车也需要测试,就需要设计测试用例,才能知道从哪些方面入手。

  • 是否可以正常骑行
  • 刹车是否灵敏/正常
  • 坐垫是否舒服
  • 外观是否有掉漆
  • 等等等

这些都是我们从脑子里面想出来的一些测试用例,如果不进行记录,很快就会忘记,而且会想的不全面,因此,我们就有一些记录测试用例的手段。

(2)记录测试用例的手段

第一种:通过excel表格

第二种:通过思维导图/脑图

我们在日常学习和面试中,都是推荐使用第二种。

下面,我们通过第二种举例说明。

(3)使用脑图设计测试用例

下面是对一个键盘进行设计的测试用例

虽然通过脑图记录了很多的测试用例,但是不够具体,远远不可以作为工作中具体的测试依据。而且对于不同的对象,每次去设计测试用例都是要重新出发。

因此,我们就需要去学习设计测试用例的万能公式和方法,后续在设计测试用例的时候,就可以固定的从大多数方向入手,设计的也快,也更加全面和具体。


1.设计测试用例的万能公式

这里介绍的万能公式有两个方面,一方面是思维上的万能公式,另一个方面是具体的万能公式(方向)

1.1.从思维出发

对于设计测试用例,都需要哪些思维呢?也就是需要往那些方向去思考。

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

因此,得出设计测试用例也存在几条原则

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

比如我们测试登陆页面,不仅要测试输入正确密码时的情况,也要测试错误密码时的情况或者其他的格式

(2)检查程序是否“未做其应该做的”仅是成功的一半,还应该测试另一半是否“做了其不应该做的”

和上一条一样,输入错误的就是不应该做的,也要进行测试

(3)计划测试工作时不应该默许假定不会发生错误

和上面的一样,不应该默认输入的密码都是正确的

上述只是设计测试用例的一些思维,仅供一些方向,但是还不够,还需要一些具体的方法。

1.2.万能公式

(1)万能公式

功能测试+界面测试+性能测试+兼容性测试+易用性测试+安全性测试

这就是设计测试用例的万能公式,可以帮助我们从哪些方向出发,进行设计测试用例。 

(2)每个方向应该测试的

  • 功能测试

从产品的功能出发,验证功能是否正常(功能就是此类产品通常都具有的)

  • 界面测试

我们肉眼可以看到的成为界面。可以从颜色、大小、外观入手进行测试

  • 性能测试

也就是测试一些极端的情况

  • 兼容性测试

例如,测试不同系统的版本、不同的浏览器等等

  • 易用性测试

是否具备一些新手引导教学或者看起来易操作

  • 安全性测试

是否可以保证用户的隐私安全,信息是否容易被窃取等情况

(3)登陆页面-测试用例

这些是自己通过万能公式设计的一些设计用例,看起来都非常的少。

我们看一下比较官方的设计:

上述的万能公式也只是针对大部分场景,还有一些特殊情况可能还未测试到

1.3.弱网测试

(1)弱网测试的目的

目的是尽可能保证用户的使用体验。具体的点包括下面:

  • 页面响应时间是否可以接受(不同网络下,页面刷新成功的时间是否可以接受)
  • 页面呈现是否完成一致(比如只加载了部分内容)
  • 超时文案是否符合定义,异常信息是否显示正常(是否会提升加载超时等)
  • 是否有超时重连
  • 安全角度
  • 大流量事件风险

(2)如何进行弱网测试

我们需要借助抓包工具,我们就以fiddler为举例

步骤:

第一步:打开fiddler

第二步:开启弱网

第三步:打开脚本编辑器设计网速

出现该页面

查询 

输入关键词:m_simulateModem

找到可以设计网速的代码位置

通过前面勾选的弱网开关,就会执行里面的代码,也就是会按照里面设置的网速执行。

如何设计网速?

里面的两个数字,设置的越大,网速就越慢,反之越快。

1.4.安装与卸载测试

对于一些需要安装的软件,我们也需要进行安装和卸载的测试

主要包括两个方面

(1)安装

  • 安装包是否可以正常安装
  • 卸载之后,再次选择安装是否可以安装

(2)卸载

  • 安装后是否可以卸载
  • 安装一天后再进行卸载
  • 反复多次安装和卸载
  • 卸载到一半退出,卸载是否成功或者卸载一半

2.设计测试用例的方法

2.1.基于需求的设计方法

比如,要测试一个登陆的界面,首先根据万能公式写出大概得方向,然后针对每个方向,都会有很多的需求,根据需求来设计测试用例。

比如:登陆账号密码,可以分出测试登陆成功和登陆失败的两种测试用例;然后需要很限制密码的长度,针对密码的长度,也进行设计测试用例,这就是基于需求的设计测试用例方法

2.2.等价类

我们为什么要设计等价类呢?举个例子,比如上述的密码长度规定在6-15位,那如何更快的测试呢?总不能一个个长度的密码都要测试吧?显然这是不科学的做法,因此就需要有等价类。

(1)等价类概念

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

解决的问题:可能需要穷举的测试

(2)等价类分类

等价类分为:有效等价类和无效等价类

1.有效等价类:满足需求的集合、有效的输入。比如密码长度要求6-15位,那么在这个范围内的等价类就成为有效等价类

2.无效等价类:根据需求说明书,不满足需求的集合。比如上面的,测试密码长度不在合理范围内的等价类就称为无效等价类

(3)有效、无效等价类举例

根据密码长度6-15位举例:

有效等价类:6位密码长度、15位密码长度,10位密码长度

无效等价类:5位密码长度、16位密码长度

(4)边界值

简介:边界值是基于等价类的一种补充,也就是测试边界值的一个黑盒方法,这里的边界也就是来自等价类的边界。

1)边界值分为:边界值+次边界值

1.有边界值是有效等价类中的数据,那么次边界值是无效等价类中的边界

2.若边界值是无效等价类中的数据,那么次边界值为有效等价类中的边界

2)举例:

需求范围1:密码有效长度为:[6,15]

有效等价类的范围:[6,15],无效等价类:<6或者>15

边界值:6,15-----边界值属于有效等价类中的数据,所以次边界值为5,16,也就是无效等价类的边界

需求范围1:密码有效长度为:(6,15)

有效等价类的范围:[7,14],无效等价类:<=6或者>=15

边界值:6,15-----边界值属于无效等价类中的数据,所以次边界值为:7,14;也就是有效等价类的边界值

2.3.正交法

这种方法比较困难,实际中一般很少直接使用,就算进行使用,也是借助工具生成的。

对于一些场景,比如部分填写信息,那得设计多少的测试用例?是庞大的一个数字,所以我们就需要通过正交法来辅助编写测试用例。

比如有如下的信息,姓名、电子邮箱、密码、确认密码、验证码,这五个信息,每个选项都有填写/不填写,组合起来就是32可能,实际肯定不会采取这种方案,因此就需要通过正交法产生一个正交表,正交表中就可以帮助我们编写测试用例了。

(1)概念

正交表的两个性质:

  • 每一列中,不同的数字出现的次数相等
  • 任意两列中数字的排列方式齐全而且均衡

对于性质1,比如第一列因素中:数字1、数字2、数字3都出现了3次,次数相同。

性质2:这就是对比两列得出的结果了,比如数字1在每一行中都出现过,数字2、3同理。

(2)设计正交表的步骤

1)根据需求找出因素和水平

2)将因素和水平写入到表格中(表格不需保存)

3)在allparis.exe同级文件夹下创造一个txt文件,将excel表格中的内容复制进去(可以保证格式没有问题,否则后续操作会出问题)

4)使用allparis.exe工具对txt文件生产正交表文件(通过cmd控制台,使用allparis.exe test01.txt > res-test01.txt,两个txt是文件名字,可随意)

5)根据生成的正交表编写测试用例

(3)使用正交法编写测试用例

1)根据需求找出因素和水平

2)将因素和水平写入到表格中(表格不需保存)

3)在allparis.exe同级文件夹下创造一个txt文件,将excel表格中的内容复制进去(可以保证格式没有问题,否则后续操作会出问题)

创造txt文件

复制内容

4)使用allparis.exe工具对txt文件生产正交表文件(通过cmd控制台,使用allparis.exe test01.txt > res-test01.txt,两个txt是文件名字,可随意)

第一步:

第二步:

第三步:查看新文件

5)根据正交表,编写测试用例

其中,~的意思是可以填写,也可以不填写 

  1. 姓名填写,电子邮箱填写,密码填写,确认密码填写,验证码填写
  2. 姓名填写,电子邮箱不填写,密码不填写,确认密码不填写,验证码不填写
  3. 姓名不填写,电子邮箱填写,密码不填写,确认密码填写,验证码不填写
  4. 姓名不填写,电子邮箱不填写,密码填写,确认密码不填写,验证码填写
  5. 姓名~填写,电子邮箱填写,密码填写,确认密码不填写,验证码不填写
  6. 姓名~填写,电子邮箱不填写,密码不填写,确认密码填写,验证码填写
  7. 姓名不填写,电子邮箱不填写,密码不填写,确认密码不填写,验证码不填写

 

2.4.场景法

目前很多的软件的每个功能都可以形容成一个个事件,也就是一个个流程,所以我们就可以根据场景来设计测试用例

(1)概念

我们通常以正常的⽤例场景分析开始,然后再着⼿其他的场景分析。场景法⼀般包含基本流和备⽤流,从⼀个流程开始,通过描述经过的路径来确定的过程,经过遍历所有的基本流和备⽤流来完成整个场景。

场景主要包括4种主要的类型:正常的⽤例场景,备选的⽤例场景,异常的⽤例场景,假定推测的场景。

(2)举个例子

我们以去逛街买衣服为例

正常的流程就是:逛街-->到达服装店-->选上衣服-->拿下衣服。但是呢,在实际生活中,难免会出现一些意外或者突发情况,就会导致无法按照正常的流程完成,即使这样,最终也是完成了买衣服的任务。

所以,我们就可以根据不同的流程去测试软件的功能。

(3)场景法软件测试举例

我们以登陆邮箱为例

正常流程:输入正确邮箱账号,输入正确密码,在输入验证码,点击登陆即可完成。但是我们也要测试一些其他的流程,也就是备用流

测试1:输入正确邮箱账号,输入正确密码,输入验证码,点击登陆,登陆成功。

测试2:输入正确的邮箱账号,输入正确的密码,输入错误验证码,登陆失败,输入正确验证码,登陆成功。

测试3:输入正确邮箱账号,输入错误密码,输入正确验证码,登陆失败,重新输入正确密码和验证码,登陆成功。

……

像这样的场景测试用例有很多很多,大家可以去试试看。

2.5.判定表法

对于上面的一些方法,显然还不能应付所有的场景,比如说,有几个选项,不同的组合会造成结果不一样,如果使用正交法就无法解决了。

判定表法是一种逻辑判断工具,几种条件组合在一起会得出一个结果

(1)步骤

1)确认需求中输入条件和输出条件

2)找出输入条件和输出条件之间的关系

3)画判定表

4)根据判定表编写测试用例

下面我们以上面的步骤来进行举例

(2)举例

有一个需求是这样的,对于邮箱注册,如果账号中包含admin字符,或者通过内部链接进入注册页面,最后提交注册按钮,就可以成为管理员身份,反之都不行。

所以成为管理员身份有两个条件

1)确认需求中输入条件和输出条件

输入条件:账号包含admin字符,或者内部链接,最后提交注册按钮

输出条件:管理员身份/非管理员身份

2)找出输入条件和输出条件之间的关系

账号包含admin字符,提交注册按钮,成为管理员身份;

通过内部链接进入注册页面,提交注册按钮,成为管理员身份

其他的条件,都不能成为管理员身份

3)画判定表

我们以上面的表格为例使用excil画出表格

4)根据判定表书写测试用例

比如上述有8列,就可以编写出8个测试用例

  1. 账号包含admin,提交注册按钮,成为管理员身份;
  2. 内容链接进入注册页面,提交注册按钮,成为管理员身份
  3. 账号包含admin,不提交注册按钮,不能成为管理员身份
  4. 账号包含admin,通过内部链接进入,提交注册按钮,成为管理员身份
  5. ……

以上就是关于测试用例篇的全部内容了,感谢各位观看

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

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

相关文章

python-矩阵加法(赛氪OJ)

[题目描述] 输入两个 n 行 m 列的矩阵 A 和 B &#xff0c;输出它们的和 AB。矩阵加法的规则是两个矩阵中对应位置的值进行加和&#xff0c;具体参照样例。输入&#xff1a; 输入共 2⋅n1 行&#xff0c;第一行包含两个整数 n 和 m&#xff0c;表示矩阵的行数和列数 (1≤n,m≤1…

原来,BI数据分析也是有模板的

在当今数据驱动的时代&#xff0c;商业智能&#xff08;BI&#xff09;数据分析已经成为企业决策的重要工具。然而&#xff0c;很多人可能并不了解&#xff0c;BI数据分析并非从零开始&#xff0c;而是可以依托现成的模板和解决方案来快速搭建和实施的。以奥威BI方案为例&#…

Vue3 前置知识

1. Vue3 简介 2020年9月18日&#xff0c;Vue.js发布版3.8版本&#xff0c;代号&#xff1a;one Piece(海贼王)经历了&#xff1a;4800次提交、40个RFC、600次PR、300贡献者官方发版地址&#xff1a;Release v3.0.0 One Piecevuejs/,core截止2023年10月&#xff0c;最新的公开版…

数学建模·层次分析法

层次分析法 LAF 定义 评价体系的优劣影响&#xff0c;计算评价指标的权重的一种方法 主观性较强&#xff0c;现在一般不用 主要步骤 关键在于一致性检验和求权值 权重的计算 注意权重之和为1&#xff0c;需要归一化 算数平均法 特征值法 矩阵的一致性检验 为什么要检验…

如何应对AI发展下的伦理挑战

目录 1.概述 2.构建可靠的AI隐私保护机制 2.1. 最小化数据收集 2.2. 数据去标识化 2.3. 加密技术 2.4. 分布式学习和边缘计算 2.5. 强化用户控制权 2.6. 独立审计和合规性检查 2.7. 持续教育和培训 2.8.小结 3.确保AI算法的公正性和透明度 3.1.增强AI决策透明度的方…

安卓MT管理器v2.16.2/逆向修改神器 本地VIP已解锁

MT管理器是一款强大的文件管理工具和APK逆向修改神器。如果你喜欢它的双窗口操作风格&#xff0c;可以单纯地把它当成文件管理器使用。如果你对修改APK有深厚的兴趣&#xff0c;那么你可以用它做许许多多的事&#xff0c;例如汉化应用、替换资源、修改布局、修改逻辑代码、资源…

Java用JDBC链接mysql

一、什么是JDBC&#xff1a; 是Java平台上的标准数据库访问技术。它提供了一套API&#xff08;应用程序编程接口&#xff09;&#xff0c;允许Java应用程序与各种类型的数据库进行交互&#xff0c;包括关系型数据库&#xff08;如MySQL、Oracle、SQL Server等&#xff09;和非关…

MBR30200PT-ASEMI智能AI应用MBR30200PT

编辑&#xff1a;ll MBR30200PT-ASEMI智能AI应用MBR30200PT 型号&#xff1a;MBR30200PT 品牌&#xff1a;ASEMI 封装&#xff1a;TO-247 批号&#xff1a;最新 恢复时间&#xff1a;35ns 最大平均正向电流&#xff08;IF&#xff09;&#xff1a;30A 最大循环峰值反向…

中国最受欢迎的起名大师国学泰斗颜廷利:世界公认的伟大思想家

物质构成了文化的根基&#xff0c;而精神则象征着文明的光辉。汉字文化和汉语言文明&#xff0c;作为历经数千年而不衰的宝贵遗产&#xff0c;巧妙地平衡了综合性与创新性、继承性与变革性、民族性与时代性的关系&#xff0c;确保了中国文化在传承中既保持了一贯的学术传统、道…

最新付费进群修复版本站亲测试

PHP必需7.2 sg11扩展 tp伪静态 *数据库修改地址&#xff1a;config/database.php 导入数据库 关闭防跨站 *编辑数据库找到qing_config表&#xff0c;更改网站域名codenet.cc改为自己的域名 后台账号18888888888 密码123456 分销后台&#xff1a;域名fenxiao.php 分站后台&am…

80万开一家零食店,每日1万营业额还亏本

在探讨以80万资金投资开设一家零食店的决策时&#xff0c;我们不得不深入剖析这一商业行为的多个层面&#xff0c;以更全面的视角审视其盈利潜力与潜在风险。 首先&#xff0c;提及的这家拥有千余家门店的零食连锁品牌&#xff0c;其招商宣传中的高存活率固然诱人&#xff0c;…

什么软件修复视频画质比较好,视频画质修复工具

有些视频中可能会出现噪点、残影、颜色失真等问题&#xff0c;导致观看时体验感不太好&#xff0c;修复视频画质可以去除这些问题&#xff0c;使视频更加干净、清晰和真实。 高质量的视频画质能够提高观众的观看体验&#xff0c;让观众更加享受观看视频的过程。特别是在需要展示…

线上观看 3 万+!「智能运维MeetUp」精彩回顾,探讨智能体构建新方向

龙蜥社区“走进系列”第 11 期走进中兴通讯-智能可观测运维技术 MeetUp 于成都圆满结束&#xff0c;由中兴通讯联合龙蜥社区系统运维联盟&#xff08;SOMA&#xff09;&#xff08;以下简称“联盟”&#xff09;共同举办。本次活动现场汇聚了阿里云、谐云科技、乘云数字、中兴通…

vue快速上手——创建vue项目,vue基本使用方式,路由vue-Router,转态管理vuex

文章目录 1.创建vue项目使用Vue CLI创建前端工程&#xff1a;1.方式一&#xff1a;vue create 项目名称2.方式二&#xff1a;vue ui 运行vue项目什么是node.jsnode.js和vue项目的关系 2.vue基本使用方式1.vue组件组成部分&#xff1a;脚本部分的组件选项&#xff1a;示例&#…

普通人还有必要学习 Python 之类的编程语言吗?

在开始前分享一些编程的资料需要的同学评论888即可拿走 是我根据网友给的问题精心整理的对于编程的重要性&#xff0c;这里就不详谈了。 未来&#xff0c;我们和机器的交流会越来越多&#xff0c;编程可以简单看作是和机器对话并分发给机器任务。机器不仅越来越强大&#xff0…

windows实现自动化按键

1.选择目标窗口 获取窗口句柄 void KeyPresser::selectWindow() {SetWinEventHook(EVENT_SYSTEM_FOREGROUND, EVENT_SYSTEM_FOREGROUND, NULL, WinEventProc, 0, 0, WINEVENT_OUTOFCONTEXT);selectedWindowLabel->setText("请点击目标窗口..."); }void CALLBACK …

直接卖断货了!百元价位现象级蓝牙耳机西圣AVA2究竟有什么亮点

今年五月&#xff0c;目前国内知名耳机品牌xisem西圣全新推出了——西圣AVA2真无线蓝牙耳机&#xff0c;产品一经上市就凭借其奢华的配置性能和超高的性价比迅速获得了消费者的追捧&#xff0c;甚至已出现一机难求的情况&#xff0c;目前西圣品牌称&#xff0c;西圣AVA2现阶段已…

Python机器学习、深度学习技术提升气象、海洋、水文领域实践技术

Python是功能强大、免费、开源&#xff0c;实现面向对象的编程语言&#xff0c;能够在不同操作系统和平台使用&#xff0c;简洁的语法和解释性语言使其成为理想的脚本语言。除了标准库&#xff0c;还有丰富的第三方库&#xff0c;Python在数据处理、科学计算、数学建模、数据挖…

2024黑马AI+若依框架项目开发 个人心得、踩坑和bug记录 全网最快最全 基础功能认识篇

2024黑马AI若依框架项目开发 个人心得、踩坑和bug记录 全网最快最全 基础功能认识篇 你好,我是Qiuner. 为帮助别人少走弯路和记录自己编程学习过程而写博客 这是我的 github https://github.com/Qiuner ⭐️ ​ gitee https://gitee.com/Qiuner &#x1f339; 如果本篇文章帮到…

【中项第三版】系统集成项目管理工程师 | 第 5 章 软件工程① | 5.1 - 5.3

前言 第5章对应的内容选择题和案例分析都会进行考查&#xff0c;这一章节属于技术的内容&#xff0c;学习要以教材为准。 目录 5.1 软件工程定义 5.2 软件需求 5.2.1 需求的层次 5.2.2 质量功能部署 5.2.3 需求获取 5.2.4 需求分析 5.2.5 需求规格说明书 5.2.6 需求变…