场景主要包括4种主要的类型:正常的用例场景,备选的用例场景,异常的用例场景,假定推测的场景。用场景法来测试需求是指模拟特定场景边界发生的事情,通过事件来触发某个动作的发生,观察事件的最终结果,从而用来发现需求中存在的问题。我们通常以正常的用例场景分析开始,然后再着手其他的场景分析。
下面来看具体的例子:假设你现在需要完成的是一套出租车预定系统(顾客进行出租车的预定,系统完成扣款以及出租车司机的任务分配等相关的任务: 顾客中的大部分都是在出租车租赁公司立有相关存款账户的用户,他们一般通过电话的方式进行预约,有些是要求立马预定的,也有一些是预定几周后的,我们需要使用计算机系统来确保这些存款账户到目前为止是有效的,系统需要知道什么时候顾客需要出租车,以及接送地址和他们的目的地。接送地址一般来说是顾客账户信息上填写的地址,根据我们车辆调度员的经验,我们可以告诉顾客最佳的接送时间。系统会根据订阅情况产生一个司机工作编号并记录预定过程中的详细信息,并会根据接送时间的顺序对这些信息按照接送的时间进行排序,然后会给顾客一个订阅的确认信息,同时包括司机的工作编号)。与这个预定出租车用例相关的,就是给出租车司机分配具体工作的用例。用场景法来对这个需求进行测试,应该如何进行呢?
首先我们来看一下正常用例场景的构建过程
a.识别商业事件流:发现需求的过程包括研究和调查特定需求相关的业务规则和策略,调查包括一系列的业务事件以及商业规则的边界点。业务事件包括事件名,输入数据(由这个事件引起的输入数据),输出数据(为了响应这个事件产生的输出数据)
b.画一个非正式的商业场景草图
c.把这个场景草图形成场景的具体步骤
以顾客预定出租车为例,这个事件是在当顾客决定需要一个出租车时发生的,这个事件导致客户和出租车公司之间发生一个预定请求的交互动作,当出租车公司收到预定请求时,它触发了安排出租车登记事件用来响应这个需求,从分析得出其中有一个需求是出租车公司需要提供一个预定确认响应信息给顾客的过程,那么什么是预定确认,在什么情况下这个确认信息会产生,其他与之相关的需求是什么?下面我们就通过构建场景的方式来进行细节上的分析
a.事件源:顾客想预定出租车,发出出租车预定请求
事件结果:安排出租车预定行为(包括许多商业逻辑规则),发送一个出租车预定确认信息给顾客
事件名: 顾客想要预定出租车
输入数据: 出租车预定请求
输出数据:出租车预定确认响应
b.场景草图如下: