(中國信息通信研究院西部分院(重慶電信研究院),重慶401336)
林業物聯網監控系統通過物聯網技術將安防設備、智能終端、云服務的各種設備集成到一起,提供林業安防監控功能和手段,極大地提高了林業物聯網在森林防火過程中的便攜性。林業物聯網監控系統能夠通過手機或者平板電腦等便攜式設備上安裝的軟件對各林業安防設備進行配置、管理以及安防報警信息采集控制[1]。這種系統特點決定了系統集成規模廣、復雜度大,導致系統軟件測試越來越復雜。為了適應林業物聯網的規模化應用和產業化發展形勢,滿足各示范工程需要,必須對林業物聯網系統進行有效的應用測試,以提高林業物聯網在森林防火過程中的可靠性和安全性。通過對系統的自動化測試不僅能提高測試效率,更能準確地量化系統的功能指標[2-4]。毫無疑問,自動化測試技術將扮演關鍵角色。因此,開展對林業物聯網應用系統的自動化測試十分必要。
從林業物聯網監控系統結構來說,它的實際業務暴露出的是系統的應用域(智能手機)和設備閾(安防報警設備)。因此,要開展對林業物聯網監控系統的自動化測試,就需要把業務中的應用域和設備閾接入到自動化測試工具中,使被測系統形成一個端到端的業務閉環,就可以通過編寫測試用例來進行自動化測試。
根據ISO/IEC9646分布式測試方法模型[5-6],測試系統和被測系統是2個不同的實體,如圖1所示。系統通過N-1層服務于N層的協議數據單元進行信息交互。下測試器通過N-1層服務,把測試命令發送給被測系統或者接收被測系統的響應。上測試器通過接收下測試器發送的命令,激勵被測協議實現,使之做出響應動作,然后通過觀察點判決測試結果。

圖1 測試模型Fig.1 Test model
根據上一節的測試模型,整個測試系統中的自動化測試工具ATT(automated testing tools)是整個測試系統的核心,分別實現對應用域和設備閾的適配連接。在設備閾,需要下測試器對各個傳感設備進行適配以建立設備與ATT間的通信機制,實現同被測系統設備閾的信息交互。因此,需要在設備閾端設計信號仿真測試儀來進行協議數據信息交互。在應用域,通過USB的連接方式,把智能手機接入到ATT 中,通過 ADB(android debug bridge)工具[7]同智能手機建立通信機制,實現同被測系統的應用域的信息交互。
林業物聯網監控系統中具有紅外傳感器、煙霧傳感器、火焰探測器等多種傳感器[8]。因此,本測試系統中設計信號仿真測試儀,通過各個硬件電路信號,把各個傳感器設備接入到信號仿真測試中,構建設備閾的測試鏈路。然后通過ATT實現控制信號仿真測試儀來模擬仿真實現各個傳感設備的感知信號,以達到模擬觸發行為。信號仿真測試儀如圖2所示。

圖2 信號仿真測試儀Fig.2 Signal simulation tester
ATT是整個測試系統的核心,協調管理各個資源模塊,并提供測試腳本的編寫、運行環境。ATT方案包括測試資源管理和測試集管理兩大部分,為用戶提供一個可自定義的自動化測試策略和相應的測試腳本二次開發環境。系統結構如圖3所示。

圖3 系統結構Fig 3 System structure diagram
測試資源管理由設備管理、鍵值管理、圖像驗證3部分組成。
1)設備管理:對被測系統已接入設備進行配置管理。就林業物聯網應用來說,接入的設備管理為手機端的APP,不同的設備接入方式由于受到自身穩定性以及人為干預的影響使其狀態隨時可能發生變化,所以,設備管理中通過一個運行于后臺的設備監控進程是必要的,此進程監控設備狀態,并把監控到的設備狀態回傳到測試資源管理的圖形界面便能及時刷新設備狀態,以供用戶選擇判斷。
2)鍵值管理:在腳本運行時為了方便用戶使用全局變量,故在測試系統資源管理中提供了鍵值視圖用以管理用戶自定義的全局鍵值對。在鍵值視圖中定義的鍵名稱是唯一的,當用戶運行工程時,鍵值視圖中定義的所有鍵值對會注入到腳本運行中,用戶通過提供的編程接口(API),便能訪問之前在鍵值視圖中定義的鍵值。
3)圖像驗證:對被測的手機APP和PC機上的上位機軟件GUI進行圖片比對,通過對每一個驗證點信息進行區域截圖比較,把預置結果與實際響應結果進行圖片識別驗證,以便測試結果的判斷。
測試集管理由測試接口定義、測試日志、測試用例編輯、測試報告管理、直定義腳本庫5部分組成。
1)測試接口定義
對不同的測試設備,接入測試系統的方法不同。采用不同的接口定義,適配被測系統在測試用例的統一描述。通過調用各個接口函數內部連接關系來完成測試用例的描述與測試系統的信息交互控制。
2)測試日志
日志模塊實現對所屬信息的日志管理、保存、文件輸出等功能。通過測試日志,一方面記錄測試用例在執行過程中系統日志的監測,另一方面對每個測試用例的驗證點進行文件輸出,方便測試人員的后續分析。測試用例執行結束以后,以測試報告的形式提供給測試人員。
3)測試用例編輯
根據用戶測試需求,使用JavaScript或Python等腳本語言,編寫測試腳本,實現對被測需求的功能。
4)測試報告管理
通過調用Library中python的xlrd和xlwt,自動生產測試報告模板,在測試過程中直接運行Log日志的輸出功能。
5)自定義腳本庫
自定義腳本庫如表1所示。

