决策表测试(示例)

⚡ 智能摘要

决策表测试是一种黑盒测试技术,它以表格形式记录输入组合及其预期输出。本教程将解释因果关系的概念,并通过登录和上传示例进行讲解,并展示该方法为何能够为复杂的业务逻辑提供强大的覆盖率。

  • 🧮 核心理念: 决策表将条件(原因)与结果(影响)对应起来,以实现系统性覆盖。
  • 🔢 组合规则: 规则的数量等于 2 的条件数(2^n)。
  • 🔐 示例: 登录和照片上传界面显示了映射到输出的真/假条件。
  • 最佳使用: 当系统行为因每种输入组合而异时,此方法最为理想。
  • 🤖 人工智能赋能: 人工智能工具现在可以根据需求生成决策表,并剔除冗余规则。

决策表测试

什么是决策表测试?

决策表测试是一种软件测试技术,用于测试系统在不同输入组合下的行为。它是一种系统化的方法,将不同的输入组合及其对应的系统行为(输出)以表格形式记录下来。因此,它也被称为决策表测试。 因果 表格中记录了原因和结果,以便更好地进行测试覆盖。

A 决策表 是以表格形式呈现输入与规则、案例或测试条件的关系。它对于复杂的测试用例来说都是一种非常有效的工具。 软件测试 以及需求管理。决策表有助于检查所有可能的条件组合,测试人员可以轻松识别缺失的条件。条件用真 (T) 和假 (F) 值表示。

示例 1:登录屏幕的决策表

让我们为登录界面创建一个决策表。

登录屏幕的决策基础表

条件很简单:如果用户输入正确的用户名和密码,则会被重定向到首页。如果任何输入错误,则会显示错误信息。

医美问题 1规则 2规则 3规则 4规则
用户名(T/F) F T F T
密码(T/F) F F T T
输出(E/H) E E E H

传说:

  • T – 正确的用户名/密码
  • F – 用户名/密码错误
  • E – 显示错误信息
  • H – 显示主屏幕

解读:

  • 案例1 用户名和密码均错误。系统会向用户显示错误信息。
  • 案例2 用户名正确,密码错误。系统会向用户显示错误信息。
  • 案例3 用户名错误,密码正确。系统会向用户显示错误信息。
  • 案例4 用户名和密码均正确。用户进入首页。

当将其转换为 测试用例您可以创建两个场景,因为这三个错误案例都测试了相同的规则。

  • 输入正确的用户名和密码,然后点击“登录”——用户应该会进入主页。
  • 输入错误的用户名和/或错误的密码,然后点击“登录”——用户应该会看到一条错误消息。

示例 2:上传屏幕的决策表

现在考虑这样一个对话框,它要求用户在特定条件下上传照片:

  1. 只允许使用“.jpg”格式。
  2. 文件大小必须小于 32 KB。
  3. 分辨率必须为 137 × 177。

如果任何条件不满足,系统将抛出相应的错误消息;如果所有条件都满足,则照片上传成功。

上传屏幕决策表

本案的判决表如下所示。

医美问题 案例1 案例2 案例3 案例4 案例5 案例6 案例7 案例8
格式 。JPG 。JPG 。JPG 。JPG 不是 .jpg 不是 .jpg 不是 .jpg 不是 .jpg
尺寸 < 32 KB < 32 KB ≥ 32 KB ≥ 32 KB < 32 KB < 32 KB ≥ 32 KB ≥ 32 KB
分辨率 137 × 177 不是 137×177 137 × 177 不是 137×177 137 × 177 不是 137×177 137 × 177 不是 137×177
输出 照片已上传 分辨率不匹配 尺寸不匹配 尺寸和分辨率不匹配 格式不匹配 格式和分辨率不匹配 格式和尺寸不匹配 格式、尺寸和分辨率不匹配

根据这张表格,你可以创建八个测试用例以实现全面覆盖:

  1. .jpg,< 32 KB,137×177 → 照片上传成功。
  2. .jpg,小于 32 KB,不是 137×177 → 分辨率不匹配错误。
  3. .jpg,≥ 32 KB,137×177 → 大小不匹配错误。
  4. .jpg,≥ 32 KB,不是 137×177 → 大小和分辨率不匹配错误。
  5. 非 .jpg 格式,小于 32 KB,137×177 → 格式不匹配错误。
  6. 非 .jpg 格式,小于 32 KB,非 137×177 像素 → 格式和分辨率不匹配错误。
  7. 非 .jpg 格式,≥ 32 KB,137×177 → 格式和大小不匹配错误。
  8. 非 .jpg 格式,≥ 32 KB,非 137×177 → 格式、大小和分辨率不匹配错误。

为什么决策表测试很重要

决策表测试之所以重要,是因为它能够测试多种条件组合,并为复杂的业务逻辑提供强大的覆盖率。当系统行为因每组输入而异时,该技术能够以简洁易读的方式提供良好的覆盖率。

In 软件工程边界值分析和等价类划分是类似的技巧,但它们在系统表现出以下特征时最为有效: 针对大量输入数据的行为。当行为是 不同 对于每种输入组合,这些技术都不能保证良好的覆盖率——决策表测试成为更好的选择。

此表也可用作需求和功能开发的参考,因为它易于理解且涵盖所有组合。随着输入数量的增加,其重要性也日益凸显:可能的组合数量为 2^n,其中 n 为输入数量。对于常见的 Web 表单中的 n = 10,则有 1,024 种组合。您无法测试所有组合,但可以使用基于决策的测试方法选择一个包含所有组合的子集。

决策表测试的优点

  • 当系统行为因输入而异,而等价类划分和边界值分析不足以解决问题时,该方法有效。
  • 这种表示方法很简单,因此易于理解,对开发团队和业务团队都很有用。
  • 有助于构建有效的组合,并确保更好的测试覆盖率。
  • 任何复杂的业务状况都可以转化为决策表。
  • 当输入组合数量较少时,可确保 100% 的覆盖率。

决策表测试的缺点

主要缺点是,随着输入数量的增加,表格会变得更加复杂,更难管理。

常见问题

决策表测试是一种黑盒测试技术,它将输入条件及其预期输出的组合记录在一个表格中。它能够确保对复杂的业务规则进行系统性的覆盖。

它将原因(输入条件)映射到结果(系统输出)。将原因和结果都记录在一个表格中,使这种关系变得清晰明确,因此它也被称为因果表。

规则的数量等于 2^n,其中 n 是二元条件的数量。例如,4 个条件产生 16 条规则,10 个条件产生 1,024 种可能的组合。

边界值分析适用于输入值在一定范围内行为相同的情况。决策表则适用于每种输入组合都会产生不同输出的情况,能够弥补其他方法的不足。

当一个功能有多个输入条件相互作用以产生不同的输出时,可以使用此功能,例如登录验证、表单上传或具有多个依赖关系的定价和折扣规则。

随着条件数量的增加,规则表呈指数级增长(2^n),变得难以管理。测试人员通常会选择一部分具有代表性的规则进行测试,而不是测试每一种组合。

人工智能工具能够自动读取需求并生成决策表,识别缺失或冗余的规则,并合并等效规则。这既减少了人工干预,又提高了组合覆盖率。

是的。人工智能可以将决策表中的每条规则转换成包含输入和预期结果的具体测试用例,然后根据风险对其进行优先级排序,以便优先测试影响较大的组合。

总结一下这篇文章: