卓有成效的五种用例设计方法

news2024/11/16 5:25:24

持续坚持原创输出,点击蓝字关注我吧

用例设计作为测试工程师的立身之本,是衡量测试工程师综合素质的重要参考,时间是测试工作中重要的测试资源,通过设计高质量的测试用例可以有效地提升测试效率。

本文旨在介绍测试工作中常用的五种用例设计方法。

什么是用例设计?

用例设计是质量保障过程的一个非常重要阶段,这个阶段主要通过分析测试场景并提取出测试用例,设计高质量的用例有以下重要作用:

  • 有助于更高效发现程序中的缺陷;

  • 避免浪费测试资源;

  • 降低手工测试重复度。

软件测试中流行的用例设计方法

下面通过测试场景介绍测试设计方法:等价类划分、 边界值分析、 状态转换、 结对测试、 错误猜测。其中等价类划分和边界值分析是最常用的黑盒用例设计方法,可以降低必要测试场景的数量。

#1 等价类划分

等价类划分法将程序所有可能的输入数据(有效的和无效的)划分成若干个等价类。然后从每个部分中选取具有代表性的数据当做测试用例进行合理的分类,测试用例由有效等价类和无效等价类的代表组成,从而保证测试用例具有完整性和代表性。

使用这种方法意味着我们只需测试每个等价类中的几个值即可。当你处理大量相似的测试变量时,等价类划分是一个很好的解决方案。

等价类划分用例设计案例

有一家在线购物平台,其运费基于购物车价格而定。例如:

  • 100CNY以下订单的运费为 15 CNY。

  • 超过 100 CNY的订单运费为 5 CNY。

  • 订单满 300 CNY免运费。

我们有以下价格范围可供选择:

  • 从 1 CNY到 100 CNY。

  • 从 100 CNY到 300 CNY。

  • 300 CNY及以上。

如果使用等价类划分技术,我们可以获得三组数据进行测试:

  • 从 1 CNY到 100 CNY:

– 有效边界条件:1 到 99.99 范围内的任何价格;

– 无效边界条件:任何低于 1 或高于 99.99 的价格;

  • 从 100 CNY到 300 CNY:

– 有效边界条件:100至299.99 范围内的任何价格;

– 无效边界条件:任何低于100 或高于 299.99 的价格;

  • 300 CNY及以上:

– 有效边界条件:高于 299.99 的任何价格;

– 无效边界条件:任何低于 300 的价格。

因此,我们可以只从每个价格范围中选择几个价格覆盖即可,并假定其余的相似输入可以得到等价输出。

#2 边界值分析

或许有人会觉得边界值分析是基于等价类划分的。那么它和等价类分析有何不同呢?

我们仍然将数据分组在等效的类中,但不只测试特定分组里的数据。相反,我们只关注分组的边界值,即那些位于“边界”的值。

边界值分析案例
  • 从 1 CNY到 100 CNY:

– 有效边界条件:1.00、1.01、99.99;

– 无效边界条件:0.99、100.00、100.01;

  • 从 100 CNY到 300 CNY:

– 有效边界条件:100.00、100.01、299.99;

– 无效边界条件:99.99、300.00;

  • 300 CNY及以上:

- 有效边界条件:300.00、300.01;

– 无效边界条件:299.99。

#3 状态转换

该方法对于为具有许多状态变化的系统创建测试用例非常有效。如果你使用有限数量的输入选项测试一系列事件,这将很有帮助。

状态转换案例

状态转换的最简单示例是在 Web应用程序登录测试场景。比方说,我们正在测试一个系统,该系统允许用户输入有限次的正确密码尝试。如果用户在有限次数内未能输入正确的密码,系统将阻止其访问该应用。逻辑图如下所示:

不同颜色的块表示系统的不同状态。让我们添加指定状态的标签得到以下内容:

像下图这样的图表可以更容易地将可能的输入与预期的输出相匹配:

#4 结对测试

结对测试被认为是五种用例设计技术中最令人困惑的。结对测试基于数学算法,即组合数学。它可以创建独特的对并以不同的组合测试大量传入数据,但计算可能会变得复杂。为了使用需要最少时间进行测试覆盖最多的功能,你需要正确匹配数据,根据计算以得到用例组合对。

结对测试案例

比方说,有一个线上面包店在线销售苹果派和芝士蛋糕。每个都有三种尺寸可供选择——小号、中号和大号。面包店提供即时和预定的地址送货服务以及取货选项。这家面包店在三个城市开展业务——纽约、洛杉矶和芝加哥。此外,用户一次最多可以订购三件商品。

如果你想测试所有可能的输入,那就是 2x3x3x3x2x2=216 个有效的订单组合。但是,检查每一个都是不合理的。相反,我们可以以允许覆盖最大场景的方式安排变量。

为此,我们需要对变量进行分组,使用Pairwise Online Tool创建此示例。如下结果,我们得到了能够覆盖所有 216 种组合的 17 个场景。

#5 错误猜测

错误猜测是所有实践中最具实验性的实践,通常与另一种用例设计方法结合使用。在错误猜测中,QA 工程师根据专家经验、系统知识和产品要求预测可能出现错误的位置。因此,QA要确定缺陷容易累积的地方,并更加注意这些区域。

错误猜测案例

QA工程师从测试常见错误开始,例如:

  • 在文本字段中输入空格。

  • 在不输入数据的情况下按下提交按钮。

  • 输入无效参数(电子邮件地址而不是电话号码等)。

  • 上传超过最大限制的文件。… 等等。

QA专家经验越多,他们联想到的错误猜测场景就越多。

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

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

相关文章

SSO笔记

自己学习做的笔记.没有具体代码 单点登录:多系统,单一位置登录,实现多系统同时登录的一种技术. 也就是说多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。 和三方登录Oauth2是有区别的.Oauth2属于三方登录.通常是某系统,使用其他系统的用户,…

【机器学习】多分类及多标签分类算法(含源代码)

目录:多分类及多标签分类算法一、单标签二分类问题1.1 单标签二分类算法原理二、单标签多分类问题2.1 ovo2.1.1 手写代码2.1.2 调用API2.2 ovr2.2.1 手写代码2.2.2 调用API2.3 OvO和OvR的区别2.4 Error Correcting三、多标签算法问题3.1 Problem Transformation Met…

Vue3 – Composition API(二)

1、computed函数使用 1.1、computed 在前面我们讲解过计算属性computed:当我们的某些属性是依赖其他状态时,我们可以使用计算属性来处理 在前面的Options API中,我们是使用computed选项来完成的;在Composition API中&#xff0c…

Shell语法

一、概念 Shell 是命令行与操作系统沟通的桥梁,也是一门语言。 Shell 脚本可以直接在命令行中执行,也可以作为文件方便复用。 Linux中常见的 Shell 脚本有: Bourne Shell(/usr/bin/sh或/bin/sh)Bourne Again Shell(/bin/bash)C Shell(/us…

《啊哈算法第四章之bfs》(17张图解)

源自《啊哈算法》 目录 bfs正文 题目 思路 完整代码1 完整代码2 再解炸弹人 题目 思路 完整代码1 完整代码2 总结 bfs正文 第四章--深度优先搜索中,我们用dfs找到了寻找小哈的最短路径 接下来,我们要用bfs(Breadth First Sear…

04 |「链表」简析

前言 前言:研究一个数据结构的时候,首先讲的是增删改查。 文章目录前言一、链表简介1. 含义2. 节点组成3. 存储方式1)数据在内存中的存储方式2)单链表在内存中的存储方式3)双链表在内存中的存储方式4)循环链…

python-38-降低内存开销的python迭代器

【进阶Python】第五讲:迭代器与生成器 python 迭代器和生成器 迭代是Python中常用且非常强大的一个功能,它可以用于访问集合、列表、字符串、字典等数据结构的元素。 我们经常使用循环和条件语句,我们也清楚哪些是可以迭代访问,但…

结构型模式-代理模式

1.概述 由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介。 Java中的代理按照代理类生成时机不同又分为静态代理和动态代理。静态代理代理类在编译…

Nacos 配置中心源码讲解

