董昕 梁艷 龍靈 石欣漾
摘 ? 要:雙向無線數(shù)字對講機中的客戶事件代碼表,提供了對講機及其附屬設(shè)備中使用的各種操作碼的定義和分配。該代碼表有超過400個事件,使用傳統(tǒng)測試方法進行全面覆蓋大約需要1個月。該文介紹了一種新的方法來提高測試效率,并開發(fā)了一套自動化測試用例及測試腳本。自動化的測試腳本可重復(fù)使用,易于回歸測試。測試實踐證明,該方法可以節(jié)省60%的工作量,并提高無線電、附屬設(shè)備和第三方產(chǎn)品的生產(chǎn)效率。該方法可加快和簡化代碼表測試,已被證明是可行的,并且十分高效,值得推廣和部署。
關(guān)鍵詞:嵌入式設(shè)備;自動化測試;測試腳本;回歸測試
中圖分類號:TP311.56 ? ? ? 文獻標(biāo)志碼:A
0 引言
作為公共安全領(lǐng)域廣泛使用的集群通信終端設(shè)備,雙向無線數(shù)字對講機支持即時通信、組呼通播、系統(tǒng)呼叫、機密呼叫等功能,不僅經(jīng)濟實用、運營成本低、不耗費通話費用,而且使用方便、保密性強,特別適用于緊急調(diào)度和集體協(xié)作的工作場景。客戶事件代碼表(Subscriber Event Code Table,SECT)操作碼,為雙向無線對講機的事件集及其的相關(guān)狀態(tài)提供通用定義。事件代碼標(biāo)識事件本身,狀態(tài)碼標(biāo)識與事件關(guān)聯(lián)的狀態(tài)信息。通過一組公共的事件操作碼,使各個對講機用戶之間具有更強的互操作性和兼容性。因此,我們需要確保對講機和配件間具有通用的事件操作碼集。
1 傳統(tǒng)測試方法
對講機有超過400個SECT操作碼事件需要測試。傳統(tǒng)的測試方法主要通過手動測試,完成全面覆蓋測試大約需要熟練測試人員花費1個月的時間。
2 新的測試方法
2.1 自動化測試架構(gòu)
2.1.1 自動化工具CCP Tester概述
自動化工具CCP Tester軟件包含2個部分。1) 由Microsoft VC + +開發(fā)的主要應(yīng)用程序。2)基于TCL腳本開發(fā)的一組測試腳本。它提供TCL以使用VC應(yīng)用程序的任何功能。同樣,VC應(yīng)用程序可以調(diào)用TCL動態(tài)鏈接庫中的任何函數(shù)。主要的應(yīng)用程序、TCL測試腳本和通信組件組成了CCP Tester這個自動化工具,如圖1所示。
CCP Tester的主要功能包括協(xié)議規(guī)范配置、通信鏈接管理、單指令測試、測試套件/項目配置、測試套件執(zhí)行、測試進度監(jiān)控、測試報告生成及設(shè)備仿真等。
2.1.2 CCP Tester腳本
在新方法中,使用測試套件執(zhí)行方法進行自動化測試。也可以在CCP Tester的“腳本列表”窗口中選擇選定的腳本來執(zhí)行特定的測試腳本。測試套件執(zhí)行是執(zhí)行所選測試套件中的每個腳本,相對于每次單個測試用例執(zhí)行來說效率更高[1]。
圖2是測試腳本的示例。用TCL編碼,不需要在執(zhí)行前進行編譯。TCL語言的可嵌入性和可擴展性,使VC應(yīng)用程序可以與之無縫地協(xié)同工作[2]。TCL提供的所有功能使CCP Tester具有以下3個優(yōu)點。1)便捷的測試腳本/測試套件管理環(huán)境。2)易于擴展測試腳本集以適應(yīng)新需求。3) 用戶易于理解和更新測試腳本[3]。
CCP Tester測試腳本按如圖3所示的流程圖的順序運行。
為了更高效地測試一組SECT操作碼,創(chuàng)建了一個測試套件以實現(xiàn)批量運行。由于批量運行測試,并且自動更新其結(jié)果,因此大大減少了測試執(zhí)行的工作量和時間[4]。
2.2 輔助工具AT debug
但是,自動測試不能完全代替手動測試[5]。 在某些情況下,可以利用輔助工具AT debug手動檢查對講機的行為。AT debug工具是一種類似于telnet的應(yīng)用程序,可在用戶和對講機之間提供CLI(命令行界面)交互。 它提供AT命令,方便開發(fā)人員與對講機進行交互。為了支持新命令,需要進行以下更改。
2.2.1 通過以下方式向AT命令系統(tǒng)注冊新命令
cmd_register(cmd_callback_functionA,
cmd_string,cmd_help_info);
2.2.2 實現(xiàn)命令回調(diào)函數(shù)用來解析用戶輸入的字符串
void cmd_callbback_functionA(char *cmd, UINT8 length)命令回調(diào)函數(shù)的示例如圖4所示。用戶輸入將由AT命令系統(tǒng)過濾,只有當(dāng)?shù)谝粋€命令部分與注冊的的命令字符串匹配時,才會調(diào)用響應(yīng)的回調(diào)函數(shù)。
下面以一個實例來具體說明AT debug命令回調(diào)函數(shù)的過程。對講機利用調(diào)試器任務(wù)偵聽和處理請求。當(dāng)TCP客戶端使用命令“telnet 192.168.10.1 8501”從PC啟動連接時,AT debug將檢索該請求并存儲即將到來的連接。一旦AT debug認(rèn)為用戶完成了一條命令,命令解析器系統(tǒng)會被觸發(fā),用來以搜索第一部分是否匹配。如果與命令系統(tǒng)匹配,則會調(diào)用已注冊的回調(diào)函數(shù)來執(zhí)行相應(yīng)的功能[6]。在回調(diào)函數(shù)中,開發(fā)人員可以調(diào)用AT debug接口以輸出顯示所需的信息。
AT debug命令實例如圖5所示。該命令打開對講機顯示屏的背光。測試人員可以通過檢查對講機的背光燈是否點亮,來驗證軟件是否實現(xiàn)需求。
3 結(jié)語
該方法結(jié)合了自動測試和手動測試的優(yōu)點,以此來提高軟件的質(zhì)量。經(jīng)過實驗統(tǒng)計,大約70%的測試用例是通過自動測試運行的,其他30%的測試用例是通過手動測試運行的,如圖6所示。
測試實踐證明,證明該方法可以節(jié)省大約60%的工作量,并提高對講機、附屬設(shè)備及第三方產(chǎn)品的開發(fā)效率,如圖7所示。
通過新舊方法的比較,證明此方法具有一定的創(chuàng)新性,可加快和簡化嵌入式設(shè)備的軟件的回歸測試。并且能有效提高軟件開發(fā)及測試人員的工作效率,值得推廣和部署。
參考文獻
[1]夏佳佳,鄒毅軍,周江偉.嵌入式軟件自動化測試系統(tǒng)研究[J].計算機測量與控制,2016,24(4):22-25.
[2]陳佐,張懷相,方景龍.嵌入式軟件自動化測試技術(shù)[J].計算機工程與設(shè)計,2018,39(10):3125-3131.
[3]Garousi V,Mika M V.When and what to automate in software testing? A multi-vocal literature review[J].Information and Software Technology,2016,76(8):92-117.
[4]董昕,王杰.一種自動生成軟件測試用例的新方法[J].計算機應(yīng)用與軟件,2017,34(10):46-50.
[5]Li X,Mutha C,Smidts CS.An automated software reliability prediction system for safety critical software[J].Empirical Software Engineering,2016,21(6):2413-2455.
[6]Marcel Bohme,Soumya Paul.A Probabilistic Analysis of the Efficiency of Automated Software Testing[J].IEEE Transactions on Software Engineering,2016,42(4):345-360.