(中国信息通信研究院西部分院(重庆电信研究院),重庆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.