软件测试 - 测试用例设计方法之等价类划分和边界值分析

 1. 等价类划分法

1.1 基本理论

等价类划分法是通过科学的方法找到具有共同特性的测试输入的集合,避免进行穷举测试,大大减少了测试用例的数量,从而提高测试效率。等价类划分法的典型应用场景就是输入框,适用于较少数量输入框的场景

等价类分成两类:

  • 有效等价类:满足需求的数据
  • 无效等价类:不满足需求的数据

使用等价类划分法设计测试用例可以参照以下步骤:

  1. 明确需求 (找到所有的输入项)
  2. 针对每个输入项分别确定有效和无效等价类 ,等价类划分可以依据以下几个原则:
    • 需求中具体的规则
    • 数据长度
    • 数据类型
    • 是否可以为空
    • 是否重复
  3. 编写测试用例: 一条用例尽可能多的覆盖有效等价类; 无效等价类中每个取值都要使用一条用例来覆盖;

1.2 案例演示

需求1:某网站登录的账号格式要求是6-10位自然数。

请根据上述需求使用等价类划分法设计测试用例。

首先需要根据需求找到输入项(账号),然后根据需求划分等价类。将等价类划分好之后再来编写测试用例会思路会更加清晰。

接下来就是根据划分的等价类来编写测试用例:

案例2:TT登录,

​ TT账号为邮箱格式,邮箱名@tt.com@tt.com属于自动补全部分,邮箱名要求4-10位字符,支持英文、数字、下划线(不能全是数字或者下划线),不支持中文

​ 密码:6-12位字符,不能包含中文

首先需要根据需求划分等价类,很明显该需求中有两个输入项,那么就需要分别对两个输入项进行等价类的划分。

再根据等价类的划分进行测试用例的设计,涉及到两个输入框时,需要将两个输入项的有效类和无效类分别进行组合生成测试用例。

2. 边界值分析法

2.1 基本理论

边界值分析法是基于边界值(有效等价类和无效等价类的分界点)谁测试用例的一种黑盒方法。边界值分析法典型的应用场景就是出现小于 大于 大于等于 小于等于的情况

该方法是对等价类划分法的步骤,统计表名程序最容易出错的地方就是在边界附近。

边界值分为:

  • 上点:边界上的点
  • 内点:边界内的点
  • 离点:离边界最近的左右两点,由于在4个离点中有两个在需求要求范围内(7和11在[6, 12]之间,属于有效类)属于有效等价类,因此可以省略。

使用边界值分析法设计测试用例的步骤如下:

  • 分析需求
  • 划分等价类
  • 确定边界(使用边界值分析法对等价类进行补充)
  • 设计测试用例
    • 使用边界值对等价类进行补充
    • 可以让等价类的输入数据和边界值的输入数据一致,这样可以减少测试用例的数量。

2.2 案例

需求:某网站登录的账号格式要求是6-10位自然数。

请根据上述需求使用等价类划分法设计测试用例。

首先根据需求划分等价类:

然后使用边界值对等价类进行补充:

设计测试用例,通过上述两步的分析可以发现等价类中的数据和边界值中的数据有重复的,这样就可以减少测试用例的数量。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode 0987.二叉树的垂序遍历:遍历时存节点信息,遍历完自定义排序

【LetMeFly】987.二叉树的垂序遍历:遍历时存节点信息,遍历完自定义排序 力扣题目链接:https://leetcode.cn/problems/vertical-order-traversal-of-a-binary-tree/ 给你二叉树的根结点 root ,请你设计算法计算二叉树的 垂序遍历…

《Linux 简易速速上手小册》第7章: 网络配置与管理(2024 最新版)

文章目录 7.1 Linux 网络基础7.1.1 重点基础知识7.1.2 重点案例:配置静态 IP 地址7.1.3 拓展案例 1:使用 nmcli 配置网络(适用于 Fedora/CentOS)7.1.4 拓展案例 2:配置无线网络连接 7.2 静态与动态 IP 配置7.2.1 重点基…

Java学习18-- Override方法重写【★】

重点:super类 & 方法重写 ★看不明白多看几遍,记住static优先级>>高于override 重写Override methods★ 重写Override:child class可以覆盖father class中的method,即子类child class和父类father class有相同名称、…

【Java程序设计】【C00252】基于Springboot的实习管理系统(有论文)

基于Springboot的实习管理系统(有论文) 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的实习管理系统 本系统分为前台功能模块、管理员功能模块、教师功能模块、学生功能模块以及实习单位功能模块。 前台功能模块&#xf…

洛谷: [CSP-J 2023] 小苹果

题目描述 小 Y 的桌子上放着 n n n 个苹果从左到右排成一列,编号为从 1 1 1 到 n n n。 小苞是小 Y 的好朋友,每天她都会从中拿走一些苹果。 每天在拿的时候,小苞都是从左侧第 1 1 1 个苹果开始、每隔 2 2 2 个苹果拿走 1 1 1 个苹果…

MIT-Missing Semester_Topic 3:Editors (Vim) 练习题

文章目录 练习一练习二练习三练习四练习五练习六练习七练习八 本 Topic 的 MIT 讲解网页(练习题未给解答) 练习一 自行完成 vimtutor。vimtutor 是 Vim 本身附带的一个入门教程,在 shell 中直接输入 vimtutor 便能运行。注意该教程在 8024 大…

剑指offer——旋转数组的最小数字

目录 1. 题目描述2. 分析思路2.1 示例分析 3. 更完美的做法 1. 题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3.4,5,1.2}为{1.2,3,4,5}的一个旋转&a…

idea中vue文件如何快捷打出html标签结构,不写<

例如写一个<button></button>标签&#xff1a;快捷键如下 先写一个button&#xff0c;然后再按tab键即可自动生成一对标签。 演示&#xff1a; 步骤一&#xff1a; 步骤二&#xff1a;

Linux进程创建,进程终止,进程等待,进程程序替换,简易shell代码

进程创建 fork函数初识 fork函数&#xff1a;从已存在进程中创建一个新进程。新进程为子进程&#xff0c;而原进程为父进程 #include <unistd.h> pid_t fork(void); 返回值&#xff1a;子进程中返回0&#xff0c;父进程返回子进程id&#xff0c;出错返回-1 进程调用 f…

linux应用 进程间通信之信号量(POSIX)

1、前言 1.1 定义 POSIX信号量是一种用于同步进程之间对共享资源访问的机制。它允许进程在访问共享资源之前进行互斥和同步操作&#xff0c;以确保数据的一致性和正确性。POSIX信号量通常由一个整数值表示&#xff0c;可以进行原子增减操作&#xff0c;以及等待和通知操作。 …

《A++ 敏捷开发》- 8 获取高层支持

我&#xff1a;对过程改进来说&#xff0c;最重要的成功要素是什么&#xff1f; 客户&#xff1a;最难的是如何得到高层的支持&#xff0c;这不仅仅是嘴巴说说而已&#xff0c;而是要切实地给人、给时间。高层往往不清楚什么是质量改进的重点&#xff0c;但他们对员工的人均收入…

数据工程工程师学习路线图

数据工程岗位要求 Skill Sets required: - Hands on experience enabling data via Adobe Analytics and/or Google Analytics - Understanding of how customer level data is captured and stitched with behavioural data - Experience working with Testing (QA) and D…