决策表测试(示例)

什么是决策表测试?

决策表测试是一种软件测试技术,用于测试系统在不同输入组合下的行为。这是一种系统化的方法,其中不同的输入组合及其相应的系统行为(输出)以表格形式捕获。因此,它也称为因果表,其中捕获因果关系以实现更好的测试覆盖率。

决策表是输入与规则/案例/测试条件的表格表示。它是一种非常有效的工具,用于复杂的软件测试和需求管理。决策表有助于检查所有可能的条件组合进行测试,测试人员还可以轻松识别遗漏的条件。条件用真(T)和假(F)值表示。

让我们通过一个例子来学习。

示例1:如何为登录屏幕制作决策基础表

让我们为登录屏幕创建一个决策表。

Decision Base Table for Login Screen

条件很简单,如果用户提供正确的用户名和密码,用户将被重定向到主页。如果任何输入错误,将显示错误消息。

条件 规则 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 个场景,

  • 输入正确的用户名和正确的密码,然后点击登录,预期结果是用户应该导航到主页

以及以下场景之一

  • 输入错误的用户名和错误的密码,然后点击登录,预期结果是用户应该收到错误消息
  • 输入正确的用户名和错误的密码,然后点击登录,预期结果是用户应该收到错误消息
  • 输入错误的用户名和正确的密码,然后点击登录,预期结果是用户应该收到错误消息

因为它们本质上测试相同的规则。

示例2:如何为上传屏幕制作决策表

现在考虑一个对话框,它会要求用户上传一张照片,并带有某些条件,例如:

  1. 您只能上传“.jpg”格式的图像
  2. 文件大小小于 32kb
  3. 分辨率 137*177。

如果任何条件失败,系统将抛出相应的错误消息说明问题,如果所有条件都满足,照片将成功更新。

Make Decision Table for Upload Screen

让我们为这个案例创建决策表。

条件 案例 1 案例 2 案例 3 案例 4 案例 5 案例 6 案例 7 案例 8
格式 .jpg .jpg .jpg .jpg 非 .jpg 非 .jpg 非 .jpg 非 .jpg
大小 小于 32kb 小于 32kb 大于等于 32kb 大于等于 32kb 小于 32kb 小于 32kb 大于等于 32kb 大于等于 32kb
分辨率 137*177 非 137*177 137*177 非 137*177 137*177 非 137*177 137*177 非 137*177
输出 照片已上传 错误消息:分辨率不匹配 错误消息:大小不匹配 错误消息:大小和分辨率不匹配 错误消息:格式不匹配 错误消息:格式和分辨率不匹配 错误消息:格式和大小不匹配 错误消息:格式、大小和分辨率不匹配

对于此条件,我们可以创建 8 个不同的测试用例,并根据上表确保完全覆盖。

  1. 上传一张格式为“.jpg”,大小小于32kb,分辨率为137*177的照片,然后点击上传。预期结果是照片应该成功上传。
  2. 上传一张格式为“.jpg”,大小小于32kb,分辨率不是137*177的照片,然后点击上传。预期结果是应该显示错误消息“分辨率不匹配”。
  3. 上传一张格式为“.jpg”,大小大于32kb,分辨率为137*177的照片,然后点击上传。预期结果是应该显示错误消息“大小不匹配”。
  4. 上传一张格式为“.jpg”,大小大于等于32kb,分辨率不是137*177的照片,然后点击上传。预期结果是应该显示错误消息“大小和分辨率不匹配”。
  5. 上传一张格式不是“.jpg”,大小小于32kb,分辨率为137*177的照片,然后点击上传。预期结果是应该显示错误消息“格式不匹配”。
  6. 上传一张格式不是“.jpg”,大小小于32kb,分辨率不是137*177的照片,然后点击上传。预期结果是应该显示错误消息“格式和分辨率不匹配”。
  7. 上传一张格式不是“.jpg”,大小大于32kb,分辨率为137*177的照片,然后点击上传。预期结果是应该显示错误消息“格式和大小不匹配”。
  8. 上传一张格式不是“.jpg”,大小大于32kb,分辨率不是137*177的照片,然后点击上传。预期结果是应该显示错误消息“格式、大小和分辨率不匹配”。

为什么决策表测试很重要?

决策表测试很重要,因为它有助于测试不同条件的组合,并为复杂的业务逻辑提供更好的测试覆盖率。当测试大量输入(系统行为随每组输入而异)的行为时,决策表测试提供了良好的覆盖率,并且表示简单,因此易于解释和使用。

软件工程中,边界值和等价划分是其他类似的用于确保更好覆盖率的技术。当系统对大量输入显示相同的行为时使用它们。但是,在每个输入值集系统行为都不同的系统中,边界值和等价划分技术在确保良好测试覆盖率方面无效。

在这种情况下,决策表测试是一个很好的选择。这种技术可以确保良好的覆盖率,并且表示简单,因此易于解释和使用。

该表可以用作需求和功能开发的参考,因为它易于理解并涵盖所有组合。

随着输入数量的增加,这项技术的重要性立即变得清晰。可能组合的数量由 2 ^ n 给出,其中 n 是输入数量。对于 n = 10,这在基于 Web 的测试中非常常见,具有大型输入表单,组合数量将为 1024。显然,您不能全部测试,但您将使用基于决策的测试技术选择可能组合的一个丰富子集。

决策表测试的优点

  • 当系统行为对不同的输入是不同的,而不是对一系列输入是相同的时,等价划分和边界值分析都无济于事,但可以使用决策表。
  • 表示简单,因此可以轻松解释,并用于开发和业务。
  • 此表将有助于创建有效的组合,并确保更好的测试覆盖率
  • 任何复杂的业务条件都可以轻松转化为决策表
  • 在输入组合较少的情况下,如果我们要实现 100% 的覆盖率,这种技术可以确保覆盖率。

决策表测试的缺点

主要缺点是当输入数量增加时,表格会变得更加复杂

决策表测试视频

如果视频无法访问,请点击此处