国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種基于場景的裝備軟件測試用例設(shè)計方法研究

2018-10-23 05:37:28王萬金韓成柱
艦船電子工程 2018年10期
關(guān)鍵詞:狀態(tài)圖測試用例變遷

王萬金 韓成柱

(92124部隊 大連 116023)

1 引言

根據(jù)GJB 2434A-2004《軍用軟件產(chǎn)品評價》的要求,軟件產(chǎn)品質(zhì)量需求一般包括內(nèi)部質(zhì)量、外部質(zhì)量和使用質(zhì)量。目前裝備軟件測試的重點集中在基于需求的測試,即側(cè)重軟件外部質(zhì)量和內(nèi)部質(zhì)量的驗證,而反映裝備軟件最終表現(xiàn)的使用質(zhì)量,即用戶的使用需求卻沒有被很好重視。

本文給出一種基于場景的裝備軟件測試方法。通過分析、構(gòu)建軟件使用場景,基于場景路徑覆蓋設(shè)計、生成用例,并在具體的實例中進行了應(yīng)用。

2 場景模型

通常,我們把系統(tǒng)一個最小的功能狀態(tài)定義為原子場景。原子場景按照一定規(guī)則通過順序、條件、循環(huán)等各種控制結(jié)構(gòu)組成場景(Scenario)。

圖1 場景空間轉(zhuǎn)換示意圖

一個場景的狀態(tài)空間可以用一個三元組<S0,S,T>表示:

S0∈S,S0是狀態(tài)空間的初始狀態(tài)。

S是狀態(tài)空間所有狀態(tài)(原子場景)的集合,包含初始狀態(tài)和終止?fàn)顟B(tài)。

T是變遷的集合,當(dāng)Si和Ti相關(guān)聯(lián)的所有輸入變遷滿足使能時,狀態(tài)發(fā)生遷移Si→Sj。

3 場景模型的構(gòu)建

隨著軟件工程化的深入開展,軟件文檔質(zhì)量較以前有了比較大的改善,基于需求進行使用場景構(gòu)建已經(jīng)具備了輸入條件。

對于使用場景的構(gòu)建,需要做好以下工作:

1)提取需求,確定軟件的初始狀態(tài)(即:場景的輸入);

2)確定軟件的最終狀態(tài)(即:場景的終止?fàn)顟B(tài));

3)分析歸納軟件的使用場景;

4)畫出軟件使用場景狀態(tài)圖。

4 基于場景的覆蓋準(zhǔn)則

對于狀態(tài)空間< S0,S,T >,設(shè)Si∈S且Ti∈T,對于所有的0 ≤ i≤(n-1),如果 Si→TiSi+1,則序列(S0,T0),(S1,T1),(S2,T2),…,(Sn-1,Tn-1),(Sn)稱 為 路徑。設(shè)P是路徑的集合。

場景覆蓋準(zhǔn)則一般有2種:狀態(tài)覆蓋、路徑覆蓋。

狀態(tài)覆蓋State Coverage(SC):當(dāng)測試集生成的測試路徑P,對于其中的狀態(tài)Si,如果滿足∑Si=S,則測試集滿足狀態(tài)覆蓋。

路徑覆蓋Path Coverage(PC):當(dāng)測試集生成的測試路徑P,對于其中的變遷Ti,如果滿足∑Ti=T,則測試集滿足路徑覆蓋。

顯然,路徑覆蓋的要求大于狀態(tài)覆蓋,本文將重點討論路徑覆蓋的用例設(shè)計、生成方法。

5 基于場景路徑覆蓋的測試用例設(shè)計、生成方法

在軟件使用場景狀態(tài)圖的基礎(chǔ)上,路徑覆蓋準(zhǔn)則要求遍歷所有分支路徑,覆蓋從初始節(jié)點到終止節(jié)點的每條路徑至少一次。遍歷場景狀態(tài)圖的每一條路徑,即對應(yīng)一個測試用例。通過遍歷使用場景狀態(tài)圖中的全部路徑可以獲得所有的測試用例,然后確定相關(guān)的用例輸入。

基于場景路徑覆蓋的測試用例生成的步驟如下:

1)將場景狀態(tài)圖中的初始節(jié)點放入一個堆棧中,記錄初始節(jié)點為當(dāng)前節(jié)點;

2)查找當(dāng)前節(jié)點的后繼節(jié)點,按照深度優(yōu)先的方法進行遍歷,將該變遷及目標(biāo)節(jié)點壓入堆棧并將該路徑標(biāo)記為已訪問,將該目標(biāo)節(jié)點記錄為當(dāng)前節(jié)點;

