软件测试中的等价分割是一种黑盒测试技术,可帮助您在不影响测试覆盖率的情况下构建高效的测试用例。
在本文中,我们将介绍什么是等价类划分、为什么它很有用,并探讨您可以用来释放这种技术优势的一些流程和方法。
什么是等价类划分
软件测试?
所有软件都有特定的输入条件。 在软件测试中,这些输入条件描述了测试人员必须用来验证软件质量和功能的值或数据。 这些输入可以是简单的鼠标点击,也可以是文本和数字。
软件测试中的等效分区探讨了使用软件所需的不同输入,并将它们归类为等效类,即对软件行为产生等效影响的输入集合。
如果您知道每组输入的行为方式,那么您就不需要测试该组中的每个代表。 因此,等价类划分是帮助测试人员减少冗余测试频率的好方法。 在竞争激烈、期限日益紧迫的软件开发领域,节省软件测试生命周期(STLC)的时间和精力至关重要。
最后,值得注意的是,等价测试是一种黑盒测试技术。 简而言之,这意味着测试人员无需了解程序的内部代码或内部运作。 测试基于输入、输出和外部行为。 因此,这些测试高度集中于用户使用程序时的行为。
1.软件测试等价分割简述
等价分割法将软件测试输入数据分为两个阵营:有效输入和无效输入。 每个分区内的值必须使软件表现出相同的行为。 例如
- 如果 A 部分中一个值的条件为真,那么 A 部分中的其他值也必须为真。
- 同样,如果 A 部分中一个值的条件是假的,那么 A 部分中的其他值也一定是假的。
在测试中,每个分区必须至少覆盖一次。 从逻辑上讲,这意味着如果分区 A 中的一个输入失败,那么所有其他输入也将失败。 这一过程可以节省时间,因为测试人员无需测试 A 部分中的每个输入,只需测试一个输入,然后根据其共性推断结果即可。
2.软件测试中的等价类测试为何重要
在了解等价类测试在软件测试中的直接优势之前,我们必须先明确这种方法的重要性。
所有测试人员都明白,软件测试需要妥协。 时间和预算都是有限的,这意味着测试人员需要充分利用资源。 软件测试等效分区通过减少输入数量,帮助团队在测试中找到效率和可靠性之间的平衡点。
等价分割的好处
软件测试
出于各种原因,软件测试中的等效分区受到测试团队的青睐。 下面是一些最引人注目的例子。
1.效率
等效分区测试的最大优势在于其效率。 当测试人员使用等价分割时,他们可以在不影响测试覆盖率的情况下减少所需的测试用例数量。 通过从每个等价类中选择一个输入案例,测试人员可以确信他们了解软件在各种输入情况下是如何工作的。
2.简约
软件测试等价分割法的另一大优势是简单。 将各种输入数据分解为有效数据和无效数据,意味着测试计划的制定要简单得多。 对每个输入进行单独测试需要大量的文档和协调工作。 将其缩减为一个有代表性的示例,可简化测试过程。
扩大覆盖范围
在测试中使用等价类还能让您更有效地利用测试时间。 将测试输入减少为类意味着你可以更彻底地测试每个类。 坦率地说,如果对每项输入进行单独测试,这种综合方法是不可能实现的。 等价分割允许团队对有效和无效数据、边缘情况、边界值等进行全面测试。
3.可重用性
在软件测试中建立每个等价类所投入的初始时间,如果能在未来的输入测试中重复使用这些等价类,就能得到回报。 虽然并非所有分区都与未来的测试相关,但与未来项目甚至回归测试相关的分区将为你节省大量时间。
等价分割的缺点
软件测试
虽然等效分区具有一些重大优势,但它并不是每种情况下的理想解决方案。 让我们来探讨一下它的一些局限性。
1.输入顺序
在某些情况下,输入顺序是测试应用程序功能的关键部分。 这不是使用等价分割就能真正减少的。 测试人员必须时刻注意这些情况,并使用其他技术来提供良好的覆盖范围。
2.复杂的输入依赖性
具有复杂输入依赖性的复杂软件是暴露等价分割局限性的另一个领域。 例如,根据各种输入输出计算结果的软件。 在这种情况下,测试人员需要使用各种技术来减少组合爆炸,提高隔离缺陷的可能性。
补充
等效性测试的局限性
虽然等效分区测试适用于许多测试场景,但输入值之间存在错综复杂依赖关系的高度复杂软件可能需要额外的补充方法。
在为复杂软件编写测试用例时,将这些方法结合起来使用是个不错的主意。
1.成对测试
成对测试是一种软件测试技术,用于测试每一对输入参数的所有可能组合。 这种方法可确保每对参数至少一起测试一次。
2.决策表测试
决策表可帮助测试人员有条不紊地规划出不同的输入组合。 当存在复杂的依赖关系时,这是确保系统覆盖的好方法。
3.状态转换测试
这种测试类型测量软件如何根据各种输入组合在不同状态之间转换。
4.基于模型的测试
这种方法要求根据软件的内部逻辑建立一个模型,并使用自动化工具根据该模型创建测试用例。 这种技术善于处理复杂性,并确保足够的覆盖范围。
等价类划分测试示例
了解等价分割的最佳方法是看看在软件测试中如何以及在何处使用等价类。 下面的几个例子可以帮助您进一步直观地理解这一概念。
1.等价类划分测试示例 #1
在线订单是软件测试中一个很好的等价类示例。
假设您正在为一家在线固定设备零售商开发一款应用程序。 有一份典型的 A4 纸订货单。 下面介绍如何使用等价类来测试这种形式。
等价类
A4 纸的数量在特定范围内,例如 1 到 100。 因此,这三个等级是
- 1 至 100
- 低于 1 的数字
- 数字超过 100。
测试案例:
应运行三个测试用例,预期结果如下
- 1 到 100 之间的任何数字 = 订单已处理
- 低于 1 的数字 = 错误信息
- 数字超过 100 = 错误信息
2.等效分区测试示例 #2
软件测试中的等价类可以处理的不仅仅是数字。 在本例中,我们将探讨如何使用相同的原理来验证文件上传门户。 假设您需要为一个要求用户上传身份证件的网站进行测试,但只能接受特定格式的文件。
等价类
- 支持 PDF 和 JPEG 文件。
- 不支持的文档为所有其他文档格式
- 无文件
测试案例:
- 通过上传 PDF 或 JPEG 进行测试 = 成功上传
- 通过上传不支持的格式进行测试 = 错误信息
- 没有上传文件的测试 = 错误信息
如何实现等价分割
软件测试方法
如果您想在测试中使用等价类,就需要采取策略性的方法。 以下是在软件测试中实施等价分割的实用分步指南。
步骤 1:确定输入变量
每个软件都能对各种输入变量做出响应。 对于复杂的软件来说,这些变量可能是巨大的。 因此,要仔细研究软件需求和规格,找出对软件行为有影响的所有变量。
一些最明显的输入包括用户输入表单。 不过,您需要为您的清单考虑更广泛的输入。 您还可以考虑环境变量、API 调用、内部计算等。
接下来,你应该了解不同类型的变量数据。 您可以将这些变量分为整型、布尔型、字符串型等,以定义适当的分区。
最后,您需要探索输入限制。 这包括允许使用的字符、定义的格式以及最小/最大值。
步骤 #2. 确定有效和无效分区
查看每个输入变量,并开始根据有效和无效结果对其进行划分。 这些就是测试中的等价类。
1.有效分区
有效分区可分为两类。
正等价类
您希望软件能成功处理的值。 例如,对于记录百分制成绩的软件来说,0 到 100 之间的任何值都是有效的。
负等价类
该类别用于处理超出预期输入范围的值,但软件应使用错误信息进行处理。 例如,输入 110 表示百分制,软件会返回错误信息,提示 “所有值必须为 0 至 100″。
2.无效分区
这些等价类将包括会引发错误或意外行为的输入。 在我们上面的例子中,这可能包括尝试将 A+、B 或类似的输入值输入到百分制成绩中。 虽然这些输入在技术上可能是正确的,但它们超出了数字预期。
#3. 编写有效的测试用例
接下来,您需要设计测试用例,让每个等价分区至少覆盖一次。 正如本文前面提到的,这能确保适当的测试覆盖率。
首先,您必须在每个等价分区中选择能涵盖有效数据和无效数据的代表值。
编写可靠测试用例的技巧
- 考虑边界值:确保测试分区的边界。 最小值、最大值、包容性、排他性等,因为这些方面很容易出现 bug。 例如,如果您的输入期望值在 0 到 100 之间,则要测试负值以及 101 这样的数字。
- 为有效和无效测试用例考虑正反两方面的测试场景。
- 综合测试是个好主意。 使用我们的替代方法中概述的几种不同方法来补充上述等效性测试部分的局限性。
- 记录将输入值划分为特定分区的理由,并明确概述每个测试的预期行为
- 在可能的情况下,使用可视化工具,通过图表或表格来绘制分区,使测试用例更加清晰和客观。
#4. 安排和执行测试用例
根据以下因素确定任务的优先顺序
- 哪些区域最有可能存在缺陷
- 哪些场景最有可能导致严重场景,如崩溃或冻结
然后,执行测试并记录输出结果和出现的任何错误。 对于有大量输入的复杂程序,您可以使用RPA工具来模仿用户操作。
#5. 分析结果
汇集收集到的测试数据并分析结果。 您需要使用的一些方法是
- 查看每个测试用例,将实际输出与预期输出进行比较
- 查找任何差异,调查并报告任何错误和缺陷。
#6 补充提示
虽然这些技巧并不适用于所有情况,但对于复杂的软件测试却很有用。
- 决策表是可视化等价分区和可能要使用的不同输入组合的绝佳方法
- 如果等价类表现出几乎相同的行为,您可以将它们合并,从而进一步优化测试过程
- 使用边界值测试改进缺陷检测
- 尽可能将等价分割测试用例自动化
等价分割和边界值分析
等效分区的前提是,分区内的每个测试都会产生相同的结果。 虽然这在很多情况下是正确的,但并不总能奏效。 例如,错误添加到分区中的任何输入可能会被忽略,从而导致覆盖率降低和潜在的软件不稳定性。
解决这个问题的办法就是边界值测试。 它使软件测试团队能够专注于最有可能包含风险的领域,并在此基础上对软件进行测试。 简而言之,它认为风险最有可能发生在输入分区的边缘或边界。 因此,除了其他等价类测试用例外,测试人员还可以根据输入的上下限编写测试用例。
利用 ZAPTEST 进行等效分区并实现自动化
软件测试自动化工具(如ZAPTEST)可帮助团队在测试创建和执行过程中自动进行等价分割。
让我们探讨一下 ZAPTEST 如何帮助您释放这种有用的黑盒测试方法的优势。
1.工具选择
为工作选择合适的工具非常重要。 大多数测试自动化工具都专注于网络、移动或桌面测试。 ZAPTEST 能够处理跨不同平台和应用程序的测试,是一个可靠的选择。
2.编写和执行测试用例
ZAPTEST 1Script 可让您扫描用户界面,构建自动化测试。 此外,如果您正处于早期开发阶段,还可以扫描应用程序模型。 使用扫描图形用户界面功能,ZAPTEST 将扫描所有测试对象并将其添加到对象列表中。
在这里,您可以向图表中添加对象,并构建测试步骤。
ZAPTEST 可让您通过简单的拖放界面自动编写案例。 使用 ZAPTEST 创建测试用例不需要专业的编码知识。 因此,您可以从下拉方法中选择相关操作,并根据界面所需的输入值构建测试用例。 然后,就可以为每个等价关系建立测试用例,并执行测试用例。 您甚至可以重复使用测试用例,并在步骤编辑器中对其进行编辑,从而节省大量时间。
3.报告和测试用例管理
ZAPTEST 允许您并行运行测试用例,从而节省大量时间。 这可以帮助您同时运行大量不同的等效分区,或运行特定的测试组。
通过与每个测试用例相关的详细失败/通过报告、屏幕截图、执行日志和性能指标,可以轻松收集结果。
4.测试用例维护
借助高质量的版本控制功能,您还可以简单地跟踪和维护测试用例。 此外,ZAPTEST 用户还可以克隆和重复使用测试,从而将效率提高到新的水平。
除了测试用例自动化,ZAPTEST 还提供更多功能。 借助RPA工具套件,ZAPTEST 提供了二合一功能,在以超自动化为标志的未来,即一切可以自动化的都将自动化的时代,缩小了 DevOps 和 BizOps 之间的差距。
最后的想法
对于测试人员必须在效率和准确性之间取得平衡的情况,等效分区是一种优雅的解决方案。 由于某些软件允许几乎无穷无尽的输入,等价类划分可帮助团队将测试数据分解成易于管理的小块,每个小块都可以进行彻底测试。