鐵路信號(hào)軟件測(cè)試的方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開(kāi)了一種鐵路信號(hào)軟件測(cè)試的方法及系統(tǒng),包括:測(cè)試處理器獲取預(yù)設(shè)測(cè)試序列,并依據(jù)解析所述預(yù)設(shè)測(cè)試序列得到的解析結(jié)果構(gòu)建測(cè)試模型;狀態(tài)機(jī)在構(gòu)建的測(cè)試模型中啟動(dòng),所述測(cè)試處理器,狀態(tài)機(jī),主引擎,分引擎和測(cè)試機(jī)組依據(jù)所述狀態(tài)機(jī)的狀態(tài)執(zhí)行相應(yīng)操作;當(dāng)所述狀態(tài)機(jī)處于啟動(dòng)成功狀態(tài)時(shí),所述主引擎和所述分引擎按照預(yù)設(shè)執(zhí)行順序的測(cè)試腳本對(duì)鐵路信號(hào)軟件進(jìn)行測(cè)試;所述測(cè)試處理器通過(guò)所述測(cè)試機(jī)組監(jiān)控所述主引擎和所述分引擎的測(cè)試過(guò)程,直至所述預(yù)設(shè)測(cè)試序列完成后,統(tǒng)計(jì)所述測(cè)試腳本的測(cè)試結(jié)果,并生成相應(yīng)的測(cè)試報(bào)告,實(shí)現(xiàn)了對(duì)鐵路信號(hào)軟件進(jìn)行自動(dòng)化測(cè)試,降低了測(cè)試執(zhí)行人員的工作量和提高了鐵路信號(hào)軟件測(cè)試結(jié)果的穩(wěn)定性。
【專利說(shuō)明】鐵路信號(hào)軟件測(cè)試的方法及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及軟件測(cè)試【技術(shù)領(lǐng)域】,特別是涉及一種鐵路信號(hào)軟件測(cè)試的方法及系統(tǒng)。
【背景技術(shù)】
[0002]軟件開(kāi)發(fā)的關(guān)鍵過(guò)程通常包括需求、涉及、實(shí)現(xiàn)和測(cè)試四個(gè)階段。針對(duì)應(yīng)用于鐵路上的鐵路信號(hào)軟件與普通的應(yīng)用軟件則有所不同,其要求在復(fù)雜的條件下具備高安全性,所以其測(cè)試過(guò)程在軟件開(kāi)發(fā)過(guò)程中占據(jù)極其重要的位置。
[0003]在實(shí)際應(yīng)用中,雖然也有一些自動(dòng)測(cè)試的方法,但大多數(shù)只是具有基本的模式和測(cè)試功能,功能較為單一,在現(xiàn)有技術(shù)中多半還是采用傳統(tǒng)的依賴測(cè)試人員的手工測(cè)試方式進(jìn)行軟件測(cè)試。但是,鐵路信號(hào)軟件為了滿足高安全性,通常要求在鐵路信號(hào)軟件的測(cè)試中模擬大量而且復(fù)雜的場(chǎng)景、配置大量的工程數(shù)據(jù),當(dāng)利用傳統(tǒng)的手工測(cè)試方式對(duì)鐵路通信信號(hào)軟件進(jìn)行測(cè)試時(shí),測(cè)試執(zhí)行人員的工作量很大,耗費(fèi)的人力成本與時(shí)間成本都十分高。另一方面,由于傳統(tǒng)測(cè)試依賴于測(cè)試執(zhí)行人員的經(jīng)驗(yàn)與操作,導(dǎo)致測(cè)試工作不規(guī)范,在測(cè)試過(guò)程中會(huì)出現(xiàn)因?yàn)椴僮魇д`而重復(fù)測(cè)試的情況,進(jìn)而導(dǎo)致測(cè)試結(jié)果不穩(wěn)定。
[0004]由上述可知,采用現(xiàn)有的手工測(cè)試方法對(duì)鐵路軟件進(jìn)行測(cè)試,不僅工作量大,還容易出現(xiàn)操作失誤等致使測(cè)試結(jié)果不穩(wěn)定的問(wèn)題。
【發(fā)明內(nèi)容】
[0005]有鑒于此,本發(fā)明提供了一種鐵路信號(hào)軟件測(cè)試的方法及系統(tǒng),以達(dá)到降低測(cè)試執(zhí)行人員的工作量和提高測(cè)試結(jié)果穩(wěn)定性的目的。
[0006]為解決上述技術(shù)問(wèn)題,本發(fā)明提供一種鐵路信號(hào)軟件測(cè)試的方法,應(yīng)用于鐵路信號(hào)軟件測(cè)試的系統(tǒng),所述鐵路信號(hào)軟件測(cè)試的系統(tǒng)包括測(cè)試處理器,狀態(tài)機(jī),主引擎,分引擎和測(cè)試機(jī)組,該方法包括:
[0007]所述測(cè)試處理器獲取預(yù)設(shè)測(cè)試序列,并依據(jù)解析所述預(yù)設(shè)測(cè)試序列得到的解析結(jié)果構(gòu)建測(cè)試模型;其中,所述預(yù)設(shè)測(cè)試序列包括:預(yù)設(shè)執(zhí)行順序的測(cè)試腳本和測(cè)試部署模型圖;所述測(cè)試部署模型圖包括:所述分引擎的數(shù)目,各個(gè)所述分引擎的路徑、命令行參數(shù)、配置信息及啟動(dòng)的順序;
[0008]所述狀態(tài)機(jī)在構(gòu)建的所述測(cè)試模型中啟動(dòng),所述測(cè)試處理器,所述狀態(tài)機(jī),所述主引擎,所述分引擎和所述測(cè)試機(jī)組依據(jù)所述狀態(tài)機(jī)的狀態(tài)執(zhí)行相應(yīng)操作;其中,所述狀態(tài)機(jī)的狀態(tài)包括初始狀態(tài),主引擎啟動(dòng)狀態(tài)和啟動(dòng)成功狀態(tài);
[0009]當(dāng)所述狀態(tài)機(jī)處于啟動(dòng)成功狀態(tài)時(shí),所述主引擎和所述分引擎按照預(yù)設(shè)執(zhí)行順序的所述測(cè)試腳本對(duì)鐵路信號(hào)軟件進(jìn)行測(cè)試;
[0010]所述測(cè)試處理器通過(guò)所述測(cè)試機(jī)組監(jiān)控所述主引擎和所述分引擎的測(cè)試過(guò)程,直至所述預(yù)設(shè)測(cè)試序列完成后,統(tǒng)計(jì)所述測(cè)試腳本的測(cè)試結(jié)果,并生成相應(yīng)的測(cè)試報(bào)告。
[0011]優(yōu)選的,所述測(cè)試處理器獲取預(yù)設(shè)測(cè)試序列,并依據(jù)解析所述預(yù)設(shè)測(cè)試序列得到的解析結(jié)果構(gòu)建測(cè)試模型,包括:
[0012]獲取預(yù)設(shè)測(cè)試序列;
[0013]解析所述預(yù)設(shè)測(cè)試序列中的測(cè)試部署模型圖,獲得所述主引擎和所述分引擎所需的資源信息,其中,所述測(cè)試資源為所述測(cè)試機(jī)組上能夠參與測(cè)試的網(wǎng)絡(luò)通信端口和文件;
[0014]與所述測(cè)試機(jī)組中待分配的各個(gè)測(cè)試機(jī)進(jìn)行通信;
[0015]當(dāng)所述測(cè)試機(jī)組上所述主引擎和所有所述分引擎所需的資源信息未被占用時(shí),將所述主引擎或所述分引擎分配至對(duì)應(yīng)的所述測(cè)試機(jī);
[0016]確定所有所述主引擎和所述分引擎都分配至對(duì)應(yīng)的所述測(cè)試機(jī);
[0017]依據(jù)分配結(jié)果向同一臺(tái)所述測(cè)試機(jī)傳輸測(cè)試配置數(shù)據(jù),其中,所述測(cè)試配置數(shù)據(jù)包括:運(yùn)行所述測(cè)試序列需要的可執(zhí)行程序和數(shù)據(jù)配置文件;
[0018]接收各個(gè)所述測(cè)試機(jī)依據(jù)所述測(cè)試配置數(shù)據(jù)分配到相應(yīng)測(cè)試路徑的確認(rèn)信息,并依據(jù)各個(gè)所述確認(rèn)信息構(gòu)建測(cè)試模型。
[0019]優(yōu)選的,在存在大量預(yù)設(shè)測(cè)試序列待進(jìn)行測(cè)試的情況下,所述測(cè)試處理器獲取預(yù)設(shè)測(cè)試序列,并依據(jù)解析所述預(yù)設(shè)測(cè)試序列得到的解析結(jié)果構(gòu)建測(cè)試模型,包括:
[0020]根據(jù)所述預(yù)設(shè)測(cè)試序列的相關(guān)信息對(duì)所有的預(yù)設(shè)測(cè)試序列進(jìn)行排序,得到測(cè)試序列隊(duì)列,其中,所述相關(guān)信息包括:提交的時(shí)間和/或重要程度;
[0021 ] 按順序依據(jù)所述測(cè)試序列隊(duì)列中的預(yù)設(shè)測(cè)試序列執(zhí)行構(gòu)建測(cè)試模型步驟;
[0022]其中,所述構(gòu)建測(cè)試模型步驟包括:
[0023]按順序獲取預(yù)設(shè)測(cè)試序列;
[0024]解析所述預(yù)設(shè)測(cè)試序列中的測(cè)試部署模型圖,獲得所述主引擎和所述分引擎所需的資源信息;其中,所述測(cè)試資源為所述測(cè)試機(jī)組上能夠參與測(cè)試的網(wǎng)絡(luò)通信端口和文件;
[0025]與所述測(cè)試機(jī)組中待分配的各個(gè)測(cè)試機(jī)進(jìn)行通信;
[0026]當(dāng)所述測(cè)試機(jī)組上所述主引擎和所有所述分引擎所需的資源信息未被占用時(shí),將所述主引擎或分引擎分配至對(duì)應(yīng)的所述測(cè)試機(jī);
[0027]或,
[0028]當(dāng)所述測(cè)試機(jī)組上所述主引擎和/或所述分引擎所需的資源信息被占用時(shí),返回執(zhí)行測(cè)試序列隊(duì)列選擇下一個(gè)預(yù)設(shè)測(cè)試序列執(zhí)行所述構(gòu)建測(cè)試模型步驟,直至所有預(yù)設(shè)測(cè)試序列執(zhí)行完所述構(gòu)建測(cè)試模型步驟;
[0029]或,
[0030]當(dāng)所述測(cè)試機(jī)組上所述主引擎和/或所述分引擎所需的資源信息被占用時(shí),所述測(cè)試序列在所述測(cè)試序列隊(duì)列中排隊(duì)等待至所述測(cè)試資源改變,則將所述主引擎或分引擎分配至對(duì)應(yīng)的所述測(cè)試機(jī),或,為所述主引擎和所述分引擎分配其它測(cè)試機(jī)組,直至所有預(yù)設(shè)測(cè)試序列執(zhí)行完所述構(gòu)建測(cè)試模型步驟;
[0031]其中,所述測(cè)試資源改變,包括:所述分引擎運(yùn)行結(jié)束,所使用的端口和文件被釋放,或,新加入若干臺(tái)測(cè)試機(jī)。
[0032]優(yōu)選的,所述狀態(tài)機(jī)在構(gòu)建的所述測(cè)試模型中啟動(dòng),所述測(cè)試處理器,所述狀態(tài)機(jī),所述主引擎,所述分引擎和所述測(cè)試機(jī)組依據(jù)啟動(dòng)狀態(tài)執(zhí)行相應(yīng)操作,包括:
[0033]所述狀態(tài)機(jī)開(kāi)啟并進(jìn)入初始狀態(tài);
[0034]所述測(cè)試處理器發(fā)送主引擎啟動(dòng)命令至分配給所述主引擎的測(cè)試機(jī);
[0035]所述分配給所述主引擎的測(cè)試機(jī)接收所述主引擎啟動(dòng)命令并開(kāi)啟所述主引擎;
[0036]當(dāng)所述主引擎輸出啟動(dòng)完畢等待分引擎連接的消息時(shí),所述分配給所述主引擎的測(cè)試機(jī)向所述測(cè)試處理器發(fā)送主引擎啟動(dòng)成功消息;
[0037]所述測(cè)試處理器接收所述主引擎啟動(dòng)成功消息并向所述狀態(tài)機(jī)發(fā)送主引擎啟動(dòng)成功響應(yīng)信息;
[0038]所述狀態(tài)機(jī)進(jìn)入主引擎啟動(dòng)狀態(tài);
[0039]所述測(cè)試處理器根據(jù)所述測(cè)試部署模型圖中的啟動(dòng)順序發(fā)送分引擎啟動(dòng)命令至分配給分引擎的測(cè)試機(jī);
[0040]所述分配給分引擎的測(cè)試機(jī)接收所述分引擎啟動(dòng)命令并開(kāi)啟所述分引擎;
[0041]直至所有需要啟動(dòng)的分引擎都已開(kāi)啟,所述狀態(tài)機(jī)進(jìn)入啟動(dòng)成功狀態(tài)。
[0042]優(yōu)選的,所述狀態(tài)機(jī)在構(gòu)建的所述測(cè)試模型中啟動(dòng),所述測(cè)試處理器,所述狀態(tài)機(jī),所述主引擎,所述分引擎和所述測(cè)試機(jī)組依據(jù)啟動(dòng)狀態(tài)執(zhí)行相應(yīng)操作,包括:
[0043]所述測(cè)試機(jī)組和/或所述測(cè)試處理器獲取第一異常事件并向所述狀態(tài)機(jī)發(fā)送對(duì)應(yīng)于所述第一異常事件的異常事件信息;
[0044]其中,所示第一異常事件包括:所述鐵路信號(hào)軟件測(cè)試的系統(tǒng)的通信網(wǎng)絡(luò)出現(xiàn)故障和所述測(cè)試資源被占用;
[0045]所述狀態(tài)機(jī)接收所述異常事件信息,并生成啟動(dòng)中止指令和對(duì)應(yīng)于所述異常事件的異常事件提示指令;
[0046]所述狀態(tài)機(jī)啟動(dòng)過(guò)程中止,及,根據(jù)異常事件提示指令在所述狀態(tài)機(jī)界面顯示所述異常事件息。
[0047]優(yōu)選的,所述測(cè)試處理器通過(guò)所述測(cè)試機(jī)組監(jiān)控所述主引擎和所述分引擎的測(cè)試過(guò)程,包括:
[0048]所述測(cè)試處理器接收由所述分配給所述主引擎的測(cè)試機(jī)接收并轉(zhuǎn)發(fā)的當(dāng)所述主引擎解析和執(zhí)行所述測(cè)試腳本過(guò)程中檢測(cè)到當(dāng)前要執(zhí)行的是顯示命令語(yǔ)句時(shí)發(fā)送的顯示命令語(yǔ)句的行數(shù)和狀態(tài)信息,并依據(jù)所述顯示命令語(yǔ)句的行數(shù)和狀態(tài)信息在監(jiān)控界面顯示所述測(cè)試腳本執(zhí)行到的行數(shù);
[0049]所述測(cè)試處理器接收并顯示由所述分配給所述分引擎的測(cè)試機(jī)實(shí)時(shí)獲取并發(fā)送的所述分引擎的log信息;
[0050]和/ 或,
[0051]所述測(cè)試處理器接收由所述分配給所述主引擎的測(cè)試機(jī)接收并轉(zhuǎn)發(fā)的當(dāng)所述主引擎執(zhí)行所述測(cè)試腳本過(guò)程中檢測(cè)到第二異常事件時(shí)發(fā)送的所述第二異常事件發(fā)生時(shí)所述測(cè)試腳本執(zhí)行到的行數(shù)和狀態(tài)信息,并依據(jù)所述測(cè)試腳本執(zhí)行到的行數(shù)和狀態(tài)信息在監(jiān)控界面顯示所述測(cè)試腳本執(zhí)行到的行數(shù),并用不同的背景色區(qū)分所述第二異常事件中不同的異常,且一種背景色僅對(duì)應(yīng)一種異常;
[0052]其中,所述第二異常事件包括:匹配分引擎輸出異常、主引擎異常分引擎發(fā)生異?;驕y(cè)試環(huán)境發(fā)生異常。
[0053]優(yōu)選的,所述預(yù)設(shè)測(cè)試序列完成后,統(tǒng)計(jì)所述測(cè)試腳本的測(cè)試結(jié)果,并生成相應(yīng)的測(cè)試報(bào)告,包括:
[0054]統(tǒng)計(jì)所述測(cè)試腳本的測(cè)試結(jié)果;
[0055]依據(jù)所述測(cè)試結(jié)果判斷所述測(cè)試腳本是否通過(guò)測(cè)試,如果是,則標(biāo)記所述測(cè)試腳本通過(guò),得到判斷標(biāo)記結(jié)果,否則,則標(biāo)記所述測(cè)試腳本未通過(guò),并顯示出錯(cuò)的測(cè)試語(yǔ)句行數(shù)和未通過(guò)原因,得到判斷標(biāo)記結(jié)果;
[0056]依據(jù)所述測(cè)試腳本的測(cè)試結(jié)果和所述判斷標(biāo)記結(jié)果生成相應(yīng)的測(cè)試報(bào)告。
[0057]優(yōu)選的,在所述測(cè)試處理器通過(guò)所述測(cè)試機(jī)守護(hù)程序監(jiān)控測(cè)試過(guò)程,直至所述測(cè)試序列完成后,統(tǒng)計(jì)所述測(cè)試腳本的測(cè)試結(jié)果,并生成測(cè)試報(bào)告之后,還包括:
[0058]清除所述測(cè)試機(jī)組中本次測(cè)試所涉及的進(jìn)程和釋放本次測(cè)試所占用的資源。
[0059]優(yōu)選的,還包括,在所述測(cè)試序列執(zhí)行過(guò)程中,所述測(cè)試處理器收到異常消息后中止本次測(cè)試,并清除所述測(cè)試機(jī)組中本次測(cè)試所涉及的進(jìn)程和釋放本次測(cè)試所占用的資源。
[0060]一種鐵路信號(hào)軟件測(cè)試的系統(tǒng),包括:
[0061]測(cè)試處理器,用于獲取預(yù)設(shè)測(cè)試序列,解析所述預(yù)設(shè)測(cè)試序列得到的解析結(jié)果構(gòu)建測(cè)試模型;及,通過(guò)所述測(cè)試機(jī)組監(jiān)控所述主引擎和所述分引擎的測(cè)試過(guò)程,直至所述預(yù)設(shè)測(cè)試序列完成后,統(tǒng)計(jì)所述測(cè)試腳本的測(cè)試結(jié)果,并生成相應(yīng)的測(cè)試報(bào)告;其中,所述預(yù)設(shè)測(cè)試序列包括:預(yù)設(shè)執(zhí)行順序的測(cè)試腳本和測(cè)試部署模型圖;所述測(cè)試部署模型圖包括:所述分引擎的數(shù)目,各個(gè)所述分引擎的路徑、命令行參數(shù)、配置信息及啟動(dòng)的順序;
[0062]狀態(tài)機(jī),用于在構(gòu)建的所述測(cè)試模型中啟動(dòng),所述測(cè)試處理器,狀態(tài)機(jī),主引擎,分引擎依據(jù)所述狀態(tài)機(jī)的狀態(tài)執(zhí)行相應(yīng)操作;
[0063]主引擎和分引擎,用于當(dāng)所述狀態(tài)機(jī)處于啟動(dòng)成功狀態(tài)時(shí),按照預(yù)設(shè)執(zhí)行順序的所述測(cè)試腳本對(duì)鐵路信號(hào)軟件進(jìn)行測(cè)試;測(cè)試機(jī)組,用于提供測(cè)試環(huán)境,及,與所述測(cè)試處理器進(jìn)行通信并配合所述測(cè)試處理器完成測(cè)試。
[0064]相較現(xiàn)有技術(shù),本發(fā)明的有益效果為:
[0065]基于上述本發(fā)明提供的鐵路信號(hào)軟件測(cè)試的方法及系統(tǒng),該方法通過(guò)測(cè)試處理器獲取預(yù)設(shè)測(cè)試序列,并依據(jù)解析該預(yù)設(shè)測(cè)試序列得到的解析結(jié)果構(gòu)建測(cè)試模型;所述狀態(tài)機(jī)在構(gòu)建的所述測(cè)試模型中啟動(dòng),所述測(cè)試處理器,狀態(tài)機(jī),主引擎,分引擎和測(cè)試機(jī)組依據(jù)該狀態(tài)機(jī)的狀態(tài)執(zhí)行相應(yīng)操作;當(dāng)狀態(tài)機(jī)處于啟動(dòng)成功狀態(tài)時(shí),主引擎和分引擎按照預(yù)設(shè)執(zhí)行順序的所述測(cè)試腳本對(duì)鐵路信號(hào)軟件進(jìn)行測(cè)試;并且,所述測(cè)試處理器通過(guò)所述測(cè)試機(jī)組監(jiān)控所述主引擎和所述分引擎的測(cè)試過(guò)程,直至所述預(yù)設(shè)測(cè)試序列完成后,統(tǒng)計(jì)所述測(cè)試腳本的測(cè)試結(jié)果,并生成相應(yīng)的測(cè)試報(bào)告。本發(fā)明通過(guò)自動(dòng)構(gòu)建測(cè)試模型,自動(dòng)監(jiān)控測(cè)試過(guò)程及自動(dòng)生成相應(yīng)的測(cè)試報(bào)告,實(shí)現(xiàn)了對(duì)鐵路信號(hào)軟件進(jìn)行自動(dòng)化測(cè)試,降低測(cè)試執(zhí)行人員的工作量,提高測(cè)試工作的規(guī)范性,進(jìn)而提高了鐵路信號(hào)軟件測(cè)試結(jié)果的穩(wěn)定性。
【專利附圖】
【附圖說(shuō)明】
[0066]為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
[0067]圖1為本發(fā)明實(shí)施例一提供的鐵路信號(hào)軟件測(cè)試的方法流程圖;
[0068]圖2為本發(fā)明實(shí)施例二提供的步驟100具體過(guò)程的方法流程圖;
[0069]圖3為本發(fā)明實(shí)施例四提供的步驟101具體過(guò)程的方法流程圖;
[0070]圖4為本發(fā)明實(shí)施例六提供的方法流程圖;
[0071]圖5為本發(fā)明實(shí)施例八提供的鐵路軟件測(cè)試的系統(tǒng)的示例圖。
【具體實(shí)施方式】
[0072]為了引用和清楚起見(jiàn),下文中使用的技術(shù)名詞的說(shuō)明、簡(jiǎn)寫(xiě)或縮寫(xiě)總結(jié)如下:
[0073]SDP !Signalling Software Development Platform 信號(hào)系統(tǒng)設(shè)計(jì)開(kāi)發(fā)平臺(tái);
[0074]RPC:Remote Procedure Call Protocol遠(yuǎn)程過(guò)程調(diào)用協(xié)議,用于通過(guò)網(wǎng)絡(luò)向遠(yuǎn)程計(jì)算機(jī)請(qǐng)求服務(wù);
[0075]測(cè)試機(jī):通用計(jì)算機(jī)或者服務(wù)器,提供運(yùn)行測(cè)試分引擎的環(huán)境;
[0076]測(cè)試機(jī)組:用局域網(wǎng)連接起來(lái)的一組測(cè)試機(jī),具有統(tǒng)一的組名;
[0077]測(cè)試腳本:用腳本語(yǔ)言描述測(cè)試的邏輯,實(shí)現(xiàn)邏輯控制、發(fā)送消息、接收消息及相應(yīng)等等;
[0078]測(cè)試部署模型圖:表示測(cè)試運(yùn)行所需信息的UML模型圖,通過(guò)解析測(cè)試部署模型圖可以得到:可執(zhí)行程序的路徑、分引擎啟動(dòng)的順序、分引擎啟動(dòng)參數(shù)、配置文件、通信協(xié)議類型等;
[0079]測(cè)試序列:測(cè)試運(yùn)行的基本單元,包含若干需要順序執(zhí)行的測(cè)試腳本和測(cè)試部署模型圖;
[0080]主引擎:運(yùn)行測(cè)試序列中的內(nèi)容并控制整個(gè)測(cè)試的進(jìn)程,解析測(cè)試腳本中的語(yǔ)句驅(qū)動(dòng)分引擎完成測(cè)試任務(wù);
[0081]分引擎:對(duì)真實(shí)環(huán)境中相對(duì)獨(dú)立的功能單元進(jìn)行模擬的軟件模塊,可以模擬被測(cè)試的目標(biāo)系統(tǒng),也可以模擬其他與目標(biāo)系統(tǒng)有交互的功能單元;
[0082]測(cè)試處理器:解析測(cè)試序列中的測(cè)試部署模型圖,根據(jù)測(cè)試部署模型圖中的信息給測(cè)試序列分配測(cè)試機(jī)資源,將測(cè)試序列中需要的主引擎、分引擎部署到同一測(cè)試機(jī)組內(nèi)的測(cè)試機(jī)上。存在多個(gè)測(cè)試序列時(shí),測(cè)試管理器需要根據(jù)優(yōu)先級(jí)對(duì)測(cè)試序列的執(zhí)行順序進(jìn)行調(diào)度;
[0083]測(cè)試機(jī)守護(hù)程序:運(yùn)行在測(cè)試機(jī)上,負(fù)責(zé)與測(cè)試管理器進(jìn)行通信,接受部署、啟動(dòng)等命令。
[0084]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0085]本發(fā)明的核心是提供一種鐵路信號(hào)軟件測(cè)試的方法及系統(tǒng),以達(dá)到降低測(cè)試執(zhí)行人員的工作量和提高測(cè)試結(jié)果穩(wěn)定性的目的。
[0086]為了使本【技術(shù)領(lǐng)域】的人員更好地理解本發(fā)明方案,下面結(jié)合附圖和【具體實(shí)施方式】對(duì)本發(fā)明作進(jìn)一步的詳細(xì)說(shuō)明。
[0087]實(shí)施例一
[0088]請(qǐng)參考圖1,圖1為本發(fā)明實(shí)施例一提供的鐵路信號(hào)軟件測(cè)試的方法流程圖,該方法應(yīng)用于鐵路信號(hào)軟件測(cè)試的系統(tǒng),所述鐵路信號(hào)軟件測(cè)試的系統(tǒng)包括測(cè)試處理器,狀態(tài)機(jī),主引擎,分引擎和測(cè)試機(jī)組,該方法包括:
[0089]步驟100、所述測(cè)試處理器獲取預(yù)設(shè)測(cè)試序列,并依據(jù)解析所述預(yù)設(shè)測(cè)試序列得到的解析結(jié)果構(gòu)建測(cè)試模型;其中,所述預(yù)設(shè)測(cè)試序列包括:預(yù)設(shè)執(zhí)行順序的測(cè)試腳本和測(cè)試部署模型圖;所述測(cè)試部署模型圖包括:所述分引擎的數(shù)目,各個(gè)所述分引擎的路徑、命令行參數(shù)、配置信息及啟動(dòng)的順序;
[0090]其中,所述預(yù)設(shè)測(cè)試序列為測(cè)試運(yùn)行的基本單元;
[0091]其中,所述測(cè)試部署模型圖具體為表示測(cè)試運(yùn)行所需信息的UML模型圖,是測(cè)試管理器獲得測(cè)試環(huán)境信息的接口,在該測(cè)試部署模型圖定義了分引擎的數(shù)目,各個(gè)分引擎的路徑、命令行參數(shù)、配置信息及啟動(dòng)的順序。舉個(gè)例子,比如,每個(gè)分引擎在哪個(gè)測(cè)試機(jī)上,需要占用何種測(cè)試資源;在測(cè)試機(jī)上自動(dòng)啟動(dòng)分引擎時(shí),需要的命令行參數(shù)和配置文件的路徑。
[0092]這里需要說(shuō)的是,所述配置信息指的是除了分引擎的數(shù)目,各個(gè)分引擎的路徑、命令行參數(shù)及啟動(dòng)的順序以外的所有測(cè)試運(yùn)行所需的信息,比如,通信協(xié)議等等其他信息,只要該測(cè)試部署模型圖所提供的信息能保證測(cè)試的正常進(jìn)行,并不影響本發(fā)明技術(shù)方案的實(shí)現(xiàn)。并且,本發(fā)明實(shí)施例一提供的測(cè)試部署模型圖在通用UML模型基礎(chǔ)上添加了描述分引擎屬性的字段,以便更好地了解分引擎的狀態(tài)。
[0093]步驟101、所述狀態(tài)機(jī)在構(gòu)建的所述測(cè)試模型中啟動(dòng),所述測(cè)試處理器,所述狀態(tài)機(jī),所述主引擎,所述分引擎和所述測(cè)試機(jī)組依據(jù)所述狀態(tài)機(jī)的狀態(tài)執(zhí)行相應(yīng)操作;其中,所述狀態(tài)機(jī)的狀態(tài)包括初始狀態(tài),主引擎啟動(dòng)狀態(tài)和啟動(dòng)成功狀態(tài);
[0094]其中,所述分引擎為對(duì)真實(shí)環(huán)境中相對(duì)獨(dú)立的功能單元進(jìn)行模擬的軟件模塊(可以理解為是可執(zhí)行的exe程序),可以模擬被測(cè)試的目標(biāo)系統(tǒng),也可以模擬其他與目標(biāo)系統(tǒng)有交互的功能單元,也就是說(shuō),分引擎為鐵路信號(hào)軟件測(cè)試提供了與真實(shí)環(huán)境中可能會(huì)遇到的場(chǎng)景的模擬環(huán)境,以便能更好地測(cè)試出該鐵路信號(hào)軟件在實(shí)際應(yīng)用中的真實(shí)性能品質(zhì)。當(dāng)然,當(dāng)模擬所述真實(shí)環(huán)境中可能會(huì)遇到的場(chǎng)景涉及到配置大量的復(fù)雜的工程數(shù)據(jù)時(shí),本發(fā)明實(shí)施例一提供的方法是利用所述分引擎來(lái)完成的,避免了現(xiàn)有技術(shù)中由手工測(cè)試方式帶來(lái)的工作量大,時(shí)間成本高的問(wèn)題;
[0095]所述測(cè)試機(jī)組,是由若干測(cè)試機(jī)通過(guò)局域網(wǎng)連接在一起形成的,這些測(cè)試機(jī)連接形成的測(cè)試機(jī)組具有統(tǒng)一的組名,其中,測(cè)試機(jī)通常為通用計(jì)算機(jī)或者服務(wù)器,當(dāng)然,并不局限于哪一種,只要能實(shí)現(xiàn)為運(yùn)行測(cè)試分引擎提供測(cè)試環(huán)境都可以采用。
[0096]步驟102、當(dāng)所述狀態(tài)機(jī)處于啟動(dòng)成功狀態(tài)時(shí),所述主引擎和所述分引擎按照預(yù)設(shè)執(zhí)行順序的所述測(cè)試腳本對(duì)鐵路信號(hào)軟件進(jìn)行測(cè)試;
[0097]步驟103、所述測(cè)試處理器通過(guò)所述測(cè)試機(jī)組監(jiān)控所述主引擎和所述分引擎的測(cè)試過(guò)程,直至所述預(yù)設(shè)測(cè)試序列完成后,統(tǒng)計(jì)所述測(cè)試腳本的測(cè)試結(jié)果,并生成相應(yīng)的測(cè)試?艮告。
[0098]其中,所述測(cè)試報(bào)告支持文本格式和IRM Rat1nal DOORS格式,如果測(cè)試報(bào)告是寫(xiě)入DOORS服務(wù)器的,還可以通過(guò)與測(cè)試案例的關(guān)聯(lián)分析測(cè)試測(cè)試序列對(duì)測(cè)試案例的覆蓋情況。
[0099]基于上述本發(fā)明實(shí)施例一所公開(kāi)的方法,該方法通過(guò)測(cè)試處理器自動(dòng)構(gòu)建測(cè)試模型,自動(dòng)監(jiān)控鐵路軟件測(cè)試過(guò)程及自動(dòng)生成相應(yīng)的測(cè)試報(bào)告,實(shí)現(xiàn)了對(duì)鐵路信號(hào)軟件進(jìn)行自動(dòng)化測(cè)試,與傳統(tǒng)測(cè)試依賴于測(cè)試執(zhí)行人員的經(jīng)驗(yàn)與操作相比,降低測(cè)試執(zhí)行人員的工作量,提高測(cè)試工作的規(guī)范性,進(jìn)而提高了鐵路信號(hào)軟件測(cè)試結(jié)果的穩(wěn)定性。
[0100]實(shí)施例二
[0101]基于上述實(shí)施例一所公開(kāi)的方法,其執(zhí)行步驟100、所述測(cè)試處理器獲取預(yù)設(shè)測(cè)試序列,并依據(jù)解析所述預(yù)設(shè)測(cè)試序列得到的解析結(jié)果構(gòu)建測(cè)試模型的具體過(guò)程如圖2所示,具體包括如下步驟:
[0102]步驟200、獲取預(yù)設(shè)測(cè)試序列;
[0103]步驟201、解析所述預(yù)設(shè)測(cè)試序列中的測(cè)試部署模型圖,獲得所述主引擎和所述分引擎所需的資源信息,其中,所述測(cè)試資源為所述測(cè)試機(jī)組上能夠參與測(cè)試的網(wǎng)絡(luò)通信端口和文件;
[0104]其中,所述測(cè)試資源除了包括上述提及的網(wǎng)絡(luò)通信端口和文件,也可以包括所述測(cè)試機(jī)組中能夠參與測(cè)試的測(cè)試機(jī)的IP,當(dāng)然,也不局限于這幾種,只要能實(shí)現(xiàn)本實(shí)施例所要求的功能,其它資源也可算入其中,并不影響本發(fā)明的實(shí)現(xiàn)。
[0105]步驟202、與所述測(cè)試機(jī)組中待分配的各個(gè)測(cè)試機(jī)進(jìn)行通信;
[0106]其中,優(yōu)選的,測(cè)試處理器與測(cè)試機(jī)之間通過(guò)使用RPC協(xié)議(遠(yuǎn)程過(guò)程調(diào)用協(xié)議)進(jìn)行通信,具體地,測(cè)試處理器是與運(yùn)行在測(cè)試機(jī)上的測(cè)試機(jī)守護(hù)程序進(jìn)行通信,也就是說(shuō),除非有特別說(shuō)明,只要測(cè)試處理器與測(cè)試機(jī)進(jìn)行收發(fā)數(shù)據(jù)的通信,都是與運(yùn)行在該測(cè)試機(jī)上的測(cè)試機(jī)守護(hù)程序進(jìn)行交互通信;
[0107]步驟203、當(dāng)所述測(cè)試機(jī)組上所述主引擎和所有所述分引擎所需的資源信息未被占用時(shí),將所述主引擎或所述分引擎分配至對(duì)應(yīng)的所述測(cè)試機(jī);
[0108]步驟204、確定所有所述主引擎和所述分引擎都分配至對(duì)應(yīng)的所述測(cè)試機(jī);
[0109]其中,只有主引擎和所有的分引擎都被成功分配至對(duì)應(yīng)的測(cè)試機(jī),才表明該預(yù)設(shè)測(cè)試序列可以在該測(cè)試機(jī)上執(zhí)行,進(jìn)而執(zhí)行步驟205 ;
[0110]步驟205、依據(jù)分配結(jié)果向同一臺(tái)所述測(cè)試機(jī)傳輸測(cè)試配置數(shù)據(jù),其中,所述測(cè)試配置數(shù)據(jù)包括:運(yùn)行所述測(cè)試序列需要的可執(zhí)行程序和數(shù)據(jù)配置文件;
[0111]步驟206、接收各個(gè)所述測(cè)試機(jī)依據(jù)所述測(cè)試配置數(shù)據(jù)分配到相應(yīng)測(cè)試路徑的確認(rèn)信息,并依據(jù)各個(gè)所述確認(rèn)信息構(gòu)建測(cè)試模型。
[0112]在步驟205中,優(yōu)選的,測(cè)試管理器將所述測(cè)試配置數(shù)據(jù)壓縮之后再發(fā)送,特別是當(dāng)所述測(cè)試配置數(shù)據(jù)的數(shù)據(jù)量比較大的時(shí)候,有利于縮短傳輸所述測(cè)試配置數(shù)據(jù)所消耗的時(shí)間,進(jìn)而縮短完成軟件測(cè)試的時(shí)間;當(dāng)然,在步驟206中,存在相應(yīng)的對(duì)接收到的數(shù)據(jù)得解壓縮步驟。本發(fā)明實(shí)施例二所提供的方法,執(zhí)行步驟200至執(zhí)行步驟204實(shí)現(xiàn)了對(duì)完成測(cè)試所需的測(cè)試資源的分配并得到分配結(jié)果,后續(xù)執(zhí)行步驟依據(jù)所述分配結(jié)果完成對(duì)測(cè)試模型的構(gòu)建,顯然,整個(gè)過(guò)程都是自動(dòng)化實(shí)現(xiàn)的,降低測(cè)試執(zhí)行人員的工作量,提高測(cè)試工作的規(guī)范性。
[0113]實(shí)施例三
[0114]基于上述實(shí)施例一與實(shí)施例二所公開(kāi)的方法,在存在大量預(yù)設(shè)測(cè)試序列待進(jìn)行測(cè)試的情況下,其執(zhí)行步驟100、所述測(cè)試處理器獲取預(yù)設(shè)測(cè)試序列,并依據(jù)解析所述預(yù)設(shè)測(cè)試序列得到的解析結(jié)果構(gòu)建測(cè)試模型的具體過(guò)程包括:
[0115]步驟300、根據(jù)所述預(yù)設(shè)測(cè)試序列的相關(guān)信息對(duì)所有的預(yù)設(shè)測(cè)試序列進(jìn)行排序,得至酬試序列隊(duì)列,其中,所述相關(guān)信息包括:提交的時(shí)間和/或重要程度;
[0116]步驟301、按順序依據(jù)所述測(cè)試序列隊(duì)列中的預(yù)設(shè)測(cè)試序列執(zhí)行構(gòu)建測(cè)試模型步驟;
[0117]其中,所述構(gòu)建測(cè)試模型步驟,具體包括如下步驟:
[0118]步驟302、按順序獲取預(yù)設(shè)測(cè)試序列;
[0119]步驟303、解析所述預(yù)設(shè)測(cè)試序列中的測(cè)試部署模型圖,獲得所述主引擎和所述分引擎所需的資源信息;其中,所述測(cè)試資源為所述測(cè)試機(jī)組上能夠參與測(cè)試的網(wǎng)絡(luò)通信端口和文件;
[0120]步驟304、與所述測(cè)試機(jī)組中待分配的各個(gè)測(cè)試機(jī)進(jìn)行通信;
[0121]其中,所述測(cè)試處理器依據(jù)與所述測(cè)試機(jī)組中待分配的各個(gè)測(cè)試機(jī)進(jìn)行通信的過(guò)程中獲取到的各個(gè)測(cè)試機(jī)上資源信息被占用的情況,判斷各個(gè)測(cè)試機(jī)上主引擎和所有分引擎所需的資源信息被占用的情況,如果所述測(cè)試機(jī)組上所述主引擎和所有所述分引擎所需的資源信息未被占用,則執(zhí)行步驟305的內(nèi)容,否則,執(zhí)行步驟306或者步驟307 ;其中,對(duì)于執(zhí)行步驟306還是步驟307,則可由本領(lǐng)域技術(shù)人員根據(jù)具體情況自行設(shè)定;
[0122]步驟305、當(dāng)所述測(cè)試機(jī)組上所述主引擎和所有所述分引擎所需的資源信息未被占用時(shí),將所述主引擎或分引擎分配至對(duì)應(yīng)的所述測(cè)試機(jī);
[0123]步驟306、當(dāng)所述測(cè)試機(jī)組上所述主引擎和/或所述分引擎所需的資源信息被占用時(shí),返回執(zhí)行測(cè)試序列隊(duì)列選擇下一個(gè)預(yù)設(shè)測(cè)試序列執(zhí)行所述構(gòu)建測(cè)試模型步驟,直至所有預(yù)設(shè)測(cè)試序列執(zhí)行完所述構(gòu)建測(cè)試模型步驟;
[0124]步驟307、當(dāng)所述測(cè)試機(jī)組上所述主引擎和/或所述分引擎所需的資源信息被占用時(shí),所述測(cè)試序列在所述測(cè)試序列隊(duì)列中排隊(duì)等待至所述測(cè)試資源改變,則將所述主引擎或分引擎分配至對(duì)應(yīng)的所述測(cè)試機(jī),或,為所述主引擎和所述分引擎分配其它測(cè)試機(jī)組,直至所有預(yù)設(shè)測(cè)試序列執(zhí)行完所述構(gòu)建測(cè)試模型步驟;
[0125]具體地,為所述測(cè)試序列在所述測(cè)試序列隊(duì)列中排隊(duì)等待所述測(cè)試資源改變的時(shí)間預(yù)設(shè)值一個(gè)時(shí)間閾值,當(dāng)所述測(cè)試序列在所述測(cè)試序列隊(duì)列中排隊(duì)等待的時(shí)間超過(guò)這個(gè)時(shí)間閾值時(shí),執(zhí)行為所述主引擎和所述分引擎分配其它測(cè)試機(jī)組,直至所有預(yù)設(shè)測(cè)試序列執(zhí)行完所述構(gòu)建測(cè)試模型步驟;
[0126]其中,所述測(cè)試資源改變,包括:所述分引擎運(yùn)行結(jié)束,所使用的端口和文件被釋放,或,新加入若干臺(tái)測(cè)試機(jī)。
[0127]其中,所述分引擎運(yùn)行結(jié)束,所使用的端口和文件被釋放,即前一次被占用的測(cè)試資源處于空閑狀態(tài),具備可以分配給主引擎或分引擎的條件;新加入若干臺(tái)測(cè)試機(jī),即添加了未被使用的測(cè)試資源,同上,該測(cè)試資源處于空閑狀態(tài),具備可以分配給主引擎或分引擎的條件;
[0128]這里需要特別說(shuō)明的是,步驟305、步驟306和步驟307在實(shí)際的軟件測(cè)試過(guò)程中,根據(jù)當(dāng)時(shí)測(cè)試機(jī)組上主引擎和所有分引擎所需的資源信息被占用的情況對(duì)應(yīng)選擇其中一個(gè)步驟執(zhí)行,直至所有預(yù)設(shè)測(cè)試序列執(zhí)行完構(gòu)建測(cè)試模型步驟為止;也就是說(shuō),本實(shí)施例針對(duì)實(shí)際的軟件測(cè)試過(guò)程中可能會(huì)遇到的不同種測(cè)試機(jī)組上主引擎和所有分引擎所需的資源信息被占用的情況提供了相應(yīng)的應(yīng)對(duì)措施,有利于本發(fā)明實(shí)施例所提供的方法在實(shí)際應(yīng)用中有效利用測(cè)試資源,增強(qiáng)了該方法的實(shí)用性,提高了測(cè)試效率。
[0129]本實(shí)施例三與實(shí)施例二的不同之處在于在步驟300至步驟301中存在對(duì)預(yù)設(shè)測(cè)試序列進(jìn)行調(diào)度的執(zhí)行過(guò)程,即依據(jù)待測(cè)試的預(yù)設(shè)測(cè)試序列的提交時(shí)間和/重要程度等相關(guān)信息對(duì)這些預(yù)設(shè)測(cè)試序列進(jìn)行排序,這也是本實(shí)施例的重點(diǎn)所在,相應(yīng)地,依據(jù)經(jīng)過(guò)排序得到的順序進(jìn)行后續(xù)的執(zhí)行步驟。顯然,通過(guò)以上合理的調(diào)度保證了先提交和優(yōu)先級(jí)高的預(yù)設(shè)測(cè)試序列先執(zhí)行,進(jìn)而提高測(cè)試的效率。
[0130]實(shí)施例四
[0131]基于上述各實(shí)施例所公開(kāi)的方法,其執(zhí)行步驟101、所述狀態(tài)機(jī)在構(gòu)建的所述測(cè)試模型中啟動(dòng),所述測(cè)試處理器,狀態(tài)機(jī),主引擎,分引擎和測(cè)試機(jī)組依據(jù)啟動(dòng)狀態(tài)執(zhí)行相應(yīng)操作的具體過(guò)程如圖3所示,具體包括如下步驟:
[0132]步驟400、所述狀態(tài)機(jī)開(kāi)啟并進(jìn)入初始狀態(tài);
[0133]步驟401、所述測(cè)試處理器發(fā)送主引擎啟動(dòng)命令至分配給所述主引擎的測(cè)試機(jī);
[0134]步驟402、所述分配給所述主引擎的測(cè)試機(jī)接收所述主引擎啟動(dòng)命令并開(kāi)啟所述主引擎;
[0135]步驟403、當(dāng)所述主引擎輸出啟動(dòng)完畢等待分引擎連接的消息時(shí),所述分配給所述主引擎的測(cè)試機(jī)向所述測(cè)試處理器發(fā)送主引擎啟動(dòng)成功消息;
[0136]步驟404、所述測(cè)試處理器接收所述主引擎啟動(dòng)成功消息并向所述狀態(tài)機(jī)發(fā)送主引擎啟動(dòng)成功響應(yīng)信息;
[0137]步驟405、所述狀態(tài)機(jī)進(jìn)入主引擎啟動(dòng)狀態(tài);
[0138]步驟406、所述測(cè)試處理器根據(jù)所述測(cè)試部署模型圖中的啟動(dòng)順序發(fā)送分引擎啟動(dòng)命令至分配給分引擎的測(cè)試機(jī);
[0139]其中,只有在狀態(tài)機(jī)進(jìn)入主引擎啟動(dòng)狀態(tài),即意味著確定主引擎已經(jīng)啟動(dòng),才會(huì)執(zhí)行步驟406的內(nèi)容;
[0140]步驟407、所述分配給分引擎的測(cè)試機(jī)接收所述分引擎啟動(dòng)命令并開(kāi)啟所述分引擎,直至所有需要啟動(dòng)的分引擎都已開(kāi)啟,所述狀態(tài)機(jī)進(jìn)入啟動(dòng)成功狀態(tài)。
[0141]優(yōu)選的,步驟101、所述狀態(tài)機(jī)在構(gòu)建的所述測(cè)試模型中啟動(dòng),所述測(cè)試處理器,狀態(tài)機(jī),主引擎,分引擎和測(cè)試機(jī)組依據(jù)啟動(dòng)狀態(tài)執(zhí)行相應(yīng)操作,包括:
[0142]步驟500、所述測(cè)試機(jī)組和/或所述測(cè)試處理器獲取第一異常事件并向所述狀態(tài)機(jī)發(fā)送對(duì)應(yīng)于所述第一異常事件的異常事件信息;
[0143]其中,所示第一異常事件包括:所述鐵路信號(hào)軟件測(cè)試的系統(tǒng)的通信網(wǎng)絡(luò)出現(xiàn)故障和所述測(cè)試資源被占用;
[0144]當(dāng)然,所述第一異常事件包括上述兩種異常情況,僅僅只是針對(duì)實(shí)際的啟動(dòng)過(guò)程中經(jīng)常出現(xiàn)的異常進(jìn)行了舉例,并不局限于哪一種,只要是測(cè)試過(guò)程中有可能會(huì)涉及到的異常都包括于所述第一異常事件中;
[0145]步驟501、所述狀態(tài)機(jī)接收所述異常事件信息,并生成啟動(dòng)中止指令和對(duì)應(yīng)于所述異常事件的異常事件提示指令;
[0146]步驟502、所述狀態(tài)機(jī)啟動(dòng)過(guò)程中止,及,根據(jù)異常事件提示指令在所述狀態(tài)機(jī)界面顯示所述異常事件信息。
[0147]其中,當(dāng)狀態(tài)機(jī)接收異常事件信息時(shí),不論此時(shí)狀態(tài)機(jī)處于何種狀態(tài),都會(huì)立刻中止啟動(dòng)過(guò)程,并在界面提示異常信息,便于測(cè)試執(zhí)行人員修正。
[0148]其中,優(yōu)選的,可以在狀態(tài)機(jī)界面顯示異常事件信息的同時(shí),發(fā)出異常提示音,對(duì)測(cè)試人員的聽(tīng)覺(jué)系統(tǒng)進(jìn)行刺激以示提醒,相較只在界面上顯示信息,提示音更有利于讓測(cè)試人員發(fā)現(xiàn)測(cè)試過(guò)程中出現(xiàn)異常并采取應(yīng)對(duì)措施。在實(shí)際應(yīng)用中,可以采用蜂鳴器來(lái)發(fā)出異常提示音,當(dāng)然該蜂鳴器肯定是與測(cè)試過(guò)程中異常事件相關(guān)聯(lián)的,當(dāng)然,也可以采用其它的提示器,這并不影響本發(fā)明的實(shí)現(xiàn)。這里需要說(shuō)明的是,本發(fā)明其它實(shí)施例中,若涉及到在界面顯示異常情況的操作,同樣可以采用上述方法對(duì)該異常進(jìn)行提示。
[0149]本實(shí)施例四所提供的方法,為了確保在主引擎啟動(dòng)成功之后啟動(dòng)各個(gè)分引擎,該方法采用狀態(tài)機(jī)來(lái)描述主引擎和分引擎的啟動(dòng)狀態(tài),使復(fù)雜的啟動(dòng)過(guò)程更加清晰可控,在發(fā)生異常的情況下能及時(shí)停止測(cè)試并提示測(cè)試執(zhí)行人員,保證了整個(gè)啟動(dòng)過(guò)程的有效性與實(shí)用性。
[0150]實(shí)施例五
[0151]基于上述各實(shí)施例所公開(kāi)的方法,其步驟103中、所述測(cè)試處理器通過(guò)所述測(cè)試機(jī)組監(jiān)控所述主引擎和所述分引擎的測(cè)試過(guò)程的具體過(guò)程,包括:
[0152]步驟600、所述測(cè)試處理器接收由所述分配給所述主引擎的測(cè)試機(jī)接收并轉(zhuǎn)發(fā)的當(dāng)所述主引擎解析和執(zhí)行所述測(cè)試腳本過(guò)程中檢測(cè)到當(dāng)前要執(zhí)行的是顯示命令語(yǔ)句時(shí)發(fā)送的顯示命令語(yǔ)句的行數(shù)和狀態(tài)信息,并依據(jù)所述顯示命令語(yǔ)句的行數(shù)和狀態(tài)信息在監(jiān)控界面顯示所述測(cè)試腳本執(zhí)行到的行數(shù);
[0153]其中,所述測(cè)試腳本中添加了特殊的顯示命令,當(dāng)所述主引擎解析和執(zhí)行所述測(cè)試腳本時(shí)檢測(cè)到當(dāng)前要執(zhí)行的是該特殊的顯示命令語(yǔ)句時(shí)發(fā)送這個(gè)特殊的顯示命令語(yǔ)句的行數(shù)和狀態(tài)信息;也可以理解為,當(dāng)對(duì)這個(gè)特殊的顯示命令語(yǔ)句的行數(shù)和狀態(tài)信息進(jìn)行顯示時(shí),也就意味著對(duì)測(cè)試腳本的執(zhí)行直至上述特殊的顯示命令語(yǔ)句都是正常通過(guò)的;
[0154]步驟601、所述測(cè)試處理器接收并顯示由所述分配給所述分引擎的測(cè)試機(jī)實(shí)時(shí)獲取并發(fā)送的所述分引擎的log信息。
[0155]其中,上文有提及到分引擎可理解為是可執(zhí)行的exe程序,通常,在程序運(yùn)行的過(guò)程中都會(huì)把一些重要信息記錄到一個(gè)*.log文件里,這里的log是日志的意思,從這個(gè)log文件中可以獲取許多關(guān)于該程序的重要信息,基于以上分析,所述分引擎的log信息即為該分引擎,也就是相應(yīng)的可執(zhí)行的exe程序在運(yùn)行過(guò)程中記錄的運(yùn)行日志信息,有便于測(cè)試人員對(duì)分引擎的運(yùn)行狀況進(jìn)行實(shí)時(shí)監(jiān)測(cè);
[0156]需要說(shuō)明的是,所述分引擎的log信息的輸出主要是通過(guò)運(yùn)行在分配給該分引擎的測(cè)試機(jī)上的測(cè)試機(jī)守護(hù)程序?qū)崿F(xiàn)的,測(cè)試機(jī)守護(hù)程序在啟動(dòng)分引擎時(shí)會(huì)重定向分引擎的標(biāo)準(zhǔn)輸出并進(jìn)行監(jiān)控,一旦分引擎進(jìn)行輸出,該測(cè)試機(jī)守護(hù)程序就將輸出的內(nèi)容發(fā)送給測(cè)試管理器進(jìn)行顯示。
[0157]以上實(shí)施例五針對(duì)主引擎和分引擎,分別提供了一種監(jiān)控測(cè)試進(jìn)展情況的方式,包括在測(cè)試處理器上對(duì)應(yīng)于測(cè)試腳本的監(jiān)控界面顯示腳本執(zhí)行的情況和實(shí)時(shí)輸出分引擎的log信息,特別是針對(duì)測(cè)試腳本運(yùn)行的監(jiān)控方式,可以直觀動(dòng)態(tài)顯示測(cè)試腳本的執(zhí)行狀態(tài),有便于測(cè)試人員對(duì)分引擎的運(yùn)行狀況進(jìn)行實(shí)時(shí)監(jiān)測(cè)。還需要說(shuō)明的是,實(shí)際測(cè)試過(guò)程中,測(cè)試腳本是由主引擎執(zhí)行的,所以對(duì)測(cè)試腳本的監(jiān)控也就實(shí)現(xiàn)了對(duì)執(zhí)行該測(cè)試腳本的主引擎進(jìn)行了監(jiān)控。
[0158]優(yōu)選的,步驟103中、所述測(cè)試處理器通過(guò)所述測(cè)試機(jī)組監(jiān)控所述主引擎和所述分引擎的測(cè)試過(guò)程,還包括:
[0159]所述測(cè)試處理器接收由所述分配給所述主引擎的測(cè)試機(jī)接收并轉(zhuǎn)發(fā)的當(dāng)所述主引擎執(zhí)行所述測(cè)試腳本過(guò)程中檢測(cè)到第二異常事件時(shí)發(fā)送的所述第二異常事件發(fā)生時(shí)所述測(cè)試腳本執(zhí)行到的行數(shù)和狀態(tài)信息,并依據(jù)所述測(cè)試腳本執(zhí)行到的行數(shù)和狀態(tài)信息在監(jiān)控界面顯示所述測(cè)試腳本執(zhí)行到的行數(shù),并用不同的背景色區(qū)分所述第二異常事件中不同的異常,且一種背景色僅對(duì)應(yīng)一種異常;
[0160]其中,所述第二異常事件包括:匹配分引擎輸出異常、主引擎異常分引擎發(fā)生異?;驕y(cè)試環(huán)境發(fā)生異常。
[0161]其中,所述第二異常事件包括上述四種異常,僅僅只是針對(duì)實(shí)際測(cè)試過(guò)程中經(jīng)常出現(xiàn)的異常進(jìn)行了舉例,并不局限于這幾種,只要是測(cè)試過(guò)程中有可能會(huì)涉及到的異常都包括于所述第二異常事件中;同樣的,所述主引擎執(zhí)行所述測(cè)試腳本過(guò)程中檢測(cè)到第二異常事件,可以是檢測(cè)到一種異常,也可以是多種,只要對(duì)這一種或多種的異常用不同的背景色以示區(qū)分即可;
[0162]以上實(shí)施例五所提供的方法,在對(duì)主引擎和分引擎運(yùn)行情況進(jìn)行監(jiān)控的同時(shí)也針對(duì)測(cè)試過(guò)程中可能出現(xiàn)的異常進(jìn)行監(jiān)控,對(duì)正常通過(guò)和異常錯(cuò)誤的測(cè)試語(yǔ)句進(jìn)行了區(qū)分,使得測(cè)試執(zhí)行人員盡早發(fā)現(xiàn)腳本中的錯(cuò)誤,進(jìn)而提高了鐵路信號(hào)軟件測(cè)試結(jié)果的穩(wěn)定性。
[0163]實(shí)施例六
[0164]基于上述本發(fā)明提供的各實(shí)施例所公開(kāi)的方法,步驟103中、所述預(yù)設(shè)測(cè)試序列完成后,統(tǒng)計(jì)所述測(cè)試腳本的測(cè)試結(jié)果,并生成相應(yīng)的測(cè)試報(bào)告的具體過(guò)程如圖4所示,具體包括如下步驟:
[0165]步驟700、統(tǒng)計(jì)所述測(cè)試腳本的測(cè)試結(jié)果;
[0166]步驟701、依據(jù)所述測(cè)試結(jié)果判斷所述測(cè)試腳本是否通過(guò)測(cè)試,如果是,則進(jìn)入步驟702,否則,則進(jìn)入步驟703 ;
[0167]步驟702、標(biāo)記所述測(cè)試腳本通過(guò),得到判斷標(biāo)記結(jié)果,進(jìn)入步驟704 ;
[0168]步驟703、標(biāo)記所述測(cè)試腳本未通過(guò),并顯示出錯(cuò)的測(cè)試語(yǔ)句行數(shù)和未通過(guò)原因,得到判斷標(biāo)記結(jié)果,進(jìn)入步驟704 ;
[0169]步驟704、依據(jù)所述測(cè)試腳本的測(cè)試結(jié)果和所述判斷標(biāo)記結(jié)果生成相應(yīng)的測(cè)試報(bào)生口 ο
[0170]本實(shí)施例六所公開(kāi)的方法,在一個(gè)預(yù)設(shè)測(cè)試序列完成后,所述測(cè)試處理器會(huì)子自動(dòng)統(tǒng)計(jì)該預(yù)設(shè)測(cè)試序列中包含的測(cè)試腳本的運(yùn)行結(jié)果,然后自動(dòng)生成相應(yīng)的測(cè)試報(bào)告,顯然,整個(gè)過(guò)程都是自動(dòng)化進(jìn)行的,與傳統(tǒng)測(cè)試依賴于測(cè)試執(zhí)行人員的經(jīng)驗(yàn)與操作相比,顯著降低測(cè)試執(zhí)行人員的工作量和提高測(cè)試結(jié)果穩(wěn)定性。
[0171]實(shí)施例七
[0172]基于上述各實(shí)施例所公開(kāi)的方法,其步驟103、在所述測(cè)試處理器通過(guò)所述測(cè)試機(jī)守護(hù)程序監(jiān)控測(cè)試過(guò)程,直至所述測(cè)試序列完成后,統(tǒng)計(jì)所述測(cè)試腳本的測(cè)試結(jié)果,并生成測(cè)試報(bào)告之后,還包括:
[0173]清除所述測(cè)試機(jī)組中本次測(cè)試所涉及的進(jìn)程和釋放本次測(cè)試所占用的資源。
[0174]針對(duì)以上內(nèi)容舉個(gè)例子,即殺死主引擎和分引擎進(jìn)程、釋放測(cè)試過(guò)程中所占用的資源等等,相應(yīng)的具體實(shí)現(xiàn)過(guò)程如下:
[0175]測(cè)試管理器使用RPC協(xié)議向測(cè)試機(jī)發(fā)送殺死主引擎和分引擎的命令,測(cè)試機(jī)守護(hù)程序收到之后,立即開(kāi)始?xì)⑺老嚓P(guān)進(jìn)程并且釋放占用的資源,清理完成后向測(cè)試管理器報(bào)告清理完畢。測(cè)試結(jié)束之后的清理工作非常重要,進(jìn)程被殺死、占用資源完全釋放后,測(cè)試過(guò)程才真正結(jié)束,被占用的測(cè)試機(jī)才可以分配給下一個(gè)等待執(zhí)行的測(cè)試序列。
[0176]同樣,優(yōu)選的,本發(fā)明上述各實(shí)施例所公開(kāi)的方法中,還包括,在所述測(cè)試序列執(zhí)行過(guò)程中,所述測(cè)試處理器收到異常消息后中止本次測(cè)試,并清除所述測(cè)試機(jī)組中本次測(cè)試所涉及的進(jìn)程和釋放本次測(cè)試所占用的資源。
[0177]其中,所述測(cè)試處理器收到的異常消息,通常是當(dāng)網(wǎng)絡(luò)連接出錯(cuò)、主引擎或分引擎異常、測(cè)試機(jī)操作系統(tǒng)崩潰等情況,測(cè)試管理器會(huì)接收到相應(yīng)的異常消息并立刻中止測(cè)試,殺死相應(yīng)的進(jìn)程并清理被占用的資源。
[0178]需要說(shuō)明的是,當(dāng)測(cè)試人員主動(dòng)中止測(cè)試序列時(shí),也會(huì)進(jìn)行同樣的中止和清理工作。
[0179]實(shí)施例八
[0180]基于上述實(shí)施例一至實(shí)施例七所公開(kāi)的鐵路軟件測(cè)試的方法,本發(fā)明實(shí)施例八對(duì)應(yīng)該方法還提供了一種鐵路信號(hào)軟件測(cè)試的系統(tǒng),該系統(tǒng)包括:
[0181]測(cè)試處理器,用于獲取預(yù)設(shè)測(cè)試序列,解析所述預(yù)設(shè)測(cè)試序列得到的解析結(jié)果構(gòu)建測(cè)試模型;及,通過(guò)所述測(cè)試機(jī)組監(jiān)控所述主引擎和所述分引擎的測(cè)試過(guò)程,直至所述預(yù)設(shè)測(cè)試序列完成后,統(tǒng)計(jì)所述測(cè)試腳本的測(cè)試結(jié)果,并生成相應(yīng)的測(cè)試報(bào)告;
[0182]其中,所述預(yù)設(shè)測(cè)試序列包括:預(yù)設(shè)執(zhí)行順序的測(cè)試腳本和測(cè)試部署模型圖;所述測(cè)試部署模型圖包括:所述分引擎的數(shù)目,各個(gè)所述分引擎的路徑、命令行參數(shù)、配置信息及啟動(dòng)的順序;
[0183]狀態(tài)機(jī),用于在構(gòu)建的所述測(cè)試模型中啟動(dòng),所述測(cè)試處理器,狀態(tài)機(jī),主引擎,分引擎依據(jù)所述狀態(tài)機(jī)的狀態(tài)執(zhí)行相應(yīng)操作;
[0184]主引擎和分引擎,用于當(dāng)所述狀態(tài)機(jī)處于啟動(dòng)成功狀態(tài)時(shí),按照預(yù)設(shè)執(zhí)行順序的所述測(cè)試腳本對(duì)鐵路信號(hào)軟件進(jìn)行測(cè)試;測(cè)試機(jī)組,用于提供測(cè)試環(huán)境,及,與所述測(cè)試處理器進(jìn)行通信并配合所述測(cè)試處理器完成測(cè)試。
[0185]為了方便本領(lǐng)域技術(shù)人員能更好地理解本發(fā)明實(shí)施例所所公開(kāi)的鐵路軟件測(cè)試的系統(tǒng),結(jié)合圖5就該鐵路軟件測(cè)試的系統(tǒng)的實(shí)際應(yīng)用舉個(gè)例子:
[0186]測(cè)試人員在客戶端SDP平臺(tái)A上完成進(jìn)行鐵路軟件測(cè)試的準(zhǔn)備工作:完成分引擎Dl和分引擎D2(統(tǒng)稱分引擎D)對(duì)目標(biāo)系統(tǒng)E的模擬,編輯預(yù)設(shè)測(cè)試序列(包括配置預(yù)設(shè)執(zhí)行順序的測(cè)試腳本和繪制測(cè)試部署模型圖);其中,客戶端SDP平臺(tái)A(信號(hào)系統(tǒng)設(shè)計(jì)開(kāi)發(fā)平臺(tái))提供了測(cè)試人員與本實(shí)施例所公開(kāi)的鐵路信號(hào)軟件測(cè)試的系統(tǒng)之間的人機(jī)交互的圖形化界面,便于測(cè)試人員監(jiān)控整個(gè)測(cè)試過(guò)程;
[0187]其中,配置預(yù)設(shè)執(zhí)行順序的測(cè)試腳本的過(guò)程中需要從測(cè)試管理器A中包含的分引擎庫(kù)和測(cè)試數(shù)據(jù)庫(kù)(統(tǒng)稱數(shù)據(jù)庫(kù))中獲取相應(yīng)的數(shù)據(jù)信息;
[0188]測(cè)試處理器A從客戶端SDP平臺(tái)A獲取所述預(yù)設(shè)測(cè)試序列,解析所述預(yù)設(shè)測(cè)試序列得到的解析結(jié)果構(gòu)建測(cè)試模型;
[0189]狀態(tài)機(jī)在構(gòu)建的所述測(cè)試模型中啟動(dòng),測(cè)試處理器A,所述狀態(tài)機(jī),主引擎C,分引擎D和測(cè)試機(jī)組依據(jù)所述狀態(tài)機(jī)的狀態(tài)執(zhí)行相應(yīng)操作;
[0190]當(dāng)所述狀態(tài)機(jī)處于啟動(dòng)成功狀態(tài)時(shí),主引擎C和分引擎D按照預(yù)設(shè)執(zhí)行順序的所述測(cè)試腳本對(duì)鐵路信號(hào)軟件進(jìn)行測(cè)試;
[0191]測(cè)試處理器A通過(guò)所述測(cè)試機(jī)組監(jiān)控主引擎C和分引擎D的測(cè)試過(guò)程,直至所述預(yù)設(shè)測(cè)試序列完成后,統(tǒng)計(jì)所述測(cè)試腳本的測(cè)試結(jié)果,并生成相應(yīng)的測(cè)試報(bào)告。
[0192]其中,在整個(gè)對(duì)鐵路信號(hào)軟件進(jìn)行測(cè)試的過(guò)程中,主引擎C、分引擎D與目標(biāo)系統(tǒng)E之間實(shí)時(shí)進(jìn)行相應(yīng)的命令反饋,同時(shí),主引擎D實(shí)時(shí)向測(cè)試處理器A反饋測(cè)試狀態(tài),該測(cè)試處理器又將所述測(cè)試狀態(tài)及相應(yīng)結(jié)果反饋至客戶端SDP平臺(tái),由此實(shí)現(xiàn)對(duì)測(cè)試過(guò)程的監(jiān)控;
[0193]其中,當(dāng)所述預(yù)設(shè)測(cè)試序列完成后,統(tǒng)計(jì)所述測(cè)試腳本的測(cè)試結(jié)果,并生成相應(yīng)的測(cè)試報(bào)告。
[0194]優(yōu)選的,該鐵路軟件測(cè)試的系統(tǒng)包括測(cè)試序列編輯器,用于編輯所述預(yù)設(shè)測(cè)試序列。
[0195]優(yōu)選的,所述測(cè)試處理器包括具有繪制測(cè)試部署模型圖的輔助工具,用于圖形化繪制所述預(yù)設(shè)測(cè)試序列中的測(cè)試部署模型圖。
[0196]這里需要說(shuō)明的是,上述各實(shí)施例提供的方法都能適用于該系統(tǒng)。
[0197]以上對(duì)本發(fā)明所提供的鐵路軟件測(cè)試的方法及系統(tǒng)進(jìn)行了詳細(xì)介紹。本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說(shuō)明只是用于幫助理解本發(fā)明的方法及其核心思想。應(yīng)當(dāng)指出,對(duì)于本【技術(shù)領(lǐng)域】的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以對(duì)本發(fā)明進(jìn)行若干改進(jìn)和修飾,這些改進(jìn)和修飾也落入本發(fā)明權(quán)利要求的保護(hù)范圍內(nèi)。
【權(quán)利要求】
1.一種鐵路信號(hào)軟件測(cè)試的方法,其特征在于,應(yīng)用于鐵路信號(hào)軟件測(cè)試的系統(tǒng),所述鐵路信號(hào)軟件測(cè)試的系統(tǒng)包括測(cè)試處理器,狀態(tài)機(jī),主引擎,分引擎和測(cè)試機(jī)組,該方法包括: 所述測(cè)試處理器獲取預(yù)設(shè)測(cè)試序列,并依據(jù)解析所述預(yù)設(shè)測(cè)試序列得到的解析結(jié)果構(gòu)建測(cè)試模型;其中,所述預(yù)設(shè)測(cè)試序列包括:預(yù)設(shè)執(zhí)行順序的測(cè)試腳本和測(cè)試部署模型圖;所述測(cè)試部署模型圖包括:所述分引擎的數(shù)目,各個(gè)所述分引擎的路徑、命令行參數(shù)、配置信息及啟動(dòng)的順序; 所述狀態(tài)機(jī)在構(gòu)建的所述測(cè)試模型中啟動(dòng),所述測(cè)試處理器,所述狀態(tài)機(jī),所述主引擎,所述分引擎和所述測(cè)試機(jī)組依據(jù)所述狀態(tài)機(jī)的狀態(tài)執(zhí)行相應(yīng)操作;其中,所述狀態(tài)機(jī)的狀態(tài)包括初始狀態(tài),主引擎啟動(dòng)狀態(tài)和啟動(dòng)成功狀態(tài); 當(dāng)所述狀態(tài)機(jī)處于啟動(dòng)成功狀態(tài)時(shí),所述主引擎和所述分引擎按照預(yù)設(shè)執(zhí)行順序的所述測(cè)試腳本對(duì)鐵路信號(hào)軟件進(jìn)行測(cè)試; 所述測(cè)試處理器通過(guò)所述測(cè)試機(jī)組監(jiān)控所述主引擎和所述分引擎的測(cè)試過(guò)程,直至所述預(yù)設(shè)測(cè)試序列完成后,統(tǒng)計(jì)所述測(cè)試腳本的測(cè)試結(jié)果,并生成相應(yīng)的測(cè)試報(bào)告。
2.如權(quán)利要求1所述的方法,其特征在于,所述測(cè)試處理器獲取預(yù)設(shè)測(cè)試序列,并依據(jù)解析所述預(yù)設(shè)測(cè)試序列得到的解析結(jié)果構(gòu)建測(cè)試模型,包括: 獲取預(yù)設(shè)測(cè)試序列; 解析所述預(yù)設(shè)測(cè)試序列中的測(cè)試部署模型圖,獲得所述主引擎和所述分引擎所需的資源信息,其中,所述測(cè)試資源為所述測(cè)試機(jī)組上能夠參與測(cè)試的網(wǎng)絡(luò)通信端口和文件;與所述測(cè)試機(jī)組中待分配的各個(gè)測(cè)試機(jī)進(jìn)行通信; 當(dāng)所述測(cè)試機(jī)組上所述主引擎和所有所述分引擎所需的資源信息未被占用時(shí),將所述主引擎或所述分引擎分配至對(duì)應(yīng)的所述測(cè)試機(jī); 確定所有所述主引擎和所述分引擎都分配至對(duì)應(yīng)的所述測(cè)試機(jī); 依據(jù)分配結(jié)果向同一臺(tái)所述測(cè)試機(jī)傳輸測(cè)試配置數(shù)據(jù),其中,所述測(cè)試配置數(shù)據(jù)包括:運(yùn)行所述測(cè)試序列需要的可執(zhí)行程序和數(shù)據(jù)配置文件; 接收各個(gè)所述測(cè)試機(jī)依據(jù)所述測(cè)試配置數(shù)據(jù)分配到相應(yīng)測(cè)試路徑的確認(rèn)信息,并依據(jù)各個(gè)所述確認(rèn)信息構(gòu)建測(cè)試模型。
3.如權(quán)利要求2所述的方法,其特征在于,在存在大量預(yù)設(shè)測(cè)試序列待進(jìn)行測(cè)試的情況下,所述測(cè)試處理器獲取預(yù)設(shè)測(cè)試序列,并依據(jù)解析所述預(yù)設(shè)測(cè)試序列得到的解析結(jié)果構(gòu)建測(cè)試模型,包括: 根據(jù)所述預(yù)設(shè)測(cè)試序列的相關(guān)信息對(duì)所有的預(yù)設(shè)測(cè)試序列進(jìn)行排序,得到測(cè)試序列隊(duì)列,其中,所述相關(guān)信息包括:提交的時(shí)間和/或重要程度; 按順序依據(jù)所述測(cè)試序列隊(duì)列中的預(yù)設(shè)測(cè)試序列執(zhí)行構(gòu)建測(cè)試模型步驟; 其中,所述構(gòu)建測(cè)試模型步驟包括: 按順序獲取預(yù)設(shè)測(cè)試序列; 解析所述預(yù)設(shè)測(cè)試序列中的測(cè)試部署模型圖,獲得所述主引擎和所述分引擎所需的資源信息;其中,所述測(cè)試資源為所述測(cè)試機(jī)組上能夠參與測(cè)試的網(wǎng)絡(luò)通信端口和文件;與所述測(cè)試機(jī)組中待分配的各個(gè)測(cè)試機(jī)進(jìn)行通信; 當(dāng)所述測(cè)試機(jī)組上所述主引擎和所有所述分引擎所需的資源信息未被占用時(shí),將所述主引擎或分引擎分配至對(duì)應(yīng)的所述測(cè)試機(jī); 或, 當(dāng)所述測(cè)試機(jī)組上所述主引擎和/或所述分引擎所需的資源信息被占用時(shí),返回執(zhí)行測(cè)試序列隊(duì)列選擇下一個(gè)預(yù)設(shè)測(cè)試序列執(zhí)行所述構(gòu)建測(cè)試模型步驟,直至所有預(yù)設(shè)測(cè)試序列執(zhí)行完所述構(gòu)建測(cè)試模型步驟; 或, 當(dāng)所述測(cè)試機(jī)組上所述主引擎和/或所述分引擎所需的資源信息被占用時(shí),所述測(cè)試序列在所述測(cè)試序列隊(duì)列中排隊(duì)等待至所述測(cè)試資源改變,則將所述主引擎或分引擎分配至對(duì)應(yīng)的所述測(cè)試機(jī),或,為所述主引擎和所述分引擎分配其它測(cè)試機(jī)組,直至所有預(yù)設(shè)測(cè)試序列執(zhí)行完所述構(gòu)建測(cè)試模型步驟; 其中,所述測(cè)試資源改變,包括:所述分引擎運(yùn)行結(jié)束,所使用的端口和文件被釋放,或,新加入若干臺(tái)測(cè)試機(jī)。
4.如權(quán)利要求1所述的方法,其特征在于,所述狀態(tài)機(jī)在構(gòu)建的所述測(cè)試模型中啟動(dòng),所述測(cè)試處理器,所述狀態(tài)機(jī),所述主引擎,所述分引擎和所述測(cè)試機(jī)組依據(jù)啟動(dòng)狀態(tài)執(zhí)行相應(yīng)操作,包括: 所述狀態(tài)機(jī)開(kāi)啟并進(jìn)入初始狀態(tài); 所述測(cè)試處理器發(fā)送主引擎啟動(dòng)命令至分配給所述主引擎的測(cè)試機(jī); 所述分配給所述主引擎的測(cè)試機(jī)接收所述主引擎啟動(dòng)命令并開(kāi)啟所述主引擎; 當(dāng)所述主引擎輸出啟動(dòng)完畢等待分引擎連接的消息時(shí),所述分配給所述主引擎的測(cè)試機(jī)向所述測(cè)試處理器發(fā)送主引擎啟動(dòng)成功消息; 所述測(cè)試處理器接收所述主引擎啟動(dòng)成功消息并向所述狀態(tài)機(jī)發(fā)送主引擎啟動(dòng)成功響應(yīng)信息; 所述狀態(tài)機(jī)進(jìn)入主引擎啟動(dòng)狀態(tài); 所述測(cè)試處理器根據(jù)所述測(cè)試部署模型圖中的啟動(dòng)順序發(fā)送分引擎啟動(dòng)命令至分配給分引擎的測(cè)試機(jī); 所述分配給分引擎的測(cè)試機(jī)接收所述分引擎啟動(dòng)命令并開(kāi)啟所述分引擎; 直至所有需要啟動(dòng)的分引擎都已開(kāi)啟,所述狀態(tài)機(jī)進(jìn)入啟動(dòng)成功狀態(tài)。
5.如權(quán)利要求4所述的方法,其特征在于,所述狀態(tài)機(jī)在構(gòu)建的所述測(cè)試模型中啟動(dòng),所述測(cè)試處理器,所述狀態(tài)機(jī),所述主引擎,所述分引擎和所述測(cè)試機(jī)組依據(jù)啟動(dòng)狀態(tài)執(zhí)行相應(yīng)操作,包括: 所述測(cè)試機(jī)組和/或所述測(cè)試處理器獲取第一異常事件并向所述狀態(tài)機(jī)發(fā)送對(duì)應(yīng)于所述第一異常事件的異常事件信息; 其中,所示第一異常事件包括:所述鐵路信號(hào)軟件測(cè)試的系統(tǒng)的通信網(wǎng)絡(luò)出現(xiàn)故障和所述測(cè)試資源被占用; 所述狀態(tài)機(jī)接收所述異常事件信息,并生成啟動(dòng)中止指令和對(duì)應(yīng)于所述異常事件的異常事件提示指令; 所述狀態(tài)機(jī)啟動(dòng)過(guò)程中止,及,根據(jù)異常事件提示指令在所述狀態(tài)機(jī)界面顯示所述異常事件信息。
6.如權(quán)利要求1所述的方法,其特征在于,所述測(cè)試處理器通過(guò)所述測(cè)試機(jī)組監(jiān)控所述主引擎和所述分引擎的測(cè)試過(guò)程,包括: 所述測(cè)試處理器接收由所述分配給所述主引擎的測(cè)試機(jī)接收并轉(zhuǎn)發(fā)的當(dāng)所述主引擎解析和執(zhí)行所述測(cè)試腳本過(guò)程中檢測(cè)到當(dāng)前要執(zhí)行的是顯示命令語(yǔ)句時(shí)發(fā)送的顯示命令語(yǔ)句的行數(shù)和狀態(tài)信息,并依據(jù)所述顯示命令語(yǔ)句的行數(shù)和狀態(tài)信息在監(jiān)控界面顯示所述測(cè)試腳本執(zhí)行到的行數(shù); 所述測(cè)試處理器接收并顯示由所述分配給所述分引擎的測(cè)試機(jī)實(shí)時(shí)獲取并發(fā)送的所述分引擎的log信息; 和/或, 所述測(cè)試處理器接收由所述分配給所述主引擎的測(cè)試機(jī)接收并轉(zhuǎn)發(fā)的當(dāng)所述主引擎執(zhí)行所述測(cè)試腳本過(guò)程中檢測(cè)到第二異常事件時(shí)發(fā)送的所述第二異常事件發(fā)生時(shí)所述測(cè)試腳本執(zhí)行到的行數(shù)和狀態(tài)信息,并依據(jù)所述測(cè)試腳本執(zhí)行到的行數(shù)和狀態(tài)信息在監(jiān)控界面顯示所述測(cè)試腳本執(zhí)行到的行數(shù),并用不同的背景色區(qū)分所述第二異常事件中不同的異常,且一種背景色僅對(duì)應(yīng)一種異常; 其中,所述第二異常事件包括:匹配分引擎輸出異常、主引擎異常分引擎發(fā)生異?;驕y(cè)試環(huán)境發(fā)生異常。
7.如權(quán)利要求1所述的方法,其特征在于,所述預(yù)設(shè)測(cè)試序列完成后,統(tǒng)計(jì)所述測(cè)試腳本的測(cè)試結(jié)果,并生成相應(yīng)的測(cè)試報(bào)告,包括: 統(tǒng)計(jì)所述測(cè)試腳本的測(cè)試結(jié)果; 依據(jù)所述測(cè)試結(jié)果判斷所述測(cè)試腳本是否通過(guò)測(cè)試,如果是,則標(biāo)記所述測(cè)試腳本通過(guò),得到判斷標(biāo)記結(jié)果,否則,則標(biāo)記所述測(cè)試腳本未通過(guò),并顯示出錯(cuò)的測(cè)試語(yǔ)句行數(shù)和未通過(guò)原因,得到判斷標(biāo)記結(jié)果; 依據(jù)所述測(cè)試腳本的測(cè)試結(jié)果和所述判斷標(biāo)記結(jié)果生成相應(yīng)的測(cè)試報(bào)告。
8.如權(quán)利要求1所述的方法,其特征在于,在所述測(cè)試處理器通過(guò)所述測(cè)試機(jī)守護(hù)程序監(jiān)控測(cè)試過(guò)程,直至所述測(cè)試序列完成后,統(tǒng)計(jì)所述測(cè)試腳本的測(cè)試結(jié)果,并生成測(cè)試報(bào)告之后,還包括: 清除所述測(cè)試機(jī)組中本次測(cè)試所涉及的進(jìn)程和釋放本次測(cè)試所占用的資源。
9.如權(quán)利要求1?8任意一項(xiàng)所述的方法,其特征在于,還包括,在所述測(cè)試序列執(zhí)行過(guò)程中,所述測(cè)試處理器收到異常消息后中止本次測(cè)試,并清除所述測(cè)試機(jī)組中本次測(cè)試所涉及的進(jìn)程和釋放本次測(cè)試所占用的資源。
10.一種鐵路信號(hào)軟件測(cè)試的系統(tǒng),其特征在于,包括: 測(cè)試處理器,用于獲取預(yù)設(shè)測(cè)試序列,解析所述預(yù)設(shè)測(cè)試序列得到的解析結(jié)果構(gòu)建測(cè)試模型;及,通過(guò)所述測(cè)試機(jī)組監(jiān)控所述主引擎和所述分引擎的測(cè)試過(guò)程,直至所述預(yù)設(shè)測(cè)試序列完成后,統(tǒng)計(jì)所述測(cè)試腳本的測(cè)試結(jié)果,并生成相應(yīng)的測(cè)試報(bào)告;其中,所述預(yù)設(shè)測(cè)試序列包括:預(yù)設(shè)執(zhí)行順序的測(cè)試腳本和測(cè)試部署模型圖;所述測(cè)試部署模型圖包括:所述分引擎的數(shù)目,各個(gè)所述分引擎的路徑、命令行參數(shù)、配置信息及啟動(dòng)的順序; 狀態(tài)機(jī),用于在構(gòu)建的所述測(cè)試模型中啟動(dòng),所述測(cè)試處理器,狀態(tài)機(jī),主引擎,分引擎依據(jù)所述狀態(tài)機(jī)的狀態(tài)執(zhí)行相應(yīng)操作; 主引擎和分引擎,用于當(dāng)所述狀態(tài)機(jī)處于啟動(dòng)成功狀態(tài)時(shí),按照預(yù)設(shè)執(zhí)行順序的所述測(cè)試腳本對(duì)鐵路信號(hào)軟件進(jìn)行測(cè)試;測(cè)試機(jī)組,用于提供測(cè)試環(huán)境,及,與所述測(cè)試處理器 進(jìn)行通信并配合所述測(cè)試處理器完成測(cè)試。
【文檔編號(hào)】G06F11/36GK104239217SQ201410542389
【公開(kāi)日】2014年12月24日 申請(qǐng)日期:2014年10月14日 優(yōu)先權(quán)日:2014年10月14日
【發(fā)明者】高強(qiáng), 江明, 陳磊, 王曉懿, 馮晨, 宋惠, 陳勇, 孫愚 申請(qǐng)人:北京全路通信信號(hào)研究設(shè)計(jì)院有限公司