3)重復(fù)步驟2),直到當(dāng)前節(jié)點沒有后繼節(jié)點(即當(dāng)前節(jié)點為終止節(jié)點)。此時,輸出從堆棧的棧底到棧頂?shù)乃泄?jié)點和變遷信息(即初始節(jié)點到終止節(jié)點構(gòu)成一個測試場景的路徑輸出);

4)從堆棧中依次彈出節(jié)點和變遷,如當(dāng)前棧頂對象是節(jié)點且該節(jié)點有尚未訪問的后繼節(jié)點和變遷,則轉(zhuǎn)到步驟2)、步驟3),直到彈出堆棧中的所有節(jié)點和變遷為止。

其中,步驟3)輸出的一條路徑構(gòu)成一個測試用例,所有輸出構(gòu)成測試用例集。

6 應(yīng)用實例

6.1 實例描述

自動飲料機程序是軟件測試常用的例子,該問題的需求說明如下:

1)自動飲料機僅接受1元硬幣和5毛硬幣;2)1聽飲料價值1.5元;

3)當(dāng)硬幣總額超過1.5元以后,飲料機拒絕再接受其它的硬幣;

4)飲料機在用戶硬幣金額不足、沒有飲料、沒有找零硬幣時會分別給出提示“金額不足”、“沒有飲料”、“沒有零錢”,在這3種情況下,無法完成飲料購買的交易;在正常情況下,機器顯示“交易成功”;

5)飲料機程序處理流程:統(tǒng)計投入的硬幣錢數(shù)→統(tǒng)計機內(nèi)飲料數(shù)→統(tǒng)計機內(nèi)零錢數(shù),分別根據(jù)統(tǒng)計結(jié)果進行相應(yīng)處理。

6.2 實例的使用場景分析與構(gòu)建

根據(jù)飲料機需求,提取并定義場景的節(jié)點和變遷如表1。

很顯然,可以提取4種使用場景,分別為金額不足、沒有飲料、沒有找零、正常交易。經(jīng)過分析,對應(yīng)的場景狀態(tài)圖分別如圖2~5所示。

6.3 基于實例使用場景的用例生成

根據(jù)基于場景路徑覆蓋的測試用例設(shè)計、生成方法,依次生成的測試用例如表2。

表1 飲料機模型的節(jié)點和變遷定義表

圖2 場景1:“金額不足”場景狀態(tài)圖

圖3 場景2:“沒有飲料”場景狀態(tài)圖

圖4 場景3:“沒有找零”場景狀態(tài)圖

表2 飲料機模型的用例設(shè)計表

7 結(jié)語

裝備軟件比較適用于基于狀態(tài)的行為描述,適合進行場景建模。按本文提出的基于場景的方法對自動飲料機模型進行使用場景構(gòu)建和測試用例的設(shè)計,試驗結(jié)果表明,該方法可以很好地設(shè)計和生成“基于使用”的測試用例。下一步工作:1)對場景狀態(tài)圖進行形式化描述,結(jié)合場景用例生成算法,自動生成測試路徑(測試用例);2)研究測試路徑轉(zhuǎn)換成測試環(huán)境支持的測試腳本,實現(xiàn)測試自動化。

猜你喜歡
狀態(tài)圖測試用例變遷
基于Web 的高校資產(chǎn)管理系統(tǒng)的設(shè)計與實現(xiàn)
航線網(wǎng)絡(luò)優(yōu)化方法研究
基于SmartUnit的安全通信系統(tǒng)單元測試用例自動生成
40年變遷(三)
40年變遷(一)
40年變遷(二)
基于混合遺傳算法的回歸測試用例集最小化研究
清潩河的變遷
基于UML狀態(tài)圖的軟件系統(tǒng)測試用例生成方法
基于依賴結(jié)構(gòu)的測試用例優(yōu)先級技術(shù)
扎囊县| 青浦区| 麻江县| 吴旗县| 靖安县| 建德市| 卓尼县| 保靖县| 张家口市| 崇阳县| 新竹市| 清丰县| 昭觉县| 韩城市| 兴隆县| 彭泽县| 余干县| 东至县| 阿拉善左旗| 醴陵市| 博白县| 兖州市| 扶余县| 浦东新区| 太保市| 洛扎县| 合山市| 闵行区| 班戈县| 通化市| 凤冈县| 榆树市| 襄垣县| 屏南县| 南岸区| 镇安县| 光泽县| 长宁县| 和田县| 剑川县| 怀集县|