决策表测试

决策表

决策表是输入相对于规则/用例/测试条件的表格表示。它是条件表示为True(T)和 False(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-Error(电子错误)消息
  • 显示H-Home屏幕

解读:

  • 情况1-用户名和密码都错误。系统会向用户显示一条错误消息。
  • 情况2-用户名正确,但密码错误。系统会向用户显示一条错误消息。
  • 情况3-用户名错误,但密码正确。系统会向用户显示一条错误消息。
  • 案例4-用户名和密码都正确,并且用户导航到主页

在将其转换为测试用例时,我们可以创建两个场景,

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

和以下方案中的一个

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

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

示例2:如何制作上传画面决策表

现在考虑一个对话框,该对话框将要求用户在某些条件下上传照片,例如-

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

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

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

条件 案例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的照片,然后单击“Upload”。预期结果是应显示格式不匹配的错误消息
  6. 上传格式不是“.jpg”、大小小于32KB且分辨率不是137*177的照片,然后单击“Upload”。预期结果是应显示错误消息格式和解决方案不匹配
  7. 上传格式不是“.jpg”、大小超过32KB且分辨率为137*177的照片,然后单击“Upload”。预期结果是应显示格式和大小不匹配的错误消息
  8. 上传格式不是“.jpg”、大小超过32KB且分辨率不是137*177的照片,然后单击“Upload”。预期结果是应显示格式、大小和分辨率不匹配的错误消息

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

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

在软件工程中,边界值和等价划分是用于确保更好覆盖的其他类似技术。然而,在每组输入值的系统行为都不同的系统中,边界值和等效分区技术在确保良好的测试覆盖方面并不有效。

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

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

随着输入数量的增加,这项技术的重要性立即变得清晰起来。显然,不能全部测试,但是将使用基于决策的测试技术选择可能组合的丰富子集。

决策表测试的优势

  • 当系统行为对于不同的输入是不同的,并且对于某一输入范围不相同时,等价分区和边界值分析都没有帮助,但是可以使用决策表。
  • 该表示很简单,因此可以很容易地解释,也可以用于开发和业务。
  • 此表将有助于进行有效的组合,并可确保更好的测试覆盖率
  • 任何复杂的业务条件都可以很容易地转换为决策表
  • 在我们要实现100%覆盖的情况下,通常在输入组合较低的情况下,此技术可以确保覆盖。

决策表测试的缺点

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

IT赶路人

专注IT知识分享