测试用例(Test Case)是为了实施测试而向被测试的系统提供的一组集合,这组集合包含:测试环境、操作步骤、测试数据、预期结果等要素。它是将软件测试的行为活动做一个科学化的组织归纳,目的是能够将软件测试的行为转化成可管理的模式。
测试用例应覆盖软件的所有功能、特性和场景,包括正常情况和异常情况。
测试用例应该能够在相同的条件下重复执行,以确保测试结果的一致性。
每个测试用例应该相互独立,一个测试用例的执行结果不应该影响其他测试用例的执行。
测试用例应该易于理解、修改和扩展,随着软件的更新和需求的变化,能够方便地对测试用例进行调整。
测试用例的操作步骤和预期结果应该明确、清晰,避免产生歧义。
将输入数据划分为若干个等价类,从每个等价类中选取一个或多个代表性的数据作为测试用例。等价类分为有效等价类和无效等价类,有效等价类是指符合需求规格说明的数据集合,无效等价类是指不符合需求规格说明的数据集合。
假设一个系统要求输入的年龄范围是 18 - 60 岁。
测试用例可以设计为:
用例编号 | 输入数据 | 预期结果 |
---|---|---|
1 | 20 | 输入成功 |
2 | 15 | 提示年龄不能小于 18 岁 |
3 | 65 | 提示年龄不能大于 60 岁 |
边界值分析法是对等价类划分法的补充,它关注输入数据的边界值。通常选取等价类的边界值和刚好超出边界的值作为测试用例,因为软件在边界处更容易出现错误。
对于上述年龄输入系统,边界值分析的测试用例可以设计为:
用例编号 | 输入数据 | 预期结果 |
---|---|---|
1 | 18 | 输入成功 |
2 | 19 | 输入成功 |
3 | 60 | 输入成功 |
4 | 61 | 提示年龄不能大于 60 岁 |
5 | 17 | 提示年龄不能小于 18 岁 |
因果图法是一种根据输入条件和输出结果之间的因果关系来设计测试用例的方法。它通过分析软件规格说明中的因果关系,将其转换为判定表,然后从判定表中生成测试用例。
假设一个系统有两个输入条件:A 和 B,输出结果为 C。当 A 为真且 B 为真时,C 为真;否则 C 为假。
因果图如下:
原因:
A - 条件 1
B - 条件 2
结果:
C - 输出结果
因果关系:
A ∧ B → C
判定表如下:
A | B | C |
---|---|---|
T | T | T |
T | F | F |
F | T | F |
F | F | F |
测试用例可以设计为:
用例编号 | 输入条件 A | 输入条件 B | 预期输出 C |
---|---|---|---|
1 | 真 | 真 | 真 |
2 | 真 | 假 | 假 |
3 | 假 | 真 | 假 |
4 | 假 | 假 | 假 |
判定表是一种用于分析和表达复杂逻辑关系的工具,它将条件和动作之间的逻辑关系以表格的形式呈现。判定表驱动法就是根据判定表来设计测试用例,确保每个条件组合都被覆盖。
一个系统根据用户的会员等级和消费金额来决定是否给予折扣。会员等级分为普通会员、高级会员,消费金额分为小于 100 元、大于等于 100 元。当高级会员消费金额大于等于 100 元时,给予 9 折优惠;其他情况不给予折扣。
判定表如下:
条件 | 规则 1 | 规则 2 | 规则 3 | 规则 4 |
---|---|---|---|---|
会员等级:普通会员 | T | T | F | F |
会员等级:高级会员 | F | F | T | T |
消费金额 < 100 元 | T | F | T | F |
消费金额 ≥ 100 元 | F | T | F | T |
动作 | ||||
给予 9 折优惠 | F | F | F | T |
不给予折扣 | T | T | T | F |
测试用例可以设计为:
用例编号 | 会员等级 | 消费金额 | 预期结果 |
---|---|---|---|
1 | 普通会员 | 80 元 | 不给予折扣 |
2 | 普通会员 | 120 元 | 不给予折扣 |
3 | 高级会员 | 60 元 | 不给予折扣 |
4 | 高级会员 | 150 元 | 给予 9 折优惠 |
场景法是根据用户使用软件的实际场景来设计测试用例。它通过分析软件的业务流程,确定主要场景和备选场景,然后为每个场景设计测试用例。
以一个网上购物系统为例,主要场景为:用户登录 -> 浏览商品 -> 添加商品到购物车 -> 结算 -> 支付。
测试用例可以设计为:
用例编号 | 场景描述 | 操作步骤 | 预期结果 |
---|---|---|---|
1 | 正常购物流程 | 1. 用户登录系统;2. 浏览商品列表,选择商品;3. 将商品添加到购物车;4. 进入购物车结算;5. 选择支付方式完成支付。 | 1. 登录成功;2. 能够正常浏览商品;3. 商品成功添加到购物车;4. 结算信息正确;5. 支付成功,订单生成。 |
2 | 未登录购物 | 1. 直接浏览商品列表,选择商品;2. 将商品添加到购物车;3. 进入购物车结算。 | 1. 能够正常浏览商品;2. 商品成功添加到购物车;3. 提示用户先登录。 |
详细描述执行测试用例的操作步骤,步骤应清晰、可操作。
列出执行测试用例所需的输入数据,如用户名、密码、金额等。
明确执行测试用例后应该得到的结果,预期结果应该与测试步骤相对应,并且具有可验证性。
在执行测试用例后,记录实际得到的结果,用于与预期结果进行对比。
根据实际结果与预期结果的对比,判断测试用例是否通过,结果可以为 “通过”、“失败” 或 “阻塞”。
在测试用例编写完成后,组织相关人员进行评审,包括开发人员、测试人员、产品经理等。评审的目的是检查测试用例的完整性、正确性和可行性,确保测试用例能够有效地发现软件缺陷。
随着软件的不断更新和需求的变化,测试用例也需要进行相应的维护。及时更新测试用例,删除无效的用例,添加新的用例,以保证测试用例的有效性和覆盖率。
按照测试计划执行测试用例,记录测试结果。对于失败的测试用例,要及时进行问题跟踪和缺陷修复,直到测试用例通过为止。可以使用测试管理工具(如 Jira、TestLink 等)来管理测试用例的执行和跟踪过程。