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

?

基于UML 2.0活動(dòng)圖的車載設(shè)備測(cè)試用例生成方法研究

2011-11-26 07:10:22靖焱林
關(guān)鍵詞:控制流測(cè)試用例車載

靖焱林,唐 濤

(北京交通大學(xué) 軌道交通控制與安全國(guó)家重點(diǎn)實(shí)驗(yàn)室,北京 100044)

車載設(shè)備是列控系統(tǒng)的重要組成部分,其功能和性能符合規(guī)范的要求,才能保證列車的安全運(yùn)行,因此在設(shè)備投入使用前,要對(duì)其進(jìn)行全面的測(cè)試。測(cè)試用例生成是實(shí)現(xiàn)自動(dòng)化測(cè)試的關(guān)鍵,對(duì)于車載設(shè)備的測(cè)試,基于UML模型的測(cè)試具有很大的優(yōu)勢(shì)。UML 2.0活動(dòng)圖適合于描述各種運(yùn)營(yíng)條件下車載設(shè)備的功能執(zhí)行過程,不同抽象層次的活動(dòng)圖可以對(duì)系統(tǒng)不同層次的行為進(jìn)行建模,可以生成用于不同用途的測(cè)試用例。本文主要研究CTCS-2級(jí)列控系統(tǒng)車載設(shè)備的功能測(cè)試用例生成方法。

1 CTCS-2級(jí)列控系統(tǒng)車載設(shè)備介紹

CTCS-2級(jí)列控系統(tǒng)是基于軌道電路和點(diǎn)式應(yīng)答器,傳輸列車運(yùn)行信息,并采用目標(biāo)距離模式監(jiān)控列車運(yùn)行的列車運(yùn)行控制系統(tǒng)。系統(tǒng)包括列控車載設(shè)備和列控地面設(shè)備。

車載設(shè)備由車載安全計(jì)算機(jī)、軌道電路信息接收模塊、應(yīng)答器信息接收模塊、人機(jī)界面、速度傳感器、列車接口單元、運(yùn)行記錄單元、軌道電路信息接收天線、應(yīng)答器信息接收天線等部件組成。

車載設(shè)備具有的基本功能有軌道電路信息和應(yīng)答器信息接收功能、載頻鎖定功能、速度和距離計(jì)算功能、制動(dòng)輸出功能、防溜逸功能、記錄功能、顯示和提示功能、LKJ接口功能、與動(dòng)態(tài)監(jiān)測(cè)設(shè)備接口功能、與EMU的接口功能等。

2 UML 2.0活動(dòng)圖模型

2.1 UML 2.0活動(dòng)圖語義

UML 2.0活動(dòng)圖將系統(tǒng)行為過程建模為活動(dòng),活動(dòng)由邊所連接的節(jié)點(diǎn)集合組成。節(jié)點(diǎn)可以是動(dòng)作節(jié)點(diǎn)、控制節(jié)點(diǎn)或?qū)ο蠊?jié)點(diǎn)。邊代表活動(dòng)中的流,可以是控制流或?qū)ο罅鳌?/p>

僅當(dāng)每條輸入邊上有控制流,并且系統(tǒng)狀態(tài)滿足節(jié)點(diǎn)的前置條件,動(dòng)作節(jié)點(diǎn)執(zhí)行其操作;在操作執(zhí)行結(jié)束時(shí),如果系統(tǒng)狀態(tài)滿足節(jié)點(diǎn)的后置條件,那么控制流轉(zhuǎn)換到其輸出邊。常見的動(dòng)作節(jié)點(diǎn)有調(diào)用動(dòng)作、發(fā)送信號(hào)動(dòng)作和接受事件動(dòng)作。

控制節(jié)點(diǎn)管理活動(dòng)內(nèi)的控制流,它控制流如何從它們的輸入邊傳遞到輸出邊。常用控制節(jié)點(diǎn)類型有初始節(jié)點(diǎn)和終止節(jié)點(diǎn)、判決節(jié)點(diǎn)和匯合節(jié)點(diǎn)、派生節(jié)點(diǎn)和匯聚節(jié)點(diǎn)。初始節(jié)點(diǎn)表示活動(dòng)開始,終止節(jié)點(diǎn)表示活動(dòng)結(jié)束。對(duì)于判決節(jié)點(diǎn),只有滿足防護(hù)條件的輸出邊才能獲得流;匯合節(jié)點(diǎn)則將輸入邊的控制流匯合給輸出邊。派生節(jié)點(diǎn)將控制流同時(shí)分給滿足條件的并發(fā)輸出進(jìn)程;對(duì)于匯聚節(jié)點(diǎn),僅當(dāng)所有的輸入邊的控制流滿足條件時(shí),才傳給輸出邊。

對(duì)象節(jié)點(diǎn)表明對(duì)象在活動(dòng)中的特定位置可用。對(duì)象流是對(duì)象節(jié)點(diǎn)的輸入和輸出邊,代表對(duì)象的活動(dòng)。對(duì)象節(jié)點(diǎn)可以表示為活動(dòng)參數(shù)或別針,它們?cè)谡Z義上都是相同的?;顒?dòng)參數(shù)與對(duì)象節(jié)點(diǎn)并無二異,表示活動(dòng)的輸入或輸出參數(shù)。別針僅有一條邊,輸入別針僅有輸入邊,輸出別針僅有輸出邊。

2.2 UML活動(dòng)圖形式化定義

定義1:活動(dòng)圖D = {A, T, C, F}是一個(gè)四元組,其中:

(1)A是有限節(jié)點(diǎn)集合,且A為非空集合;

(2)T是有限邊集合,且T為非空集合;

(3)C是相應(yīng)邊上的轉(zhuǎn)移條件表達(dá)式;

定義2:D = {A, T, C, F}是活動(dòng)圖,CA表示當(dāng)前活動(dòng)狀態(tài),CA是A的子集,對(duì)于T中的任意元素t,有:

(2)C(t)表示t上的轉(zhuǎn)移條件,E(CA)表示CA可觸發(fā)的邊集合,則?t 是CA的子集。

(3)f(CA)表示在某一時(shí)刻CA能夠觸發(fā)的唯一發(fā)生轉(zhuǎn)換的邊,則f(CA) = {t | t∈E(CA)且(CA為空},t觸發(fā)后的新狀態(tài)CA* = (CA-,如果滿足條件的t不止一個(gè),那么任選其中一個(gè)。

(4)EP表示活動(dòng)圖的執(zhí)行路徑,即:

CA0是EP的起始活動(dòng)狀態(tài),CAn是EP的終止活動(dòng)狀態(tài),CAi是當(dāng)前活動(dòng)狀態(tài),ti= f(CAi),i =

3 測(cè)試用例設(shè)計(jì)

3.1 測(cè)試用例形式化定義

定義3是測(cè)試場(chǎng)景的形式化定義。

定義3:D = {A, T, C, F}是一個(gè)可測(cè)試活動(dòng)圖,即D至少有一個(gè)初始節(jié)點(diǎn)。D的初始活動(dòng)狀態(tài)是CA0,表示初始節(jié)點(diǎn)集合,終止活動(dòng)狀態(tài)是CAn,表示終止節(jié)點(diǎn)集合。D的一個(gè)測(cè)試場(chǎng)景TS是從活動(dòng)的初始節(jié)點(diǎn)到終止節(jié)點(diǎn)的執(zhí)行序列,即:

其中,CAi是當(dāng)前活動(dòng)節(jié)點(diǎn)集,且ti∈E(CAi),Ci是ti的轉(zhuǎn)換條件,i = 0, 1, 2,…, n-1;CAi= (CAi

定義4是測(cè)試用例的形式化定義。

定義4:D = {A, T, C, F}是一個(gè)活動(dòng)圖,D的一個(gè)測(cè)試用例TC是包含特定測(cè)試場(chǎng)景和輸入輸出數(shù)據(jù)的三元組,即:

TC = {TS, ID, ED}

其中,TS是測(cè)試用例所屬的測(cè)試場(chǎng)景,ID是輸入數(shù)據(jù),ED是ID對(duì)應(yīng)的輸出數(shù)據(jù)。

測(cè)試數(shù)據(jù)可以通過分析活動(dòng)的輸入對(duì)象節(jié)點(diǎn)、輸出對(duì)象節(jié)點(diǎn)、轉(zhuǎn)移邊上防護(hù)條件得到。輸入數(shù)據(jù)取值可采用等價(jià)類劃分、邊界值分析等方法設(shè)計(jì),然后通過組合覆蓋原則定義滿足測(cè)試覆蓋要求的測(cè)試用例。

3.2 活動(dòng)圖測(cè)試覆蓋準(zhǔn)則

(1)節(jié)點(diǎn)覆蓋準(zhǔn)則:活動(dòng)圖上的所有節(jié)點(diǎn)至少要執(zhí)行一次。(2)轉(zhuǎn)移覆蓋準(zhǔn)則:活動(dòng)圖上的所有轉(zhuǎn)換至少要執(zhí)行一次。(3)基本路徑覆蓋準(zhǔn)則:活動(dòng)圖上的所有路徑至少要執(zhí)行一次。對(duì)于循環(huán),按照不進(jìn)入循環(huán)和進(jìn)入循環(huán)一次處理,這樣生成的路徑叫做基本路徑。

3.3 并發(fā)模塊處理

當(dāng)并發(fā)線程比較多時(shí),由于并發(fā)線程可以任何順序排列構(gòu)成基本路徑,會(huì)導(dǎo)致路徑爆炸問題,因此需要對(duì)并發(fā)線程的基本路徑組合進(jìn)行約束。測(cè)試人員可以對(duì)活動(dòng)進(jìn)行約束,規(guī)定執(zhí)行順序;也可以指定路徑權(quán)值,規(guī)定權(quán)值大的路徑在測(cè)試場(chǎng)景中所占比例較大。

3.4 測(cè)試用例生成

在生成測(cè)試場(chǎng)景前,定義活動(dòng)圖的數(shù)據(jù)模型,該模型描述了活動(dòng)圖構(gòu)成及其與測(cè)試用例間的關(guān)系?;顒?dòng)圖類由分區(qū)、節(jié)點(diǎn)和轉(zhuǎn)換邊組合而成;節(jié)點(diǎn)有兩種,分別是控制節(jié)點(diǎn)和動(dòng)作節(jié)點(diǎn),此外節(jié)點(diǎn)的屬性有輸入數(shù)據(jù)、輸出數(shù)據(jù)、輸入邊、輸出邊和防護(hù)條件;轉(zhuǎn)換邊的屬性有頭節(jié)點(diǎn)、尾節(jié)點(diǎn)和防護(hù)條件。每一個(gè)活動(dòng)圖對(duì)應(yīng)于多條測(cè)試場(chǎng)景,每一條測(cè)試場(chǎng)景至少屬于一條測(cè)試用例。

根據(jù)測(cè)試覆蓋準(zhǔn)則,采用帶回溯的深度優(yōu)先搜索遍歷算法,遍歷活動(dòng)中所有基本路徑生成測(cè)試場(chǎng)景。遇到?jīng)Q策節(jié)點(diǎn)拆成不同場(chǎng)景,對(duì)于循環(huán),至多進(jìn)入循環(huán)一次,因此在遍歷基本路徑的同時(shí),也可以遍歷活動(dòng)的所有節(jié)點(diǎn)和轉(zhuǎn)換。

測(cè)試場(chǎng)景生成算法的輸入是活動(dòng)圖,輸出是該活動(dòng)圖的所有場(chǎng)景(scenarios),定義節(jié)點(diǎn)棧(VertexStack)、轉(zhuǎn)換邊棧(TransStack),可觸發(fā)的轉(zhuǎn)換邊棧(Enabled-Stack),當(dāng)前狀態(tài)集(CurrStateSet)、當(dāng)前狀態(tài)集的可轉(zhuǎn)換邊集(EnabledTrans)、新的狀態(tài)集(NewStateSet)、下一次觸發(fā)的轉(zhuǎn)換邊(Se-Transition)、找到的基本路徑(scenario)、判斷是否到終止節(jié)點(diǎn)的標(biāo)識(shí)符(SeAnother)。算法流程如圖1。

測(cè)試用例的生成算法是提取測(cè)試場(chǎng)景信息的過程,將測(cè)試場(chǎng)景中的信息轉(zhuǎn)換成輸入、輸出數(shù)據(jù)和操作組成的序列,并以數(shù)組或序列的形式輸出。

測(cè)試用例生成算法的輸入是測(cè)試場(chǎng)景序列(scenarios[]),輸出是測(cè)試用例序列(Testcases[])。當(dāng)前測(cè)試場(chǎng)景(currScenario)由節(jié)點(diǎn)序列(vertex[])和轉(zhuǎn)換邊序列構(gòu)成(trans[]),當(dāng)前測(cè)試用例(currTestcase)由輸入數(shù)據(jù)(Input),輸出數(shù)據(jù)(Output)和約束(Constrains)構(gòu)成,i和j是自然數(shù)。算法具體流程如圖2。

圖2 測(cè)試用例生成算法

4 車載設(shè)備測(cè)試用例生成實(shí)現(xiàn)

4.1 車載設(shè)備活動(dòng)圖建模

系統(tǒng)活動(dòng)圖模型既要精確描述系統(tǒng)的行為過程,也要保證其可測(cè)試性。車載設(shè)備工作過程中,需要與多個(gè)外部接口進(jìn)行信息交互,同時(shí)還要實(shí)時(shí)監(jiān)控列車運(yùn)行。結(jié)構(gòu)復(fù)雜的活動(dòng)圖模型雖然能夠詳細(xì)地描述系統(tǒng)的活動(dòng),但是不利于理解,也難以生成好的測(cè)試用例集。為方便測(cè)試用例設(shè)計(jì)和生成,規(guī)定車載ATP活動(dòng)建模遵循以下規(guī)則。

規(guī)則1:每一個(gè)活動(dòng)只有一個(gè)初始節(jié)點(diǎn),至少有一個(gè)終止節(jié)點(diǎn),派生節(jié)點(diǎn)和匯聚節(jié)點(diǎn)須成對(duì)出現(xiàn),不同分支的活動(dòng)必須異步執(zhí)行。

規(guī)則2:除了初始節(jié)點(diǎn)和終止節(jié)點(diǎn),其他節(jié)點(diǎn)至少有一條輸入邊和輸出邊,從而保證了圖中每一節(jié)點(diǎn)都是可達(dá)的,即沒有孤立節(jié)點(diǎn)。

規(guī)則3:對(duì)于結(jié)構(gòu)化活動(dòng)或原子動(dòng)作節(jié)點(diǎn),標(biāo)識(shí)其輸入輸出對(duì)象節(jié)點(diǎn),使用輸入和輸出別針來表示。

規(guī)則4:對(duì)于控制節(jié)點(diǎn),需要標(biāo)識(shí)其輸出邊上的轉(zhuǎn)移條件,作為約束。

4.2 車載設(shè)備測(cè)試用例生成

下面以車載設(shè)備的制動(dòng)輸出功能為例說明基于活動(dòng)圖模型的車載設(shè)備測(cè)試用例的生成。車載設(shè)備的制動(dòng)指令與制動(dòng)模式曲線相關(guān),對(duì)于設(shè)備制動(dòng)優(yōu)先方式,當(dāng)運(yùn)行速度達(dá)到常用制動(dòng)模式曲線時(shí),車載設(shè)備觸發(fā)最大常用制動(dòng),并按照一定條件在觸發(fā)最大常用制動(dòng)之前的時(shí)機(jī)發(fā)出弱常用制動(dòng)命令;當(dāng)運(yùn)行速度達(dá)到緊急制動(dòng)模式曲線時(shí),列控車載設(shè)備發(fā)出緊急制動(dòng)命令。圖3為設(shè)備制動(dòng)優(yōu)先時(shí)的制動(dòng)輸出功能執(zhí)行過程活動(dòng)圖。

圖3 制動(dòng)輸出功能活動(dòng)圖

在UML建模工具中創(chuàng)建的活動(dòng)圖模型可以XMI格式導(dǎo)出,使用XMI格式表示的UML模型具有良好的數(shù)據(jù)定義,也便于自動(dòng)化處理和與數(shù)據(jù)庫連接。本文采用標(biāo)準(zhǔn)的Java DOM API分析XMI格式的活動(dòng)圖,生成的測(cè)試場(chǎng)景和測(cè)試用例以Acess數(shù)據(jù)表的形式給出。根據(jù)我們實(shí)現(xiàn)的測(cè)試場(chǎng)景生成程序,可得出上述活動(dòng)圖有7條基本路徑,圖4為部分測(cè)試場(chǎng)景信息。

圖4 制動(dòng)輸出功能的測(cè)試場(chǎng)景

通過分析每條測(cè)試場(chǎng)景節(jié)點(diǎn)的輸入輸出對(duì)象內(nèi)容和轉(zhuǎn)換的防衛(wèi)條件,可以生成相應(yīng)的測(cè)試用例,圖5為部分測(cè)試用例信息。

圖5 制動(dòng)輸出功能的測(cè)試用例

5 結(jié)束語

本文重點(diǎn)研究基于活動(dòng)圖的車載設(shè)備的測(cè)試方法,包括測(cè)試場(chǎng)景和測(cè)試用例的生成?;诠?jié)點(diǎn)、轉(zhuǎn)換和路徑覆蓋準(zhǔn)則生成的測(cè)試場(chǎng)景可以滿足現(xiàn)場(chǎng)中的運(yùn)營(yíng)條件需要,測(cè)試用例中的測(cè)試數(shù)據(jù)詳細(xì)描述了系統(tǒng)與外部的交互信息,為在實(shí)驗(yàn)室仿真環(huán)境下對(duì)系統(tǒng)進(jìn)行測(cè)試提供了有力的支持。

只是包含描述性測(cè)試信息的測(cè)試用例是無法直接執(zhí)行的,因此還需要深入分析這些描述性信息,研究如何生成具體的測(cè)試數(shù)據(jù)和可執(zhí)行的測(cè)試用例,這是未來的研究重點(diǎn)。

[1]方貴賓,胡輝良. UML 2.0和統(tǒng)一過程[M]. 北京:機(jī)械工業(yè)出版社,2006:184-212.

[2]徐嘯明. 列控車載設(shè)備(CTCS2-200H型)[M]. 北京:中國(guó)鐵道出版社,2007:8-11.

[3]牟 凱,顧 明. 基于UML活動(dòng)圖的測(cè)試用例自動(dòng)生成方法研究[J].計(jì)算機(jī)應(yīng)用,2006,26(4):844-846.

[4]袁潔松,王林章,李宣東,鄭國(guó)梁. UMLTGF:一個(gè)基于灰盒測(cè)試方法從UML活動(dòng)圖生成測(cè)試用例的工具[J]. 計(jì)算機(jī)研究與發(fā)展,2006,43(1):46-53.

猜你喜歡
控制流測(cè)試用例車載
抵御控制流分析的Python 程序混淆算法
工控系統(tǒng)中PLC安全漏洞及控制流完整性研究
電子科技(2021年2期)2021-01-08 02:25:58
抵御控制流分析的程序混淆算法
基于SmartUnit的安全通信系統(tǒng)單元測(cè)試用例自動(dòng)生成
高速磁浮車載運(yùn)行控制系統(tǒng)綜述
基于混合遺傳算法的回歸測(cè)試用例集最小化研究
智能互聯(lián)勢(shì)不可擋 車載存儲(chǔ)需求爆發(fā)
基于ZVS-PWM的車載隔離DC-DC的研究
基于依賴結(jié)構(gòu)的測(cè)試用例優(yōu)先級(jí)技術(shù)
基于控制流隱藏的代碼迷惑
漳平市| 顺平县| 临清市| 陇南市| 武隆县| 屏南县| 山阳县| 界首市| 昌宁县| 天台县| 兴安县| 塔城市| 商河县| 璧山县| 霸州市| 微山县| 元谋县| 徐水县| 新巴尔虎左旗| 丰顺县| 十堰市| 怀宁县| 金门县| 板桥市| 西畴县| 莱芜市| 南昌市| 中卫市| 仙桃市| 修水县| 定西市| 凤山县| 多伦县| 南乐县| 会泽县| 连云港市| 波密县| 遂宁市| 龙里县| 贵南县| 陇南市|