赵 旭,谷博涛,王 焱(交通运输部科学研究院,北京 100029)
高速公路电子不停车收费系统仿真测试实践
赵旭,谷博涛,王焱
(交通运输部科学研究院,北京 100029)
为测试验证高速公路电子不停车收费系统是否满足用户需求,提出了一种新的仿真测试方法和工具。对高速公路电子不停车收费系统运行环境进行建模,通过交通仿真模拟测试用例场景行为,基于传感器仿真模型生成测试数据,对部署在等效虚拟机环境上的被测系统实施测试。以某省真实高速公路不停车收费系统作为应用案例进行测试,试验结果表明,仿真测试有效地验证了被测高速公路电子不停车收费系统的功能和性能指标,且测试过程无需使用任何传感器及车辆等设备,有效降低了测试成本,测试工具操作便捷易用,可实现自动或半自动化测试,提高了测试效率。
交通信息化;软件测试;建模仿真;高速公路电子不停车收费系统;交通物联网;仿真测试工具
第1卷 第1期|2015年2月
电子不停车收费系统(Electronic Toll Collec⁃tion System,简称ETC)是利用车辆自动识别技术(Automatic Vehicle Identification,简称AVI)、专用短程通信技术(Dedicated Short Range Communica⁃tions,简称DSRC)并配合车道控制终端和收费管理中心实现的不停车自动收取道路通行费的交通信息系统[1]。相比于传统人工收费系统,ETC系统具有缓解停车收费拥堵、降低收费管理成本、提高服务水平的优势。目前,我国正在大力发展并推广高速公路ETC系统,但在应用实践过程中也存在诸如扣费错误、无法跨省收费等一系列问题,因此,有必要对高速公路ETC系统进行测试验证,以确定系统是否与应用需求一致,进而保证其上线质量。
测试ETC系统,除了要对其硬件设备,如路侧单元(Road Side Unit,简称RSU)、车载单元(On Board Unit,简称OBU)、射频识别单元(Ra⁃dio Frequency Identification,简称RFID)等进行出厂测试[2]、电子兼容性测试[3]、DSRC协议测试[4]外,更重要的是需要对系统整体进行测试验证,例如在不同车辆、不同交通环境下对系统整体进行功能或性能测试。然而,从技术角度看,ETC系统属于典型的物联网技术在智能交通系统中的应用,它嵌入式、网络化、大规模的技术特征也给其系统测试带来了新的困难和挑战。传统的系统测试方法常需在实际中使用ETC测试平台[5-6],但测试平台需要购买、部署并安装支持ETC系统运行的各种硬件设备和交通车辆,测试成本过高。同时,若在真实的生产环境下进行测试,可能会给现有运行的ETC系统带来潜在的安全风险。
为解决上述问题,本文提出一种针对高速公路ETC系统的仿真测试方法,设计实现了相应的仿真测试工具(该测试工具已获软件著作权专利,专利号为2014SR185734),并以某省高速公路ETC系统测试为应用案例对仿真测试方法和工具的有效性进行了验证。
1.1高速公路ETC系统简介
从技术实现的角度,高速公路ETC系统利用专用短程通信技术或非接触式的射频识别技术,通过安装在高速公路出入口收费站上的路侧单元RSU 或RFID读卡器,自动识别安装有车载单元OBU或RFID标签的通行车辆,并自动完成通行扣费、抬杆通车、路径识别、账单查询、收费管理、银行结算等功能。目前,我国已制定并发布了收费公路联网电子不停车收费技术要求标准[7]。下面对高速公路ETC系统进行简介。
高速公路ETC系统体系结构如图1所示。
图1 高速公路ETC系统体系结构
由图1可知,高速公路ETC系统是典型的分布式系统,数据中心为服务器端,车辆注册子系统及收费站/标识站为其客户端,其中标识站架设在高速公路高架桥上。收费站车道程序是典型的嵌入式系统,除与路侧单元RSU或RFID读卡器通过网口或串口连接外,还通过专用的IO板控制车道设备,如栏杆、雨棚、交通灯等。路侧单元RSU或RFID读卡器通过专用短程通信或无线射频与安装在通行车辆上的车载单元OBU或RFID标签实现通讯。
1.2高速公路ETC系统运行环境仿真建模
为实现对高速公路ETC系统的仿真测试,需对其运行环境仿真建模。ETC系统运行环境模型包括两部分:一是交通场景仿真模型;二是传感器仿真模型。
交通场景仿真模型类似于传统的微观交通仿真模型,选择Groovenet仿真工具[8]来实现。在本次仿真中,首先在该省真实场景OpenStreetMap格式地图[9]中标记收费站位置,其次设计并实现交通仿真场景模型文件,例如对仿真车辆从第一个站点(入口收费站)出发驶向其余不同站点(出口收费站)的设置,其可视化仿真界面如图2所示。
图2 交通仿真运行可视化界面
传感器仿真模型主要描述被测系统中使用传感器的数据结构和逻辑行为,可通过传感器建模描述语言SensorML[10]来定义。对于高速公路ETC系统,传感器设备包括车载单元OBU或RFID标签、路侧单元RSU或RFID读卡器,其仿真模型规格编辑界面如图3所示。
图3 车载和路侧传感器仿真模型规格编辑界面
对于车载传感器仿真模型,试验中考虑的测试用例包括不同类型的车辆,如普通车、公务车、冻结车辆、余额不足车辆等,测试其在通过收费站时的行为是否符合预期。不同类型车辆对应于不同的OBU或RFID标签号,因此将标签类型及其编号作为车载传感器仿真模型的输入项。行为逻辑和交互接口均通过脚本函数定义,其中,行为逻辑函数根据预先定义的故障模型将输入数据转换为传感器输出数据,并根据测试用例设置了路侧传感器接收数据不完整的故障模型;交互接口函数用于交通场景仿真模型识别和传感器仿真模型调用。对于路侧传感器仿真模型,其目的在于为不同编号的收费站程序指定不同的接收数据端口号。
为便于对高速公路ETC系统进行仿真测试,设计并实现了仿真测试工具,并将其推广至针对交通物联网系统的软件测试工具。
从功能角度,仿真测试工具能够实现:①在交通物联网系统运行环境不完整或不可用的情况下依然实可施测试;②可视化显示系统拓扑结构及其测试运行状态和结果;③在同类系统测试过程中快速复用传感器仿真测试桩模块。这里所谓“运行环境不完整或不可用的情况”,是指被测的交通物联网系统在尚未接入传感器设备,或接入的传感器难以模拟大规模或极端条件下数据输入的情况。
测试工具支持并更适用于:①模拟正常或异常环境条件下的软件功能测试;②交通物联网系统多传感器负载压力测试;③上述功能和性能测试的回归测试验证。
从实现角度,仿真测试工具按模块可划分为四个部分,分别是:传感器仿真模型创建与管理、数据采集场景可视化建模与编辑、软硬件数据交互控制、测试执行与管理(例如测试执行与状态监测、测试结果分析与导出等)。系统基本模块及其相互关系如下页图4所示,其中各模块的技术特征如下。
(1)传感器仿真模型使用自定义裁剪的Sen⁃sorML语言[10]建模。SensorML是由开放地理组织(OGC)定义的用于描述通用传感器模型的可扩展标记语言,结合交通行业特征和测试需求,实现其中关于数据结构和行为逻辑定义部分的子集。
(2)场景可视化建模与编辑选择第三方QT 库[11]编写。QT是一种支持多种编程语言、跨平台的应用程序开发框架,常用于GUI界面的开发,项目主要实现在GUI界面中进行二维模型可视化与编辑的功能。
(3)测试及数据交互框架选择在STAF框架[12]基础上扩展。STAF框架是一个支持多种编程语言、跨平台的分布式测试框架,提供远程通信管理、时间/事件驱动等多种服务和功能。
(4)测试脚本选择Python语言[13]编写。Python是一种运行在不同平台的脚本编程语言,具有用户数量多、易于掌握、简洁高效、丰富的第三方库等优点。
图4 交通物联网仿真测试工具模块及原理示意图
3.1试验设计
为验证本文提出的仿真测试方法和工具的有效性,选择真实的交通物联网系统——某省高速公路不停车收费系统作为被测系统。该ETC系统同时支持安装有国标OBU标签或无线射频RFID标签的车辆通行,可与人工收费系统MTC协同运行,支持不同类型车辆的灵活收费策略。性能方面,相比人工收费系统平均8s的出票时间,ETC系统可大幅提高车辆通行能力4~6倍,收费站收集所辖车道产生的收费数据时间小于0.5s,允许车辆以至少20km/h的速率通行收费站。
试验主要关注被测ETC系统整体软件功能的正确性以及被测系统运行环境性能指标。具体使用交通物联网仿真测试工具执行测试的试验步骤有以下三个。
步骤1:测试准备。为避免测试影响生产环境安全,将被测系统软件部署在相同配置的虚拟机上,并设置相关配置文件。试验中,在服务器虚拟环境中分别部署1套数据中心程序、1套入口收费站程序、3套出口收费站程序。
步骤2:测试设计。包括设计高速公路ETC系统交通场景仿真模型、车载和路侧传感器仿真模型以及测试脚本。
步骤3:测试执行。运行交通物联网仿真测试工具,输入设计完成的交通场景仿真模型、传感器仿真模型、测试预言和测试脚本。设置交通仿真运行参数和测试数据生成策略,执行仿真测试自动生成仿真测试数据。执行测试脚本,将仿真测试数据输入被测系统,并收集其输出信息和状态信息,与测试预言对比生成测试结果。
3.2结果分析
测试执行过程中,交通物联网仿真测试工具的主界面如图5所示:左上方的“测试执行管理”区域实现测试输入管理和测试执行控制功能;右上方的“仿真测试控制”区域实现了交通物联网仿真和测试设置相关功能;左下方的“测试执行过程”区域用于输出测试中间过程和结果信息;右下方的“被测系统状态”区域将输出被测系统的性能数据,包括CPU占用率和内存占用率。
图5 交通物联网仿真测试工具运行主界面
在输入仿真模型并完成参数设置后,点击仿真测试控制“运行”按钮,弹出交通仿真可视化界面,如图2所示。按照设定的场景仿真,三台仿真车辆从起始站点出发驶向另外三个收费站。仿真车辆在经过仿真收费站时,产生收费交易通行的仿真事件,仿真事件中包含根据测试策略生成的仿真测试数据。为避免仿真运行时间过长,可通过仿真时间变速因子加快生成仿真测试数据。
在执行测试脚本后,测试脚本根据收费交易通行仿真事件将仿真测试数据按照约定的接口形式自动发送至被测系统,即高速公路ETC系统的入口、出口收费站程序。通过分布式测试框架STAF收集被测系统输出和被测系统状态,其中,被测系统的输出数据用于与规格说明测试预言对比并得出测试结论,被测系统状态信息反映了被测系统执行测试过程中的运行情况。最终,试验设计的测试用例执行结果如表1所示。
表1 试验设计测试用例执行结果
表1 (续)
由表1测试结果可知,试验设计的7条用例有两条未能通过。通过进一步分析得知,被测的高速公路ETC系统未能支持OBU类型标签车辆通行的原因是其客户端版本未及时更新,替换最新版本客户端程序后该用例通过。对于最后一条用例,通过故障模型设置传感器接收不完整数据后,收费站仍有一定几率允许通车的原因是收费站程序并没有对数据所有字段(如时间、LRC码字段)校验。当数据不完整故障出现在非报头、标签等其他字段时,程序允许该车辆通过收费站,为此需要进一步完善修正其收费站程序的数据校验功能。
通过交通物联网仿真测试工具可进一步改变交通行为逻辑,进而实现对其他交通场景情况的测试。通过仿真测试发现,被测的高速公路ETC系统无法对同一车辆重复通过同一收费站、同一车辆在很短时间范围内通过两个相距较远收费站的情况识别并报警。
此外,仿真测试工具可监测被测系统运行环境的性能指标,如图6所示。由测试执行过程中的监测结果可知,在试验设定的仿真测试场景下,数据中心服务器运行环境的内存占用率一直超过60%以上,分析原因是数据中心在部署Oracle数据库后3Gb内存配置略显不足,建议提高数据中心服务器的内存配置。其余客户端运行环境的CPU和内存占用率均在合理范围内。
图6 被测系统运行环境CPU和内存占用率
除了可有效发现被测的高速公路ETC系统的上述系统级软件缺陷外,在整个仿真测试过程中,测试人员无需部署任何硬件(如车载或路侧单元)、交通工具,有效降低了测试人力、物力的成本投入。仿真测试也无需在真实环境下执行,避免了测试影响生产环境安全的责任和风险。交通物联网仿真测试工具提供了便捷统一的操作界面,测试人员只需关注被测系统的仿真环境建模、测试用例设计和脚本实现等工作,即可自动或半自动化地完成测试工作,更便于诊断系统故障,提高了系统测试效率。
本文提出了一种针对高速公路ETC系统仿真测试的方法,在此基础上实现了交通物联网仿真测试工具,并以真实被测系统——某省高速公路ETC系统为应用案例,试验验证了仿真测试在降低测试成本、保障测试过程中生产环境安全、发现被测系统软件缺陷等方面的优势。文中所提出的方法和工具在交通行业信息化质量保障工作中具有推广的实用价值。
[1]刘志伟,程琳.不停车收费系统(ETC)的概况研究[J].科技创新导报,2008(2):11.
[2] 刘国强.OBU出厂前测试方法及流程简析[J].中国交通信息化,2012(8):70-71.
[3]张北海.联网环境下电子收费系统的兼容性[J].公路交通科技,2003,20(4):109-113.
[4]沈进,张卫,熊鹏.OBU设备DSRC协议一致性测试技术[J].计算机工程,2009,35(10):248-250.
[5]张茗红.电子不停车收费系统设备控制研究[J].中国防伪报道,2009(3):48-50.
[6] 潘勇,王荣.国标体系下ETC区域联网测试方案探讨[J].中国交通信息产业,2009(11):108-109.
[7]交通运输部公路科学研究院.收费公路联网电子不停车收费技术要求[M].北京:人民交通出版社,2011.
[8]Mangharam R,Weller D S,Rajkumar R,et al.GrooveNet:A Hybrid Simulator for Vehicle-to-Vehicle Networks[C]// Second International Workshop on Vehicle-to-Vehicle Com⁃munications.San Jose,USA:IEEE,2006:1-8.
[9]Haklay M,Weber P.OpenStreetMap: User-Generated Street Maps[J].Pervasive Computing,IEEE,2008,7(4):12-18.
[10]开放地理空间实验室.OGC与OGC标准[EB/OL].(2014-05-11)[2014-11-28].http://lab.osgeo.cn/7139.html.
[11]Blanchette Jasmin,Summerfield Mark.C++GUI Qt 4编程[M].闫锋欣,曾泉人,张志强,等,译.北京:电子工业出版社,2013.
[12]Rankin C.The Software Testing Automation Framework[J]. IBM Systems Journal,2002,41(1):126-139.
[13]Turnquist G L.Python Testing Cookbook[M].Birmingham, UK:Packt Publishing,2011.
Simulation Testing for Expressway Electronic Toll Collection System
ZHAO Xu,GU Bo-tao,WANG Yan
(China Academy of Transportation Sciences,Beijing 100029,China)
In order to test whether the expressway ETC(Electronic Toll Collection)system meets the us⁃ers′requirement,a new simulation testing method and tool was proposed.The ETC system runtime envi⁃ronment was first modeled to simulate traffic behaviors and generate test data from simulated sensors. Then the ETC system was tested on the equivalent virtualization environment.Experiment on the realworld ETC system shows that the simulation testing method can effectively test the ETC system without deploying any devices.The simulation testing tool can be easily used to support test automation,and can reduce the cost and improve the efficiency of test.
traffic informatization;software test;simulation of environment model;expressway ETC (Electronic Toll Collection);internet of things;simulation testing tool
U495
B
2095-9931(2015)01-0066-06
10.16503/j.cnki.2095-9931.2015.01.012
2014-12-01