【测试开发】测试用例的设计方法

news2024/11/24 22:26:07

目录

一. 测试用例的基本要素  

二. 测试用例的设计方法

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

水杯测试用例

 2. 基于需求的设计方法

邮箱注册测试用例 

 3. 等价类方法

有效等价类和无效等价类

 等价类思想设计测试用例步骤

 4. 边界值方法

边界值思想设计测试用例步骤

 5. 判定表方法

判定表思想设计测试用例步骤 

6. 正交表法

正交表思想设计测试用例步骤 

7. 场景设计法 


在熟悉了测试的流程后,就可以开始来设计测试用例了。

一. 测试用例的基本要素  

测试用例可以提高测试效率,节省测试时间;测试用例也是进行自动化测试的前提;

测试用例的基本要素主要包括:测试环境,测试数据,操作步骤,预期结果等。 

应注意:测试用例的基本要素不包括执行结果,因为执行结果是需要执行完测试用例才能知道的,没有测试用例,自然就还没有执行结果。 

二. 测试用例的设计方法

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

可以主要围绕以下几个方面来进行:功能,性能,界面,易用,兼容,安全,网络,中断等;

功能

物体方面:主要描述这个物体可以干什么;

软件方面:主要描述软件实现的功能特性,拿着软件可以实现什么操作;

性能

物体方面:可以描述物体的使用寿命;

软件方面:可以描述软件的响应时间,并发数,CPU占用率等; 

界面

物体方面:可以描述物体的外表,材质,大小,容量等;

软件方面: 软件的界面,字体大小颜色,页面的整体布局;

易用

物体方面:可以从人性化的方面去思考,例如杯子的把柄易于我们放取;

软件方面:操作简单,使用流畅;

兼容

物体方面:考虑物体除了本质的功能外,还有什么其他的功能;

软件方面: 可以考虑软件兼容 操作系统的不同版本,设备的不同型号,浏览器的不同版本。

安全

物体方面:考虑物体的材质是否有毒,会不会对人体健康造成损害;

软件方面:考虑到软件是否有信息泄露,漏洞出现,是否有有毒脚本入侵,以及密码是否有加密保存,加密传输,还有对于权限的控制,sql注入等;

网络

主要考虑软件:是否适用于 2G~5G,弱网,WiFi; 

水杯测试用例

此处根据万能公式对于 水杯 做出一个测试用例: 

 2. 基于需求的设计方法

基于需求设计测试用例是测试设计和开发测试用例的基础,第一步就要分析测试需求, 在分析测试需求时,一般分为功能测试需求和非功能测试需求 验证需求是否正确、完整。在需求正确的基础上细化测试需求,从测试需求提炼出一个个测 试点或者测试项,然后根据每一个测试点进行测试用例的设计
整体过程就是:需求文档 -> 掌握需求 -> 基于需求设计测试用例;
而基于需求的设计方法,是一种头脑风暴式的,只针对需求来分析,对产品进行一个大概的测试用例的设计。还不够全面,因此就需要到后面一些具体的设计测试用例的方法。

邮箱注册测试用例 

此处以 邮箱注册 为例,写一个基于需求的测试用例设计方法:

 3. 等价类方法

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

有效等价类无效等价类

有效等价类:

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

无效等价类: 

根据需求说明书,不满足用户需求的输入集合;

例如以下这种情况:6~15位的用户名就属于有效等价类,小于6位和大于15位的就属于无效等价类

 等价类思想设计测试用例步骤

1. 充分理解需求;

2. 划分有效等价类和无效等价类;

3. 从有效等价类中抽取一个数据进行设计测试用例,从无效等价类中抽取一个数据进行设计测试用例;

 4. 边界值方法

边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。

一般会涉及到三个点:

上点:边界上的点;

内点:边界内的点;

离点:边界值附近的一个点(闭区间区间外距离上点最近的一个点,开区间区间内距离上点最近的点) 

边界值思想设计测试用例步骤

1. 充分理解需求;

2. 找边界点;

3. 针对边界点设计测试用例; 

 5. 判定表方法

 判定表是一种表达逻辑判断的工具,可以把判定表对应到每一个测试用例;

 其中的关系包括:与或非,恒等(条件为真,结果一定为真);

判定表思想设计测试用例步骤 

1. 分析所有可能的输入和可能的输出;

2. 找出输入和输出之间的对应关系;

3. 设计判定表;

4. 把判定表对应到每一个测试用例; 

例如:"淘宝618活动中,订单已提交,订单合计金额大于300元或有红包的,就有优惠"

输入:订单已提交,订单金额大于300;有红包 ;输出:优惠,不优惠;

设计判定表: 

6. 正交表法

