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)過橋之前、過橋期間、過橋之后
