等价类 + 边界值:测试用例设计的“黄金搭档“,新手也能一次搞懂

发布时间:2026/9/16 9:29:48

等价类 + 边界值:测试用例设计的“黄金搭档“,新手也能一次搞懂 一、等价类划分法用最少的用例测最多的情况1.1 它解决什么问题我们在测试一个密码输入框时经常会遇到这种需求密码必须是8-16位的英文字母、数字、字符组合不能是纯数字。如果按穷举法来测那得测多少种组合无穷无尽。等价类划分法的核心思想就是把输入数据分成几类每一类里选一个代表来测试就够了。1.2 怎么划分以微信注册密码 8-16位英文字母数字字符组合不能是纯数字为例类型说明例子有效等价类符合所有规则的输入abc123458位字母数字无效等价类①长度不足abc125位无效等价类②长度超长abc1234567890123417位无效等价类③纯数字违反不能纯数字规则12345678无效等价类④纯字母不含数字或字符abcdefgh无效等价类⑤含非法字符如空格、中文abc 1234注意每个无效等价类都要单独测一条不能只测一个代表。1.3 我自己动手试了一下我拿着微信注册的密码框实际测了一轮✅Abc123!8位字母数字字符→ 符合规则✅Abc123!#45612位混合组合→ 符合规则❌abc125位→ 报错密码长度需为8-16位❌abc1234567890123417位→ 报错密码长度需为8-16位❌12345678纯数字→ 报错密码不能为纯数字❌abcdefgh纯字母→ 报错密码需包含字母、数字或字符组合❌abc 1234含空格→ 报错密码包含非法字符我只用了7个用例就把所有情况覆盖了而不是盲目地乱测一通。二、边界值分析法Bug最喜欢藏在边界上2.1 为什么需要边界值分析等价类虽然好用但它有个盲区——边界上的值最容易出错。还是以密码8-16位为例8位和16位是边界7位和17位是刚好越界。程序员的代码里经常是if (len 8 len 16)这种逻辑边界上的号有没有写对就是最容易出Bug的地方。2.2 三个关键概念术语我的理解例子8-16位上点边界上的点正好等于边界值8 和 16离点离上点最近的点刚好越过边界7 和 17内点范围内的任意一个点12或9、10都行⚠️我一开始卡住的地方分不清离点到底是取边界内还是边界外。✅搞懂之后的理解如果是闭区间[8, 16]离点取外部即 7 和 17如果是开区间(8, 16)离点取内部即 9 和 15大部分实际需求都是闭区间所以离点 刚好越界的那个数这么记最简单。2.3 等价类 边界值搭配使用效果更好通常先用等价类划分出大类再用边界值补充边界上的测试点。以密码8-16位为例测试数据覆盖的方法预期结果7位密码边界值离点报错长度不足8位密码边界值上点符合规则12位密码等价类内点符合规则16位密码边界值上点符合规则17位密码边界值离点报错长度超长5个用例既覆盖了等价类又覆盖了边界值效率极高。三、判定表法除了等价类和边界值还有一种方法叫判定表法它适用于多个条件之间有组合关系的场景。比如用户注册时同时满足手机号格式正确 验证码正确 密码符合规则才能成功。每个条件都有真/假两种可能组合起来就是 2ⁿ 种情况。判定表就是把这些组合列成表格然后筛选出有效的测试点。四、等价类 边界值 速查卡这张表浓缩了全文最核心的内容写用例时可以直接对照。场景怎么做口诀划分等价类有效类挑1个代表无效类每个单独测有效的测一个无效的全测到确定上点就是边界值本身边界上的点一个不能少确定离点闭区间取外面开区间取里面闭测外开测内确定内点范围内随便选1个范围内意思一下组合策略先用等价类筛大类再用边界值补边角等价类砍数量边界值抓重点密码8-16位场景的快速测试点测试数据测什么abc123458位上点最短边界abc123456789abcd16位上点最长边界abc1236位离点最短-1abc123456789abcde17位离点最长1abc123456710-12位左右内点中间值12345678纯数字无效等价类违反规则
延伸阅读

