等价类划分技术

17 Mar 2025 | 5 分钟阅读

等价类划分是一种软件测试技术,它将输入数据划分为有效值和无效值的分区,并且所有分区必须表现出相同的行为。如果一个分区的条件为真,那么另一个相等分区的条件也必须为真,如果一个分区的条件为假,那么另一个相等分区的条件也必须为假。等价类划分的原则是,测试用例的设计应该至少覆盖每个分区一次。每个相等分区的每个值必须表现出与其他值相同的行为。

等价类划分源自软件的需求和规范。 这种方法的优点是,由于将测试用例数量从无限减少到有限,因此有助于减少测试时间。它适用于测试过程的所有级别。

等价类划分技术示例

假设软件应用程序具有一个函数,该函数接受特定位数的数字,不能大于或小于该特定数字。 例如,一个 OTP 号码只包含六位数字,少于或多于六位数字都不会被接受,并且应用程序会将用户重定向到错误页面。

Equivalence Partitioning Technique
Equivalence Partitioning Technique

让我们看另一个例子。

软件应用程序的函数接受一个 10 位手机号码。

Equivalence Partitioning Technique
Equivalence Partitioning Technique

在这两个例子中,我们可以看到有两个相等有效和无效的分区,应用有效值,例如第一个例子中的六位 OTP 和第二个例子中的 10 位手机号码,两个有效分区的行为相同,即重定向到下一页。

另两个分区包含无效值,例如第一个示例中 5 位或少于 5 位数字以及 7 位或多于 7 位数字,以及第二个示例中 9 位或少于 9 位数字以及 11 位或多于 11 位数字,并且在应用这些无效值时,两个无效分区的行为相同,即重定向到错误页面。

我们可以在示例中看到,每个示例只有三个测试用例,这也是等价类划分的原则,该方法旨在减少测试用例的数量。

我们如何执行等价类划分

我们可以通过以下两种方式执行等价类划分

Equivalence Partitioning Technique

让我们看看 pressman 和通用实践方法如何在不同条件下使用

条件 1

如果需求是**一个值的范围**,那么为**一个有效**和**两个无效**输入推导出测试用例。

在这里,**值的范围**意味着每当我们想要识别范围值时,我们都会进行等价类划分以实现最小的测试覆盖率。 之后,我们进行错误猜测以实现最大的测试覆盖率。

根据 pressman

例如,测试字段的金额接受值的范围 (100-400)

Equivalence Partitioning Technique

根据通用实践方法

每当需求是范围 + 标准时,将范围划分为内部值并检查所有这些值。

例如

在下面的图像中,pressman 技术足以测试年龄文本字段的一个有效值和两个无效值。 但是,如果我们需要十年以上保险的条件,并且年龄文本字段中各种年龄段都有多个保单,那么我们需要使用实践方法。

Equivalence Partitioning Technique

条件 2

如果需求是**一组值**,那么为**一个有效**和**两个无效**输入推导出测试用例。

在这里,**一组值**意味着每当我们必须测试一组值时,我们都会对**一个正**和**两个负**输入进行测试,然后我们进行错误猜测,我们还需要验证所有这组值是否符合要求。

示例 1

基于 Pressman 方法

如果转账金额为 (100000-700000)

那么,对于 10 万 → 接受

根据通用实践方法

范围 + 百分比给定为 10 万 - 70 万

**比如:** 10 万 - 30 万 → 5.60%

30 万 - 60 万 → 3.66%

60 万 - 70 万 → 免费

Equivalence Partitioning Technique

如果我们有贷款之类的事情,我们应该采用通用实践方法,并将内容分成几个时间间隔,以实现最小的测试覆盖率。

示例 2

如果我们正在进行网上购物,手机产品和不同的**产品 ID** -**1,4,7,9**

Equivalence Partitioning Technique

这里,**1 → 手机壳 4 → 耳机 7 → 充电器 9 → 屏幕保护膜**

如果我们给出的产品 ID 为 **4**,它将被接受,这是一个有效值,如果我们提供的产品 ID 为 **5 和手机壳**,则不会按照要求被接受,这些是两个无效值。

Equivalence Partitioning Technique

条件 3

如果需求 id **布尔值(真/假)**,那么为真/假值推导出测试用例。

对于单选按钮和复选框,布尔值可以是真和假。

例如

Equivalence Partitioning Technique
序列号描述输入预期注意
1选择有效不适用true---
2选择无效不适用False可以根据要求更改值。
3不要选择不适用不要选择任何内容,应显示错误消息我们无法进入下一个问题
4两个都选不适用我们可以选择任何单选按钮一次只能选择一个单选按钮。

注意

在**实践**方法中,我们将遵循以下流程

在这里,我们通过推导出以下输入值来测试应用程序

Equivalence Partitioning Technique

让我们看一个程序,以便更好地理解。

当使用 pressman 技术时,会测试前两个条件,但如果我们使用实践方法,则会覆盖所有三个条件。

我们不需要对所有应用程序都使用实践方法。 有时我们也会使用 pressman 方法。 

但是,如果应用程序具有更高的精确度,那么我们将采用实践方法。

如果我们想使用实践方法,它应该遵循以下几个方面

  • 它应该是特定于产品的
  • 它应该是特定于案例的
  • 划分的数量取决于精度(扣除 2% 和 3%)

等价类划分技术的优缺点

以下是等价类划分技术的优缺点

优点缺点
它是面向流程的可能无法覆盖所有必要的输入。
我们可以实现最小的测试覆盖率该技术不考虑边界值分析的条件。
它有助于减少一般的测试执行时间,并减少测试数据集。测试工程师可能会假设所有数据集的输出都是正确的,这会在测试过程中导致问题。

下一个主题边界值分析