车载行驶记录仪软件性能测试工具设计与实现∗
2017-10-23宁先洪于嘉维王淑雪
宁先洪 于嘉维 王淑雪
(1北京中宏远达科技发展有限公司 北京 100094)
(2海军工程大学计算机工程系 武汉 430033)
车载行驶记录仪软件性能测试工具设计与实现∗
宁先洪1于嘉维2王淑雪1
(1北京中宏远达科技发展有限公司 北京 100094)
(2海军工程大学计算机工程系 武汉 430033)
根据车载行驶记录仪通过接口数据展现功能、性能(含资源消耗性)测试实施成本过高的特点,针对性地提出了基础数据不变键值递增的测试数据生成工具和陪试软硬件统筹配合的测试场景控制工具的设计理念。贯彻这些理念于车载行驶记录仪的测试设计过程,借助开发的专用软件测试工具,完成了记录仪的性能测试,显著缩短了测试周期,提高了被测软件的性能和可靠性。
测试数据生成;测试场景控制;嵌入式软件性能测试;嵌入式软件资源消耗性测试
Classnumber TP311
1 引言
车载行驶记录仪(简称记录仪)可实现对车辆行驶状态和车辆位置的实时监控,通过对记录仪所记录的行驶信息数据进行分析,可以掌控车辆的各种行驶状况,有利于防止驾驶员违章驾驶,遏制重大交通事故,提高车辆利用率,降低运行成本[1]。记录仪软件中包含有嵌入式软件,为验证软件功能、性能、可靠性等特性,常采用软件测试技术对软件进行测试。
软件测试是软件生命周期中的关键环节,是保证软件质量的重要方法[2],它作为一个决定性技术和软件工程的主要研究对象在各行各业中被广泛应用[3]。根据美国国家标准与技术研究所的统计报告指出,采用有效的软件测试手段可以使由于软件失效引起的经济损失减少到三分之二[4]。然而,软件测试作为最常用的软件验证技术却依然面临着巨大挑战。据统计,一般软件测试的花费占软件开发总成本的50%以上,所占时间和资源达到了40%~85%[5]。
实际项目中,为改善用户体验,降低售后维护成本,需要对记录仪进行充分的测试[6]。无论是从节约成本的角度还是从保证软件运行质量的角度出发,都需要面向实际问题研究并改进软件测试方法与技术[7~8]。
软件功能正确、健壮性强是执行性能(含资源消耗性)测试工作的前置条件,并不能说明该软件没有性能问题[9]。本文针对现有测试手段和方法的局限性,结合记录仪软件特性及性能测试过程中遇到的实际困难,从基础数据不变键值递增的测试数据生成和陪试软硬件统筹配合的测试场景控制二个方面进行软件性能测试工具设计与实现研究。
2 性能测试工具设计与实现背景
嵌入式软件是指依赖于硬件设备的内嵌软件,由于自身嵌入性、实时性、专用性、硬件依赖性、内存不丰富、I/O通道少等特点,嵌入式软件测试所用到的测试策略、方法和技术相比一般应用软件更为复杂[10]。记录仪软件正是一种用于监控车辆行驶状态和车辆位置的嵌入式软件。
性能测试一般是在功能测试和健壮性测试完成的基础上进行的[11]。完成记录仪软件的较为彻底的功能测试(通过软件测试辅助工具软件向记录仪接口注入正常数据实现)和健壮性测试(通过软件测试辅助工具软件向记录仪接口注入异常数据实现)以后,需要对记录仪展开性能测试。文献[12]中介绍了对车载行驶记录仪软件功能与健壮性测试工具的设计与开发,本文在此工具的基础上进行改进,开发对记录仪进行测试性能和资源消耗性能测试工具。
记录仪为黑匣子结构,与外界之间有以下涉及性能的交联方式:
1)通过RS232串口与上位机进行有线交联(已通过上位机与记录仪间串口通信模拟软件完成功能和健壮性测试),例如因数据积累而需要持续向上位机发送大量车辆行驶数据;
2)通过WiFi链路与无线数据接收器(简称接收器)进行无线交联(已通过接收器与记录仪间WiFi通信模拟软件完成功能和健壮性测试),例如因数据积累而需要持续向接收器发送大量车辆行驶数据;
3)通过移动通信GSM链路使用GSM短信与车场监控台站(简称监控台)进行GSM短信交联(已通过监控台与记录仪间GSM短信模拟软件完成功能测试和健壮性测试),在这种交联方式中,所有类型的短信均为实时发送,不存在数据积累现象。
记录仪软件没有GUI界面,无法用主流的第三方软件性能测试工具操作录制(以形成性能测试脚本)、性能测试脚本编程、数据池处理编程和性能测试脚本回放等技术手段对其进行性能测试。
记录仪具有自动保存6万公里或200天车辆行驶数据的技术能力要求。本文的研究目的是如何采用适当的黑盒测试技术验证此需求并对其进行充分的性能测试。
面向上述需求,本文在功能和健壮性测试工具的基础上设计了性能测试工具,以基础数据不变键值递增的测试数据生成和陪试软硬件统筹配合的测试场景控制,来克服当前记录仪性能测试中存在的困难,实现了测试过程的高效性和充分性。图1展示了采用本文方法的记录仪性能测试环境示意图。
图1 记录仪性能测试环境示意图
如文献[12]中所述,测试环境由寄主计算机、测试线缆和测试工装等多个专用软件测试工具组成:1)记录仪持续行驶数据注入软件用于实现基础数据不变键值递增的测试数据生成工作;2)记录仪长时间重复关机测试辅助软件用于实现陪试软硬件统筹配合的测试场景控制工作;3)导航数据录入软件用于形成导航数据样本;4)上位机与记录仪间串口通信模拟软件、接收器与记录仪间WiFi通信模拟软件、监控台与记录仪间GSM短信模拟软件和记录仪随车行驶轨迹数据标绘软件用于监测记录仪运行状态。
本文第3、4节详细介绍了记录仪持续行驶数据注入软件和记录仪长时间重复关机测试辅助软件的设计及实现方法。
3 基础数据不变键值递增的测试数据生成工具软件设计与实现
3.1 持续性测试数据生成需求
我们可以用人工携带记录仪驱车进行6万公里跑车试验的方法来验证记录仪具有自动保存6万公里行驶数据的技术能力,但是该方法试验周期过长,人力和财力消耗成本较高;同时试验过程中记录仪在野外出现问题不便于分析和修改,无法兼顾资源消耗性测试。
实际跑车试验条件难以实现,因此必须借助辅助工具软件完成这项测试工作。在文献[12]中在记录仪软件的功能和健壮性测试阶段已经开发了一些软件测试辅助工具软件[1],以此为基础进行渐进性设计是经济可行的。
3.2 持续性测试数据生成设计
为模拟记录仪行驶6万公里的场景,对记录仪的卫星定位模块输出的导航数据(为ASCII字符串,遵循NMEA0183,每秒一帧)进行了分析:导航数据包括当前时间、位置、航向、导航卫星的俯仰角和方位角;当前时间信息可以视为导航数据中的键值,其余信息为基本信息(记录仪可以在不同时间多次途经同一个地点,不可以同一时间位于不同的地点)。根据分析,对记录仪软件进行重复性测试时开发的导航数据回放软件进行功能改进:1)回放时,样本导航数据中的时间信息以指定时间为基准,以组为单位按秒递增,其余信息不变,校验数据重新计算,然后将数据经串口注入记录仪;2)添加样本导航数据持续重复回放控制功能,每次循环回放导航数据中的时间信息依次递增;3)记录仪随车行驶轨迹标绘软件(以下简称标绘软件)接收进程间消息,获取记录仪的当前时间、位置、速度和航向,将行驶信息标绘在地图上。
选择适当行车路线(含行车场景),使用导航数据录制软件录制记录仪从车场出发沿设定路线跑车后返回车场期间的导航数据,将此数据作为样本数据,启动导航数据回放软件,设定好回放次数后进行验证,观察记录仪是否具有自动保存6万公里行驶数据的技术能力。
为检查试验过程中记录仪工作是否正常,需对原有软件测试辅助工具软件进行适应性改进:
1)监控台与记录仪间GSM短信模拟软件向标绘软件发送进程间消息,告知记录仪上报的行驶信息,标绘软件将该信息标绘在地图上;
2)接收器与记录仪间WiFi通信模拟软件向标绘软件发送进程间消息,告知记录仪上报的行驶信息,标绘软件将该信息标绘在地图上。
3.3 持续性测试数据生成实现
根据持续性测试场景生成设计方案,开发了记录仪持续行驶数据注入软件,对原有软件测试辅助工具进行了适应性改进。
记录仪持续行驶数据注入软件可驱使记录仪不间断模拟行驶完6万公里路程(此过程中亦伴随性进行了记录仪软件的资源消耗性测试),期间可使用GSM短信模拟软件和标绘软件监测记录仪行驶状态,可挑选若干时间点使用串口通信模拟软件和WiFi通信模拟软件查询记录仪中的大量历史数据,检查记录仪输出的存量数据的正确性。
4 陪试软硬件统筹配合的测试场景控制工具软件设计与实现
4.1 测试场景控制工具需求
人工驱车携带记录仪连续进行200天的跑车试验会消耗大量的时间和资源,实际操作难度较大。因此,为验证记录仪具有保存200天行驶数据的技术能力就必须通过技术手段实现此测试场景,实际使用记录仪的场景如下:
1)驾驶员启动记录仪载车,记录仪接通电源后接收导航数据并开始工作;
2)记录仪载车驶近车场值班室,记录仪收到接收器WiFi信号;
3)记录仪载车驶离车场值班室,记录仪与接收器失去WiFi信号连接;
4)记录仪载车完成任务后返回,驶近过车场值班室,记录仪接收到接收器WiFi信号后向接收器报送当次车辆行驶数据;
5)记录仪载车驶离车场值班室回停车位,记录仪失去与接收器之间的WiFi信号连接;
6)记录仪载车熄火,记录仪断电。
4.2 测试场景控制工具设计
测试场景控制工具需要完成的与记录仪的实际使用场景相对应的工作有:
1)记录仪的适时上电与断电;
2)WiFi信号的适时出现与消失;
3)模拟记录仪行驶用导航数据适时注入记录仪;
4)接收器适时开始从记录仪接收车辆行驶数据。
所需陪试硬件如下:
1)记录仪输入电源;
2)无线路由器(为接收器与记录仪间WiFi通信模拟软件提供WiFi链路);
3)四口RS232串口控制继电器(控制记录仪电源和无线路由器电源的通断电操作);
4)记录仪接口线缆[10]。
须开发测试场景控制工具软件,统筹调度相关的软件和配试硬件协调工作:
1)通过RS232串口控制继电器(硬件),为记录仪上电与断电;
2)通过RS232串口控制继电器(硬件)为无线路由器上电与断电,模拟WiFi信号适时出现与消失场景;
3)通过复用和改进导航数据回放软件中的函数实现导航数据的按日生成和注入;
4)通过添加进程间消息控制接收器模拟器(即接收器与记录仪间WiFi通信模拟软件,其部署在计算机上通过网线连接无线路由器)启动或停止接收行驶数据,接收器与记录仪间WiFi通信模拟软件需做适应性改进;
5)统筹调度上述四条所描述各项事务。
4.3 测试场景控制工具实现
根据测试场景控制工具软件设计方案,在VC2010平台上开发了记录仪长时间重复关机测试辅助软件(简称开关机测试软件)。该软件在Windows7环境下运行,其主控界面如图2所示。
图2 记录仪长时间重复关机测试辅助软件主控界面
对开关机测试软件简要说明如下:
1)开关机测试软件通过记录仪串口号往记录仪中注入模拟导航数据;
2)开关机测试软件通过继电器串口号控制记录仪和无线路由器的适时通断电;
3)点击‘样本文件’按钮可选择导航数据样本文件,其中样本文件通过事先规划好跑车试验场景后使用导航数据录制软件录制后形成;
4)‘样本长’右侧编辑框的内容由开关机测试软件分析样本文件后自行填充;
5)‘循环结束前’右侧编辑框可设置启动无线路由器的时机,‘接收器运行’右侧编辑框可设置关闭无线路由器的时机;
6)‘循环(天)数’右侧编辑框可设置重复开关机次数,每次开机至关机模拟记录仪一天的运行(每天运行时长由样本文件时长确定),开关机测试软件将样本数据中的时间属性按日递增后注入到记录仪中;
7)‘起始日’右侧组合框可设置模拟数据的起始日期以避免与记录仪中的存量数据发生冲突;
8)开关机测试软件主界面下方列表框用于显示发往或从记录仪接收的数据;
9)开关机测试软件的运行日志界面,如图3所示。
图3 记录仪长时间重复关机测试辅助软件日志界面
进行重复开关机试验期间,可使用改进后记录仪随车行驶轨迹标绘软件、监控台与记录仪间GSM短信模拟软件、接收器与记录仪间WiFi通信模拟软件观察记录仪的工作状态,确认记录仪是否处于正常工作状态。
使用开关机测试软件可以验证记录仪是否具有保存200天行驶数据的技术能力,却无法对记录仪软件进行资源消耗性测试(因记录仪需反复上电和断电,相关资源被释放)。待试验完成后,可使用上位机与记录仪间串口通信模拟软件和接收器与记录仪间WiFi通信模拟软件查询记录仪中的大量历史存量数据,检查记录仪输出的大批量存量数据的正确性。
5 结语
本文针对记录仪软件性能测试过程中出现的测试场景实施成本过高的情况,针对性地提出了基础数据不变键值递增的测试数据生成工具设计理念、陪试软硬件统筹配合的测试场景控制工具软件设计理念,并针对性地开发了测试辅助工具软件,对记录仪功能和健壮性测试阶段开发的测试辅助工具软件进行了适应性改进。
借助这些测试辅助工具软件,测试人员对记录仪的性能进行了充分测试。经过测试,发现了记录仪功能和健壮性测试阶段的测试手段无法发现的性能问题,这些性能问题将在记录仪投入使用若干年后出现。
在记录仪的性能测试期间,附带发现了记录仪硬件本身存在的一些非确定性故障,对这些故障现象进行分析与修正,提高了记录仪硬件的可靠性。
[1]陈石平,杨晓明,史哲英.北斗车载行驶记录仪设计与实现[J].广西通信技术,2014,23(1):23-25.
[2]赵翀,孙宁编著,贲可荣主审.软件测试技术——基于案例的测试[M].北京:机械工业出版社,2011.
[3]盛云龙.基于组合覆盖的嵌入式软件测试平台研制[D].哈尔滨:哈尔滨工业大学硕士学位论文,2013.
[4]苏亭.基于覆盖准则的软件测试用例自动化生成方法的研究与实现[D].上海:华东师范大学硕士学位论文,2016.
[5]Christoph C,Yannis S,Tao X.DSD-Crasher:Ahybrid analysis tool for bug finding[J].ACMTransactions on Software Engineering and Methodology,2008,17(2):1-37.
[6]Mouheb D,DebbabiM,PourzandiM,et al.Model-Driven Architecture and Model Transformation[M].Berlin:Springer InternationalPublishing,2015:35-45.
[7]Cadar C,Dunbar D,Engler D R.KLEE:Unassisted and automatic generation of high-coverage tests for complex systems programs[C]//Proceedings of the 8thUSENIX Conference on Operating Systems Design and Implementation.San Diego,USA,2008:109-224.
[8]Anand S,E.K.Burke,etal.An orchestrated survey ofmethodologies for automated software test case generation[J].JournalofSystemsand Software,2013,86(8):1978-2001.
[9]Jiang G L,Wu J,Liu K,etal.Implementation and performance analysis of SDN controller[J].Journal of Southeast University,2014,35(3):313-318.
[10]蔡建平.嵌入式软件测试实用技术[M].北京:清华大学出版社,2010.
[11]孟祥丰.软件性能测试解析与优化[J].电子设计工程,2011,19(9):26-28.
[12]宁先洪,张献,王淑雪.车载行驶记录仪软件测试工具设计与实现[J].舰船电子工程,2017,50(7):152-155.
Design and Im p lementation of Software Performance Testing Tools for Vehicle Traveling Data Recorder
NING Xianhong1YU Jiawei2WANG Shuxue1
(1 Beijing ZHYD Technology DevelopmentCo.,Ltd.Beijing 100094)
(2DepartmentofComputer Science,NavalUniversity of Engineering,Wuhan 430033)
According to the features of vehicle traveling data recorder that show the function through the interface data and high costof performance test implementation(including resource consumption),puting forward the design concept that toolofgenerating testdatawith basic-data-the-same and increasing key and testing scene control tool of co-ordinateing hardwarewith software.The testdesign process of carrying out the idea to the vehicle traveling data recorder,using special software testing tools to complete the performance testing instrument,shorten the testcycle,improve the performance and reliability of the tested software.
test data generate,test scenario control,embedded software performance testing,embedded software resource consumption test
TP311
10.3969/j.issn.1672-9730.2017.09.018
2017年3月8日,
2017年4月21日
宁先洪,男,硕士,高级工程师,研究方向:测量设备、精密仪器。于嘉维,男,硕士研究生,研究方向:软件质量保证技术。王淑雪,男,硕士,工程师,研究方向:软件测试开发技术研究及实践。