本發(fā)明涉及一種軟件測試領(lǐng)域,尤其涉及一種基于以太網(wǎng)的邏輯控制軟件測試系統(tǒng)及測試方法。
背景技術(shù):
邏輯控制軟件是機(jī)車控制的靈魂,機(jī)車的運(yùn)行和制動(dòng)都離不開邏輯控制軟件做出的指令,為了測試邏輯控制的正確性,在軟件設(shè)計(jì)過程中,對其需進(jìn)行大量的測試工作。同時(shí),測試工作也是保證軟件產(chǎn)品安全、實(shí)現(xiàn)邏輯控制軟件上車必須進(jìn)行的環(huán)節(jié)。在邏輯控制軟件的測試過程中,最為重要的是如何構(gòu)建邏輯控制軟件測試的測試環(huán)境,目前,邏輯控制軟件的測試環(huán)境主要有:實(shí)物測試、半實(shí)物測試、純軟件仿真測試。實(shí)物測試是在實(shí)際線路上才能進(jìn)行的測試手段,成本高,不易進(jìn)行缺陷軟件的測試;半實(shí)物測試是在實(shí)驗(yàn)室用測試設(shè)備等效替代被測品外圍部件而達(dá)到測試的方法,成本較高,構(gòu)建環(huán)境較為復(fù)雜;純軟件仿真測試是在PC機(jī)上的仿真測試,成本低,但需要專業(yè)的軟件測試工具,實(shí)時(shí)性不強(qiáng),邏輯邊界不易驗(yàn)證,而且純軟件仿真測試是一種軟件脫離被測硬件的測試,在不同的兩種載體上測試軟件,測試的效果不是很真實(shí)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明要解決的技術(shù)問題就在于:針對現(xiàn)有技術(shù)存在的技術(shù)問題,本發(fā)明提供一種介于實(shí)物測試與純軟件仿真測試之間的,可以實(shí)驗(yàn)室快速構(gòu)建,相比與實(shí)物測試與半實(shí)物測試成本大大降低,構(gòu)建簡單方便,實(shí)時(shí)性強(qiáng)的基于以太網(wǎng)的邏輯控制軟件測試系統(tǒng)及測試方法。
為解決上述技術(shù)問題,本發(fā)明提出的技術(shù)方案為:一種基于以太網(wǎng)的邏輯控制軟件測試系統(tǒng),包括第一測試計(jì)算機(jī)、第二測試計(jì)算機(jī)、第三測試計(jì)算機(jī)、網(wǎng)絡(luò)設(shè)備和控制插件;所述第二測試計(jì)算機(jī)和控制插件構(gòu)成測試執(zhí)行子系統(tǒng);
所述第一測試計(jì)算機(jī)、第二測試計(jì)算機(jī)、第三測試計(jì)算機(jī)和控制插件均與所述網(wǎng)絡(luò)設(shè)備網(wǎng)絡(luò)連接;
所述第一測試計(jì)算機(jī)用于加載被測邏輯控制軟件的外部設(shè)備仿真模型;
所述第二測試計(jì)算機(jī)用于加載被測邏輯控制軟件的虛擬操控臺(tái);
所述第三測試計(jì)算用于加載被測邏輯控制軟件的數(shù)據(jù)分析系統(tǒng);
所述控制插件用于加載被測邏輯控制軟件。
作為本發(fā)明的進(jìn)一步改進(jìn),還包括開關(guān)電源,所述開關(guān)電源分別與所述網(wǎng)絡(luò)設(shè)備和控制插件連接。
作為本發(fā)明的進(jìn)一步改進(jìn),所述網(wǎng)絡(luò)設(shè)備為以太網(wǎng)交換機(jī)或以太網(wǎng)路由器。
一種基于以太網(wǎng)的邏輯控制軟件測試方法,包括如下步驟:
S1. 第二測試計(jì)算機(jī)以測試數(shù)據(jù)包的形式向測試執(zhí)行子系統(tǒng)發(fā)送測試指令;
S2. 所述測試執(zhí)行子系統(tǒng)響應(yīng)所述測試數(shù)據(jù)包,并通過所述測試執(zhí)行子系統(tǒng)中第一測試計(jì)算機(jī)和控制插件之間的數(shù)據(jù)交互,完成所述測試指令,所述第一測試計(jì)算機(jī)和控制插件之間以測試數(shù)據(jù)包進(jìn)行數(shù)據(jù)交互;
S3. 所述第三測試計(jì)算機(jī)監(jiān)聽所述測試數(shù)據(jù)包,通過分析所述測試數(shù)據(jù)包中參數(shù)的邏輯時(shí)序,驗(yàn)證被測邏輯控制軟件的功能。
作為本發(fā)明的進(jìn)一步改進(jìn),所述步驟S1中,第二測試計(jì)算機(jī)通過對所述測試數(shù)據(jù)包中各參數(shù)值的設(shè)置實(shí)現(xiàn)測試指令及故障數(shù)據(jù)的注入。
作為本發(fā)明的進(jìn)一步改進(jìn),所述步驟S1的具體步驟包括:所述第二測試計(jì)算機(jī)以測試數(shù)據(jù)包的形式向所述測試執(zhí)行子系統(tǒng)中的所述控制插件或所述第一測試計(jì)算機(jī)發(fā)送測試指令。
作為本發(fā)明的進(jìn)一步改進(jìn),所述步驟S2的具體步驟包括:
所述控制插件接收所述測試數(shù)據(jù)包,由被測邏輯控制軟件進(jìn)行運(yùn)算處理,并將處理結(jié)果以測試數(shù)據(jù)包的形式發(fā)送至所述第一測試計(jì)算機(jī),第一測試計(jì)算機(jī)對所述測試數(shù)據(jù)包進(jìn)行仿真處理,將仿真結(jié)果以測試數(shù)據(jù)包的形式返回至控制插件,通過所述控制插件與所述第一測試計(jì)算機(jī)之間的數(shù)據(jù)交互,完成所述測試指令的測試;
或者:
所述第一測試計(jì)算機(jī)接收所述測試數(shù)據(jù)包,并對所述測試數(shù)據(jù)包進(jìn)行仿真處理,并將仿真結(jié)果以測試數(shù)據(jù)包的形式發(fā)送至所述控制插件,由所述控制插件中的被測邏輯控制軟件進(jìn)行運(yùn)算處理,并將處理結(jié)果以測試數(shù)據(jù)包的形式發(fā)送至所述第一測試計(jì)算機(jī),通過所述控制插件與所述第一測試計(jì)算機(jī)之間的數(shù)據(jù)交互,完成所述測試指令的測試。
作為本發(fā)明的進(jìn)一步改進(jìn),所述測試數(shù)據(jù)包為固定格式的數(shù)據(jù)包。
作為本發(fā)明的進(jìn)一步改進(jìn),所述步驟S2中第一測試計(jì)算機(jī)對測試數(shù)據(jù)包進(jìn)行仿真處理的具體步驟包括:
S2.1. 第一測試計(jì)算機(jī)接收所述測試數(shù)據(jù)包,根據(jù)預(yù)設(shè)的通信協(xié)議將所述測試數(shù)據(jù)包按數(shù)據(jù)類型進(jìn)行拆分,并分別存入對應(yīng)數(shù)據(jù)類型的數(shù)組中;
S2.2. 將不同數(shù)據(jù)類型的數(shù)組中的數(shù)據(jù)根據(jù)需要注入仿真模型,仿真模型輸出仿真結(jié)果;
S2.3. 將仿真結(jié)果按數(shù)據(jù)類型進(jìn)行分類,分別存入對應(yīng)數(shù)據(jù)類型的數(shù)組中,并根據(jù)預(yù)設(shè)的通信協(xié)議將不同數(shù)據(jù)類型的數(shù)組中的數(shù)據(jù)進(jìn)行合并打包生成測試數(shù)據(jù)包。
作為本發(fā)明的進(jìn)一步改進(jìn),所述測試數(shù)據(jù)包中的數(shù)據(jù)類型包括布爾型和值類型。
與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)在于:本發(fā)明介于實(shí)物測試與純軟件仿真測試之間,可以在實(shí)驗(yàn)室快速構(gòu)建整個(gè)測試環(huán)境,相比于實(shí)物測試與半實(shí)物測試具有成本大大降低,構(gòu)建簡單方便等優(yōu)點(diǎn),相比于純軟件仿真測試,具有實(shí)時(shí)性強(qiáng),邏輯邊界驗(yàn)證方便等優(yōu)點(diǎn)。
附圖說明
圖1為本發(fā)明具體實(shí)施例結(jié)構(gòu)示意圖。
圖2為本發(fā)明具體實(shí)施例流程示意圖。
圖3為本發(fā)明具體實(shí)施例第一測試計(jì)算機(jī)仿真處理流程示意圖。
圖4為本發(fā)明具體實(shí)施例第二測試計(jì)算機(jī)故障注入示意圖。
圖5為本發(fā)明具體實(shí)施例測試數(shù)據(jù)包結(jié)構(gòu)示意圖。
圖6為本發(fā)明具體實(shí)施例測試數(shù)據(jù)包數(shù)據(jù)類型拆分示意圖。
圖7為本發(fā)明具體實(shí)施例數(shù)組結(jié)構(gòu)示意圖。
圖8為本發(fā)明具體實(shí)施例數(shù)組結(jié)構(gòu)示意圖。
具體實(shí)施方式
以下結(jié)合說明書附圖和具體優(yōu)選的實(shí)施例對本發(fā)明作進(jìn)一步描述,但并不因此而限制本發(fā)明的保護(hù)范圍。
如圖1所示,本實(shí)施例基于以太網(wǎng)的邏輯控制軟件測試系統(tǒng),包括第一測試計(jì)算機(jī)、第二測試計(jì)算機(jī)、第三測試計(jì)算機(jī)、網(wǎng)絡(luò)設(shè)備和控制插件;第二測試計(jì)算機(jī)和控制插件構(gòu)成測試執(zhí)行子系統(tǒng);第一測試計(jì)算機(jī)、第二測試計(jì)算機(jī)、第三測試計(jì)算機(jī)和控制插件均與網(wǎng)絡(luò)設(shè)備網(wǎng)絡(luò)連接;第一測試計(jì)算機(jī)用于加載被測邏輯控制軟件的外部設(shè)備仿真模型;第二測試計(jì)算機(jī)用于加載被測邏輯控制軟件的虛擬操控臺(tái);第三測試計(jì)算用于加載被測邏輯控制軟件的數(shù)據(jù)分析系統(tǒng);控制插件用于加載被測邏輯控制軟件??刂撇寮楸粶y邏輯控制軟件的運(yùn)行平臺(tái)。第一測試計(jì)算機(jī)、第二測試計(jì)算機(jī)、第三測試計(jì)算機(jī)和控制插件均通過以太網(wǎng)與網(wǎng)絡(luò)設(shè)備連接,組成一個(gè)測試網(wǎng)絡(luò)環(huán)境。第一測試計(jì)算機(jī)加載外部設(shè)備仿真模型,用于模擬邏輯控制軟件測試所需的外部設(shè)備,模擬真實(shí)的外部設(shè)備對控制插件所發(fā)送的測試數(shù)據(jù)包進(jìn)行響應(yīng),并將響應(yīng)結(jié)果返回至控制插件,與控制插件一起構(gòu)成邏輯控制軟件測試的測試運(yùn)行環(huán)境。第二測試計(jì)算機(jī)加載被測邏輯控制軟件的虛擬操控臺(tái),是測試的人機(jī)交互入口,用于發(fā)出測試指令,啟動(dòng)被測邏輯控制軟件的測試進(jìn)程。第三測試計(jì)算機(jī)用于監(jiān)聽第二測試計(jì)算機(jī)所發(fā)出的測試指令,以及控制插件與第一測試計(jì)算機(jī)所發(fā)送和接收的測試數(shù)據(jù)包,并對測試數(shù)據(jù)包進(jìn)行分析,評判被測邏輯控制軟件是否正確。
在本實(shí)施例中,還包括開關(guān)電源,開關(guān)電源分別與網(wǎng)絡(luò)設(shè)備和控制插件連接。開關(guān)電源能夠提供多種型號的電源輸出,包括DC12V和DC5V兩種輸出,分別為網(wǎng)絡(luò)設(shè)備和控制插件提供電源。網(wǎng)絡(luò)設(shè)備為以太網(wǎng)交換機(jī)或以太網(wǎng)路由器。
如圖2所示,本實(shí)施例基于以太網(wǎng)的邏輯控制軟件測試方法,包括如下步驟:S1. 第二測試計(jì)算機(jī)以測試數(shù)據(jù)包的形式向測試執(zhí)行子系統(tǒng)發(fā)送測試指令;S2. 測試執(zhí)行子系統(tǒng)響應(yīng)測試數(shù)據(jù)包,并通過測試執(zhí)行子系統(tǒng)中第一測試計(jì)算機(jī)和控制插件之間的數(shù)據(jù)交互,完成測試指令,第一測試計(jì)算機(jī)和控制插件之間以測試數(shù)據(jù)包進(jìn)行數(shù)據(jù)交互;S3. 第三測試計(jì)算機(jī)監(jiān)聽測試數(shù)據(jù)包,通過分析測試數(shù)據(jù)包中參數(shù)的邏輯時(shí)序,驗(yàn)證被測邏輯控制軟件的功能。
如圖4所示,在本實(shí)施例步驟S1中,第二測試計(jì)算機(jī)通過對測試數(shù)據(jù)包中各參數(shù)值的設(shè)置實(shí)現(xiàn)測試指令及故障數(shù)據(jù)的注入。第二測試計(jì)算機(jī)根據(jù)需要進(jìn)行的測試功能,選擇需要注入的測試指令及故障數(shù)據(jù),生成測試數(shù)據(jù)包,并將該測試數(shù)據(jù)包發(fā)送至測試執(zhí)行子系統(tǒng),開始邏輯控制軟件的測試過程。
在本實(shí)施例步驟S1的具體步驟包括:第二測試計(jì)算機(jī)以測試數(shù)據(jù)包的形式向測試執(zhí)行子系統(tǒng)中的控制插件或第一測試計(jì)算機(jī)發(fā)送測試指令。步驟S2的具體步驟包括:控制插件接收測試數(shù)據(jù)包,由被測邏輯控制軟件進(jìn)行運(yùn)算處理,并將處理結(jié)果以測試數(shù)據(jù)包的形式發(fā)送至第一測試計(jì)算機(jī),第一測試計(jì)算機(jī)對測試數(shù)據(jù)包進(jìn)行仿真處理,將仿真結(jié)果以測試數(shù)據(jù)包的形式返回至控制插件,通過控制插件與第一測試計(jì)算機(jī)之間的數(shù)據(jù)交互,完成測試指令的測試;或者:第一測試計(jì)算機(jī)接收測試數(shù)據(jù)包,并對測試數(shù)據(jù)包進(jìn)行仿真處理,并將仿真結(jié)果以測試數(shù)據(jù)包的形式發(fā)送至控制插件,由控制插件中的被測邏輯控制軟件進(jìn)行運(yùn)算處理,并將處理結(jié)果以測試數(shù)據(jù)包的形式發(fā)送至第一測試計(jì)算機(jī),通過控制插件與第一測試計(jì)算機(jī)之間的數(shù)據(jù)交互,完成測試指令的測試。在本實(shí)施例中,第一測試計(jì)算機(jī)與控制插件一起構(gòu)成邏輯控制軟件測試的測試運(yùn)行環(huán)境,第二測試計(jì)算機(jī)可以將測試數(shù)據(jù)包直接發(fā)送至控制插件,啟動(dòng)邏輯控制軟件的測試,在需要模擬如測試指令延時(shí)等情況時(shí),第二測試計(jì)算機(jī)將測試數(shù)據(jù)包發(fā)送至第一測試計(jì)算機(jī),由第一測試計(jì)算機(jī)的仿真模型進(jìn)行仿真處理,由第一測試計(jì)算機(jī)將仿真處理后的測試數(shù)據(jù)包發(fā)送至控制插件,啟動(dòng)邏輯控制軟件的測試。
如圖5所示,在本實(shí)施例中,測試數(shù)據(jù)包為固定格式的數(shù)據(jù)包。測試數(shù)據(jù)包中的數(shù)據(jù)類型包括布爾型和值類型。在本實(shí)施例中,測試數(shù)據(jù)包包括8個(gè)字節(jié),第一個(gè)字節(jié)和第四個(gè)字節(jié)為布爾(bool)類型,每個(gè)布爾類型的字節(jié)包括16個(gè)布爾比特位,第一個(gè)字節(jié)包括A0至A15共16個(gè)布爾值,第四個(gè)字節(jié)包括B0至B15共16個(gè)布爾值,其它字節(jié)為字(word)類型。
如圖3所示,在本實(shí)施例中,步驟S2中第一測試計(jì)算機(jī)對測試數(shù)據(jù)包進(jìn)行仿真處理的具體步驟包括:S2.1. 第一測試計(jì)算機(jī)接收測試數(shù)據(jù)包,根據(jù)預(yù)設(shè)的通信協(xié)議將測試數(shù)據(jù)包按數(shù)據(jù)類型進(jìn)行拆分,并分別存入對應(yīng)數(shù)據(jù)類型的數(shù)組中;S2.2. 將不同數(shù)據(jù)類型的數(shù)組中的數(shù)據(jù)根據(jù)需要注入仿真模型,仿真模型輸出仿真結(jié)果;S2.3. 將仿真結(jié)果按數(shù)據(jù)類型進(jìn)行分類,分別存入對應(yīng)數(shù)據(jù)類型的數(shù)組中,并根據(jù)預(yù)設(shè)的通信協(xié)議將不同數(shù)據(jù)類型的數(shù)組中的數(shù)據(jù)進(jìn)行合并打包生成測試數(shù)據(jù)包。在本實(shí)施例步驟S2.1中,如圖6所示,第一測試計(jì)算機(jī)將所接收到的測試數(shù)據(jù)包進(jìn)行解析,拆分成布爾類型的數(shù)據(jù)塊和字類型數(shù)據(jù)塊,并將該布爾類型數(shù)據(jù)塊中的數(shù)據(jù)存入布爾類型的一維數(shù)組中,如圖7所示,將字類型數(shù)據(jù)塊中的數(shù)據(jù)存入字類型的一維數(shù)組中,如圖8所示。并為該兩個(gè)一維數(shù)組建立數(shù)據(jù)索引,根據(jù)仿真需求將數(shù)組中的數(shù)據(jù)注入仿真模型進(jìn)行模擬仿真,仿真模擬得到的仿真結(jié)果數(shù)據(jù)同樣按照布爾類型與字類型進(jìn)行分類,分別存入布爾類型的一維數(shù)組和字類型的一維數(shù)據(jù),根據(jù)通信協(xié)議,將該兩個(gè)一維數(shù)據(jù)中的數(shù)據(jù)讀出,合并打包成測試數(shù)據(jù)包。并將打包生成的測試數(shù)據(jù)包發(fā)送至控制插件,控制插件與第一測試計(jì)算機(jī)之間通過數(shù)據(jù)交互通信,完成整個(gè)測試過程。第三測試計(jì)算機(jī)通過監(jiān)測整個(gè)測試過程中所產(chǎn)生的測試數(shù)據(jù)包,并對測試數(shù)據(jù)包進(jìn)行解析,分析得到測試數(shù)據(jù)包中各參數(shù)的邏輯時(shí)序,并與預(yù)設(shè)的標(biāo)準(zhǔn)邏輯時(shí)序進(jìn)行比較,即可判斷被測邏輯控制軟件的功能是否符合設(shè)計(jì)需求。
上述只是本發(fā)明的較佳實(shí)施例,并非對本發(fā)明作任何形式上的限制。雖然本發(fā)明已以較佳實(shí)施例揭露如上,然而并非用以限定本發(fā)明。因此,凡是未脫離本發(fā)明技術(shù)方案的內(nèi)容,依據(jù)本發(fā)明技術(shù)實(shí)質(zhì)對以上實(shí)施例所做的任何簡單修改、等同變化及修飾,均應(yīng)落在本發(fā)明技術(shù)方案保護(hù)的范圍內(nèi)。