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

        ?

        計算機(jī)聯(lián)鎖軟件的黑盒測試過程分析與實現(xiàn)

        2018-03-01 18:57:32任麗霞
        鐵路計算機(jī)應(yīng)用 2018年2期
        關(guān)鍵詞:黑盒測試軟件測試用例

        任麗霞

        (西南交通大學(xué) 信息科學(xué)與技術(shù)學(xué)院,成都 610031)

        鐵路運輸是我國重要的旅客和貨物運輸方式之一,車站聯(lián)鎖功能的提升也是現(xiàn)代鐵路運輸?shù)男枰?。計算機(jī)聯(lián)鎖系統(tǒng)[1]是否能夠完成聯(lián)鎖邏輯功能,最重要的工作之一就是對聯(lián)鎖軟件的聯(lián)鎖邏輯運算功能進(jìn)行測試,一方面測試聯(lián)鎖軟件的功能是否滿足軟件的規(guī)格需求說明書并發(fā)現(xiàn)錯誤,另一方面是為了發(fā)現(xiàn)至今為止還沒有被發(fā)現(xiàn)的錯誤。關(guān)于軟件的測試[2],通常有人工測試和自動測試兩種方式。人工測試需要人為地測試每一條測試用例,其中會涉及到大量重復(fù)的測試動作,耗時耗力,效率低下。而自動測試則用軟件代替了人工測試中重復(fù)的動作,效率得以極大地提高,因此,自動測試已經(jīng)成為現(xiàn)在主流的測試方式。該測試方式屬于功能測試,測試時不需要知道軟件內(nèi)部代碼的具體執(zhí)行情況,因此通常采用軟件測試方法中的黑盒測試方法。本文基于等價類劃分法和故障樹分析法編寫不用覆蓋率的測試用例,用python偽代碼實現(xiàn)了測試用例“進(jìn)路正常選出”。

        1 軟件測試

        1.1 測試目的

        為了驗證一個軟件是否完成了用戶需求的功能,并發(fā)現(xiàn)尚未發(fā)現(xiàn)的錯誤的測試方案,在一個軟件的開發(fā)過程中不可避免地需要對各個開發(fā)階段進(jìn)行不同作用的測試。

        具體來說,測試的目的主要有以下3點[1]:

        (1)測試是為了發(fā)現(xiàn)程序中的錯誤而執(zhí)行程序的過程;

        (2)好的測試方案是極可能發(fā)現(xiàn)迄今為止尚未發(fā)現(xiàn)的錯誤的測試方案;

        (3)成功的測試是發(fā)現(xiàn)了至今為止尚未發(fā)現(xiàn)的錯誤的測試。

        為了盡可能地提高程序的正確性,更好地實現(xiàn)測試的目的,針對不同的實際情況也出現(xiàn)了不同的軟件測試方法。

        1.2 測試方法

        1.2.1 黑盒測試

        黑盒測試也叫做功能測試,關(guān)于這類測試,測試員不需要知道具體的程序代碼,而只需要輸入相關(guān)測試數(shù)據(jù)后收集對應(yīng)的輸出結(jié)果,通過實際輸出結(jié)果與預(yù)期輸出結(jié)果對比一致性來判斷軟件是否完成了某種功能。

        黑盒測試主要在測試過程的后期使用,力求發(fā)現(xiàn)白盒測試不易發(fā)現(xiàn)的一些錯誤:功能錯誤、功能遺漏、界面錯誤、外部數(shù)據(jù)庫訪問錯誤或數(shù)據(jù)結(jié)構(gòu)錯誤以及性能錯誤等。常見的幾種黑盒測試技術(shù)為:等價劃分法、邊界值分析法、錯誤推測法。

        1.2.2 等價類劃分

        等價類劃分后的數(shù)據(jù)類又分為有效等價類和無效等價類,即輸入有效和輸入無效的等價類型。等價劃分法是一種黑盒測試技術(shù),可以類比于數(shù)學(xué)中的合并同類項。

        例如:判斷一個程序是否能實現(xiàn)“輸入一個3位正整數(shù)時相應(yīng)的輸出也為一個3位正整數(shù)”功能??梢园选?[1-9][1-9]”“00[1-9]”“[1-9][1-9][1-9]”分別看作3類數(shù)據(jù),這時,我們只需要在每一類數(shù)據(jù)中拿出一個數(shù)據(jù)來作為輸入數(shù)據(jù)進(jìn)行測試就行了,即這3種類型的數(shù)據(jù)為有效等價類。而“0000”這種格式的數(shù)據(jù)明顯不屬于上述3種類型的數(shù)據(jù),因此為一種無效等價類。

        綜上所述,等價劃分法的重點和難點在于等價類的劃分,即選取出有效的具有代表性的數(shù)據(jù)。

        1.2.3 故障樹分析

        安全性測試中常用的一種方法就是故障樹分析(FTA,F(xiàn)ault Tree Analysis)。故障樹分析通常分3步進(jìn)行:確定頂事件、建造故障樹、故障樹的定性和定量分析。

        1.3 測試步驟

        (2)測試軟件的測試用例數(shù)據(jù)庫向計算機(jī)聯(lián)鎖軟件輸入控制命令,計算機(jī)聯(lián)鎖軟件輸出結(jié)果并傳入測試軟件的運行結(jié)果記錄數(shù)據(jù)庫;測試軟件分析運行結(jié)果是否與期望結(jié)果一致。如果一致,則測試下一個操作命令;如果不一致,則反饋重新生成測試數(shù)據(jù)并測試該操作命令,3次都不一致則重新排入測試命令序列等待測試;

        (3)測試軟件最后生成記錄文檔,顯示測試功能的結(jié)果。

        2 列車進(jìn)路選出黑盒測試過程與實現(xiàn)

        2.1 聯(lián)鎖軟件的測試環(huán)境

        聯(lián)鎖軟件的黑盒測試通常在一個測試平臺完成,這個測試平臺由測試軟件、被測聯(lián)鎖軟件以及車站信號設(shè)備仿真系統(tǒng)3部分構(gòu)成,測試框圖[5],如圖1所示。

        圖1 聯(lián)鎖軟件黑盒自動測試框圖

        在測試平臺中,自動測試過程如下。

        (1)測試軟件發(fā)送“改變狀態(tài)”的命令到車站設(shè)備仿真系統(tǒng)中,通過改變3大信號設(shè)備的狀態(tài)來模擬實際現(xiàn)場可能遇到的各種聯(lián)鎖情況;

        (2)仿真系統(tǒng)中各設(shè)備接受命令后改變狀態(tài),并將改變后的狀態(tài)發(fā)送至聯(lián)鎖軟件和測試軟件;

        (3)測試軟件將模擬的操作命令發(fā)送至聯(lián)鎖軟件,聯(lián)鎖軟件根據(jù)操作命令生成驅(qū)動命令;

        (4)聯(lián)鎖軟件用驅(qū)動命令來使仿真系統(tǒng)完成模擬操作,同時,聯(lián)鎖軟件將輸出的驅(qū)動命令發(fā)送給測試軟件,測試軟件根據(jù)輸入和輸出判定該操作命令的軟件功能是否完成;

        墨西哥民族和文化的本質(zhì)便具有混血性(mestizo)(陶家俊,2003:4)這種混血性的文化身份是帝國主義殖民擴(kuò)張和全球化的產(chǎn)物,體現(xiàn)了現(xiàn)代、后現(xiàn)代時期異質(zhì)文化間的張力。(61)

        (5)測試重新開始1的過程,進(jìn)入到下一輪測試。

        2.2 測試軟件的構(gòu)成

        測試軟件[2]由測試用例數(shù)據(jù)庫、運行結(jié)果記錄數(shù)據(jù)庫、分析判斷模塊、網(wǎng)絡(luò)通信模塊以及設(shè)置設(shè)備狀態(tài)模塊5部分構(gòu)成。

        測試開始時,測試用例數(shù)據(jù)庫向聯(lián)鎖軟件發(fā)送模擬操作命令,同時將該條測試用例發(fā)送至運行結(jié)果記錄數(shù)據(jù)庫中。聯(lián)鎖軟件完成測試功能后輸出驅(qū)動命令后將被記錄在運行結(jié)果記錄數(shù)據(jù)庫中。此時,分析判斷模塊將對比運行結(jié)果和測試用例中期望的輸出結(jié)果,判斷出該條測試用例的期望結(jié)果和實際結(jié)果是否一致。若一致,則刪除運行結(jié)果記錄數(shù)據(jù)庫中的該條測試;若不一致,返回到測試開始重新進(jìn)行測試,3次測試仍然不一致后將停止該條測試用例的測試,并將每一次的測試結(jié)果和仿真系統(tǒng)的狀態(tài)信息記錄在運行結(jié)果記錄數(shù)據(jù)庫中。

        若涉及到需要改變仿真系統(tǒng)信號設(shè)備狀態(tài)的測試時,則需要通過測試軟件的設(shè)置設(shè)備狀態(tài)模塊,也就是模擬故障情況下的測試時需要用到設(shè)置設(shè)備狀態(tài)模塊。

        2.3 列車進(jìn)路選出的測試用例編寫

        車站信號設(shè)備平面布置圖是根據(jù)站場線路圖繪制的,能清楚地反映站場信號設(shè)備的位置。聯(lián)鎖表是說明站場中信號設(shè)備聯(lián)鎖關(guān)系的圖表。它們都是測試平臺中車站信號設(shè)備仿真系統(tǒng)仿真的依據(jù)和聯(lián)鎖軟件實現(xiàn)聯(lián)鎖功能的基礎(chǔ)。

        圖2 舉例車站信號設(shè)備平面布置圖

        表1 聯(lián)鎖表

        依據(jù)的車站信號設(shè)備平面布置圖和聯(lián)鎖表分別如圖2和表1所示。其中,聯(lián)鎖表只截取了列車進(jìn)路選出測試用例編寫時涉及到的相關(guān)進(jìn)路。

        3 列車進(jìn)路選出黑盒測試過程與實現(xiàn)

        3.1 列車進(jìn)路選出的測試用例編寫

        下面對“列車進(jìn)路選出”這一功能進(jìn)行等價類劃分。根據(jù)傳統(tǒng)的計算機(jī)聯(lián)鎖軟件功能測試項目可知,針對“列車進(jìn)路選出”這一功能有正常選出進(jìn)路和故障下選出進(jìn)路兩大測試項目,如表2所示??梢杂貌紶栔怠癟rue”和“False”來判斷設(shè)備狀態(tài)。

        表2 計算機(jī)聯(lián)鎖“進(jìn)路選出”功能測試項

        3.2 故障樹分析編寫測試用例

        根據(jù)測試用例分級要求和已有的相關(guān)經(jīng)驗,選取“進(jìn)路選出時發(fā)生危險性失效”作為故障樹的頂事件,并建造故障樹,如圖3所示。

        其次,需要進(jìn)行故障樹的定性分析,以確定最小割集,也就是可能引發(fā)頂事件的故障組合方式。

        圖3 進(jìn)路選出時發(fā)生危險性失效故障樹框圖

        針對“進(jìn)路選出時發(fā)生危險性失效”故障樹,這里采用下行法進(jìn)行分析。從T1開始為步驟1,這里的G1為一個“與門”,根據(jù)下行法的規(guī)則,這時應(yīng)該增加割集的階數(shù),于是有步驟1的{x1,M1}。M1下面是G2,即從步驟1到步驟2遇到G2這個“或門”,根據(jù)下行法的規(guī)則,這時應(yīng)該增加割集的個數(shù),又因為M1下面是x2與x3,所以豎向展開得割集。至此,故障樹已到達(dá)所有的底事件,故障樹分析完成。所以,該故障樹分析分為了2步,共得2個割集{x1,x2},{x1,x3}。又因為該割集已經(jīng)無法再簡化,因此得到的全部最小割集為{x1,x2},{x1,x3}。

        3.3 列車進(jìn)路選出的測試流程

        根據(jù)測試用例的編號,測試軟件將自動生成測試序列,然后將每一條測試用例都至少進(jìn)行一次測試。測試開始后,輸入測試用例中的輸入數(shù)據(jù),此時,聯(lián)鎖軟件會依次檢查仿真系統(tǒng)中信號設(shè)備的聯(lián)鎖條件。若進(jìn)路中軌道區(qū)段和超限絕緣區(qū)段空閑、敵對進(jìn)路未建立、道岔與進(jìn)路要求的位置一致,則是正常情況,即完成該條測試,并等待下一條測試操作指令;若以上聯(lián)鎖條件中有不正常情況,測試將轉(zhuǎn)入測試開始階段重新測試該條測試用例,重復(fù)3次測試都不正常時也將轉(zhuǎn)入下一條測試操作指令,并把該測試結(jié)果記錄在運行結(jié)果記錄數(shù)據(jù)庫中,以便對所有測試發(fā)生的故障情況進(jìn)行匯總。列車進(jìn)路選出的測試流程,如圖4所示。

        3.4 測試用例的實現(xiàn)舉例

        在聯(lián)鎖軟件的黑盒測試平臺上使用python語言[6],可以實現(xiàn)測試用例的重用、測試動作的自動執(zhí)行以及測試結(jié)果的報表輸出。用python語言實現(xiàn)測試用例是一種已經(jīng)運用在實際測試中的方法。針對測試用例“正常選出進(jìn)路”編寫的python偽代碼。

        圖4 列車進(jìn)路選出的測試流程圖

        輸入始終端按鈕:

        檢查敵對信號是否開放:

        檢查超限區(qū)段是否空閑:

        檢查道岔是否與進(jìn)路選出要求的位置一致:

        當(dāng)檢查的聯(lián)鎖條件與進(jìn)路要求一致時,變量x=1,否則x=0。并將x做and運算。由and運算的規(guī)則可知,只有當(dāng)聯(lián)鎖條件判斷后x都等于1時,最終被x賦值的end才為1,即輸出“進(jìn)路選出”。否則,若聯(lián)鎖條件判斷后有至少一項使得x=0,最終被x賦值的end則為0,即輸出“操作失敗”。

        4 結(jié)束語

        (1)聯(lián)鎖軟件代替了繼電聯(lián)鎖中繼電器的動作,避免了硬件損傷帶來的錯誤,使得聯(lián)鎖邏輯功能具有更高的可靠性、安全性和可用性,并使得設(shè)計、施工及其維護(hù)變得簡便易操作。

        (2)聯(lián)鎖軟件在測試平臺下的黑盒測試過程,并根據(jù)聯(lián)鎖軟件黑盒測試[5]的測試用例覆蓋率重點分析了不同等級測試用例的編寫方法。本文選取了“列車進(jìn)路選出”這一聯(lián)鎖邏輯功能作為舉例,從測試環(huán)境、測試用例的編寫和測試流程說明3個方面進(jìn)行了分析,重點在對該功能測試的測試用例的編寫過程介紹。

        (3)等價類劃分法只做了簡單的測試說明,采用故障樹分析法編寫了4級測試用例。而且論文只是用python偽代碼實現(xiàn)了一個測試用例。

        選用某一種程序設(shè)計語言來編寫代碼,用代碼來模擬人工的輸入和檢查,實現(xiàn)自動測試。這種方式不但提高了效率,也在很大程度上提高了測試的準(zhǔn)確度,因而能更好地保障聯(lián)鎖軟件的安全。

        [1]張海藩. 軟件工程導(dǎo)論[M]. 北京:清華大學(xué)出版社,2011:150.

        [2]石艷敏. 一種高效的計算機(jī)聯(lián)鎖軟件測試方法[J]. 鐵路計算機(jī)應(yīng)用,2013,22(12):50-54..

        [3]中華人民共和國鐵道部.計算機(jī)聯(lián)鎖技術(shù)條件:TB/T03027-2002[S].北京:中國鐵道出版社,2002.

        [4]王 東. 軌道交通信號系統(tǒng)仿真測試與驗證技術(shù)研究與應(yīng)用[D]. 杭州:浙江大學(xué),2014.

        [5]張 偉,高 凡. 黑盒測試技術(shù)在城市軌道交通信號系統(tǒng)監(jiān)理驗收中的研究與應(yīng)用[J]. 鐵路計算機(jī)應(yīng)用,2012,21(12):56-59.

        [6]劉小旭, 岳東河. 基于Python的計算機(jī)聯(lián)鎖系統(tǒng)自動測試平臺[J]. 價值工程,2010(27):171.

        猜你喜歡
        黑盒測試軟件測試用例
        一種基于局部平均有限差分的黑盒對抗攻擊方法
        基于SmartUnit的安全通信系統(tǒng)單元測試用例自動生成
        網(wǎng)絡(luò)自適應(yīng)測試軟件運行方法設(shè)計
        基于混合遺傳算法的回歸測試用例集最小化研究
        自動化檢測EPU10A板卡系統(tǒng)設(shè)計與實現(xiàn)
        基于依賴結(jié)構(gòu)的測試用例優(yōu)先級技術(shù)
        遠(yuǎn)程開放教育學(xué)生自主學(xué)習(xí)能力評價的研究
        一款重型包裝抗壓系統(tǒng)控制軟件的設(shè)計與開發(fā)
        軟件工程(2014年7期)2014-09-24 20:03:26
        軟件回歸測試用例選取方法研究
        国产又湿又爽又猛的视频| 国产一区二区在线视频| 被群cao的合不拢腿h纯肉视频| 国产精品高潮无码毛片| 亚洲av一区二区国产精品| 女同在线视频一区二区| 91精品国产综合久久熟女| 色偷偷亚洲第一成人综合网址| 免费a级毛片出奶水| 亚洲天天综合色制服丝袜在线| 亚洲av精品一区二区| 午夜大片在线播放观看 | 97se狠狠狠狠狼鲁亚洲综合色| 暖暖视频在线观看免费| 国产成+人+综合+亚洲专| 91麻豆精品一区二区三区| 亚洲免费一区二区三区四区| 人人妻人人澡人人爽国产一区| 午夜精品久久久久久| 国产va精品免费观看| 免费高清日本一区二区| 青青草国产手机观看视频| 亚洲精品久久久久成人2007| 国产一区二区三区在线观看完整版| 国产乱子轮xxx农村| 日韩电影一区二区三区| 精品欧洲AV无码一区二区免费| 天堂av无码大芭蕉伊人av孕妇黑人| 久久青青草原一区网站| 一区二区三区四区国产99| 国产乱国产乱老熟300部视频| 欧美丰满大爆乳波霸奶水多| 中日韩欧美成人免费播放| 美国又粗又长久久性黄大片| 在线日本看片免费人成视久网| 国产精品久久777777| 真人无码作爱免费视频禁hnn| 精品综合久久久久久8888| 日本一道高清在线一区二区 | 久久无码潮喷a片无码高潮 | 国产爆乳美女娇喘呻吟久久|