在需求分析中,常常会出现遗漏场景,本文我们探讨如何避免这种遗漏场景,介绍使用决策矩阵的方法来解决遗漏的问题,以确保系统的正确性和完整性。
需求分析中常见的遗漏场景
在流程中,每个节点的经过都会导致状态的变化,这些状态变化会直接影响到屏幕上的按钮,从而决定它们是否可用。所以,在需求分析中,必须考虑这些状态变化对按钮的影响,以确保系统的正确性和完整性。
过去的需求分析方法
1.画流程图
对于一个审批流程,通常包括申请、审批和执行三个步骤。
根据流程图描述每个节点的状态限制、角色限制、数据权限限制等信息,以确定节点是否可用
当状态 =“审批通过”
当用户角色 =“执行者”
当用户 =“被分配执行者” 的时候
可以按下“开始执行”按钮
过去的方法问题分析
在描述节点是否可用时,通常只关注“什么时候可以按下”而忽略了“什么时候不可以按下”的情况。这样会导致在后台的API响应请求时出现不应该响应的情况。这是一个容易被忽略的问题。
在测试过程中,经常会发现一些不可能的状态也可以被操作,从而导致出现Bug。当这种类型的Bug变得越来越多时,就会引起“质量恐慌”,因为人们不知道还有多少未被发现的Bug存在,下面两种情况会引起上述bug发生:
● 当两个人同时操作同一个处理时,可能会出现问题
例如,在审批过程中,审批通过按钮的前提状态是“已申请”。如果有两个审批者A和B同时打开审批界面,A先点下了审批通过按钮,然后B也按下了审批通过按钮,此时B应该收到“已经被审批通过了,当前审批无效”的提示消息。然而,如果只关注按钮的状态限制而忽略了这种情况,就会容易遗漏这个处理。
● 直接通过API访问后台的情况可能会出现问题
当一个状态已经切换后,用户可以通过各种手段(如Postman、浏览器地址栏、代码等)直接访问后台。如果后台没有相应的防护措施,就可能会导致各种混乱的情况。因此,需要对这种情况进行相应的处理和防范。
问题产生的原因
问题产生的原因在于,只关注了“许可”的情况,而忽略了“禁止”的情况。因此,在分析系统需求时,需要同时考虑这两种情况,以确保系统的正确性和完整性。
解决方案
解决这个问题的方法是使用“决策矩阵”。决策矩阵是一种正交矩阵,通过将状态放在表头,将动作放在行首的方式进行构建。使用决策矩阵可以同时考虑“许可”和“禁止”的情况,以确保系统的正确性和完整性。
决策矩阵例子:
已申请 | 未申请 | 审批驳回 | 审批通过 | 执行已开始 | 执行已结束 | |
---|---|---|---|---|---|---|
申请 | √ | |||||
审批通过 | √ | |||||
审批驳回 | √ | |||||
开始执行 | √ | |||||
结束执行 | √ |
使用决策矩阵可以带来以下优势:
确保100%的覆盖率,即考虑了所有可能的状态和动作组合。
容易响应需求变更,因为可以通过修改矩阵中的状态和动作来反映变更。
容易阅读,因为矩阵中的状态和动作都是清晰可见的,而且可以根据需要进行排序和分组。
容易发现问题和纠正问题,因为可以通过检查矩阵中的每个单元格来发现问题,并通过修改矩阵来纠正问题。