表1 自定義腳本庫Tab.1 Custom script library
根據設計的測試系統,搭建實際的測試環境。在該測試系統中包括ATT、信號仿真測試儀。根據林業物聯網監控系統的典型結構,測試環境如圖4所示。

圖4 自動化測試環境結構Fig.4 Structure of automated test environment
ATT運行在計算機上,并在其上編寫、運行測試腳本。計算機與信號仿真測試儀相連,通過編程控制仿真測試儀中的各種傳感器,并采集傳感器的狀態。林業物聯網監控APP安裝在手機上,手機通過云平臺獲取相應的服務;測試系統運行時,根據用例控制手機進行相應的操作,來實現對傳感器的控制。信號仿真測試儀連接傳感設備,模擬林業物聯網系統中的各種傳感器的感知電信號。
為了使自動化測試框架可以支持功能遍歷測試、系統穩定性測試等類型的測試,可根據設計需求、應用場景以及業務流程定義將測試按照業務流程、使用場景進行測試用例設計。由于篇幅限制,下面僅以典型的林業物聯網應用,選取火焰傳感器報警功能進行測試用例的示例描述,測試流程如下:
(1)手機接入測試系統,火焰傳感器設備感知電路接口接入信號仿真儀,以便一同接入測試系統;
(2)登錄防火監控手機APP,并進入正常使用狀態;
(3)配置手機APP端的安防監控;
(4)信號仿真測試儀模擬電信號發送測試命令,激勵火焰傳感設備產生火焰報警信息;
(5)手機APP持續等待6 s(該時間以產品測試需求設定),如果在規定時間內收到報警提示信息,報警功能測試成功;如果在規定時間內超時或未收到報警提示信息,報警功能測試失敗;
(6)在上述(2)~(5)過程進行 N×24 持續操作測試,統計驗證火焰傳感器的系統可靠性;測試腳本示例如下:


通過已編寫的測試用例,開展7×24 h連續測試。測試結果表明在自動化測試中發現了長時間測試后出現的系統無響應、報警信息丟失、手機端APP卡滯等系統功能及穩定性問題。進一步,可統計分析系統無響應時間和次數以及報警信息的成功率、丟包率等,以便進行日志追溯,協助廠家對系統的改進。
本文提出并設計了一套適用于林業物聯網監控系統的自動化測試系統,該系統憑借自動化可重復性、測試效率高的特點,從林業物聯網監控系統的設備閾到應用域的功能可靠性進行自動化測試,能夠解決人所不愿的重復性測試和人所不能的長時間壓力下的可靠性測試。通過自動化測試,可以發現林業物聯網監控系統穩定性、可靠性方面存在的不足以及問題,達到了自動化的測試效果,這對推動林業物聯網產業發展具有重要意義。
[1]羅捷.森林防火監測系統的設計與實現[D].成都:電子科技大學,2012.
[2]楊怡君,黃大慶.Android手機自動化性能測試工具的研究與開發[J].計算機應用,2012,32(2):554-556.
[3]莫熹,趙方.一種數據模型驅動的軟件自動化測試框架[J].計算機工程,2009,35(21):78-81.
[4]楊怡君,黃大慶.Android手機自動化性能測試工具的研究與開發[J].計算機應用,2012,32(2):554-556.
[5]孫雪芹,程紹銀,蔣凡.6LoWPAN協議一致性測試方法及儀表設計[J].計算機系統應用,2012,21(9):97-102.
[6]全國信息技術標準化技術委員會.ISO/IEC 9646-3-1998信息技術 開放系統互連 一致性測試方法和框架[S],2011.
[7]劉昌平,范明鈺,王光衛,等.Android手機的輕量級訪問控制[J].計算機應用研究,2010,27(7):2611-2613.
[8]羅志祥.森林防火及生態保護數字化物聯網監測預警指揮系統淺析[J].森林防火,2013(1):38-41.