1. 等价类划分
等价类划分(Equivalence Partitioning)是将输入数据划分为若干个等价类,每个等价类中的数据被认为是等效的。通过选择每个等价类中的一个代表值进行测试,可以有效减少测试用例数量。
应用场景
- 适用于有大量可能输入值的系统,例如用户名、密码长度的输入验证等。
示例
假设系统要求用户输入年龄,取值范围为 18 到 60。那么:
- 有效等价类:18 ≤ 年龄 ≤ 60,代表值可以选择 30。
- 无效等价类:年龄 < 18 或 年龄 > 60,代表值可以选择 15 和 65。
测试用例将覆盖有效输入和无效输入,而不需要测试所有可能的输入值。
2. 边界值分析
边界值分析(Boundary Value Analysis)专注于测试输入范围的边界,通常在边界处系统更容易出现错误,因此通过测试边界值可以有效发现潜在问题。边界值分析通常和等价类划分一起使用。
应用场景
- 对于输入范围有限制的系统,例如年龄、工资等有上下限的输入验证。
示例
继续以上年龄的例子,假设要求输入的年龄在 18 到 60 之间:
- 边界值:17(低于下限)、18(下限)、59(接近上限)、60(上限)、61(高于上限)
通过测试这些边界值,可以确认系统在临界点的表现。
3. 决策表
决策表(Decision Table)适用于多条件组合的情况。它通过表格方式将条件和相应的结果列出,从而确保所有组合情况都被测试到。
应用场景
- 系统的输出取决于多个输入条件的组合时,例如表单填写的多个选项控制表单的提交行为等。
示例
假设一个登录页面有两个条件:用户名和密码的正确性。可以构建以下决策表:
| 用户名正确 | 密码正确 | 结果 |
|---|---|---|
| 是 | 是 | 登录成功 |
| 是 | 否 | 登录失败 |
| 否 | 是 | 登录失败 |
| 否 | 否 | 登录失败 |
此表涵盖了所有组合情况,保证测试了系统的完整性。
4. 状态迁移测试
状态迁移测试(State Transition Testing)主要应用于系统的行为依赖于当前状态的情况。它通过测试不同状态之间的转换,确保系统在各种状态变化时都能正常工作。
应用场景
- 适用于具有不同状态的系统,例如用户权限管理(登录、登出)、订单流程(待支付、已支付、已发货)等。
示例
假设一个简单的订单状态流程:待支付 → 已支付 → 已发货 → 已完成。测试用例可以包含以下状态迁移:
- 待支付 → 已支付
- 已支付 → 已发货
- 已发货 → 已完成
- 确认在无效状态转换(如“待支付→已发货”)时系统是否正常处理。
5. 因果图
因果图(Cause-Effect Graphing)是将输入和预期输出关系转化为图表,特别适合条件复杂的情况。因果图将输入条件视为“因”,输出视为“果”,通过图形分析条件间的关系。
应用场景
- 适用于条件复杂、条件间有依赖关系的场景,例如用户表单中多项输入条件组合的有效性验证。
示例
假设一个系统要求年龄 >18 且拥有信用卡,才能批准贷款申请。因果图可以将这两个条件(因)表示为节点,结果(果)为“批准贷款”,从而建立条件之间的关系。
6. 场景法
场景法是基于实际使用场景设计测试用例,模拟用户可能的操作路径。场景法关注系统在实际使用中的行为,通过覆盖常见或重要的用户行为场景,确保系统在实际操作中表现正常。
应用场景
- 适用于复杂系统和功能模块组合,如电商流程中的浏览、添加购物车、结算等多个环节。
示例
对于一个电商网站,可以设计以下场景:
- 用户浏览商品 → 添加商品到购物车 → 结算 → 支付。
- 用户浏览商品 → 收藏商品 → 退出。
7. 错误推测法
错误推测法(Error Guessing)是基于测试人员的经验,推测系统可能发生错误的地方,通过设计专门的测试用例来验证。通常与其他方法结合使用。
应用场景
- 用于覆盖难以通过规则定义的场景,特别是异常值、特殊字符、格式错误等。
示例
对于输入框的测试,错误推测法可能包含以下用例:
- 输入特殊字符(如
@#$%)测试系统处理。 - 输入过长或过短的字符串,测试系统的限制。
- 空输入,验证系统的异常处理。
8. 组合测试(Pairwise Testing)
组合测试(Pairwise Testing)通过成对组合的方式测试多个变量的组合情况。这种方法适用于多个参数组合情况下,不可能穷举所有组合的场景。
应用场景
- 适用于有多个输入变量但不可能测试所有组合的系统。
示例
假设有三个变量:颜色(红、绿、蓝)、尺寸(大、小)、材料(木、金属)。穷举所有组合需要 3x2x2 = 12 种情况,而组合测试可以选择仅覆盖最小的成对组合情况,大大减少测试量。
9. 探索性测试
探索性测试(Exploratory Testing)是在没有详细测试用例的情况下,根据系统特性和测试人员的经验,在测试执行过程中实时设计和执行的测试方法。这种方法依赖于测试人员的专业经验和对系统的理解。
应用场景
- 适用于需求文档不全、时间紧迫,或者需要挖掘潜在缺陷的情况。
示例
例如测试一个社交媒体应用时,测试人员可以根据直觉测试不同组合的好友请求、发布内容、点赞等操作,实时发现系统的意外行为。
757

被折叠的 条评论
为什么被折叠?



