示例:用户登录功能
假设有一个用户登录功能,需要用户输入用户名和密码。需求规格说明书的要求如下:
- 用户名必须为6到12个字符的字母或数字。
- 密码必须为8到16个字符,且必须包含至少一个字母和一个数字。
等价类划分法
1. 划分等价类
用户名的等价类
类别 | 描述 | 等价类 | 范例 |
有效用户名 | 6到12个字符的字母或数字 | 有效等价类 | validUser1 |
无效用户名 | 少于6个字符 | 无效等价类1 | user |
无效用户名 | 超过12个字符 | 无效等价类2 | verylongusername |
无效用户名 | 包含特殊字符 | 无效等价类3 | user!name |
密码的等价类
类别 | 描述 | 等价类 | 范例 |
有效密码 | 8到16个字符,包含至少一个字母和一个数字 | 有效等价类 | Password1 |
无效密码 | 少于8个字符 | 无效等价类1 | Pass1 |
无效密码 | 超过16个字符 | 无效等价类2 | VeryLongPassword123 |
无效密码 | 不包含字母 | 无效等价类3 | 12345678 |
无效密码 | 不包含数字 | 无效等价类4 | Password |
2. 设计测试用例
根据等价类划分,从每个等价类中选取代表性测试用例:
测试用例1:有效用户名和有效密码
测试用例编号 | TC001 |
测试功能 | 用户登录 |
测试描述 | 验证用户能够使用有效的用户名和密码成功登录系统 |
前置条件 | 用户已注册并拥有有效的用户名和密码 |
测试数据 | 用户名:validUser1 |
测试步骤 | 1. 打开登录页面 |
预期结果 | 用户成功登录,跳转到主页 |
实际结果 | 用户成功登录,跳转到主页 |
备注 | N/A |
测试用例2:无效用户名(少于6个字符)和有效密码
测试用例编号 | TC002 |
测试功能 | 用户登录 |
测试描述 | 验证用户使用无效的用户名(少于6个字符)和有效的密码无法登录系统 |
前置条件 | 无 |
测试数据 | 用户名:user |
测试步骤 | 1. 打开登录页面 |
预期结果 | 显示错误信息,提示用户名或密码错误 |
实际结果 | 显示错误信息,提示用户名或密码错误 |
备注 | N/A |
边界值分析法
边界值分析法通过测试输入域的边界值来检测系统缺陷,特别适用于检测输入条件范围的上下限。
划分边界值
用户名边界值:
- 最小有效值:6个字符
- 最大有效值:12个字符
- 小于最小值:5个字符
- 超过最大值:13个字符
密码边界值:
- 最小有效值:8个字符
- 最大有效值:16个字符
- 小于最小值:7个字符
- 超过最大值:17个字符
测试用例设计:
用户名边界值测试用例
测试用例编号 | 描述 | 输入 | 预期结果 |
TC001 | 用户名为5个字符(无效) | 用户名:user1 | 显示错误信息 |
TC002 | 用户名为6个字符(有效) | 用户名:user12 | 登录成功 |
TC003 | 用户名为12个字符(有效) | 用户名:user12345678 | 登录成功 |
TC004 | 用户名为13个字符(无效) | 用户名:user123456789 | 显示错误信息 |
密码边界值测试用例
测试用例编号 | 描述 | 输入 | 预期结果 |
TC005 | 密码为7个字符(无效) | 密码:Passw1 | 显示错误信息 |
TC006 | 密码为8个字符(有效) | 密码:Passw12 | 登录成功 |
TC007 | 密码为16个字符(有效) | 密码:Password1234567 | 登录成功 |
TC008 | 密码为17个字符(无效) | 密码:Password12345678 | 显示错误信息 |
数据组合法(正交试验设计)
正交试验设计是一种系统的实验设计方法,通过选择有限的测试用例覆盖所有因素的组合,减少测试数量的同时保证覆盖率。
用户登录功能示例
因素和水平:
- 用户名:
- 有效用户名1:user123
- 有效用户名2:user456
- 无效用户名:usr
- 密码:
- 有效密码1:Password1
- 有效密码2:Passwrd2
- 无效密码:Pass
正交数组L9(3^2)设计
测试用例编号 | 用户名 | 密码 | 预期结果 |
TC001 | user123 | Password1 | 登录成功 |
TC002 | user123 | Passwrd2 | 登录成功 |
TC003 | user123 | Pass | 显示错误信息 |
TC004 | user456 | Password1 | 登录成功 |
TC005 | user456 | Passwrd2 | 登录成功 |
TC006 | user456 | Pass | 显示错误信息 |
TC007 | usr | Password1 | 显示错误信息 |
TC008 | usr | Passwrd2 | 显示错误信息 |
TC009 | usr | Pass | 显示错误信息 |
决策表
决策表是一种系统的方法来记录不同输入条件组合下的系统行为,适用于条件复杂、输入条件多的场景。
用户登录功能示例
条件和行为:
- 条件:
- 用户名有效(A)
- 用户名无效(¬A)
- 密码有效(B)
- 密码无效(¬B)
- 行为:
- 登录成功
- 登录失败
决策表设计
条件 | A | ¬A | A | ¬A | A | ¬A | A | ¬A |
条件 | B | B | ¬B | ¬B | B | B | ¬B | ¬B |
行为 | 登录成功 | 登录失败 | 登录失败 | 登录失败 | 登录成功 | 登录失败 | 登录失败 | 登录失败 |
测试用例设计
决策表测试用例
测试用例编号 | 描述 | 输入 | 预期结果 |
TC010 | 用户名有效,密码有效(登录成功) | 用户名:user123 密码:Password1 | 登录成功 |
TC011 | 用户名无效,密码有效(登录失败) | 用户名:usr 密码:Password1 | 登录失败 |
TC012 | 用户名有效,密码无效(登录失败) | 用户名:user123 密码:Pass | 登录失败 |
TC013 | 用户名无效,密码无效(登录失败) | 用户名:usr 密码:Pass | 登录失败 |
因果图
因果图用于表示输入条件(原因)和输出结果(结果)之间的逻辑关系,可以帮助设计复杂的测试用例。
用户登录功能示例
条件和结果:
- 条件:
- 用户名有效(A)
- 用户名无效(¬A)
- 密码有效(B)
- 密码无效(¬B)
- 结果:
- 登录成功(R1)
- 登录失败(R2)
因果图设计
根据因果图,可以设计以下测试用例:
因果图测试用例
测试用例编号 | 描述 | 输入 | 预期结果 |
TC014 | 用户名有效,密码有效(登录成功) | 用户名:user123 密码:Password1 | 登录成功 |
TC015 | 用户名无效,密码有效(登录失败) | 用户名:usr 密码:Password1 | 登录失败 |
TC016 | 用户名有效,密码无效(登录失败) | 用户名:user123 密码:Pass | 登录失败 |
TC017 | 用户名无效,密码无效(登录失败) | 用户名:usr 密码:Pass | 登录失败 |