(中國信息通信研究院西部分院(重慶電信研究院),重慶401336)
林業(yè)物聯(lián)網(wǎng)監(jiān)控系統(tǒng)通過物聯(lián)網(wǎng)技術(shù)將安防設(shè)備、智能終端、云服務(wù)的各種設(shè)備集成到一起,提供林業(yè)安防監(jiān)控功能和手段,極大地提高了林業(yè)物聯(lián)網(wǎng)在森林防火過程中的便攜性。林業(yè)物聯(lián)網(wǎng)監(jiān)控系統(tǒng)能夠通過手機或者平板電腦等便攜式設(shè)備上安裝的軟件對各林業(yè)安防設(shè)備進(jìn)行配置、管理以及安防報警信息采集控制[1]。這種系統(tǒng)特點決定了系統(tǒng)集成規(guī)模廣、復(fù)雜度大,導(dǎo)致系統(tǒng)軟件測試越來越復(fù)雜。為了適應(yīng)林業(yè)物聯(lián)網(wǎng)的規(guī)模化應(yīng)用和產(chǎn)業(yè)化發(fā)展形勢,滿足各示范工程需要,必須對林業(yè)物聯(lián)網(wǎng)系統(tǒng)進(jìn)行有效的應(yīng)用測試,以提高林業(yè)物聯(lián)網(wǎng)在森林防火過程中的可靠性和安全性。通過對系統(tǒng)的自動化測試不僅能提高測試效率,更能準(zhǔn)確地量化系統(tǒng)的功能指標(biāo)[2-4]。毫無疑問,自動化測試技術(shù)將扮演關(guān)鍵角色。因此,開展對林業(yè)物聯(lián)網(wǎng)應(yīng)用系統(tǒng)的自動化測試十分必要。
從林業(yè)物聯(lián)網(wǎng)監(jiān)控系統(tǒng)結(jié)構(gòu)來說,它的實際業(yè)務(wù)暴露出的是系統(tǒng)的應(yīng)用域(智能手機)和設(shè)備閾(安防報警設(shè)備)。因此,要開展對林業(yè)物聯(lián)網(wǎng)監(jiān)控系統(tǒng)的自動化測試,就需要把業(yè)務(wù)中的應(yīng)用域和設(shè)備閾接入到自動化測試工具中,使被測系統(tǒng)形成一個端到端的業(yè)務(wù)閉環(huán),就可以通過編寫測試用例來進(jìn)行自動化測試。
根據(jù)ISO/IEC9646分布式測試方法模型[5-6],測試系統(tǒng)和被測系統(tǒng)是2個不同的實體,如圖1所示。系統(tǒng)通過N-1層服務(wù)于N層的協(xié)議數(shù)據(jù)單元進(jìn)行信息交互。下測試器通過N-1層服務(wù),把測試命令發(fā)送給被測系統(tǒng)或者接收被測系統(tǒng)的響應(yīng)。上測試器通過接收下測試器發(fā)送的命令,激勵被測協(xié)議實現(xiàn),使之做出響應(yīng)動作,然后通過觀察點判決測試結(jié)果。
圖1 測試模型Fig.1 Test model
根據(jù)上一節(jié)的測試模型,整個測試系統(tǒng)中的自動化測試工具ATT(automated testing tools)是整個測試系統(tǒng)的核心,分別實現(xiàn)對應(yīng)用域和設(shè)備閾的適配連接。在設(shè)備閾,需要下測試器對各個傳感設(shè)備進(jìn)行適配以建立設(shè)備與ATT間的通信機制,實現(xiàn)同被測系統(tǒng)設(shè)備閾的信息交互。因此,需要在設(shè)備閾端設(shè)計信號仿真測試儀來進(jìn)行協(xié)議數(shù)據(jù)信息交互。在應(yīng)用域,通過USB的連接方式,把智能手機接入到ATT 中,通過 ADB(android debug bridge)工具[7]同智能手機建立通信機制,實現(xiàn)同被測系統(tǒng)的應(yīng)用域的信息交互。
林業(yè)物聯(lián)網(wǎng)監(jiān)控系統(tǒng)中具有紅外傳感器、煙霧傳感器、火焰探測器等多種傳感器[8]。因此,本測試系統(tǒng)中設(shè)計信號仿真測試儀,通過各個硬件電路信號,把各個傳感器設(shè)備接入到信號仿真測試中,構(gòu)建設(shè)備閾的測試鏈路。然后通過ATT實現(xiàn)控制信號仿真測試儀來模擬仿真實現(xiàn)各個傳感設(shè)備的感知信號,以達(dá)到模擬觸發(fā)行為。信號仿真測試儀如圖2所示。
圖2 信號仿真測試儀Fig.2 Signal simulation tester
ATT是整個測試系統(tǒng)的核心,協(xié)調(diào)管理各個資源模塊,并提供測試腳本的編寫、運行環(huán)境。ATT方案包括測試資源管理和測試集管理兩大部分,為用戶提供一個可自定義的自動化測試策略和相應(yīng)的測試腳本二次開發(fā)環(huán)境。系統(tǒng)結(jié)構(gòu)如圖3所示。
圖3 系統(tǒng)結(jié)構(gòu)Fig 3 System structure diagram
測試資源管理由設(shè)備管理、鍵值管理、圖像驗證3部分組成。
1)設(shè)備管理:對被測系統(tǒng)已接入設(shè)備進(jìn)行配置管理。就林業(yè)物聯(lián)網(wǎng)應(yīng)用來說,接入的設(shè)備管理為手機端的APP,不同的設(shè)備接入方式由于受到自身穩(wěn)定性以及人為干預(yù)的影響使其狀態(tài)隨時可能發(fā)生變化,所以,設(shè)備管理中通過一個運行于后臺的設(shè)備監(jiān)控進(jìn)程是必要的,此進(jìn)程監(jiān)控設(shè)備狀態(tài),并把監(jiān)控到的設(shè)備狀態(tài)回傳到測試資源管理的圖形界面便能及時刷新設(shè)備狀態(tài),以供用戶選擇判斷。
2)鍵值管理:在腳本運行時為了方便用戶使用全局變量,故在測試系統(tǒng)資源管理中提供了鍵值視圖用以管理用戶自定義的全局鍵值對。在鍵值視圖中定義的鍵名稱是唯一的,當(dāng)用戶運行工程時,鍵值視圖中定義的所有鍵值對會注入到腳本運行中,用戶通過提供的編程接口(API),便能訪問之前在鍵值視圖中定義的鍵值。
3)圖像驗證:對被測的手機APP和PC機上的上位機軟件GUI進(jìn)行圖片比對,通過對每一個驗證點信息進(jìn)行區(qū)域截圖比較,把預(yù)置結(jié)果與實際響應(yīng)結(jié)果進(jìn)行圖片識別驗證,以便測試結(jié)果的判斷。
測試集管理由測試接口定義、測試日志、測試用例編輯、測試報告管理、直定義腳本庫5部分組成。
1)測試接口定義
對不同的測試設(shè)備,接入測試系統(tǒng)的方法不同。采用不同的接口定義,適配被測系統(tǒng)在測試用例的統(tǒng)一描述。通過調(diào)用各個接口函數(shù)內(nèi)部連接關(guān)系來完成測試用例的描述與測試系統(tǒng)的信息交互控制。
2)測試日志
日志模塊實現(xiàn)對所屬信息的日志管理、保存、文件輸出等功能。通過測試日志,一方面記錄測試用例在執(zhí)行過程中系統(tǒng)日志的監(jiān)測,另一方面對每個測試用例的驗證點進(jìn)行文件輸出,方便測試人員的后續(xù)分析。測試用例執(zhí)行結(jié)束以后,以測試報告的形式提供給測試人員。
3)測試用例編輯
根據(jù)用戶測試需求,使用JavaScript或Python等腳本語言,編寫測試腳本,實現(xiàn)對被測需求的功能。
4)測試報告管理
通過調(diào)用Library中python的xlrd和xlwt,自動生產(chǎn)測試報告模板,在測試過程中直接運行Log日志的輸出功能。
5)自定義腳本庫
自定義腳本庫如表1所示。
表1 自定義腳本庫Tab.1 Custom script library
根據(jù)設(shè)計的測試系統(tǒng),搭建實際的測試環(huán)境。在該測試系統(tǒng)中包括ATT、信號仿真測試儀。根據(jù)林業(yè)物聯(lián)網(wǎng)監(jiān)控系統(tǒng)的典型結(jié)構(gòu),測試環(huán)境如圖4所示。
圖4 自動化測試環(huán)境結(jié)構(gòu)Fig.4 Structure of automated test environment
ATT運行在計算機上,并在其上編寫、運行測試腳本。計算機與信號仿真測試儀相連,通過編程控制仿真測試儀中的各種傳感器,并采集傳感器的狀態(tài)。林業(yè)物聯(lián)網(wǎng)監(jiān)控APP安裝在手機上,手機通過云平臺獲取相應(yīng)的服務(wù);測試系統(tǒng)運行時,根據(jù)用例控制手機進(jìn)行相應(yīng)的操作,來實現(xiàn)對傳感器的控制。信號仿真測試儀連接傳感設(shè)備,模擬林業(yè)物聯(lián)網(wǎng)系統(tǒng)中的各種傳感器的感知電信號。
為了使自動化測試框架可以支持功能遍歷測試、系統(tǒng)穩(wěn)定性測試等類型的測試,可根據(jù)設(shè)計需求、應(yīng)用場景以及業(yè)務(wù)流程定義將測試按照業(yè)務(wù)流程、使用場景進(jìn)行測試用例設(shè)計。由于篇幅限制,下面僅以典型的林業(yè)物聯(lián)網(wǎng)應(yīng)用,選取火焰?zhèn)鞲衅鲌缶δ苓M(jìn)行測試用例的示例描述,測試流程如下:
(1)手機接入測試系統(tǒng),火焰?zhèn)鞲衅髟O(shè)備感知電路接口接入信號仿真儀,以便一同接入測試系統(tǒng);
(2)登錄防火監(jiān)控手機APP,并進(jìn)入正常使用狀態(tài);
(3)配置手機APP端的安防監(jiān)控;
(4)信號仿真測試儀模擬電信號發(fā)送測試命令,激勵火焰?zhèn)鞲性O(shè)備產(chǎn)生火焰報警信息;
(5)手機APP持續(xù)等待6 s(該時間以產(chǎn)品測試需求設(shè)定),如果在規(guī)定時間內(nèi)收到報警提示信息,報警功能測試成功;如果在規(guī)定時間內(nèi)超時或未收到報警提示信息,報警功能測試失??;
(6)在上述(2)~(5)過程進(jìn)行 N×24 持續(xù)操作測試,統(tǒng)計驗證火焰?zhèn)鞲衅鞯南到y(tǒng)可靠性;測試腳本示例如下:
通過已編寫的測試用例,開展7×24 h連續(xù)測試。測試結(jié)果表明在自動化測試中發(fā)現(xiàn)了長時間測試后出現(xiàn)的系統(tǒng)無響應(yīng)、報警信息丟失、手機端APP卡滯等系統(tǒng)功能及穩(wěn)定性問題。進(jìn)一步,可統(tǒng)計分析系統(tǒng)無響應(yīng)時間和次數(shù)以及報警信息的成功率、丟包率等,以便進(jìn)行日志追溯,協(xié)助廠家對系統(tǒng)的改進(jìn)。
本文提出并設(shè)計了一套適用于林業(yè)物聯(lián)網(wǎng)監(jiān)控系統(tǒng)的自動化測試系統(tǒng),該系統(tǒng)憑借自動化可重復(fù)性、測試效率高的特點,從林業(yè)物聯(lián)網(wǎng)監(jiān)控系統(tǒng)的設(shè)備閾到應(yīng)用域的功能可靠性進(jìn)行自動化測試,能夠解決人所不愿的重復(fù)性測試和人所不能的長時間壓力下的可靠性測試。通過自動化測試,可以發(fā)現(xiàn)林業(yè)物聯(lián)網(wǎng)監(jiān)控系統(tǒng)穩(wěn)定性、可靠性方面存在的不足以及問題,達(dá)到了自動化的測試效果,這對推動林業(yè)物聯(lián)網(wǎng)產(chǎn)業(yè)發(fā)展具有重要意義。
[1]羅捷.森林防火監(jiān)測系統(tǒng)的設(shè)計與實現(xiàn)[D].成都:電子科技大學(xué),2012.
[2]楊怡君,黃大慶.Android手機自動化性能測試工具的研究與開發(fā)[J].計算機應(yīng)用,2012,32(2):554-556.
[3]莫熹,趙方.一種數(shù)據(jù)模型驅(qū)動的軟件自動化測試框架[J].計算機工程,2009,35(21):78-81.
[4]楊怡君,黃大慶.Android手機自動化性能測試工具的研究與開發(fā)[J].計算機應(yīng)用,2012,32(2):554-556.
[5]孫雪芹,程紹銀,蔣凡.6LoWPAN協(xié)議一致性測試方法及儀表設(shè)計[J].計算機系統(tǒng)應(yīng)用,2012,21(9):97-102.
[6]全國信息技術(shù)標(biāo)準(zhǔn)化技術(shù)委員會.ISO/IEC 9646-3-1998信息技術(shù) 開放系統(tǒng)互連 一致性測試方法和框架[S],2011.
[7]劉昌平,范明鈺,王光衛(wèi),等.Android手機的輕量級訪問控制[J].計算機應(yīng)用研究,2010,27(7):2611-2613.
[8]羅志祥.森林防火及生態(tài)保護(hù)數(shù)字化物聯(lián)網(wǎng)監(jiān)測預(yù)警指揮系統(tǒng)淺析[J].森林防火,2013(1):38-41.