更多相关文章

2026/9/16 9:29:48

Windows自带三招查看电脑配置和显卡信息,不用装任何软件

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/16 9:29:48

不占CPU的GPIO高速采集:K60上PIT触发eDMA完整指南

简介:针对NXP Kinetis K60微控制器的GPIO与DMA驱动开发,这份压缩包给出了基于IAR环境的完整参考工程,面向嵌入式底层开发者与备赛学生,用于解决外设驱动配置繁琐、数据搬运占用CPU等问题。工程内附C源码与头文件,可学习…

2026/9/16 9:24:47

分布式能源系统选址定容的双层优化Matlab实现

1. 项目背景与核心价值分布式能源系统正在重塑现代电网的格局。作为一名在电力系统优化领域摸爬滚打多年的工程师,我亲眼见证了光伏储能组合如何从实验室走向商业化应用。这个项目要解决的痛点很明确:当大量分布式电源接入配电网时,如何科学地…

2026/9/16 10:20:01

链表合并算法详解:迭代与递归双解法

1. 链表合并问题概述链表操作是算法面试中的常客,而合并两个有序链表更是基础中的基础。这道题看似简单,却蕴含着链表操作的核心思想。我在面试候选人时发现,能完整写出解法的人不少,但能清晰解释每一步操作意图的却不多。今天我们…

2026/9/16 10:20:01

密匣 PsdKeep:一个属于你自己的 Chrome 账号记事本

把密码管理这件小事,做得很轻、很顺手。 前言 每个人的浏览器里都塞着一堆账号:工作系统、银行、社区论坛、SaaS 工具、各种小破站……浏览器自带的"保存密码"虽然方便,但并不适合所有场景—— 公司内网系统、OA 后台&#xff0c…

2026/9/16 10:20:01

ICIO提示词工程框架:优化AI交互的四大核心维度

1. ICIO提示词工程框架概述ICIO框架是当前AI提示词工程领域最具实用价值的五大经典框架之一,专门用于优化与AI系统的结构化沟通。这个框架通过四个关键维度(Instruction、Context、Input Data、Output Indicator)构建起一套完整的提示词设计体…

2026/9/16 10:20:01

SpringBoot+Vue情绪宣泄平台开发实践

1. 项目概述这个基于SpringBootVue的情绪宣泄平台是一个典型的现代Web应用,采用前后端分离架构。后端使用Java生态中的SpringBoot框架,前端则采用流行的Vue.js框架。平台的核心功能是为用户提供一个安全的在线空间来记录和表达情绪,可能包含日…

2026/9/16 10:15:00

metadef元定义:统一异构计算算子与图描述的方法

metadef 元定义这个提法,我先说实话:它不是某个大厂发布的正式标准,也不是某个组织定死的协议,而是我在做异构计算算子接入时,慢慢总结出的一套“描述算子是什么、计算图是什么、落到硬件上又该怎么映射”的方法。你在…

2026/9/15 4:54:30

拯救者Y7000黑屏故障排查与维修实战指南

1. 项目概述:一台黑屏的拯救者Y7000,到底卡在哪一步? 联想拯救者Y7000系列笔记本,从2018年第一代搭载i5-8300H开始,到后来的i7-9750H、i7-10750H、i5-11400H,再到2023年款的R7-7840HS,它始终是学…

2026/9/16 0:04:09

PHP源码部署实战:从环境配置到运行情侣游戏全攻略

简介:这是一套面向情侣互动场景的PHP完整源码,集成情侣飞行棋、真心话大冒险、情趣骰子等玩法,并内置完整分销制度,可自定义多种返佣比例,源码完全开源无加密,支持微信无感自动授权登录与第三方授权&#x…

2026/9/15 14:22:53

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/15 21:31:11

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/15 11:42:23

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码