软件测试中的领域测试是什么?(附示例)
什么是域测试?
域测试是一种软件测试过程,通过输入最少数量的输入并评估其适当的输出来测试应用程序。域测试的主要目标是检查软件应用程序是否接受可接受范围内的输入并提供所需的输出。
它是一种功能测试技术,通过最少数量的输入测试系统的输出,以确保系统不接受无效和超出范围的输入值。它是最重要的白盒测试方法之一。它还验证系统不应接受指定或有效范围之外的输入、条件和索引。
域测试因每个特定域而异,因此您需要具备域特定知识才能测试软件系统。
域测试的简化实践
在域测试中,我们将一个域划分为子域(等价类),然后使用每个子域中的值进行测试。例如,如果一个网站(域)被用于测试,我们将把网站分成小部分(子域)以方便测试。
域可能涉及测试任何一个输入变量或输入变量的组合。
实践者通常以“边界测试”和“等价类分析”这两个名称来研究域测试的最简单情况。
边界测试——边界值分析(BVA)基于对分区边界的测试。我们将测试分区/类中的有效和无效输入值。
等价类测试——这种技术背后的思想是将一组测试条件划分为可以认为是相同的组或集合(即系统应该以相同的方式处理它们),因此称为“等价分区”。
这种简化形式适用于域测试——
- 仅用于输入变量的测试
- 仅当在系统级别进行测试时
- 仅当一次测试一个时
- 仅当以非常肤浅的方式进行测试时
可以简化如下:
变量 | 有效等价类 | 无效等价类 | 边界与特殊情况 | 备注 |
---|---|---|---|---|
X | 0-100 | 0 | ||
100 | ||||
<0 | -1 | |||
>100 | 101 |
解释
- 如果一个字段接受0-100范围内的值,则该字段不应接受-1和101,因为它们是无效条目且超出边界。
- 该字段应接受0、100以及它们之间的任何数字。
像这样构建表格(实际操作中)
- 要随着时间构建等价类分析,请将信息放入电子表格中。首先列出变量。随着您获得信息,添加有关它们的信息。
- 表格最终应包含所有变量。这意味着,所有输入变量、所有输出变量以及所有您可以观察到的中间变量。
- 在实践中,我所见过的大多数表格都是不完整的。最好的表格列出了所有变量,并为关键变量添加了详细信息。
域测试策略
在域测试时,您需要考虑以下事项:
- 我们正在测试哪个域?
- 如何将值分组到类中?
- 应测试哪些类的值?
- 如何确定结果?
我们正在测试哪个域?
我们测试的任何域都有一些输入功能和输出功能。将有一些输入变量需要输入,并且必须验证适当的输出。
域测试示例
- 考虑一个单一输入测试场景
C = a+b,其中 a 和 b 是输入变量,C 是输出变量。
在上述示例中,无需对变量进行分类或组合。
- 考虑以下多输入和适当输出场景
考虑一个儿童游戏展览,设置了6项比赛,根据年龄和性别输入发放门票。票务是游戏展览整体功能中需要测试的模块之一。
根据场景,我们根据年龄和比赛得到了六个场景。
- 年龄大于5且小于10的男孩应参加讲故事。
- 年龄大于5且小于10的女孩应参加绘画比赛。
- 年龄大于10且小于15的男孩应参加问答。
- 年龄大于10且小于15的女孩应参加作文比赛。
- 年龄小于5的男孩和女孩都应参加儿歌比赛。
- 年龄大于15的男孩和女孩都应参加诗歌比赛。
此处输入将是年龄和性别,因此将根据此发放比赛门票。这种输入的划分或简单的值分组就派上了用场。
如何将值分组到类中?
划分某些值意味着将其拆分为不重叠的子集。
正如我们之前讨论的,有两种类型的划分
- 等价划分——等价划分是一种软件测试技术,它将软件单元的输入数据划分为等价数据分区,从中可以导出测试用例。原则上,测试用例的设计应至少覆盖每个分区一次。
- 边界值分析——边界值分析是一种软件测试技术,其中测试设计为包含某个范围内的边界值代表。这个想法来源于边界。
对于上述例子,我们正在将值划分为子集。我们将年龄划分为以下几类:
- 类别 1:年龄组为 5 到 10 岁的儿童
- 类别 2:年龄小于 5 岁的儿童
- 类别 3:年龄组为 10 到 15 岁的儿童
- 类别 4:年龄大于 15 岁的儿童。
应测试哪些类的值?
用于测试的值应为边界值
- 边界是我们从中抽样等价类的代表。它们比其他类成员更有可能暴露出错误,因此它们是更好的代表。
- 等价类的最佳代表是介于该范围内的值。
对于上述示例,我们有以下类别需要测试
例如,对于场景 #1
- 类别 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)的有效输入年龄。这种分区被称为等价分区。
场景 | 要取的边界值 | 等价划分值 |
---|---|---|
男孩 – 年龄 >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 |
我们如何确定程序通过还是未通过测试?
功能的通过不仅取决于上述场景的结果。给定的输入和预期的输出将给我们结果,这需要领域知识。
确定示例的结果
因此,如果上述所有测试用例都通过,则比赛中的售票领域通过。否则,该领域失败。
域测试结构
通常,测试人员在域测试中遵循以下步骤。这些步骤可以根据我们的测试需求进行自定义/跳过。
- 识别潜在有趣变量。
- 识别您现在可以分析的变量并对其进行排序(从小到大,反之亦然)。
- 创建并识别边界值和等价类值,如上所示。
- 识别次要维度并以经典方式分析每个维度。(在上面的例子中,性别是次要维度)。
- 识别并测试持有结果的变量(输出变量)。
- 评估程序如何使用此变量的值。
- 识别用于组合测试的其他潜在相关变量。
- 设想不一定与明显维度相关的风险。
- 识别并列出未分析的变量。收集信息以备后续分析。
- 用风险/等价表总结您的分析。
摘要
如上所述,域测试需要提供正确输入以获得所需输出的知识。因此,它只能用于小段代码。