目录 1. 配置中心的优点 2. 配置模型结构 3. 配置中心 Server 端实现原理 3.1 新建配置 / 发布配置 3.2 查询配置 4. 配置中心 Client 端实现原理 4.1 发布配置 4.2 查询配置 4.3 监听机制 Listener 1. 配置中心的优点 运行时动态修改系统参数配置,不用重启…

排序算法解析:快排,归并 (全)

一、快排原始快排 算法思想:ps:排序的效果其实就是使一个数列中的每个数都满足左边数比它小、右边数比它大(假设升序)。接下来我们来了解快排:多次递归遍历,每单次遍历,设定一个限定值&#xff…

02 |「数据结构、逻辑结构、物理结构」基本概念简析

前言 前言:简析数据结构、逻辑结构、物理结构。 文章目录前言一、数据结构1. 简介2. 数据3. 结构4. 分析5. 分类1)线性结构(线性表)2)树结构3)图结构二、逻辑结构与物理结构1. 为什么要有逻辑结构和物理结构…

SpringBoot+Vue--前端搭建-笔记1

前端搭建 首先安装node.js(百度) 官网下载地址:http://nodejs.cn/download 以前写的关于npm 后端了解的npm_biubiubiu0706的博客-CSDN博客 安装Node.js淘宝镜像加速器(cnpm) npm install cnpm -g(可以不安装) #建议使用如下语句解决npm速度慢的问题 好比设置仓…

代码随想录算法训练营三期 day 24 - 回溯 (1) (补)

回溯算法理论基础 什么是回溯法 回溯法也可以叫做回溯搜索法,它是一种搜索的方式。回溯是递归的副产品,只要有递归就会有回溯。所以以下讲解中,回溯函数也就是递归函数,指的都是一个函数。 回溯法的效率 回溯的本质是穷举&…

【手把手教你学51单片机】中断的优先级

注:本文章转载自《手把手教你学习51单片机》!因转载需要原文链接,故无法选择转载! 如若侵权,请联系我进行删除!上传至网络博客目的为了记录自己学习的过程的同时,同时能够帮助其他一同学习的小伙…

第四十三章 动态规划——最长单调序列模型

第四十三章 动态规划——最长单调序列模型一、最长单调序列模型1、模型母题2、思路分析(两种方法:DP,贪心)二、模型的应用1、AcWing 1017. 怪盗基德的滑翔翼(1)问题(2)分析&#xff…

C规范编辑笔记(十四)

往期文章: C规范编辑笔记(一) C规范编辑笔记(二) C规范编辑笔记(三) C规范编辑笔记(四) C规范编辑笔记(五) C规范编辑笔记(六) C规范编辑笔记(七) C规范编辑笔记(八) C规范编辑笔记(九) C规则编辑笔记(十) C规范编辑笔记(十一) C规范编辑笔记(十二) C规范编辑笔记(…

Linux进程学习【一】

✨个人主页: Yohifo 🎉所属专栏: Linux学习之旅 🎊每篇一句: 图片来源 🎃操作环境: CentOS 7.6 阿里云远程服务器 Perseverance is not a long race; it is many short races one after another…

Linux基本功系列之rename命令实战

文章目录一. rename 命令介绍二. 语法格式及常用选项三. 参考案例3.1 将当前目录下所有.cfg的文件,替换为.txt结尾3.2 将所有出现mufeng的部分都替换为mufeng13.3 将mufeng0开头都变成mufeng00开头3.4 rename支持正则表示式总结前言🚀🚀&…

2023-1-22 刷题情况

积水面积 先祝大家新年快乐,新的一年,万事如意。 题目描述 一组正整数,分别表示由正方体叠起的柱子的高度。若某高度值为 xxx,表示由 xxx 个正立方的方块叠起(如下图,0≤x≤50000 \le x \le 50000≤x≤5…

卷积神经网络进阶--基础知识

卷积神经网络进阶 b站课程链接碳基生物都能学会的神经网络(跳着看的) 因为我用的是pytorch,而该课程是用tenserflow的,所以主要记了一下理论 为什么要讲不同的网络结构 不同的网络结构解决的问题不同不同的网络结构使用的技巧不同…