在使用前面的判定表设计测试用例,如果输入条件比较多,此时来写测试用例就会很容易出现差错。因此正交表就是用尽可能少的用例来去覆盖尽可能多的场景。

名词:

   因素:此处需求的输入变量;

   水平:变量的取值;

性质:

1. 每一列中,各个数字出现的次数一样多;

2. 任何两列中的各有序数对出现的次数都一样多;例如:

 

正交表思想设计测试用例步骤 

1. 充分理解需求;

2. 确认因素和水平;

3. 作出正交表;

4. 将正交表转换为测试用例;

5. (有时候正交表转换的测试用例不一定完整,还需要加以补充);

此处以注册为例进行讲解:姓名,邮箱,密码,确认密码,验证码必须全部输入,才能进行注册。

因素:姓名,邮箱,密码,确认密码,验证码;  水平:填写,不填写;

此处借助 allpairs 画正交表:

1. 先画出表格,将水平和因素填写入表格中,并复制到 txt 文件中:

 2. 将文件放置与 allpair.exe 相同路径下:

3. 进入cmd中,进入该路径中,执行命令:allpairs.exe 文件名 > 生成文件名

 4. 执行完后,就会得到对应的 111_result.txt 文件,文件中就有了正交表:

正交表中的 ~填写 表示这个值可以是填写也可以是不填写。

使用allpairs生成的内容,有时候不一定完整。因此还需要补充一些其他的测试用例,例如上述的正交表中,就没有一种情况是:都不填写的,所以就应该补充进去。此时一个横行就可以是一个测试用例,然后,根据这些测试用例进行测试。

allpairs的安装路径:Allpairs - Satisfice, Inc. 

7. 场景设计法 

相当于是使用一个软件的时候,对应的一个流程。

主要有两个概念:

主事件流:可以理解为用户正常使用的一些场景;

次事件流:可以理解为用户使用时出现的异常场景;

类比于 ATM取款 的场景: 

将每个事件串起来也就形成了一个场景,也就是一个测试用例;

通常情况下,需要把用户经常用到的功能模块串联到一起进行测试;

 

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

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

相关文章

51单片机的智能交通控制系统【含仿真+程序+演示视频带原理讲解】- 未完稿

51单片机的智能交通控制系统【含仿真程序演示视频带原理讲解】 1、系统概述2、核心功能3、仿真运行及功能演示4、程序代码 1、系统概述 该系统由AT89C51单片机、LED灯组、数码管组成。通过Protues对十字路口红绿灯控制逻辑进行了仿真。 每个路口包含了左转、右转、直行三条车道…

SpringCloud Alibaba——Nacos1.x作为注册中心的原理

目录 一、原理二、原理步骤图解 一、原理 使用Http发送注册查询服务提供方列表定时拉取 (每10秒)检测到服务提供者异常,基于UDP协议推送更新定时心跳 (5秒),检测服务状态定时心跳任务检查集群数据同步任务使用Distro 二、原理步骤图解 Nacos1.x作为注…

python的浅拷贝和深拷贝

1、结论 python中的拷贝有以下三种 变量的赋值操作 只是形成两个变量,实际上还是指向同一个对象 浅拷贝 Python拷贝一般都是浅拷贝,拷贝时,对象包含的子对象内容不拷贝,因此,源对象与拷贝对象会引用同一个子对象 深拷贝 使用co…

【C++】开源:Web文件服务器

😏★,:.☆( ̄▽ ̄)/$:.★ 😏 这篇文章主要介绍开源项目——Web文件服务器。 无专精则不能成,无涉猎则不能通。。——梁启超 欢迎来到我的博客,一起学习,共同进步。 喜欢的朋友可以关注一下&#x…

代码随想录day17

110. 平衡二叉树 首先是明白什么是平衡二叉树: 一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。 然后,区别二叉树的高度和深度: 二叉树的高度:从叶子节点到根节点 二叉树的…

【C语言】多组输入

C系列文章目录 目录 C系列文章目录 一、什么是多组输入? 二、如何使用多组输入 2.1,试题举例讲解 2.2,错误解法 2.3,我们实现多组输入的思路 2.4,第一种正确的解法 2.5,第二种正确的解法 2.6&…

Exchange 服务器监控工具

Microsoft Exchange Server 是个消息与协作系统,提供了通常所需要的全部邮件服务功能,可以被用来构架应用于企业、学校的邮件系统或免费邮件系统。包括从电子邮件、会议安排、团体日程管理、任务管理、文档管理、实时会议和工作流等丰富的协作应用&#…

基于PyQt5的图形化界面开发——打砖块

