2021-4-10 | 互聯(lián)網(wǎng)
鐵路互聯(lián)網(wǎng)退票模塊是鐵路客票互聯(lián)網(wǎng)售票系統(tǒng)的主要組成部分,對用戶而言,安全、可靠、方便是其推廣應用的基礎,因此,在該模塊投入使用前,要進行全面測試,盡可能發(fā)現(xiàn)退票模塊功能性的缺陷和不足,充分保證退票模塊在實際應用中,為旅客提供準確、便捷和人性化的網(wǎng)上退票服務。互聯(lián)網(wǎng)退票測試工作要站在旅客的角度上,充分考慮旅客在網(wǎng)上退票過程中可能產(chǎn)生的各種情形,全面測試退票模塊的基本功能,最大限度地發(fā)現(xiàn)退票模塊中的缺陷和不足。基于這樣的測試需求,以及退票業(yè)務流程清晰的特點,采用場景法對互聯(lián)網(wǎng)退票模塊進行測試。
場景法是黑盒測試中應用比較廣泛的測試方法,黑盒技術設計測試用例的方法主要有:等價類劃分、邊界值分析、因果圖和場景法。在對流程性較強的互聯(lián)網(wǎng)退票測試中,與其他幾種主要方法相比,場景法有著不可比擬的優(yōu)勢。場景法能夠站在用戶角度上,將測試的過程按照事件流劃分為不同的場景,更加清晰、全面地體現(xiàn)軟件的設計思想和用戶對于軟件的體驗,有利于測試設計者設計測試用例,同時使測試用例更容易理解和執(zhí)行。
1場景法
1.1場景法基本原理應用軟件大多是用事件觸發(fā)來控制流程的,事件觸發(fā)時的情景便形成了場景,而同一事件不同的觸發(fā)順序和處理結(jié)果就形成事件流。這種在軟件設計方面的思想也可引入到軟件測試中,可以比較生動地描繪出事件觸發(fā)時的情景。
用例場景用來描述流經(jīng)用例的路徑,從用例開始到結(jié)束遍歷這條路徑上所有基本流和備選流。
經(jīng)過用例的每條路徑都用基本流和備選流來表示,基本流用黑色粗直線表示,是經(jīng)過用例的最簡單的路徑,是完成某個操作必須要經(jīng)過的步驟。各備選流如圖1中所標注,一個備選流,可能從基本流開始,在某個特定條件下執(zhí)行,然后重新加入基本流中(如備選流1和備選流3);也可能起源于另一個備選流(如備選流2),或者終止用例而不再重新加入到某個流(如備選流2和備選流4)。根據(jù)圖1中每個經(jīng)過用例的路徑,可以得到不同的用例場景。其中,基本流為一個場景,基本流與其他備選流的不同組合為其他場景。
1.2場景法存在的問題
根據(jù)定義,場景法的基本設計步驟為:(1)根據(jù)軟件設計說明書,畫出用例圖。(2)確定程序的基本流及各項備選流。(3)根據(jù)基本流和各項備選流生成不同的場景。(4)對每一個場景生成相應的測試用例。(5)對生成的測試用例進行復審,去掉多余的測試用例。測試用例確定后,對每一個測試用例確定測試數(shù)據(jù)值。
從上面場景法實施的步驟中不難看出,步驟1畫出準確的用例圖是場景法的基礎,它將影響到對系統(tǒng)行為的分析,以及基本流和備選流的確定。
由于用例圖表意不夠豐富,不能夠細致、全面地描述系統(tǒng)行為。所以,需要一種新的系統(tǒng)表示方法代替用例圖,以便全面、準確地描述系統(tǒng)的行為。另外,傳統(tǒng)場景法中生成測試矩陣的過程太過繁瑣,占用了用例設計的很大一部分精力,淹沒了場景法在分析系統(tǒng)活動方面的優(yōu)勢。
1.3場景法的改進
針對場景法存在的問題,提出以下改進方案,并將該方案用于互聯(lián)網(wǎng)退票的測試。
采用活動圖代替用例圖來表現(xiàn)軟件執(zhí)行過程。
與用例圖相比,應用活動圖的優(yōu)勢在于:
(1)活動圖表示了活動可能發(fā)生的順序,可以在活動圖中方便地識別基本流和備選流。(2)基于活動圖的測試方法是進行軟件自動化測試的重要途徑之一。
對于測試矩陣過于繁瑣的問題,可以在測試場景生成后,基于測試矩陣中因素分析思想,應用生成用例的其他方法,分析所處場景的基本流和備選流,直接得到需要的測試用例。
2場景法用于互聯(lián)網(wǎng)退票測試
互聯(lián)網(wǎng)退票模塊流程性強,使用場景法設計測試用例,可以使退票的整個流程在測試用例中得到清晰的體現(xiàn)。同時,對流程進行場景的劃分,利于設計者抓住流程中的主要事件,繼而挖出其中的測試點,使得測試用例覆蓋面更加全面、廣泛。
2.1確定基本流和備選流
依據(jù)互聯(lián)網(wǎng)售票退票模塊的軟件設計說明書,得出退票模塊的活動圖如圖2。圖2中,人與軟件交互部分用動作狀態(tài)框表示,其他狀態(tài)用狀態(tài)框表示。
確定測試流程中的基本流和備選流是應用場景法設計測試用例的關鍵。通過退票模塊的活動圖,容易得到基本流和備選流。
一般的,基本流是將程序從開始直接執(zhí)行到結(jié)束,不出現(xiàn)任何差錯的所有步驟按照程序執(zhí)行的順序排列出來而得到的。
按照圖中控制流指示順序,關注動作狀態(tài)框中的相關動作,找到完成整個退票過程最簡短的路徑,即可得到退票模塊的基本流為:登陸→選擇“退票”→按訂票日期查詢→選擇起始日期→選擇結(jié)束日期→點擊查詢→選擇“退票”按鈕→確認退票→退票成功→返回退票界面。
備選流可以從圖2中按照下面幾個原則來確定:
(1)轉(zhuǎn)換(分叉)處,除去基本流之外的分支為備選流。(2)判定框處,基本流之外的另一種判定(一般為否定的)為備選流。(3)基本流之外的動作狀態(tài)框所在的分支為備選流。
由此,得到該模塊中的5個備選流。
2.2建立測試場景
測試場景是在基本流的基礎上,結(jié)合備選流的各種組合建立的。具體方法就是依照程序執(zhí)行的流程,以基本流為主,遍歷備選流,生成測試場景。將上面列出的備選流按照不同的順序進行組合,可以發(fā)現(xiàn)會產(chǎn)生上百種組合形式,顯然,這種場景爆炸的情形是必須要避免的。所以,備選流的組合方式需遵循一定的規(guī)則:
(1)活動圖中,不重疊、距離遠的備選流不進行組合。(2)邏輯上,關聯(lián)性小的備選流不進行組合。(3)一個備選流在一個場景中只需被執(zhí)行一次。(4)對排列順序可能會影響結(jié)果的備選流,進行排序組合。
例如:在活動圖中,備選流A5,與A1和A2距離遠、無重疊,不進行組合,與A3、A4關聯(lián)性小,可以將組合產(chǎn)生的場景刪除。按照如上的原則,2.3生成測試用例建立測試場景后,可以通過從確定執(zhí)行用例場景所需的數(shù)據(jù)元素入手構(gòu)建測試矩陣,然后根據(jù)測試矩陣生成測試用例。然而這種方法太過繁瑣,我們可以針對每個測試場景,采用其他用例生成方法,直接產(chǎn)生測試用例。
根據(jù)測試矩陣思想,分析每個測試場景,找出導致場景發(fā)生的因素,將這些條件作為變量,考慮變量發(fā)生變化時,對結(jié)果的不同影響,生成測試用例。下面以場景1和場景10為例說明測試用例的生成過程。