决策表
决策表是输入相对于规则/用例/测试条件的表格表示。它是条件表示为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:如何制作上传画面决策表
现在考虑一个对话框,该对话框将要求用户在某些条件下上传照片,例如-
- 只能上传“.jpg”格式的图像
- 文件大小小于32KB
- 分辨率是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个不同的测试用例,并基于上表确保完全覆盖。
- 上传格式为“.jpg”、大小小于32KB、分辨率为137*177的照片,然后单击“上传”。预期结果是照片应上传成功
- 上传格式为“.jpg”、大小小于32KB、分辨率不为137*177的照片,然后单击“上传”。预期结果是应显示错误消息解决方案不匹配
- 上传格式为“.jpg”、大小超过32KB、分辨率为137*177的照片,然后单击“上传”。预期结果是应显示错误消息大小不匹配
- 上传格式为“.jpg”、大小大于32KB且分辨率不是137*177的照片,然后单击“上传”。预期结果是应显示错误消息大小和解决方案不匹配
- 上传格式不是“.jpg”、大小小于32KB且分辨率为137*177的照片,然后单击“Upload”。预期结果是应显示格式不匹配的错误消息
- 上传格式不是“.jpg”、大小小于32KB且分辨率不是137*177的照片,然后单击“Upload”。预期结果是应显示错误消息格式和解决方案不匹配
- 上传格式不是“.jpg”、大小超过32KB且分辨率为137*177的照片,然后单击“Upload”。预期结果是应显示格式和大小不匹配的错误消息
- 上传格式不是“.jpg”、大小超过32KB且分辨率不是137*177的照片,然后单击“Upload”。预期结果是应显示格式、大小和分辨率不匹配的错误消息
为什么决策表测试很重要?
决策表测试很重要,因为它有助于测试不同的条件组合,并为复杂的业务逻辑提供更好的测试复盖率。当测试一大组输入的行为时,其中系统行为随每组输入的不同而不同,决策表测试提供了好的覆盖率,并且表示简单,因此易于解释和使用。
在软件工程中,边界值和等价划分是用于确保更好覆盖的其他类似技术。然而,在每组输入值的系统行为都不同的系统中,边界值和等效分区技术在确保良好的测试覆盖方面并不有效。
在这种情况下,决策表测试是一个很好的选择。该技术能够保证良好的覆盖率,并且表示简单,易于解释和使用。
此表易于理解并涵盖所有组合,因此可用作需求和功能开发的参考。
随着输入数量的增加,这项技术的重要性立即变得清晰起来。显然,不能全部测试,但是将使用基于决策的测试技术选择可能组合的丰富子集。
决策表测试的优势
- 当系统行为对于不同的输入是不同的,并且对于某一输入范围不相同时,等价分区和边界值分析都没有帮助,但是可以使用决策表。
- 该表示很简单,因此可以很容易地解释,也可以用于开发和业务。
- 此表将有助于进行有效的组合,并可确保更好的测试覆盖率
- 任何复杂的业务条件都可以很容易地转换为决策表
- 在我们要实现100%覆盖的情况下,通常在输入组合较低的情况下,此技术可以确保覆盖。
决策表测试的缺点
主要的缺点是,当输入的数量增加时,表格将变得更加复杂