1. 登录功能等价类与边界值测试用例设计
被测对象与输入域约定
登录表单包含两个输入框:用户名与密码。为便于划分等价类,先固定本节的输入域约定(示例假设,非真实系统规格):
- 用户名:长度 6–20 个字符,允许字母、数字、下划线,必须以字母开头。
- 密码:长度 8–16 个字符,必须同时包含字母与数字,允许特殊字符
!@#$%^&*。 - 两个字段均为必填,不允许首尾空格。
等价类划分的核心是把无限输入压缩为有限类别:每个字段先分有效等价类(应被接受)与无效等价类(应被拒绝并给出提示)。边界值分析则针对每个有序区间,取上点、离点、内点——即边界本身、刚越界一点、边界内侧一点。
等价类与边界值对照表
| 字段 | 类别 | 编号 | 条件 | 预期结果 |
|---|---|---|---|---|
| 用户名 | 有效 | U1 | 6–20 位,字母开头,仅字母/数字/下划线 | 接受 |
| 无效 | U2 | 长度 < 6 | 拒绝:长度不足 | |
| 无效 | U3 | 长度 > 20 | 拒绝:长度超限 | |
| 无效 | U4 | 含非法字符(空格、中文、@ 等)或非字母开头 | 拒绝:格式非法 | |
| 密码 | 有效 | P1 | 8–16 位,同时含字母与数字 | 接受 |
| 无效 | P2 | 长度 < 8 | 拒绝:长度不足 | |
| 无效 | P3 | 长度 > 16 | 拒绝:长度超限 | |
| 无效 | P4 | 纯字母或纯数字(缺一类字符) | 拒绝:复杂度不足 |
边界值取值
用户名区间 [6, 20],密码区间 [8, 16]。对每个边界取三个点:
| 字段 | 下边界 | 下边界内点 | 上边界 | 上边界外点 |
|---|---|---|---|---|
| 用户名长度 | 5(无效) | 6(有效) | 20(有效) | 21(无效) |
| 密码长度 | 7(无效) | 8(有效) | 16(有效) | 17(无效) |
测试用例集设计
采用“单缺陷假设”策略:每条用例只让一个字段处于无效等价类,其余字段取有效值,便于定位缺陷来源。用户名有效基准取 user_01(7 位),密码有效基准取 abc12345(8 位)。
| 用例 | 覆盖类 | 用户名 | 密码 | 预期结果 |
|---|---|---|---|---|
| TC01 | U1+P1 | user_01 | abc12345 | 登录成功 |
| TC02 | U2 | user1(5 位) | abc12345 | 提示用户名长度不足 |
| TC03 | U3 | 21 位用户名 | abc12345 | 提示用户名长度超限 |
| TC04 | U4 | 1user_01(数字开头) | abc12345 | 提示用户名格式非法 |
| TC05 | U4 | user 01(含空格) | abc12345 | 提示用户名格式非法 |
| TC06 | P2 | user_01 | abc1234(7 位) | 提示密码长度不足 |
| TC07 | P3 | user_01 | 17 位密码 | 提示密码长度超限 |
| TC08 | P4 | user_01 | abcdefgh(纯字母) | 提示密码复杂度不足 |
| TC09 | P4 | user_01 | 12345678(纯数字) | 提示密码复杂度不足 |
| TC10 | 空值 | (空) | abc12345 | 提示用户名不能为空 |
| TC11 | 空值 | user_01 | (空) | 提示密码不能为空 |
| TC12 | 边界 | user_0(6 位) | abc12345 | 登录成功(下边界) |
| TC13 | 边界 | 20 位用户名 | abc12345 | 登录成功(上边界) |
| TC14 | 边界 | user_01 | abc1234!(8 位含特殊字符) | 登录成功(下边界) |
| TC15 | 边界 | user_01 | 16 位含特殊字符 | 登录成功(上边界) |
TC12–TC15 是边界值用例,与等价类用例互补:等价类保证“类”被覆盖,边界值保证“类与类的交界处”被覆盖。两者结合才能发现如“长度判断用了 < 而非 <=”这类典型缺陷。
执行与判读要点
- 每条用例执行后,记录实际提示文案与预期是否一致;提示文案本身也是断言对象。
- 若 TC02 与 TC12 结果相同(都拒绝),说明下边界判断错误;若 TC03 与 TC13 结果相同,说明上边界判断错误。
- TC04、TC05 用于验证格式校验是否在长度校验之前或之后触发,可暴露校验顺序问题。
- 空值用例 TC10、TC11 应优先于其他无效类执行,避免空值被其他校验规则掩盖。
本节所有长度与字符规则均为教学示例假设。实际项目应以需求规格或接口文档为准,等价类与边界值必须随规格变化重新划分。