测试用例设计常用方法
1. 等价类划分(Equivalence Partitioning)
核心思想:将输入数据划分为若干等价类(有效/无效),从每个类中选取代表性数据作为测试用例。
适用场景:输入数据存在明确范围或规则(如表单字段、参数校验)。
示例:
输入框要求1~100的整数:有效等价类:50(1~100内的合法值)
无效等价类:0(小于1)、101(大于100)、"abc"(非数字)。
2. 边界值分析(Boundary Value Analysis)
核心思想:针对输入范围的边界(如最小值、最大值、临界值)设计用例,因为边界容易出错。
适用场景:数值型输入、数组/列表长度、循环条件等。
示例:
输入1~100的整数:测试用例:0, 1, 2, 99, 100, 101。
3. 因果图(Cause-Effect Graphing)
核心思想:分析输入条件(因)与输出结果(果)的逻辑关系,转化为判定表设计用例。
适用场景:多条件组合影响结果的复杂逻辑(如规则引擎、业务流程)。
步骤:
列出所有输入条件(因)和输出结果(果)。
画出因果图,标注逻辑关系(与、或、非)。
生成判定表,覆盖所有组合。
示例:
登录功能:输入用户名(因1)、密码(因2)→ 输出成功/失败(果)。
4. 判定表驱动(Decision Table Testing)
核心思想:用表格表示条件组合和对应动作,覆盖所有可能组合。
适用场景:规则明确的业务逻辑(如优惠券折扣、保险费计算)。
示例:
订单金额 会员等级 预期折扣 <100 普通 0% ≥100 黄金 10%
5. 状态转换测试(State Transition Testing)
核心思想:基于系统状态变化设计用例(如状态机、工作流)。
适用场景:有明确状态转换的系统(如订单状态、游戏关卡)。
示例:
订单状态:待支付 → 支付 → 已发货 → 已完成。
6. 错误推测法(Error Guessing)
核心思想:基于经验猜测可能出错的地方(如空输入、极端操作)。
适用场景:补充其他方法未覆盖的异常场景。
示例:
文件上传测试:上传0字节文件、重复上传同名文件。
7. 场景法(Scenario Testing)
核心思想:模拟真实用户场景(如端到端流程、用户故事)。
适用场景:业务逻辑测试、系统测试。
示例:
电商下单流程:登录 → 搜索商品 → 加入购物车 → 支付 → 查看订单。
8. 正交试验法(Orthogonal Array Testing)
核心思想:用数学方法减少多因素组合的用例数量,覆盖主要组合。
适用场景:多参数组合测试(如配置兼容性、多条件筛选)。
工具:AllPairs、正交表生成工具。
9. 探索性测试(Exploratory Testing)
核心思想:边测试边学习,动态设计用例(依赖测试人员经验)。
适用场景:敏捷开发、需求不明确或时间紧迫时。
选择方法的建议:
功能测试:等价类 + 边界值 + 场景法。
复杂逻辑:因果图 + 判定表。
状态流转:状态转换法。
性能/压力测试:边界值 + 错误推测。
兼容性测试:正交试验法。
通过组合这些方法,可以系统性地覆盖功能、边界、异常和用户场景,提高测试有效性。