劉國靖 王靜 楊曉峰
【摘要】 ? ?本文首先針對RSSP-II安全通信協(xié)議與軟件自動測試的相關理論進行闡述,并在此基礎上,分析了RSSP-II安全通信協(xié)議軟件自動測試過程中對于結(jié)構(gòu)、腳本的設計方式以及測試執(zhí)行和回歸測試的具體方法,希望能夠給從事相關領域研究的人員,提供可靠的參考。
【關鍵詞】 ? ?RSSP-II安全通信協(xié)議 ? ?軟件自動測試 ? ?腳本設計 ? ?結(jié)構(gòu)設計
RSSP-II安全通信協(xié)議屬于鐵路工程通訊領域的一種重要安全產(chǎn)品,針對該軟件的功能測試一般使用SDP專業(yè)測試工具進行自動化測試,表現(xiàn)出了良好的測試效果和測試規(guī)范性。因此,針對RSSP-II安全通信協(xié)議提出科學的自動化測試框架,依托測試引擎與腳本的綜合設計來完成實際測試環(huán)節(jié)中的錯誤注入,將會對該軟件今后的正常使用產(chǎn)生深刻的影響。
一、RSSP-II安全通信協(xié)議與軟件自動測試的理論概述
1.1 RSSP-II安全通信協(xié)議
RSSP-II安全通信協(xié)議,是一種依托以太網(wǎng)通訊的,適合在封閉傳輸系統(tǒng)與開放傳輸系統(tǒng)中使用的安全通訊傳輸協(xié)議,能夠大范圍使用在我國的城際鐵路、高速鐵路、城市軌道等交通信號控制系統(tǒng)當中。從級別上來看,RSSP-II安全通信協(xié)議屬于SIL4級的安全軟件產(chǎn)品,針對其開展功能測試時判定軟件是否符合功能要求,具有足夠安全性的一種必要措施。
1.2軟件自動測試
當前我國的軟件自動測試具有工作效率高、可信度良好等優(yōu)勢,特別是依托于腳本的軟件自動測試更加高效靈活,為了增強測試效率、提升測試工作的規(guī)范化程度,RSSP-II安全通信協(xié)議的測試需要使用信號系統(tǒng)設計研發(fā)平臺—SDP的專業(yè)測試工具。
二、結(jié)構(gòu)設計方法
按照RSSP-II安全通信協(xié)議軟件功能測試要求,參考SDP測試系統(tǒng)結(jié)構(gòu),設計RSSP-II安全通信協(xié)議軟件自動化測試結(jié)構(gòu)。在開展測試的過程中,被測安全通信協(xié)議軟件依靠適配層對分引擎1與分引擎2進行外接,原語接口分引擎用于對被測安全通信協(xié)議軟件用戶應用層進行模擬。對等協(xié)議引擎用于進行被測安全通信協(xié)議軟件的實體模擬。是實際應用過程中,計劃在主引擎對腳本指令進行解析以后,將命令分別傳送到分引擎1與分引擎2當中,另外,兩個分引擎把被測安全通信協(xié)議軟件所給出的實際執(zhí)行結(jié)果進行匯總,并上報到主引擎。腳本基于測試案例開展設計,使用依托于TCL的Expect腳本語言。對等協(xié)議棧分引擎和主引擎之間采用protobuf模式的信息開展通訊,待測安全通訊協(xié)議棧則使用TCP與UDP格式的網(wǎng)絡數(shù)據(jù)開展通訊。
如圖1所示,分引擎2能夠接收到待測安全通訊協(xié)議軟件依靠互聯(lián)網(wǎng)所傳遞的各類信息,依靠對這些加密信息的逐步解包以及一些正常邏輯判斷后,將這些數(shù)據(jù)傳輸至主引擎當中,主引擎依靠與腳本的評估結(jié)果進行對比,由此來進行判定。
分引擎2還能夠在主引擎當中進行正常邏輯指令的接收,同時和待測安全通訊協(xié)議軟件進行通訊交互。更為關鍵的是,主引擎能夠依靠分引擎2對真實協(xié)議棧開展測試,并將錯誤進行注入,安全通信協(xié)議棧針對其中的錯誤信息會進行反饋,并依靠分引擎1與分引擎2傳送到主引擎當中。
綜上,針對對等協(xié)議棧分引擎的設計,是對該軟件進行自動化測試的重點,只需要構(gòu)建對等協(xié)議棧分引擎的基本框架與通訊流程,便能夠依靠腳本控制傳送不同類型命令或信息來完成各類錯誤注入。
三、腳本設計方法
結(jié)合上文所論述的測試結(jié)構(gòu),RSSP-II安全通信協(xié)議的自動測試前期準備工作整合在測試分引擎1、分引擎2的設計完成和腳本測試制作。在此當中,針對分引擎1的設計應當遵照RSSP-II的應用原語接口要求,為了達到各類型的錯誤注入的效果測量,針對分引擎2的設計和測試腳本制作需要保持更加密切的聯(lián)系。
RSSP-II安全通信協(xié)議基于功能由上到下可以劃分為安全應用中部子層(SAI)、信息安全鑒定層(MASL)、冗余與適配管理層(ALE)。針對對等協(xié)議棧中所獲得的信息必須要經(jīng)過多次解包,同時開展相關的邏輯判定(如CRC核驗、MAC核驗等),之后將每層的內(nèi)容基于數(shù)據(jù)字段格式送往主引擎用于與腳本的預期結(jié)果進行對比分析。因為在ALE層要完成CLASS D冗余通訊,對等協(xié)議棧分引擎于雙通道進行數(shù)據(jù)收取時,應當在ALE層入口位置對兩通道所發(fā)出數(shù)據(jù)包內(nèi)容是否相同進行核對。組包與解包是兩個相互對應的流程,因此在對等協(xié)議棧分引擎的每一層都必須要添加對應的包頭或包尾,才能符合協(xié)議數(shù)據(jù)格式要求,由此實現(xiàn)安全通訊協(xié)議棧的通訊活動。
所謂錯誤注入,則是指依靠添加不同錯誤內(nèi)容來測量安全協(xié)議棧對于不同錯誤所呈現(xiàn)的反應,這同樣是對等協(xié)議棧分引擎設計達標的重要要求之一,對等協(xié)議棧分引擎的任意一層在接收到信息后直接匯總呈報到主引擎同時繼續(xù)向上層進行傳送,最終到達應用層。在對等協(xié)議棧分引擎沒有收到主引擎所發(fā)出的動作指令時,會始終處于等待狀態(tài),通常情況下,所有對等分引擎?zhèn)魉忘c都能夠且應當成為錯誤的注入點,從而能夠推斷出關聯(lián)的測試功能點以及與之相對應的錯誤注入點。之后總結(jié)SAI層、MASL層以及ALE層的功能點,由此獲取不同錯誤注入點的測試內(nèi)容和測試引擎和腳本設計的相關重點,由此讓測試案例的系統(tǒng)歸納與測試引擎的腳本結(jié)合設計得到有效完成,在對錯誤進行成功注入以后,被測協(xié)議棧的反應將會依靠引擎1與引擎2傳送至主引擎當中,之后依靠對腳本預先設計的邏輯對軟件的運行情況進行判定。
四、測試執(zhí)行與回歸測試
依靠軟件自動測試過程中工作人員對RSSP-II安全通信協(xié)議的不斷優(yōu)化完善,RSSP-II安全通信協(xié)議的功能測試一共包含有超過300個不同的測試案例;功能測試共涉及有248個測試腳本(超300個案例中有12個案例是非腳本執(zhí)行案例同時有兩個案例重復使用了之前的測試腳本)。各案例之間不存在有前后關聯(lián)性,針對可用腳本執(zhí)行的測試案例,每一次測試執(zhí)行一個案例的對應腳本,依次執(zhí)行完全部腳本,針對每一個測試案例所設計的腳本,會把主引擎從分引擎出獲取的第一手測試結(jié)果和真實結(jié)果進行橫向?qū)Ρ缺容^,由此對其進行邏輯判定,同時主引擎依靠記載各類腳本是否有效通過檢測的統(tǒng)計測試案例的真實執(zhí)行狀況。
針對RSSP-II安全通信協(xié)議在前7輪的功能檢測,整體結(jié)果表現(xiàn)如表1所示
在進行回歸測試的過程中,案例的個數(shù)與腳本數(shù)量呈現(xiàn)出逐次遞增的趨勢,但是除去案例個數(shù)相對比較穩(wěn)定的第2輪-第5輪以及第6輪-第7輪的回歸測試以前,引擎與腳本的設計工作所占用的工作時間相對更多意外,其他測試工作都能夠異同軟件自動化測試技術來高效率的完成,同時因為軟件自動化測試技術在使用過程中具有比較好的一致性,以上兩個階段當中針對所設計腳本的整體重復使用率也相對較高,綜上,針對涵蓋多輪次的回歸測試,使用SDP專項測試工具能夠顯著提升測試工作整體效率,強化測試結(jié)果的準確性和一致性。
使用SDP專業(yè)測試工具進行軟件自動化測試工作,所要求使用的額外的知識儲備主要涉及有分引擎與腳本的設計、開發(fā)等。RSSP-II安全通信協(xié)議軟件的功能檢測,在初期就使用的自動化腳本測試這一方式,所以在多輪數(shù)的回歸測試當中,得到了極佳的時間、人力使用效率以及良好的測試覆蓋情況。在對其進行回歸測試的過程中,必須要引起高度關注的是,因為分引擎和主引擎網(wǎng)絡UDP在通訊過程中存在有不穩(wěn)定性,通訊延遲和Expect腳本延遲控制精度尚無法得到有效控制,一些腳本需要通過手動二次回歸測才可以有效通過,而部分必須要進行精準測量的定時器超時功能案例,需要將待測協(xié)議棧超時量數(shù)據(jù)的顆粒度設置為較粗大。另外,雖然自動測試案例的覆蓋率已經(jīng)相對較好,但是針對一些測試案例,因為現(xiàn)有技術在靈活性方面的局限,仍然不建議使用腳本編寫的方式開展自動化測試。
針對區(qū)域控制器(ZC)的子系統(tǒng)獨立測試,分引擎于腳本的設計可以對比應用接口協(xié)議來進行研發(fā),但是RSSP-II安全通信協(xié)議,是一種和實際應用之間沒有關聯(lián)的通信協(xié)議軟件,它的測試案例更多關注的是使用軟件進行通訊過程中所出現(xiàn)的重復、插入、損壞、延遲、偽裝等錯誤以及相應的安全防護,所以在進行分引擎開發(fā)的過程中,工作人員需要全面衡量后期腳本開發(fā)過程中所涉及的一致性和可行性問題,在測試案例持續(xù)增多的過程中,依托對protobuf消息種類的方法達到使用腳本來控制對等協(xié)議棧分引擎向RSSP-II安全通信協(xié)議軟件開展錯誤注入的新接口。上述引擎腳本結(jié)合設計研發(fā)的模式,針對SDP專項測試工具在通訊協(xié)議類型軟件模塊測試領域中的使用具有十分重要的參考價值。
五、結(jié)束語
整體來講,本文所介紹的依托SDP測試工具的RSSP-II安全通信協(xié)議軟件自動化測試設計與實現(xiàn)方式并使其使用在軟件測試當中,通過實踐證實,使用這一工具確實可以顯著提升測試工作效率,尤其是在進行回歸測試中,可以發(fā)揮出顯著效果,提升測試工作的一致性和有效性。
參 ?考 ?文 ?獻
[1]袁天弋.RSSP-I鐵路信號安全通信協(xié)議的測試研究[J].鐵路通信信號工程技術,2020,17(10):14-18.
[2]左林,劉貞,王一民.SM4分組密碼算法在RSSP-Ⅱ鐵路信號安全通信協(xié)議中的應用[J].鐵路通信信號工程技術,2020,17(08):24-27.
[3]張凱. RSSP-Ⅱ中消息認證碼算法的安全性研究[D].蘭州交通大學,2020.
[4]吳迪,顏如月.信號系統(tǒng)中安全通信協(xié)議自動測試軟件的設計與實現(xiàn)[J].數(shù)碼設計,2017,6(07):37-39.
[5]劉振玉,任軍.RSSP-II安全通信協(xié)議軟件的自動測試設計及實現(xiàn)[J].鐵路通信信號工程技術,2017,12(06):44-47.