什么是软件测试中的领域测试? (附示例)

⚡ 智能摘要

领域测试通过向应用程序提供最小的有用输入集来检查应用程序,涵盖有效值、无效值和边界值,并确认只有在可接受范围内的值才能产生所需的输出。

  • 🔘 核心思想: 将每个输入域拆分为等价类,并测试每个类的一个代表值,而不是测试每个可能的输入。
  • ☑️ 边界焦点: 处于类别边缘或类别边缘之外的值,比中间范围的值更容易暴露出相差一的缺陷。
  • 成对技术: 等价类分析决定了组ping边界值分析决定每个组中哪个成员运行。
  • 🧪 示例: 票务模块按年龄和性别分配比赛,将四个年龄组简化为一个简短、高价值的测试集。
  • 📈 知识依赖性: 判断输出是否正确需要业务规则,因此该技术适用于小而易于理解的逻辑块。

软件测试中的领域测试:等价类和边界值

什么是域测试?

领域测试 是一个意念波· 软件测试 领域测试是指通过提供最少数量的输入并评估其相应的输出来测试应用程序的过程。领域测试的主要目标是检查软件应用程序是否能够接受可接受范围内的输入并提供所需的输出。

而是一种 功能测试 这是一种使用最少数量的输入来测试系统输出的技术,以确保系统不会接受无效或超出范围的输入值。它也被视为一项重要的技术。 白盒测试 方法。它还会验证系统是否不应接受超出指定或有效范围的输入、条件和索引。

领域测试因具体领域而异,因此您需要具备领域特定的知识才能测试软件系统。

更简单的领域测试实践

在域测试中,我们将域划分为子域(等价类),然后使用每个子域的值进行测试。例如,如果已指定一个网站(域)进行测试,我们将把该网站划分为小部分(子域),以方便测试。

领域可能涉及对任何一个输入变量或多个输入变量的组合进行测试。

从业者经常用另外两个名称来研究领域测试中最简单的案例,即“边界测试”和“等价类分析”。

边界测试边值分析 (BVA) 基于分区边界处的测试。我们将测试分区/类中的有效和无效输入值。

等价类测试 – 该技术背后的想法是将一组测试条件划分(即分区)为可以被视为相同的组或集合(即系统应该等效地处理它们),因此称为“等价划分”。

这种简化形式适用于领域测试——

  • 仅针对输入变量的测试
  • 只有在测试时 系统级
  • 仅当一次测试一个时
  • 仅当以非常肤浅的方式进行测试时

可以简化如下:

请按需咨询 有效类 等价类 无效类等价类 边界和特殊情况 笔记
X 0-100 0
100
<0 -1
> 100 101

说明:

  • 如果一个字段接受 0-100 范围内的值,则该字段不应接受 -1 和 101,因为它们是无效的输入,超出了范围。
  • 该字段应接受 0、100 以及介于两者之间的任何数字。

实际操作中,可以像这样构建表格。

  • 要构建随时间变化的等价类分析,请将信息输入电子表格。首先列出变量,然后随着信息的获取不断添加相关信息。
  • 表格最终应包含所有变量。这意味着所有输入变量、所有输出变量以及任何可以观察到的中间变量。
  • 实际上,大多数此类表格都不完整。最好的表格会列出所有变量,并对关键变量添加详细信息。

领域测试策略

在进行领域测试时,需要考虑以下事项:

  • 我们正在测试哪个域?
  • 如何将值分组?
  • 要测试哪些类别的值?
  • 如何确定结果?

我们正在测试哪个域?

我们测试的任何领域都包含输入功能和输出功能。需要输入一些变量,并验证相应的输出。下图展示了这种输入输出关系。

领域测试策略展示了流入领域的输入变量以及产生的输出。

域测试示例

考虑单个输入测试场景:

C = a+b,其中 a 和 b 是输入变量,C 是输出变量。

在上面的例子中,既不需要分类,也不需要对变量进行任何组合。

考虑以下多个输入和适当的输出场景:

设想一个面向儿童的游戏展览。展览设置了六项比赛,需要根据年龄和性别信息发放门票。售票系统是本次游戏展览整体功能测试的模块之一。

根据情景,我们根据年龄和比赛得到了六种情景:

  • 年龄大于5岁且小于等于10岁的男孩应参加讲故事活动。
  • 年龄大于5岁且小于等于10岁的女孩应参加绘画比赛。
  • 年龄大于10岁且小于等于15岁的男孩应参加测验。
  • 年龄在10岁至15岁之间的女孩应参加作文比赛。
  • 5岁及以下的男孩和女孩都可以参加韵律比赛。
  • 年龄>15岁,男孩和女孩均应参加诗歌比赛。

这里需要输入年龄和性别,并据此发放比赛门票。这种情况需要对输入进行划分,或者简单地说,需要进行分组。ping 价值观就体现出来了。

如何将值分组?

对某些值进行分区意味着将它们拆分成互不重叠的子集。ping 子集。

正如我们前面讨论过的,分区有两种类型:

  • 等价划分 等价类划分是一种软件测试技术,它将软件单元的输入数据划分为若干等价数据分区,然后从中筛选出可执行的分区。 测试用例 可以推导得出。原则上,测试用例的设计目标是至少覆盖每个分区一次。
  • 边值分析 边界值分析是一种软件测试技术,其测试用例的设计旨在包含一定范围内的边界值代表。这一概念源于边界的概念。

