技術(shù)分享 | 黑盒測(cè)試方法論—場(chǎng)景法
場(chǎng)景法就是模擬用戶操作軟件時(shí)的場(chǎng)景,主要用于測(cè)試系統(tǒng)的業(yè)務(wù)流程。
測(cè)試不能只關(guān)注某個(gè)控件的邊界值、等價(jià)類是否滿足要求,也要關(guān)注它的主要功能和業(yè)務(wù)流程是否正確實(shí)現(xiàn),這時(shí)就需要使用場(chǎng)景法來(lái)完成。
場(chǎng)景法

用例場(chǎng)景是用來(lái)描述流經(jīng)用例路徑的過(guò)程,這個(gè)過(guò)程從開(kāi)始到結(jié)束遍歷用例中所有基本流和備選流。
基本流:按照正確的業(yè)務(wù)流程來(lái)實(shí)現(xiàn)的一條操作路徑即模擬正確的操作流程。
備選流:導(dǎo)致程序出現(xiàn)錯(cuò)誤的操作流程即模擬錯(cuò)誤的操作流程。
現(xiàn)在的產(chǎn)品幾乎都是由事件觸發(fā)來(lái)控制流程的,事件觸發(fā)時(shí)的情景便成了場(chǎng)景,而同一事件不同的出發(fā)順序和處理結(jié)果便形成了事件流。
在使用場(chǎng)景法設(shè)計(jì)測(cè)試用例時(shí),需要覆蓋系統(tǒng)用例中的主成功場(chǎng)景和擴(kuò)展場(chǎng)景,并且需要適當(dāng)補(bǔ)充各種正反面的測(cè)試用例以及考慮出現(xiàn)異常場(chǎng)景的情形。
場(chǎng)景法用例設(shè)計(jì)步驟
設(shè)計(jì)場(chǎng)景用例首先需要根據(jù)需求規(guī)格說(shuō)明得出功能模塊流程圖,描述出程序的基本流及備選流,其次根據(jù)基本流和備選流生成不同的場(chǎng)景,構(gòu)造場(chǎng)景列表,最后對(duì)每一個(gè)場(chǎng)景生成相應(yīng)的測(cè)試用例,對(duì)所有的測(cè)試用例重新復(fù)審,去掉多余的測(cè)試用例。確定測(cè)試用例之后,為每一個(gè)測(cè)試用例確定測(cè)試的數(shù)據(jù)值即可完成場(chǎng)景用例的設(shè)計(jì)。
實(shí)例
對(duì)淘寶網(wǎng)通過(guò)購(gòu)物車購(gòu)物的流程設(shè)計(jì)測(cè)試用例。
畫流程圖
整個(gè)業(yè)務(wù)通過(guò)流程圖來(lái)表示如下圖所示:

