用例设计作为测试工程师的立身之本,是衡量测试工程师综合素质的重要参考,时间是测试工作中重要的测试资源,通过设计高质量的测试用例可以有效地提升测试效率。
本文旨在介绍测试工作中常用的五种用例设计方法。
什么是用例设计?
用例设计是质量保障过程的一个非常重要阶段,这个阶段主要通过分析测试场景并提取出测试用例,设计高质量的用例有以下重要作用:
- 有助于更高效发现程序中的缺陷;
- 避免浪费测试资源;
- 降低手工测试重复度。
软件测试中流行的用例设计方法
下面通过测试场景介绍测试设计方法:等价类划分、 边界值分析、 状态转换、 结对测试、 错误猜测。其中等价类划分和边界值分析是最常用的黑盒用例设计方法,可以降低必要测试场景的数量。
#1 等价类划分
等价类划分法将程序所有可能的输入数据(有效的和无效的)划分成若干个等价类。然后从每个部分中选取具有代表性的数据当做测试用例进行合理的分类,测试用例由有效等价类和无效等价类的代表组成,从而保证测试用例具有完整性和代表性。
使用这种方法意味着我们只需测试每个等价类中的几个值即可。当你处理大量相似的测试变量时,等价类划分是一个很好的解决方案。
等价类划分用例设计案例
有一家在线购物平台,其运费基于购物车价格而定。例如:
- 100CNY以下订单的运费为 15 CNY。
- 超过 100 CNY的订单运费为 5 CNY。
- 订单满 300 CNY免运费。
我们有以下价格范围可供选择:
- 从 1 CNY到 100 CNY。
- 从 100 CNY到 300 CNY。
- 300 CNY及以上。
如果使用等价类划分技术,我们可以获得三组数据进行测试:
- 从 1 CNY到 100 CNY:
– 有效边界条件:1 到 99.99 范围内的任何价格;
– 无效边界条件:任何低于 1 或高于 99.99 的价格;
- 从 100 CNY到 300 CNY:
– 有效边界条件:100至299.99 范围内的任何价格;
– 无效边界条件:任何低于100 或高于 299.99 的价格;
- 300 CNY及以上:
– 有效边界条件:高于 299.99 的任何价格;
– 无效边界条件:任何低于 300 的价格。
因此,我们可以只从每个价格范围中选择几个价格覆盖即可,并假定其余的相似输入可以得到等价输出。
#2 边界值分析
或许有人会觉得边界值分析是基于等价类划分的。那么它和等价类分析有何不同呢?
我们仍然将数据分组在等效的类中,但不只测试特定分组里的数据。相反,我们只关注分组的边界值,即那些位于“边界”的值。
边界值分析案例
- 从 1 CNY到 100 CNY:
– 有效边界条件:1.00、1.01、99.99;
– 无效边界条件:0.99、100.00、100.01;
- 从 100 CNY到 300 CNY:
– 有效边界条件:100.00、100.01、299.99;
– 无效边界条件:99.99、300.00;
- 300 CNY及以上:
- 有效边界条件:300.00、300.01;
– 无效边界条件:299.99。
#3 状态转换
该方法对于为具有许多状态变化的系统创建测试用例非常有效。如果你使用有限数量的输入选项测试一系列事件,这将很有帮助。
状态转换案例
状态转换的最简单示例是在 Web应用程序登录测试场景。比方说,我们正在测试一个系统,该系统允许用户输入有限次的正确密码尝试。如果用户在有限次数内未能输入正确的密码,系统将阻止其访问该应用。逻辑图如下所示:
不同颜色的块表示系统的不同状态。让我们添加指定状态的标签得到以下内容:
像下图这样的图表可以更容易地将可能的输入与预期的输出相匹配:
#4 结对测试
结对测试被认为是五种用例设计技术中最令人困惑的。结对测试基于数学算法,即组合数学。它可以创建独特的对并以不同的组合测试大量传入数据,但计算可能会变得复杂。为了使用需要最少时间进行测试覆盖最多的功能,你需要正确匹配数据,根据计算以得到用例组合对。
结对测试案例
比方说,有一个线上面包店在线销售苹果派和芝士蛋糕。每个都有三种尺寸可供选择——小号、中号和大号。面包店提供即时和预定的地址送货服务以及取货选项。这家面包店在三个城市开展业务——纽约、洛杉矶和芝加哥。此外,用户一次最多可以订购三件商品。
如果你想测试所有可能的输入,那就是 2x3x3x3x2x2=216 个有效的订单组合。但是,检查每一个都是不合理的。相反,我们可以以允许覆盖最大场景的方式安排变量。
为此,我们需要对变量进行分组,使用Pairwise Online Tool创建此示例。如下结果,我们得到了能够覆盖所有 216 种组合的 17 个场景。
#5 错误猜测
错误猜测是所有实践中最具实验性的实践,通常与另一种用例设计方法结合使用。在错误猜测中,QA 工程师根据专家经验、系统知识和产品要求预测可能出现错误的位置。因此,QA要确定缺陷容易累积的地方,并更加注意这些区域。
错误猜测案例
QA工程师从测试常见错误开始,例如:
- 在文本字段中输入空格。
- 在不输入数据的情况下按下提交按钮。
- 输入无效参数(电子邮件地址而不是电话号码等)。
- 上传超过最大限制的文件。… 等等。
QA专家经验越多,他们联想到的错误猜测场景就越多。