1、场景分析法概念
分析软件应用的场景,从用户的角度出发,从场景的角度来设计测试用例,是一种面向用户的测试用例设计方法。先搞清楚以下几个概念:
(1)用例场景:是通过描述流经用例路径来确定的过程。这个流经过程要从用例开始到结束遍历其中所有的基本流和备选流。
(2)基本流:采用直黑线表示,是经过用例的最简单的路径,也就是功能正常实现的基本流程(流程无任何异常错误,程序从开始直到执行的结束)
(3)备选流:采用不同颜色表示,一个备选流可能从基本流开始,在某个特定条件下执行,然后重新加入基本流中,也可以起源于另一个备选流,或终止用例,不在加入基本流中。(各种错误情况)
关于基本流和备选流直观图示如下图:
i
遵循图中每个用例经过的路径,可以确定以下场景:
场景1:基本流
场景2:基本流 备选流1
场景3:基本流 备选流1 备选流2
场景4:基本流 备选流3
场景5:基本流 备选流3 备选流1
场景6:基本流 备选流3 备选流1 备选流2
场景7:基本流 备选流4
场景8: 基本流 备选流3 备选流4
2、场景分析法特点
(1)分析软件应用的场景,从用户的角度出发,从场景的角度来设计测试用例,是一种面向用户的测试用例设计方法。
(2)关心用户做什么,而不是关心产品做什么
(3)优点:实用性强,有效,设计出来的用例有价值
(4)缺点:可能使用的场景不一定能对事件系列进行全面的分析,设计出来的用例不完整。
3、场景分析法设计测试用例步骤
(1)理解业务需求,分析业务基本流和备选流上所有会影响数据流走向的的各种因素,建议从用户操作角度拆分流程中各环节,同时考虑时间、网络等因素。
(2)组合场景中可能发生的事件序列。
(3)将环境因素和事件序列进行组合并进行分析推导,得到不同的场景。
4、场景分析法使用实例
1、过桥问题。 4个人在晚上过一座小桥,过桥时必须要用到手电筒,只有一枚手电筒,每次最多只可以有两人通过(人多了桥支撑不住就塌了), 4个人的过桥速度分别为1分钟、2分钟、5分钟、10分钟,试问最少需要多长时间4人才可以全部通过小桥?
可能的事件序列1
(1)先过去2个人,其中一个拿手电筒(1分钟和2分钟)
(2)1个人拿手电筒返回(1分钟)
(3)再过去2个人,其中一个拿手电筒(5分钟和10分钟)
(4)1个人拿手电筒返回(2分钟)
(5)拿手电筒返回的人和剩下的那个人一起过桥( 1分钟和2分钟)
可能的事件序列2
(1)先过去2个人,其中一个拿手电筒(1分钟和2分钟)
(2)已过桥的人站在桥头拿手电筒照亮桥。
(3)剩下2个人一起过去(5分钟和10分钟)
环境因素(4个人、桥、手电筒、夜晚)
人:过桥的速度是一定的,所以只有他们的过桥行为会对总的过桥时间有影响。
人:有力学知识
人:4人的情况有所不同(年龄、身体)
桥:长度和承重
手电筒:照射距离和时间
夜晚:光线
由显性的环境因素分析出对结果有影响的因素后,就可以设计具体的过桥时的显性场景了。
4个人为一家人,一对夫妻、一个老人和小孩,丈夫过桥1分钟,妻子过桥2分钟,小孩10分钟,老人5分钟。当时天上一片漆黑,在过桥的过程中没有手电筒无法看清桥面。手电筒照10米远,维持1小时左右。桥的长度60米,最多可以让2个人同时通过
Step1;丈夫和妻子先过到桥那边去(2分钟);
Step2:丈夫拿手电筒回来(1分钟);
Step3:丈夫背小孩一起过去(2分钟);
Step4:丈夫拿手电筒再回来(1分钟);
Step5:丈夫回来扶老人一起过去(5分钟)
隐性场景分析
(1)手电筒会不会掉到桥下或摔坏?手电筒带电池的吗?电池会不会没电
(2)过桥的过程中是否有山洪爆发或水突然涨高将桥淹没?或者下大雨
(3)会不会在过桥过程中有野兽嚎叫等因素影响他们的过桥速度?
(4)桥下面是什么?是水溪还是无水的沟谷还是很深的悬崖?
隐性的环境因素和隐性事件很可能是一个无穷大的集合,在其中找出有用的场景是一个极大的挑战。分析隐性场景的几种方法:影响因素分析法、异常情况分析法、空间分解分析法和时间序列分析法。
影响因素分析法
(1)列出场景中的事件的结果;
(2)分析事件结果产生的原因;
(3)从原因中找出隐性环境。
(4)过桥问题中,事件主要是4个人过桥,结果是过桥花费时间。影响结果的因素主要有:过桥的方式、过桥的速度、过桥的过程
异常情况分析法
(1)分析现有场景中的异常情况和异常事件。
(2)异常情况包括已有环境中的异常和外部环境中的异常。
(3)要点:找出那些概率比较大的异常。
空间分解分析法
(1)空间是一个抽象的概念,软件中有许多形式,如数据空间、内存空间、磁盘空间等。
(2)将空间分解成一个个更小的空间块,然后分析这些小的空间块中环境和事件。
时间序列分析法
(1)分析现有场景中事件的发生从之前到之后的各个时间序列的场景。
(2)过桥之前、过桥期间、过桥之后