亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于VectorCAST針對(duì)iDRT車載控制軟件的單元測(cè)試

        2021-06-01 09:47:02
        中國(guó)科技縱橫 2021年3期
        關(guān)鍵詞:單元測(cè)試測(cè)試用例用例

        (上海電氣集團(tuán)智能交通科技有限公司,上海 200233)

        1.系統(tǒng)概況及測(cè)試依據(jù)

        基于數(shù)字化磁標(biāo)簽的列車運(yùn)行管理系統(tǒng),是數(shù)字軌道捷運(yùn)系統(tǒng)的關(guān)鍵子系統(tǒng)。系統(tǒng)綜合運(yùn)用高精度定位和循跡導(dǎo)向技術(shù)、電子地圖技術(shù)、車路協(xié)同技術(shù)、智能感知與控制技術(shù),與虛擬軌道膠輪電車智能控制相結(jié)合,保證數(shù)字軌道膠輪電車循數(shù)字化磁釘軌道(含電子道岔)運(yùn)行,實(shí)現(xiàn)數(shù)字軌道列車的運(yùn)行控制以及安全防護(hù)、輔助與駕駛和列車運(yùn)行監(jiān)控等功能[1]。

        iDRT車載控制軟件作為基于數(shù)字化磁標(biāo)簽的列車運(yùn)行管理系統(tǒng)的新型軌道系統(tǒng)中重要的車載控制設(shè)備軟件,需依據(jù)EN50128標(biāo)準(zhǔn)進(jìn)行軟件測(cè)試,開(kāi)展重要軟件的測(cè)試工作。標(biāo)準(zhǔn)要求所有含有軟件的具有安全含義的系統(tǒng)都應(yīng)分配一個(gè)軟件完整性級(jí)別(SIL),范圍從0~4。標(biāo)準(zhǔn)以一些“規(guī)范”和“信息”的方式詳細(xì)描述了為適合于每個(gè)SIL而必須開(kāi)展的軟件開(kāi)發(fā)活動(dòng)以及必須生成的活動(dòng)完成證據(jù)[2]。

        其中代碼覆蓋率在鐵路控制和防護(hù)系統(tǒng)的軟件代碼測(cè)試中愈來(lái)愈受重視,這不僅是由于功能安全規(guī)范(如國(guó)際標(biāo)準(zhǔn)EN50128)的高度推介,更是來(lái)自于研發(fā)組織內(nèi)部對(duì)提升軟件代碼質(zhì)量的迫切需求。

        EN50128標(biāo)準(zhǔn)描述了軟件安全完整性等級(jí),并規(guī)定了對(duì)于人員及其職責(zé)、生命周期、文件材料方面的要求。內(nèi)容還對(duì)目標(biāo)、輸入文件、輸出文件進(jìn)行了詳細(xì)描述,并對(duì)軟件需求規(guī)范、體系結(jié)構(gòu)、設(shè)計(jì)和執(zhí)行、驗(yàn)證和測(cè)試,以及軟件/硬件集成、軟件確認(rèn)、質(zhì)量保證和維護(hù)提出了要求見(jiàn)表1。

        表1 EN 50128代碼測(cè)試覆蓋需求

        其中覆蓋需求包括:

        (1)Other test coverage criteria can be used,given that this can be justified.These criteria depend on the software architecture(see Table A.3) and the programming language (see Table A.15 and Table A.16).

        (2)Any code which it is not practicable to test shall be demonstrated to be correct using a suitable technique,e.g.static analysis from Table A.19.

        2.單元測(cè)試?yán)碚摷胺椒?/h2>

        iDRT車載控制軟件作為安全苛刻設(shè)備,其安全完整性等級(jí)不低于SIL2,其中對(duì)于軟件覆蓋率提出了要求,使用VectorCAST結(jié)合Tornado開(kāi)發(fā)環(huán)境的vxSim進(jìn)行單元測(cè)試、集成測(cè)試[3]。

        首先需要了解什么是軟件單元,在CMMI管理體系中定了軟件中的最小可測(cè)試單元為軟件單元(一般是指單個(gè)的軟件函數(shù)),而單元測(cè)試即對(duì)最小可測(cè)試單元進(jìn)行檢查和驗(yàn)證,即對(duì)函數(shù)或一個(gè)類的方法進(jìn)行測(cè)試等。

        單元測(cè)試的基本原則:宏觀上,單元測(cè)試要符合 AIR原則:A: Automatic(自動(dòng)化)、I: Independent(獨(dú)立性)、R: Repeatable(可重復(fù));微觀上,單元測(cè)試代碼層面要符合 BCDE 原則:B: Border,邊界性測(cè)試,包括循環(huán)邊界、特殊取值、特殊時(shí)間點(diǎn)、數(shù)據(jù)順序等;C: Correct,正確的輸入,并且得到預(yù)期的結(jié)果;D: Design,與設(shè)計(jì)文檔相符合,來(lái)編寫單元測(cè)試用例;E: Error,單元測(cè)試的目的是為了證明程序有錯(cuò),而不是證明程序無(wú)錯(cuò)。

        為了發(fā)現(xiàn)代碼中潛藏的錯(cuò)誤,我們需要在編寫測(cè)試用例時(shí)有一些強(qiáng)制的錯(cuò)誤輸入(如非法數(shù)據(jù)、異常流程、非業(yè)務(wù)允許輸入等)來(lái)得到預(yù)期的錯(cuò)誤結(jié)果。

        一般的單元測(cè)試策略有三種:孤立的單元測(cè)試策略(Isolation Unit Testing);自頂向下的單元測(cè)試策略(Top-Down Unit Testing);自底向上的單元測(cè)試策略(Bottom Up Unit Testing)。

        集成測(cè)試:也叫組裝測(cè)試或聯(lián)合測(cè)試。在單元測(cè)試的基礎(chǔ)上,將所有模塊按照設(shè)計(jì)要求(如根據(jù)結(jié)構(gòu)圖)組裝成為子系統(tǒng)或系統(tǒng),進(jìn)行集成測(cè)試。

        系統(tǒng)測(cè)試 System Testing:是對(duì)整個(gè)系統(tǒng)的測(cè)試,將硬件、軟件、操作人員看作一個(gè)整體,檢驗(yàn)它是否有不符合系統(tǒng)說(shuō)明書的地方。這種測(cè)試可以發(fā)現(xiàn)系統(tǒng)分析和設(shè)計(jì)中的錯(cuò)誤。

        3.測(cè)試工具VectorCAST的使用及拓展

        在單元測(cè)試環(huán)節(jié),使用VectorCAST/C++(VectorCAST用于單元/集成動(dòng)態(tài)測(cè)試的工具)實(shí)現(xiàn)了函數(shù)級(jí)別的代碼覆蓋和功能驗(yàn)證,編輯自動(dòng)對(duì)被測(cè)項(xiàng)目軟件實(shí)現(xiàn)函數(shù)級(jí)的插樁處理(Instrumentation on the Function level),采用圖形用戶界面執(zhí)行測(cè)試[4]。

        3.1 啟動(dòng)VectorCAST并新建一個(gè)測(cè)試環(huán)境

        設(shè)置編譯器Compiler為 Wind River -> VxWorks ->VxWorks 5.x -> VxSim;輸入環(huán)境名稱“Tornado_demo”,設(shè)置測(cè)試方法,選擇“Traditional Method”,選擇White-Box;測(cè)試文件目錄,比如這里我將被測(cè)試文件放在“C:VCASTExamplesTimer”目錄下,則這里選擇添加該目錄。

        3.2 在VectorCast上進(jìn)行單元測(cè)試

        依據(jù)上面的步驟就已經(jīng)將VectorCast與Tornado的Vxsim連接好,在運(yùn)行測(cè)試用例時(shí),自動(dòng)會(huì)在VxSim跑用例,下面簡(jiǎn)單介紹如何在VectorCast上進(jìn)行單元測(cè)試的步驟:

        選擇某一個(gè)函數(shù)右鍵菜單,選擇“Insert Basis Path Test Cases”添加用例,則生成的用例是根據(jù)函數(shù)的判斷分支生成測(cè)試用例。當(dāng)然也可以根據(jù)項(xiàng)目要求選擇MC/DC等其他方式生成用例。此時(shí)生成測(cè)試用例如圖1所示。

        圖1 單元測(cè)試執(zhí)行的代碼分支

        執(zhí)行測(cè)試用例并觀察測(cè)試用例所執(zhí)行的判斷分支,第一個(gè)用例需要執(zhí)行的分支是“if(initiated == TRUE)”。通過(guò)正確設(shè)置全局變量initiated為1和返回值,使得第一個(gè)用例執(zhí)行“if(initiated == TRUE)”。同時(shí)可以通過(guò)勾選用例查看語(yǔ)句覆蓋情況,查看代碼已經(jīng)覆蓋了對(duì)應(yīng)的分支如圖2所示。

        圖2 測(cè)試用例執(zhí)行后的語(yǔ)句覆蓋情況

        3.3 多個(gè)被測(cè)文件開(kāi)展單元測(cè)試方案

        iDRT車載控制軟件主要實(shí)現(xiàn)車輛循跡導(dǎo)航控制功能,需要進(jìn)行單元測(cè)試、集成測(cè)試的代碼量比較大,為了能更有效得使用VectorCast進(jìn)行完成單元測(cè)試,提出了一些測(cè)試要求及測(cè)試步驟,包括:(1)首先針對(duì)于每一個(gè)被測(cè)的.c文件建立一個(gè)測(cè)試環(huán)境,在集成測(cè)試中將兩個(gè)關(guān)聯(lián)緊密的.c文件建立一個(gè)測(cè)試環(huán)境,環(huán)境名稱一般命名為“配置項(xiàng)名稱-文件名稱-001”。(2)為了保證測(cè)試的充分性,一般要求單元測(cè)試的各種覆蓋率都達(dá)到100%;語(yǔ)句覆蓋要求所有語(yǔ)句至少執(zhí)行一次;分支覆蓋要求程序中每個(gè)判定的“真”值和“假”值都至少執(zhí)行1次,即程序的每1個(gè)分支都至少遍歷1次。(3)代碼的分支中如果存在多條件組合情況,為了實(shí)現(xiàn)各種條件組合的遍歷,測(cè)試用例的數(shù)量將呈指數(shù)級(jí)增長(zhǎng),測(cè)試效率降低。為避免這種情況,采用MC/DC覆蓋取代條件組合覆蓋,用很少的測(cè)試用例即可實(shí)現(xiàn)多條件中的每個(gè)布爾操作數(shù)都獨(dú)立影響判定結(jié)果。(4)通過(guò)MC/DC覆蓋自動(dòng)生成測(cè)試用例,查看每個(gè)用例的路徑,對(duì)應(yīng)路徑設(shè)置對(duì)應(yīng)的輸入、輸出及全局變量,如果是輸出變量的,需要設(shè)置預(yù)期值。(5)對(duì)函數(shù)所調(diào)用的函數(shù),可以先不打樁,通過(guò)調(diào)用查看兩者之間的接口是否正常,如果出錯(cuò),可以結(jié)合代碼審查查看被調(diào)用函數(shù)的問(wèn)題后,再打樁,完成覆蓋。樁函數(shù)信息填寫必須完整。(6)對(duì)于系統(tǒng)函數(shù)需要打樁,先不執(zhí)行,在測(cè)試環(huán)境中添加系統(tǒng)函數(shù)后,重新更新環(huán)境[5]。

        3.4 利用VBA自動(dòng)生成單元測(cè)試記錄文件

        利用VBA編寫抽取VectorCAST測(cè)試數(shù)據(jù)文件的宏代碼依據(jù)執(zhí)行過(guò)程寫入CMMI管理體系制定的單元測(cè)試記錄和集成測(cè)試記錄文件中,最終快速自動(dòng)生成相關(guān)單元測(cè)試記錄和集成測(cè)試記錄的Word文檔,規(guī)范化完成項(xiàng)目資料歸檔[6]。

        (1)準(zhǔn)備單元測(cè)試記錄模板,見(jiàn)表2所示。

        表2 單元測(cè)試記錄模板

        (2)依據(jù)軟件設(shè)計(jì)文件整理好被測(cè)單元信息,見(jiàn)表3所示。

        表3 軟件設(shè)計(jì)文件被測(cè)單元信息

        (3)在Office Word中執(zhí)行已經(jīng)編寫好VBA源碼實(shí)例,VBA源碼實(shí)例詳解以下內(nèi)容:

        (4)生成相關(guān)函數(shù)的單元測(cè)試記錄見(jiàn)表4所示,通過(guò)VBA自動(dòng)完成文件合并,生成針對(duì)每一個(gè).c文件的單元測(cè)試記錄。

        表4 函數(shù)的單元測(cè)試記錄

        4.總結(jié)

        軟件集成測(cè)試是根據(jù)軟件結(jié)構(gòu)設(shè)計(jì),是將單元測(cè)試的各個(gè)軟件模塊按照功能、接口等方式逐步整合,測(cè)試軟件單元之間、軟件單元與已集成軟件之間的接口關(guān)系是否正確,并且符合軟件設(shè)計(jì)要求。VectorCAST測(cè)試工具也提供了軟件集成測(cè)試方法。集成測(cè)試一般采用黑盒測(cè)試為主,白盒測(cè)試為輔,通常采用增量集成的方式逐級(jí)進(jìn)行,有自上而下和自下而上2種方式。對(duì)于軟件單元之間的所有調(diào)用關(guān)系,集成測(cè)試需要達(dá)到100%的覆蓋率。

        通過(guò)VectorCAST測(cè)試工具在新型軌道項(xiàng)目中車載嵌入式軟件單元測(cè)試中提出了切實(shí)可行的改進(jìn)軟件設(shè)計(jì)的質(zhì)量管理方法和措施。在對(duì)iDRT車載控制軟件進(jìn)行單元測(cè)試的過(guò)程中,實(shí)現(xiàn)了多人協(xié)同進(jìn)行嵌入式軟件測(cè)試流程的可能。同時(shí),iDRT車載控制軟件對(duì)標(biāo)安全性指標(biāo)需小于10-6次/小時(shí)的失效概率。需要達(dá)到快速完成研發(fā)和產(chǎn)品化,同時(shí)又能夠滿足相應(yīng)的安全性標(biāo)準(zhǔn),就必須采用先進(jìn)的測(cè)試流程和工具進(jìn)行質(zhì)量管理。工具的使用以及自行的文檔生成開(kāi)發(fā),能夠大大減少了復(fù)雜的重復(fù)勞動(dòng),起到了事半功倍的作用。

        猜你喜歡
        單元測(cè)試測(cè)試用例用例
        UML用例模型中依賴關(guān)系的比較與分析
        基于SmartUnit的安全通信系統(tǒng)單元測(cè)試用例自動(dòng)生成
        聯(lián)鎖軟件詳細(xì)設(shè)計(jì)的測(cè)試需求分析和用例編寫
        從出土文獻(xiàn)用例看王氏父子校讀古書的得失
        基于混合遺傳算法的回歸測(cè)試用例集最小化研究
        基于依賴結(jié)構(gòu)的測(cè)試用例優(yōu)先級(jí)技術(shù)
        一年級(jí)上冊(cè)第五單元測(cè)試
        一年級(jí)上冊(cè)一、二單元測(cè)試
        第五單元測(cè)試卷
        第六單元測(cè)試卷
        无码人妻精品中文字幕 | 亚洲成a人片在线观看中| 日本高清在线播放一区二区 | 国产一国产一级新婚之夜| 亚洲天堂免费一二三四区| 日本免费一区二区在线视频播放 | 日本精品人妻无码77777| 亚洲成人av一区二区三区| 亚洲中文字幕综合网站| 国产精品久久精品第一页| 人妻影音先锋啪啪av资源| 国产大片中文字幕| 日本av不卡一区二区三区| 午夜亚洲av日韩av无码大全| 伊人色综合九久久天天蜜桃| 久久久久久国产福利网站| 人妻少妇av中文字幕乱码| 啦啦啦中文在线观看日本| 在线观看av中文字幕不卡| 另类人妖在线观看一区二区| 午夜国产视频一区二区三区| 国产美女在线精品免费观看| 久久久久亚洲精品天堂| 水蜜桃在线观看一区二区国产| 99国产精品99久久久久久| 亚洲国产另类久久久精品黑人| 丁香六月久久| 成av人片一区二区久久| 中文字幕av一区二区三区人妻少妇| 亚洲狠狠网站色噜噜| 91精品国产色综合久久不| 亚洲天堂av三区四区不卡| 全球av集中精品导航福利| 国产亚洲日本人在线观看| 久久精品中文字幕有码| 免费久久人人爽人人爽av| 久久精品国产免费观看99| 精品国产av一区二区三区| 亚洲精品动漫免费二区| 亚洲综合欧美日本另类激情| 亚洲av性色精品国产|