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