確定基本流和備選流
基本流
進(jìn)入淘寶首頁(yè)
瀏覽商品
進(jìn)入單品頁(yè)
選擇商品規(guī)格和數(shù)量
加入購(gòu)物車
前往購(gòu)物車
選擇商品
結(jié)算,進(jìn)入確定訂單頁(yè)
提交訂單
付款成功
等待收獲
確認(rèn)收貨
備選流
加入購(gòu)物車時(shí),不選擇商品規(guī)格和型號(hào),返回基本流第 4 步。
加入購(gòu)物車時(shí),商品庫(kù)存不足,返回基本流第 4 步。
加入購(gòu)物車時(shí),未登錄,登錄后返回基本流第 3 步。
加入購(gòu)物車后,繼續(xù)選購(gòu),返回基本流第 4 步。
加入購(gòu)物車,未選擇商品,結(jié)算,返回基本流第 7 步。
支付失敗,返回基本流第 8 步。
未選擇商品加入購(gòu)物車,退出購(gòu)物,結(jié)束。
構(gòu)造場(chǎng)景
登錄后成功購(gòu)物(基本流)
未選擇商品規(guī)格和型號(hào)就添加購(gòu)物車(基本流 + 備選流 1)
選擇的商品庫(kù)存不足(基本流 + 備選流 2)
未登錄添加購(gòu)物車(基本流 + 備選流 3)
商品添加購(gòu)物車后繼續(xù)購(gòu)物(基本流 + 備選流 4)
進(jìn)入購(gòu)物車,未選擇商品直接結(jié)算(基本流 + 備選流 5)
支付過(guò)程出錯(cuò)(基本流 + 備選流 6)
沒(méi)有添加商品到購(gòu)物車(基本流 + 備選流 7)
生成測(cè)試用例
用例編號(hào)測(cè)試點(diǎn)測(cè)試步驟預(yù)期結(jié)果1登錄后成功購(gòu)物前提條件:登錄 1、進(jìn)入淘寶首頁(yè) 2、查看商品列表 3、點(diǎn)擊進(jìn)入單品頁(yè) 4、選擇商品規(guī)格和小于庫(kù)存的數(shù)量 5、點(diǎn)擊【加入購(gòu)物車】 6、提示成功加入購(gòu)物車 7、進(jìn)入購(gòu)物車頁(yè)面 8、選擇剛加入購(gòu)物車的商品 9、點(diǎn)擊【結(jié)算】 10、進(jìn)入確認(rèn)訂單頁(yè) 11、提交訂單 12、付款成功 13、確認(rèn)收貨確認(rèn)收貨成功,訂單完成2單品頁(yè)未選擇商品規(guī)格 和型號(hào),添加購(gòu)物車, 單品頁(yè)上提示需要選擇 商品規(guī)格與型號(hào)前提條件:登錄 1、進(jìn)入淘寶首頁(yè) 2、查看商品列表 3、點(diǎn)擊進(jìn)入單品頁(yè) 4、直接點(diǎn)擊【加入購(gòu)物車】單品頁(yè)上提示需要 選擇商品規(guī)格與型號(hào)3選擇的商品庫(kù)存不足, 添加購(gòu)物車,提示庫(kù) 存不足前提條件:登錄 1、進(jìn)入淘寶首頁(yè) 2、查看商品列表 3、點(diǎn)擊進(jìn)入單品頁(yè) 4、選擇商品規(guī)格和大于庫(kù)存的數(shù)量單品頁(yè)上提示庫(kù)存不足4未登錄添加購(gòu)物車, 進(jìn)入登錄頁(yè)面前提條件:未登錄 1、進(jìn)入淘寶首頁(yè) 2、查看商品列表 3、點(diǎn)擊進(jìn)入單品頁(yè) 4、選擇商品規(guī)格和小于庫(kù)存的數(shù)量 5、點(diǎn)擊【加入購(gòu)物車】進(jìn)入登錄頁(yè)面5商品添加購(gòu)物車后 繼續(xù)購(gòu)物,留在單 品頁(yè)前提條件:登錄 1、進(jìn)入淘寶首頁(yè) 2、查看商品列表 3、點(diǎn)擊進(jìn)入單品頁(yè) 4、選擇商品規(guī)格和小于庫(kù)存的數(shù)量 5、點(diǎn)擊【加入購(gòu)物車】 6、提示成功加入購(gòu)物車 7、繼續(xù)查看商品信息可以正常查看6進(jìn)入購(gòu)物車,未選 擇商品直接結(jié)算, 提示未選擇商品前提條件:登錄 1、進(jìn)入淘寶首頁(yè) 2、查看商品列表 3、點(diǎn)擊進(jìn)入單品頁(yè) 4、選擇商品規(guī)格和小于庫(kù)存的數(shù)量 5、點(diǎn)擊【加入購(gòu)物車】 6、提示成功加入購(gòu)物車 7、進(jìn)入購(gòu)物車頁(yè)面 8、不選擇商品 9、點(diǎn)擊【結(jié)算】購(gòu)物車提示請(qǐng)勾選 要結(jié)算的寶貝7支付過(guò)程出錯(cuò),提 示支付失敗,回到 確認(rèn)訂單頁(yè)前提條件:登錄 1、進(jìn)入淘寶首頁(yè) 2、查看商品列表 3、點(diǎn)擊進(jìn)入單品頁(yè) 4、選擇商品規(guī)格和小于庫(kù)存的數(shù)量 5、點(diǎn)擊【加入購(gòu)物車】 6、提示成功加入購(gòu)物車 7、進(jìn)入購(gòu)物車頁(yè)面 8、不選擇商品 9、點(diǎn)擊【結(jié)算】 10、進(jìn)入確認(rèn)訂單頁(yè) 11、提交訂單 12、支付失敗回到確認(rèn)訂單頁(yè), 提示支付失敗8沒(méi)有添加商品到購(gòu) 物車,結(jié)束購(gòu)物前提條件:登錄 1、進(jìn)入淘寶首頁(yè) 2、查看商品列表 3、點(diǎn)擊進(jìn)入單品頁(yè) 4、不點(diǎn)擊【加入購(gòu)物車】 5、關(guān)閉頁(yè)面購(gòu)物流程結(jié)束
最終生成的測(cè)試用例如上表所示,這種利用場(chǎng)景法設(shè)計(jì)出來(lái)的測(cè)試用例一般是對(duì)于等價(jià)類和邊界值的補(bǔ)充,通常情況下是比較完善的。