等价类划分技术17 Mar 2025 | 5 分钟阅读 等价类划分是一种软件测试技术,它将输入数据划分为有效值和无效值的分区,并且所有分区必须表现出相同的行为。如果一个分区的条件为真,那么另一个相等分区的条件也必须为真,如果一个分区的条件为假,那么另一个相等分区的条件也必须为假。等价类划分的原则是,测试用例的设计应该至少覆盖每个分区一次。每个相等分区的每个值必须表现出与其他值相同的行为。 等价类划分源自软件的需求和规范。 这种方法的优点是,由于将测试用例数量从无限减少到有限,因此有助于减少测试时间。它适用于测试过程的所有级别。 等价类划分技术示例假设软件应用程序具有一个函数,该函数接受特定位数的数字,不能大于或小于该特定数字。 例如,一个 OTP 号码只包含六位数字,少于或多于六位数字都不会被接受,并且应用程序会将用户重定向到错误页面。 ![]() ![]() 让我们看另一个例子。 软件应用程序的函数接受一个 10 位手机号码。 ![]() ![]() 在这两个例子中,我们可以看到有两个相等有效和无效的分区,应用有效值,例如第一个例子中的六位 OTP 和第二个例子中的 10 位手机号码,两个有效分区的行为相同,即重定向到下一页。 另两个分区包含无效值,例如第一个示例中 5 位或少于 5 位数字以及 7 位或多于 7 位数字,以及第二个示例中 9 位或少于 9 位数字以及 11 位或多于 11 位数字,并且在应用这些无效值时,两个无效分区的行为相同,即重定向到错误页面。 我们可以在示例中看到,每个示例只有三个测试用例,这也是等价类划分的原则,该方法旨在减少测试用例的数量。 我们如何执行等价类划分我们可以通过以下两种方式执行等价类划分 ![]() 让我们看看 pressman 和通用实践方法如何在不同条件下使用 条件 1如果需求是**一个值的范围**,那么为**一个有效**和**两个无效**输入推导出测试用例。 在这里,**值的范围**意味着每当我们想要识别范围值时,我们都会进行等价类划分以实现最小的测试覆盖率。 之后,我们进行错误猜测以实现最大的测试覆盖率。 根据 pressman 例如,测试字段的金额接受值的范围 (100-400) ![]() 根据通用实践方法 每当需求是范围 + 标准时,将范围划分为内部值并检查所有这些值。 例如 在下面的图像中,pressman 技术足以测试年龄文本字段的一个有效值和两个无效值。 但是,如果我们需要十年以上保险的条件,并且年龄文本字段中各种年龄段都有多个保单,那么我们需要使用实践方法。 ![]() 条件 2如果需求是**一组值**,那么为**一个有效**和**两个无效**输入推导出测试用例。 在这里,**一组值**意味着每当我们必须测试一组值时,我们都会对**一个正**和**两个负**输入进行测试,然后我们进行错误猜测,我们还需要验证所有这组值是否符合要求。 示例 1 基于 Pressman 方法 如果转账金额为 (100000-700000) 那么,对于 10 万 → 接受 根据通用实践方法 范围 + 百分比给定为 10 万 - 70 万 **比如:** 10 万 - 30 万 → 5.60% 30 万 - 60 万 → 3.66% 60 万 - 70 万 → 免费 ![]() 如果我们有贷款之类的事情,我们应该采用通用实践方法,并将内容分成几个时间间隔,以实现最小的测试覆盖率。 示例 2 如果我们正在进行网上购物,手机产品和不同的**产品 ID** -**1,4,7,9** ![]() 这里,**1 → 手机壳 4 → 耳机 7 → 充电器 9 → 屏幕保护膜** 如果我们给出的产品 ID 为 **4**,它将被接受,这是一个有效值,如果我们提供的产品 ID 为 **5 和手机壳**,则不会按照要求被接受,这些是两个无效值。 ![]() 条件 3如果需求 id **布尔值(真/假)**,那么为真/假值推导出测试用例。 对于单选按钮和复选框,布尔值可以是真和假。 例如 ![]()
注意 在**实践**方法中,我们将遵循以下流程 在这里,我们通过推导出以下输入值来测试应用程序 ![]() 让我们看一个程序,以便更好地理解。 当使用 pressman 技术时,会测试前两个条件,但如果我们使用实践方法,则会覆盖所有三个条件。 我们不需要对所有应用程序都使用实践方法。 有时我们也会使用 pressman 方法。 但是,如果应用程序具有更高的精确度,那么我们将采用实践方法。 如果我们想使用实践方法,它应该遵循以下几个方面
等价类划分技术的优缺点以下是等价类划分技术的优缺点
下一个主题边界值分析 |
我们请求您订阅我们的新闻通讯以获取最新更新。