目录 0. 前言1. 砖块类定义2. 挡板类定义3. 碰撞检测4. 小球和游戏初始化5. 完整代码6. 运行效果演示7. Pyinstaller 编译exe程序PyQt5 0. 前言 本文使用 PyQt5实现一个打砖块小游戏 操作系统:Windows10 专业版 开发环境:Pycahrm Comunity 2022.3 Pyt…

自学成为一名顶级黑客(网络安全)

一、自学网络安全学习的误区和陷阱 1.不要试图先成为一名程序员(以编程为基础的学习)再开始学习 行为:从编程开始掌握,前端后端、通信协议、什么都学。 缺点:花费时间太长、实际向安全过渡后可用到的关键知识并不多。…

加密与解密 解密篇 逆向分析技术 (一) 栈/调用约定

目录 逆向是什么 32位软件逆向技术 1.启动函数 2.函数 函数的识别 函数的参数 利用栈进行传递 下面是通过esp来寻址 通过寄存器来传递参数 例子 例子 函数的返回值 例子 例子 逆向是什么 将可执行程序反汇编 通过分析反汇编代码来理解其代码功能(各个…

慢速减压控制技术在预防同步辐射光源和原位透射电镜氮化硅窗口膜真空中破裂的应用

摘要:氮化硅薄膜窗口广泛应用于同步辐射光源中的扫描透射软X射线显微镜和原位透射电镜,但氮化硅薄膜只有几百纳米的厚度,很容易因真空抽取初期的快速压差变化造成破裂。为此,本文提出了线性缓变压力控制解决方案,即控制…

【小数据处理】从日志中获取json数据的处理

写在头上 本次分析的数据来源是SpringBoot服务输出的logback日志。具体配置参考: 处理工具:Notepad v7.6。处理的日志内容不易过大,Notepad能打开电脑不卡最好(100M以内吧)。如果实在过大,先从日志源头进行截取&…

【javaEE面试题(五)在JMM(Java Memory Model (Java 内存模型))下谈volatile的作用】【保证内存可见 和 指令有序】

volatile的作用 JMM下volatile作用 volatile 能保证内存可见性 volatile 修饰的变量, 能够保证 “内存可见性”. 代码在写入 volatile 修饰的变量的时候 改变线程工作内存中volatile变量副本的值将改变后的副本的值从工作内存刷新到主内存 代码在读取 volatile 修饰的变量的时…

微信小程序上线与发布图文步骤操作

1.上传代码 打开微信小程序,在微信开发者工具的工具栏中单击“上传”按钮,页面中弹出提示框,根据提示填写相应的信息,然后单击“上传”按钮,即可上传代码。 2.查看上传代码之后的版本 登录微信小程序管理后台&…

【docker】部署svn服务器,docker安装部署svn服务器

话不多说直接上步骤! 1.下载镜像,创建容器 # 下载镜像 docker pull elleflorio/svn-server # 创建svn仓库目录,进入svn仓库目录 mkdir -p /var/svn # 创建svn服务容器,把容器中的svn仓库映射到本机,并映射3690端口 d…

基于深度学习的高精度安全帽及背心检测识别系统(PyTorch+Pyside6+YOLOv5模型)

摘要:基于深度学习的高精度安全帽及背心检测识别系统可用于日常生活中或野外来检测与定位安全帽及背心目标,利用深度学习算法可实现图片、视频、摄像头等方式的安全帽及背心目标检测识别,另外支持结果可视化与图片或视频检测结果的导出。本系…

动手学深度学习——线性回归(原理解释+代码详解)

目录 1、线性回归2、线性回归模型2.1 线性模型2.2 损失函数2.2.1 平方差损失函数2.2.2 整个数据集上的损失函数 2.3 随机梯度下降2.4 用模型进行预测 3、线性回归的简单实现3.1 生成数据集3.2 读取数据集3.3 初始化模型参数3.4 定义模型3.5 定义损失函数3.6 定义优化算法3.7 训…

H3C-Cloud Lab实验-OSPF配置实验

一、实验拓扑图 实验需求: 1、按照图示配置 IP 地址 2、按照图示分区域配置 OSPF ,实现全网互通 3、为了路由结构稳定,要求路由器使用环回口作为 Router-id,ABR 的环回口宣告进骨干区域 4、掌握OSPF初始化流程、路由表学习的过…

基于linux下的高并发服务器开发(第一章)- GDB调试(2)1.14

(1)执行 gcc test.c -o test -g ,生成test文件 (2)gdb test (3)list 查看当前文件代码 list/l (从默认位置显示) (4)l 20 list/l 行号 &#xf…

kafka(一)

一:kafka架构介绍 1. Brokers kafka集群包括一个或者多个服务器,服务器的节点叫做broker。 2. Topic 类似于数据库中的table。物理上不通的topic会分开存储。一个topic的消息会存储在多个broker上。但是在读取的时候,只要选择好topic&…