葛澤文 胡兆華
摘要:本文針對(duì)受安全性限制的自定義通信協(xié)議的動(dòng)態(tài)測(cè)試難題,通過(guò)對(duì)協(xié)議的特征進(jìn)行分析,研究協(xié)議動(dòng)態(tài)測(cè)試通用技術(shù),從協(xié)議模板定義、用例生成、動(dòng)態(tài)交互、即時(shí)調(diào)用三方庫(kù)等方面進(jìn)行方法研究。找到了解決自定義通信協(xié)議動(dòng)態(tài)測(cè)試問(wèn)題的方法,并且該方法通用于所有協(xié)議的測(cè)試應(yīng)用。
關(guān)鍵詞:自定義通信協(xié)議;動(dòng)態(tài)測(cè)試;協(xié)議模板;用例自動(dòng)生成
中圖分類(lèi)號(hào):TP273 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2019)09-0090-03
0 引言
一些涉及安全性的行業(yè),其定義的通信協(xié)議一般具有特殊的安全性要求,協(xié)議中采用了受控的安全機(jī)制,協(xié)議功能和性能測(cè)試無(wú)法直接通過(guò)通用測(cè)試工具來(lái)構(gòu)造,只能屏蔽被測(cè)產(chǎn)品安全特性及處理流程來(lái)實(shí)現(xiàn),并且構(gòu)造測(cè)試數(shù)據(jù)非常因難,測(cè)試覆蓋也不充分。針對(duì)自定義通信協(xié)議存在的測(cè)試問(wèn)題主要有以下幾個(gè)方面:(1)協(xié)議功能動(dòng)態(tài)測(cè)試,目前只能采用靜態(tài)分析和代碼跟蹤,效率低,且只能覆蓋部分功能需求。(2)協(xié)議并發(fā)性能測(cè)試,需要被測(cè)設(shè)備修改程序、取消諸如抗重放等機(jī)制的檢查,固化參與協(xié)議過(guò)程的臨時(shí)參數(shù)等,導(dǎo)致測(cè)試場(chǎng)景與生產(chǎn)場(chǎng)景差異巨大。(3)協(xié)議承載的業(yè)務(wù)測(cè)試,對(duì)陪測(cè)設(shè)備類(lèi)型和數(shù)量的依賴(lài)非常大,導(dǎo)致測(cè)試效率差。
因此,需要研究協(xié)議動(dòng)態(tài)測(cè)試方法和工具套件,以解決自定義通信協(xié)議動(dòng)態(tài)測(cè)試問(wèn)題,并發(fā)數(shù)據(jù)構(gòu)造問(wèn)題,模擬測(cè)試配套設(shè)備問(wèn)題。
1 協(xié)議測(cè)試分析
自定義通信協(xié)議一般具有專(zhuān)用性,安全機(jī)制受限[1],承載于各類(lèi)通信信道等特點(diǎn)。(1)自定義協(xié)議格式種類(lèi)多,不同設(shè)備或不同系統(tǒng)可能都不同。需要考慮測(cè)試技術(shù)通用性,不同協(xié)議均能采同一種動(dòng)態(tài)測(cè)試方法(協(xié)議模板化[2])進(jìn)行構(gòu)造。(2)安全性機(jī)制受限,要考慮協(xié)議個(gè)性,需要將安全機(jī)制涉及模塊形成第三方方法庫(kù),以便支持不同安全機(jī)制的靈活擴(kuò)展。(3)承載通信信道或承載通信協(xié)議多種多樣,需要支持多各類(lèi)信道或承載協(xié)議擴(kuò)展。
2 協(xié)議動(dòng)態(tài)測(cè)試模型研究
協(xié)議動(dòng)態(tài)測(cè)試由通信雙方實(shí)體(測(cè)試端和被測(cè)端)構(gòu)成,測(cè)試端根據(jù)協(xié)議模板和用例控制與被測(cè)端實(shí)施動(dòng)態(tài)測(cè)試業(yè)務(wù),并統(tǒng)計(jì)結(jié)果形成測(cè)試報(bào)告。協(xié)議動(dòng)態(tài)測(cè)試模型見(jiàn)圖1。
主要完成以下四個(gè)部分功能:(1)協(xié)議解析和構(gòu)造,依據(jù)協(xié)議模板和協(xié)議用例完成協(xié)議發(fā)送數(shù)據(jù)構(gòu)造和接收數(shù)據(jù)解決,并進(jìn)行字段用例預(yù)期檢查;(2)協(xié)議流程的控制,依據(jù)協(xié)議模板控制協(xié)議交互流程,調(diào)度解析/構(gòu)造模塊,并進(jìn)行流程用例預(yù)期檢查;(3)測(cè)試業(yè)務(wù)的調(diào)度,依據(jù)協(xié)議模板中流程定義和字段定義生成用例數(shù)據(jù);根據(jù)單次用例調(diào)度流程控制、通道控制和代理執(zhí)行測(cè)試業(yè)務(wù),并收集測(cè)試結(jié)果;(4)收發(fā)通道的選取和驅(qū)動(dòng),支持各層次通道的選取和驅(qū)動(dòng),如以太網(wǎng)、IP、TCP、串口等。支持對(duì)多實(shí)例共享或獨(dú)占通道。
其中,協(xié)議解析和構(gòu)造部分,根據(jù)模板完成協(xié)議消息數(shù)據(jù)生成和接收,并根據(jù)模板調(diào)用三方庫(kù)完成協(xié)議字段數(shù)據(jù)動(dòng)態(tài)生成和解析。如圖2所示。
2.1 協(xié)議動(dòng)態(tài)測(cè)試流程
依據(jù)定義的協(xié)議模板自動(dòng)生成數(shù)據(jù)包,根據(jù)配置承載通道進(jìn)行數(shù)據(jù)發(fā)送、接收數(shù)據(jù)解析、預(yù)期結(jié)果檢查、測(cè)試報(bào)告生成等操作。測(cè)試流程如圖3所示。
在協(xié)議測(cè)試過(guò)程中,構(gòu)造用例對(duì)交互協(xié)議進(jìn)行動(dòng)態(tài)測(cè)試,確認(rèn)協(xié)議數(shù)據(jù)字段處理是否與定義要求一致。具體測(cè)試活動(dòng)流程如下:
(1)協(xié)議模板定義。1)協(xié)議交互定義:定義協(xié)議完整的交互流程,測(cè)試端發(fā)送的協(xié)議消息(如申請(qǐng))和接收解析的協(xié)議消息(如響應(yīng)),及組成關(guān)系(如根據(jù)接收包內(nèi)容不同,組織不同消息發(fā)送)。2)協(xié)議交互包格式定義:定義消息中涉及的字段及組成關(guān)系。3)字段屬性定義:含協(xié)議字段本身的要素信息(含字段依賴(lài):協(xié)議包內(nèi)部和外部的依賴(lài)關(guān)系)和測(cè)試管理要素(取值方法,存儲(chǔ)方法、檢查點(diǎn)等)。
(2)測(cè)試預(yù)期設(shè)置。通過(guò)設(shè)置字段預(yù)期,作為協(xié)議字段數(shù)據(jù)解析后比對(duì)基準(zhǔn),形成檢查點(diǎn)(含協(xié)議流程預(yù)期設(shè)置)。
(3)生成測(cè)試用例。將定義的協(xié)議模板(含外部導(dǎo)入的預(yù)置數(shù)據(jù)、字段構(gòu)造的用例值)和預(yù)置的檢查點(diǎn)等形成用例套件,供協(xié)議數(shù)據(jù)解析時(shí)自動(dòng)進(jìn)行測(cè)試(含協(xié)議流程用例)。
(4)協(xié)議動(dòng)態(tài)交互??刂贫思虞d協(xié)議模板生成的用例套件,控制測(cè)試端與被測(cè)端進(jìn)行協(xié)議交互測(cè)試:
1)按配置通道進(jìn)行消息發(fā)送和接收:協(xié)議控制層將數(shù)據(jù)交由發(fā)送模塊,接收模塊接收數(shù)據(jù)交協(xié)議控制層,協(xié)議控制層控制消息的動(dòng)態(tài)交互;2)發(fā)送消息生成:按模板生成發(fā)送數(shù)據(jù),構(gòu)造的用例數(shù)據(jù)和需要?jiǎng)討B(tài)生成的數(shù)據(jù),即時(shí)調(diào)用相應(yīng)三方庫(kù)處理后,形成協(xié)議發(fā)送消息數(shù)據(jù);3)接收消息解析:按模板解析數(shù)據(jù),存儲(chǔ)相應(yīng)數(shù)據(jù)供后續(xù)解析過(guò)程使用,按模板即時(shí)調(diào)用相應(yīng)三方庫(kù)處理,并進(jìn)行比對(duì)檢查和進(jìn)行下一消息動(dòng)態(tài)生成。
(5)生成測(cè)試報(bào)告。協(xié)議數(shù)據(jù)交互過(guò)程中,根據(jù)用例套件中涉及的檢查點(diǎn)(含響應(yīng)消息接收失?。┍葘?duì)結(jié)果輸出測(cè)試報(bào)告。
2.2 協(xié)議靜態(tài)分析流程
根據(jù)自定義的協(xié)議模板,可自動(dòng)分析從數(shù)據(jù)包中提取的協(xié)議數(shù)據(jù),自動(dòng)判斷數(shù)據(jù)包是否符合協(xié)議模板預(yù)期定義,并導(dǎo)出分析結(jié)果和報(bào)告。測(cè)試流程如圖4所示。
設(shè)備涉及的各類(lèi)自定義協(xié)議在測(cè)試過(guò)程中,對(duì)交互數(shù)據(jù)進(jìn)行靜態(tài)解析驗(yàn)證,確認(rèn)協(xié)議數(shù)據(jù)封裝是否與定義要求一致。具體測(cè)試處理流程如下:
(1)協(xié)議模板定義。1)協(xié)議流程定義:定義交互流程(格式),測(cè)試端發(fā)送的協(xié)議消息(如申請(qǐng))和接收解析的協(xié)議消息(如響應(yīng))。2)協(xié)議格式(消息)定義:定義消息中涉及的字段及組成關(guān)系。3)字段屬性定義:定義協(xié)議字段本身的要素信息(含字段依賴(lài):消息內(nèi)部和消息外部)和測(cè)試管理要素(取值方法,存儲(chǔ)方法、檢查點(diǎn)等)。
(2)字段預(yù)期設(shè)置。通過(guò)設(shè)置字段預(yù)期,作為協(xié)議字段數(shù)據(jù)解析后比對(duì)基準(zhǔn),形成檢查點(diǎn)。
(3)生成測(cè)試用例。將協(xié)議模板定義和預(yù)置的檢查點(diǎn)組合形成用例套件,供協(xié)議數(shù)據(jù)解析時(shí)自動(dòng)進(jìn)行測(cè)試。
(4)輸入數(shù)據(jù)解析??刂贫思虞d按模板生成的用例套件,對(duì)輸入?yún)f(xié)議數(shù)據(jù)進(jìn)行解析:1)按模板解析數(shù)據(jù),與檢查點(diǎn)預(yù)置數(shù)據(jù)進(jìn)行比對(duì),并記錄結(jié)果。2)存儲(chǔ)供后續(xù)解析過(guò)程使用的字段內(nèi)容。3)在協(xié)議分析過(guò)程中,按模板字段屬性方法及依賴(lài)數(shù)據(jù),自動(dòng)調(diào)用三方庫(kù)進(jìn)行處理。
(5)生成測(cè)試報(bào)告。數(shù)據(jù)解析完成后,自動(dòng)依據(jù)用例套件中涉及的檢查點(diǎn)比對(duì)結(jié)查輸出測(cè)試報(bào)告。
3 協(xié)議動(dòng)態(tài)測(cè)試關(guān)鍵技術(shù)研究
3.1 協(xié)議模板按需定義
根據(jù)被測(cè)協(xié)議具體要求,定義協(xié)議流程、協(xié)議格式、協(xié)議字段和字段依賴(lài)關(guān)系及處理方法(含外部算法調(diào)用),形成協(xié)議模板。協(xié)議模板定義如下:
(1)協(xié)議消息條目定義。定義協(xié)議涉及的交互消息條目,控制消息申請(qǐng)、響應(yīng)及其時(shí)序關(guān)系。
(2)協(xié)議消息字段定義。根據(jù)接收消息特定字段取值,選擇模板定義分支或?qū)哟危ㄗ幽0澹H鐓f(xié)議通過(guò)類(lèi)型字段區(qū)分,后續(xù)封裝數(shù)據(jù)不同定義子模板供選擇,如圖5所示。
(3)協(xié)議字段依賴(lài)關(guān)系。主要涉及兩類(lèi)字段依賴(lài):1)消息內(nèi)部,后面字段依賴(lài)前面字段取值,如B字段長(zhǎng)度依賴(lài)A字段值來(lái)確定等。主要有值依賴(lài)、循環(huán)次數(shù)依賴(lài)及子模板依賴(lài)等,如圖6所示。2)消息外部,生成消息中存在字段依賴(lài)接收消息字段值(動(dòng)態(tài)值)或外部輸入值(個(gè)性值)來(lái)參與三方(方法庫(kù))處理后生成的動(dòng)態(tài)值,如圖7所示。
(4)用例和檢點(diǎn)嵌入。1)用例數(shù)據(jù)構(gòu)造:如A字段取值,需從邊界、等價(jià)類(lèi)等進(jìn)行用例測(cè)試,該類(lèi)例重復(fù)進(jìn)行協(xié)議消息交互來(lái)進(jìn)行驗(yàn)證。模板中定義測(cè)試業(yè)務(wù)控制字來(lái)進(jìn)協(xié)議控制調(diào)度。2)針對(duì)字段設(shè)定檢查點(diǎn):并設(shè)預(yù)期值,控制協(xié)議交互中將調(diào)用檢查模塊進(jìn)行對(duì)比確認(rèn)并記錄,供生成測(cè)試報(bào)告。
(5)子模板及字段數(shù)據(jù)處理方法外部擴(kuò)展。1)子模板數(shù)據(jù)處理方法:自定義協(xié)議大多是分層處理,外層處理一般涉及多個(gè)字段處理之后,再進(jìn)行外層處理。針對(duì)這類(lèi)層次子模板也定義方法進(jìn)行處理;2)字段數(shù)據(jù)處理方法:調(diào)用三方庫(kù)對(duì)數(shù)據(jù)進(jìn)行生成處理或解析處理,主要涉及加密、解密、簽名、驗(yàn)簽等,涉及依賴(lài)其他字段值需要存儲(chǔ)或從外部導(dǎo)入。
3.2 協(xié)議測(cè)試數(shù)據(jù)動(dòng)態(tài)處理
根據(jù)模板定義組織協(xié)議交互流程場(chǎng)景;根據(jù)測(cè)試用例,在三方庫(kù)支持下,即時(shí)生成或解析協(xié)議消息數(shù)據(jù);按字段屬性處理(存儲(chǔ)、輸出、變換、比對(duì)等)字段數(shù)據(jù)。
3.2.1 協(xié)議數(shù)據(jù)生成和解析
協(xié)議數(shù)據(jù)生成同解析數(shù)據(jù),處理方式相反。主要涉及以下處理內(nèi)容:(1)支持對(duì)變長(zhǎng)字段處理;(2)支持字段依賴(lài)處理;(3)支持對(duì)接收字段依賴(lài)處理;(4)字段預(yù)期定義處理,預(yù)期格式功能用于判斷被測(cè)目標(biāo)返回值是否符合用戶(hù)的預(yù)期。
3.2.2 協(xié)議數(shù)據(jù)三方庫(kù)處理
協(xié)議交互數(shù)據(jù)即時(shí)處理,除設(shè)計(jì)的收發(fā)場(chǎng)景外,即時(shí)根據(jù)字段屬性,依據(jù)當(dāng)前數(shù)據(jù)條件,選擇處理方法,調(diào)用三方動(dòng)態(tài)庫(kù),快速生成所需數(shù)據(jù)。實(shí)現(xiàn)從庫(kù)建立階段定義方法,協(xié)議定義階段選擇方法,協(xié)議執(zhí)行階段調(diào)用方法,將對(duì)字段的處理方法統(tǒng)一形成三方庫(kù),以便于靈活擴(kuò)展。針對(duì)三方庫(kù)處理關(guān)系如圖8所示。
4 協(xié)議動(dòng)態(tài)測(cè)試應(yīng)用場(chǎng)景
4.1 協(xié)議動(dòng)態(tài)測(cè)試
用于驗(yàn)證協(xié)議動(dòng)態(tài)交互過(guò)程,構(gòu)造數(shù)據(jù)測(cè)試被測(cè)設(shè)備或系統(tǒng)對(duì)協(xié)議字段的處理,驗(yàn)證協(xié)議處理邏輯與協(xié)議規(guī)范的一致性。(1)針對(duì)每個(gè)字段構(gòu)造數(shù)據(jù),驗(yàn)證被測(cè)系統(tǒng)接收情況;(2)針對(duì)每個(gè)字段設(shè)置預(yù)期,檢查響應(yīng)結(jié)果。
4.2 協(xié)議靜態(tài)解析
用于針對(duì)被測(cè)設(shè)備或系統(tǒng)涉及協(xié)議真實(shí)交互數(shù)據(jù)的靜態(tài)解析,驗(yàn)證協(xié)議封裝和承載數(shù)據(jù)內(nèi)容是否與被測(cè)對(duì)象設(shè)計(jì)要求一致。
4.3 并發(fā)數(shù)據(jù)構(gòu)造測(cè)試
將協(xié)議動(dòng)態(tài)交互形成一個(gè)用戶(hù)套件,并根據(jù)用戶(hù)個(gè)性數(shù)據(jù)生成多用戶(hù)協(xié)議業(yè)務(wù),加載通道承載,形成并發(fā)測(cè)試場(chǎng)景,構(gòu)造協(xié)議業(yè)務(wù)并發(fā)測(cè)試,驗(yàn)證協(xié)議性能(含并發(fā)和業(yè)務(wù)性能)。
5 結(jié)語(yǔ)
由于自定義協(xié)議動(dòng)態(tài)測(cè)試技術(shù)考慮了通用性和可擴(kuò)展性等要素,適用于所有自定義協(xié)議動(dòng)態(tài)功能和性能測(cè)試。能實(shí)現(xiàn)的測(cè)試目標(biāo)包括:建立各類(lèi)協(xié)議的功能基準(zhǔn)測(cè)試;模擬真實(shí)的協(xié)議負(fù)載行為,測(cè)試設(shè)備或系統(tǒng)的協(xié)議性能;模擬陪測(cè)設(shè)備,建立更多測(cè)試場(chǎng)景。綜上所述,應(yīng)用協(xié)議動(dòng)態(tài)測(cè)試技術(shù),在解決自定義協(xié)議動(dòng)態(tài)測(cè)試問(wèn)題的同時(shí),可以提高測(cè)試業(yè)務(wù)的生產(chǎn)效率和質(zhì)量。
參考文獻(xiàn)
[1] 戴宗坤.信息系統(tǒng)安全[M].電子工業(yè)出版社,2002.
[2] 古樂(lè),史九林.軟件測(cè)試技術(shù)概論[M].清華大學(xué)出版社,2004.
Abstract:With the development of ?The Times,the level of world technological innovation is continuously improving,but the physical quality of people is declining with years.Therefore,physical exercises,the improvement of physical fitness is also the current national priority.For this reason,our team has developed an intelligent ?fitness platform used Convolutional Neural Network for image recognition process and Android platform as the client.People can run the software to identify,judge,and recorrect their movement,so as to achieve the same effects as the personal coach.
Key words:Convolutional Neural Network;Image Recognition;movement teaching