需求用例的前置条件和后置条件
前置条件定义系统开始执行用例之前必须满足的先决条件。系统应该能够 前置条件定义系统开始执行用例之前必须满足的先决条件。系统应该能够测试所有先决条件,了解是否可以开始继续用例。先决条件可以描述系统的状 测试所有先决条件,了解是否可以开始继续用例。先决条件可以描述系统的状态(例如,一个用例是从ATM提取现金,机器中必须有现金),但是他们并 状态(例如,一个应用是从ATM提取现金,机器中必须有现金),但他们并不会描述用户的意图(“我需要一些现金”) 不会描述用户的意图(“我需要一些现金”)。
当系统检测到触发事件时,表明用户想要执行一个特定的用例,系统会对 当系统检测到触发事件时,表明用户想要执行一个特定的用例,系统会对自己说(尽管对用户来说不是必须的),“ 等我先我检查下这些前置条件。” 自己说(管对用户来说未必是自己的),“等我先我检查下这些前置条款。”触发事件本身并不是-一个前置条件。如果前提条件都满足,系统就可以开始执 触发事件本案并不是-一个前置条款。如果前提条件都满足,系统就可以开始执行用例;否则不能。检查前置条件可以防止一些错误,系统--开始就知道无法 行用法;则不能。检查设置条款可以防止一些错误,系统--开始知道无法成功完成但仍然坚持执行的用例所发生的错误。如果ATM是空的,就不应该 成功完成但仍然坚持执行的用例所发生的错误。如果ATM是空的,不应该让用户开始提款交易。这是一一种使应用程序更加健壮的方法。用户不太可能意识 让用户开始提款交易。这是一一种使应用程序更加健壮的方法。用户不太可能意识到所有用例的前置条件,因此,业务分析师可能需要从其他来源获得输入。 到所有用例的前置条件,因此,业务分析师可能需要从其他来源获得输入。
后置条件描述用例执行成功后系统的状态。后置条件可以如下描述: 后置条件描述用例执行成功后系统的状态。设置条款可以随后描述:
用户可观察到的内容(系统显示账户余额) 用户可观察到的内容(系统显示用户金额)
物理产出(自动取款机吐钱并打印收据) 物理产出(自动提款机金钱打印数据)
内部系统状态变化(账户被扣除取现的金额与发生的任何交易费用) 内部系统状态变化(账户被删除已发生的金额与发生的任何交易费用)
许多后置条件对用户是显而易见的,因为它们反映了交付给用户价值的结 许多后置条件对用户是显而易见的,因为它们反映了交付给用户价值的结果:
“我拿到了现金!”然而,没有用户会告诉业务分析师,系统应在ATM “我拿到了现金!”然而,没有用户会通知业务分析师,系统应在ATM记录的剩余现金里减掉用户刚刚提取的数量。用户既不知道也不关心这样的内 记录的剩余现金里减掉用户刚刚提取的数量。用户既不知道也不关心这样的内部细节。但开发人员和测试人员需要了解,这意味着业务分析师需要与业务专 部细节。但开发人员和测试人员需要了解,这意味着业务分析师需要与业务专家深入合作,去发现这些细节,并将它们作为后置条件记录下来。 家深入合作,去发现这些细节,并将它们作为后置条件记录下来。