以上述示例为例,我们将值划分成若干子集。我们将年龄划分成以下几类:

  • 第三类:5至10岁儿童
  • 第二类:年龄小于5岁的儿童
  • 第三类:10至15岁儿童
  • 第四类:年龄大于15岁的儿童。

要测试哪些类别的值?

用于测试的值应该是边界值:

  • 边界是我们所从中抽样的等价类的代表。与其他类成员相比,它们更有可能暴露错误,因此它们是更好的代表。
  • 等价类的最佳代表是范围之间的值。

对于上面的例子,我们有以下类需要测试:

例如,对于情景 1:

第一类:5至10岁儿童(年龄>5岁且≤10岁)

边界值:

  • 数值应等于或小于 10。因此,10 岁应包含在这一类别中。
  • 值应大于 5。因此,年龄 5 不应包括在此类中。
  • 数值应等于或小于 10。因此,11 岁不应包含在此类中。
  • 值应大于 5。因此,6 岁应包含在此类中。

等价分区值:

当只需要测试每个划分中的一个条件时,就称为等价划分。在这种方法中,我们假设如果一个划分中的一个条件成立,那么所有划分中的条件都应该成立。同样地,如果该划分中的一个条件不成立,那么我们假设其他所有划分中的条件都不会成立。例如:

(年龄 >5 岁且 <=10 岁)

由于 6 到 10 都是有效值,因此必须从 6、7、8、9 和 10 中选择一个值。所以,选择的年龄“8”是年龄组(年龄 > 5 且 <= 10)的有效输入年龄。这种划分方式称为等价划分。

EventXtra XNUMX大解决方案 应采取的边界值 等价分割值
男孩 – 年龄 >5 岁且 <=10 岁 输入年龄 = 6
输入年龄 = 5
输入年龄 = 11
输入年龄 = 10
输入年龄 = 8
女孩 – 年龄 >5 岁且 <=10 岁 输入年龄 = 6
输入年龄 = 5
输入年龄 = 11
输入年龄 = 10
输入年龄 = 8
男孩 – 年龄 >10 岁且 <=15 岁 输入年龄 = 11
输入年龄 = 10
输入年龄 = 15
输入年龄 = 16
输入年龄 = 13
女孩 – 年龄 >10 岁且 <=15 岁 输入年龄 = 11
输入年龄 = 10
输入年龄 = 15
输入年龄 = 16
输入年龄 = 13
年龄<=5 输入年龄 = 4
输入年龄 = 5
输入年龄 = 3
年龄> 15 输入年龄 = 15
输入年龄 = 16
输入年龄 = 25

我们如何确定程序是通过还是未通过测试?

功能是否通过不仅取决于上述场景的结果。给定的输入和预期的输出将决定最终结果,而这需要领域知识。

确定示例结果:下面的屏幕显示了每种年龄和性别组合的票务输出。

用于确定领域测试结果的每种年龄和性别组合的票务输出

因此,如果上述所有测试用例均通过,则竞赛中“发放门票”这一领域测试通过;否则,该领域测试失败。

领域测试结构

通常,测试人员在进行领域测试时会遵循以下步骤。这些步骤可以根据我们的测试需求进行自定义或省略。

  • 识别可能有趣的变量。
  • 确定您现在可以分析的变量并对其进行排序(从小到大,反之亦然)。
  • 如上所述创建并识别边界值和等价类值。
  • 确定次要维度,并用经典方法分析每个维度。(在上面的例子中,性别是次要维度。)
  • 识别并测试保存结果的变量(输出变量)。
  • 评估程序如何使用该变量的值。
  • 确定其他可能相关的变量以进行组合测试,其中 决策表测试 帮助。
  • 想象一下那些不一定能用显而易见的维度来衡量的风险。
  • 识别并列出未分析的变量。收集信息以供日后分析。
  • 使用风险/等价表总结您的分析。

常见问题

这两个标签在实践中都会出现。从规范中派生的类使其成为一个 黑盒子 该技术利用代码派生出的类,使其成为白盒软件。分析本身是相同的。

它仅用极少的测试用例就覆盖了容易出错的边缘区域。其局限性显而易见:边界难以精确界定,而且整个工作流程也从未被完整地测试过,因此它更像是对其他方法的补充,而非替代。

等价类划分是域测试中的一个步骤,域测试还会对变量进行排序,添加边界分析,处理次要维度和输出变量,最终生成风险表。

两者有重叠之处,但并不完全相同。本文主要介绍输入域分析,而工业应用方面则有更多内容,例如…… 医疗保健领域测试 运用行业知识进行能力测试,这对于判断预期结果仍然至关重要。

AI助手读取需求并提出候选等价类、边界值以及缺失的无效情况。测试人员仍然需要确认实际边界,因为错误推断的范围会产生一个看似可靠但却无用的测试集。

GitHub 副驾驶 当类和边出现在提示符或代码中时,它会编写参数化的测试方法。未明确说明的业务限制必须由测试人员提供。

每种组合都会呈倍数增长,因此很少实际应用。首先单独分析每个变量,然后再使用成对或单对组合方法。 正交阵 选择高风险组合。

仅测试有效类并跳过ping 负面测试使用包含边界(规则为排他性),并完全忽略输出变量。

总结一下这篇文章: