车载行驶记录仪软件测试工具设计与实现

2017-09-04 03:14宁先洪张献王淑雪
舰船电子工程 2017年8期
关键词:形象化记录仪软件测试

宁先洪张献王淑雪

(1.北京中宏远达科技发展有限公司北京100094)(2.海军工程大学计算机工程系武汉430033)

车载行驶记录仪软件测试工具设计与实现

宁先洪1张献2王淑雪1

(1.北京中宏远达科技发展有限公司北京100094)(2.海军工程大学计算机工程系武汉430033)

根据车载行驶记录仪通过接口数据展现功能的特性、测试场景难以复现、测试数据难以解读等特点,针对性地提出了:1)接口数据显式化的软件测试工具设计理念;2)考虑测试重复性的软硬件统筹设计理念;3)枯燥测试数据形象化的软件测试工具设计理念。贯彻这些理念于车载行驶记录仪软硬件设计和测试设计过程,针对性开发了专用软件测试工具。经过实际项目检验,开发的专用软件测试工具克服了记录仪测试固有困难,有效验证了被测软件的功能正确性、稳定性和可靠性,显著提高了软件测试效率与质量。

嵌入式软件测试;接口数据显式化;测试重复性设计;枯燥测试数据形象化

Class numberTP311

1 引言

车载行驶记录仪(简称记录仪)可实现对车辆行驶状态和车辆位置的实时监控,通过对所记录的行驶信息数据进行分析,可以掌控车辆的各种行驶状况,利用它可有效预防驾驶员违章驾驶,遏制重大交通事故,提高车辆利用率,降低运行成本[1]。为验证软件功能、性能、可靠性等特性,常采用软件测试技术确保软件质量。

软件测试是软件生命周期中的关键环节,是保证软件质量的重要方法[2~3]。根据美国国家标准与技术研究所的统计报告指出,采用有效的软件测试手段可以使由于软件失效引起的经济损失减少到三分之二[4~5]。然而,软件测试作为最常用的软件验证技术,时至今日它依然面临着巨大挑战。据统计,一般软件测试的花费占软件开发总成本的50%以上,所占时间和资源达到了40%~85%[6~8]。

实际项目中,为改善用户体验,降低售后维护成本,需要对记录仪软件进行充分测试。因此,无论是从节约成本的角度还是从保证软件运行质量的角度出发,都需要面向实际问题研究并改进软件测试方法与技术。

本文根据现有测试手段和方法的局限性,针对记录仪软件特性及测试过程中遇到的实际问题,主要从接口数据显式化、测试结果可重复性和枯燥测试数据形象化三个方面进行软件测试工具设计与实现研究。

2 测试工具设计与实现背景

嵌入式软件是指依赖于硬件设备的内嵌软件,由于自身特点,如嵌入性、实时性、专用性、硬件依赖性、内存不丰富、I/O通道少等原因,致使嵌入式软件测试所用到的测试策略、方法和技术相比一般应用软件差异较大也更为复杂,可以说嵌入式软件是各类软件中最难测试的一种[9~10]。记录仪软件正是一种用于监控车辆行驶状态和车辆位置的嵌入式软件。

记录仪为黑匣子结构,与上位机、无线数据接收器(简称接收器)、车场监控台站(简称监控台)、北斗/GPS导航卫星(简称导航卫星)等进行交联,具体如下:

1)依托上位机与记录仪间串口通信协议通过RS232串口与上位机进行有线交联;

2)依托接收器与记录仪间WiFi通信协议通过WiFi链路与接收器进行无线交联;

3)依托监控台与记录仪间GSM通信协议通过移动通信GSM链路与监控台进行GSM短信交联;

4)依托导航卫星下行信号与导航卫星进行无线交联(记录仪内置导航定位模块为货架产品,相关功能不列入主要考核,其测试工作随其它考核对象的测试工作进行)。

记录仪软件为嵌入式软件,没有见图知意的GUI界面,无法直接通过GUI界面对其进行功能测试,这无疑加大了测试难度。此外,当前测试手段大都难以准确复现测试场景,无法确保测试一致性,造成测试结果确认效率低;处理原始测试数据的方法也比较有限,不能提供直观显示,难以解读和分析。记录仪测试中的这些固有难点都制约着测试的效率与质量,成为测试工具开发需要解决的关键问题。因此,如何采用适当的测试方法与技术对记录仪的功能、接口和性能等进行充分测试成为一个值得认真研究的问题。

面向上述需求,本文设计了多个专用软件测试工具以实现接口数据显式化、测试场景可复现及测试数据形象化,来克服当前记录仪测试中存在的固有困难,确保了测试过程的高效性和充分性。图1展示了采用本文方法的记录仪测试环境示意图。

如图1所示,测试环境由多个专用软件测试工具(含其寄主计算机、测试线缆和测试工装)组成。其中:1)上位机与记录仪间串口通信模拟软件、接收器与记录仪间WiFi通信模拟软件和监控台与记录仪间GSM短信模拟软件用于实现接口数据显式化;2)导航数据录入软件和导航数据回放软件用于实现测试场景重复;3)记录仪随车行驶轨迹数据标绘软件用于实现测试数据形象化。

3 接口数据显式化设计与实现

3.1 接口数据显示化需求

记录仪通过RS232串口与上位机进行有线交联,通过WiFi链路与接收器进行无线交联,通过移动通信GSM链路与监控台进行GSM短信交互。记录仪所有的运行参数设置和车辆行驶数据采集与上报功能均通过与外界设备之间的交联接口的数据交互实现。

与拥有GUI操作界面的应用软件进行的软件测试(通过键盘与鼠标操作可执行大部分基本软件功能测试)不同,只能通过分析记录仪对外输出的数据观察各项功能的完成情况。

通用软件测试工具软件,如串口调试助手和网络调试助手可以分别从RS232串口和因特网口接收并保存记录仪对外输出的原始数据(二进制数据),对这些数据可根据相应协议进行人工逐项解析。在往记录仪注入数据以驱动其执行某项期望工作时,可根据相应协议由人工逐项组装成原始数据,经通用软件测试工具软件注入记录仪。根据相应协议解析(或组装)报文的工作进度缓慢,容易出错,可重复性差,无法大批量解析(组装)相关数据。

3.2 接口数据显式化设计

人工执行组装(或解析)接口数据的工作存在诸多局限,只能通过开发专用软件测试工具软件来完成这项工作。

借鉴可配置接口测试工具软件[11]设计理念,人工分析接口通信协议中各报文的结构特点,提炼通用数据类型(如char、int)和专用数据类型(如日期时间:使用4字节长整型表示,起始数值0表示1970年1月1日8:00),将报文结构写入报文结构配置文件。

所开发的专用软件测试工具软件实现以下功能:

1)读取报文结构配置文件形成报文结构队列,对报文中的专用数据类型做专门处理;

2)根据报文结构形成各报文所属项默认值文件(报文类型区分属性的值须人工填充),以备在报文加载和报文解析时使用;

3)从网口(或串口)接收数据,根据报文结构和报文类型区分属性值解析报文并显示;

4)可人工选择期望发往记录仪的报文类型,根据期望报文类型显示报文要素并填充默认值(测试人员根据测试需要人工填充必要报文项的值);

5)组装期望报文并通过网口(或串口)发往记录仪。

3.3 接口数据显式化实现

根据接口数据显式化设计方案,开发了:

1)接收器与记录仪间WiFi通信模拟软件(用于接收并解析和组装并发送符合接收器与记录仪间WiFi通信协议的数据);

2)监控台与记录仪间GSM短信模拟软件(用于接收并解析和组装并发送符合监控台与记录仪间GSM通信协议的数据);

3)上位机与记录仪间串口通信模拟软件(用于接收并解析和组装并发送符合上位机与记录仪间串口通信协议的数据)。

以上位机与记录仪间串口通信模拟软件(其余模拟软件与其类似)为例,该软件的主界面如图2所示。

其中:

1)标题栏下方为上位机与记录仪之间的串口连接参数设定等;

2)软件界面左下部为发送信息窗口:双击报文类型列表中的某一列选择准备发往记录仪的报文类型,发送报文内容列表区随之出现相应的报文内容(含默认值),双击发送报文内容的要素值列可编辑相应报文子项内容,点击‘发报文存默认值’可将待发报文内容存为默认值以备下次使用;

3)软件界面右下部为接收信息窗口:模拟软件实时解析收到的串口数据并在接收信息窗口进行显示,显示过程中对一些非直观的数据(如时间、经纬度)进行单位转换后填入相应备注列;

4)所发报文数据块长度值的自动填充:如果相应编辑框中未填值,则组装报文时根据报文结构自动填充正确数值;如果相应编辑框中已填值,则组装报文时不再自动填充数值,以便于填充错误数据块长度值进行健壮性测试;

5)所收报文数据块长度值的自动验证:如果所收报文中的数据块长度数值为错误值,则提示错误,并将错误信息存入运行日志文件;

6)所发报文校验要素值的自动填充:如果相应编辑框中未填值,则组装报文时自动计算并填充正确数值;如果相应编辑框中已填值,则组装报文时不再自动填充数值,以便于填充错误校验值进行健壮性测试;

7)所收报文校验要素值的自动验证:如果所收报文中的校验要素值为错误值,则提示错误,并将错误信息存入运行日志文件;

8)软件将发送和接收到的报文明细内容记录到运行日志文件中。

利用模拟软件的发送信息窗口可向记录仪中注入期望的数据以进行功能和健壮性测试;观察接收信息窗口中的显示可确认记录仪相应功能正常与否;利用运行日志文件可对所执行的软件测试工作进行回顾和做进一步分析。

模拟软件的使用将测试人员从繁琐的协议数据解析工作中解放出来,测试人员可将主要精力集中在业务数据的正确性上来,提供了部分测试数据的自动生成与校验数据计算手段,极大提高了测试效率,同时为健壮性测试提供了手段。

4 测试重复性设计与实现

4.1 测试重复性需求

为了复现问题或确认软件更改效果,测试人员需一遍一遍地进行跑车试验,即便沿同一条路线跑车,由于跑车路线的堵车情况、等待红路灯的情况、导航卫星的信号情况、驾驶速度的控制情况等方方面面的因素的影响,有些软件问题复现起来非常困难。测试重复性设计的目的就是精确复现曾经出现问题的场景,以便复现测试问题或确认问题是否得到改正。

4.2 测试重复性设计

记录仪主要通过接收并分析卫星导航定位模块输出的导航数据(遵循NMEA0183协议,含时间、位置、速度、航向等数据)来感知外界输入,影响记录仪测试场景再现的因素先影响了导航数据输出,经导航数据输出影响记录仪状态。基于上述分析结果,借鉴网络接口监控捕获工具[12]开发理念,确定测试重复性的设计思路是同步实时记录测试场景的数据,用回放的方法复现测试场景。

4.3 测试重复性实现

统筹相应的软硬件开发设计和软件测试开发设计工作,调整如下:

1)在电路设计上将记录仪的导航定位模块输出的导航数据输出至指定串口;

2)在上位机与记录仪间的串口通信协议中添加透明传输语句;

3)在记录仪嵌入式软件中添加透明传输语句处理功能(如收到导航数据,视同从卫星导航定位模块输入);

4)开发导航数据录制软件以录制记录仪指定串口输出的导航数据;

5)开发导航数据回放软件以将事先录制好的导航数据经串口注入记录仪。

上述调整工作落实后,记录仪跑车试验过程中可使用导航数据录制软件随时录制导航数据。需要时,录制好的导航数据可经导航数据回放软件的回放操作注入到记录仪中,实现测试场景复现。

测试重复性实现为记录仪软件测试问题的复现和修复后确认提供了测试环境支持,提高了软件开发和测试工作的效率,显著降低了项目研发成本。

5 枯燥测试数据形象化设计与实现

5.1 枯燥测试形象化需求

测试人员可从多个渠道获取车辆行驶数据:1)上位机通过串口可查询记录仪中的各种车辆行驶存量数据;2)记录仪返回车场后主动向接收器上传车辆行驶数据;3)接收器可从记录仪采集期望时段的车辆行驶数据;4)记录仪通过GSM短信实时向监控台报送车辆行驶数据。

车辆行驶数据中包含统计、轨迹、违规、事故疑点等相关数据(含经纬度、时间和描述等相关信息),这些数据除经纬度外不难判断其正确性。

经纬度数据(如:东经116.253952°,北纬40.064071°)很难与我们日常生活中途经的地点进行形象化关联,因而也不好对其正确性进行判定。形象化设计的目的就是能将所有这些数据直接标注在地图上。

5.2 枯燥测试形象化设计

车辆行驶数据的地图标绘软件设计方案如下:

1)批量下载指定地区指定比例尺的百度地图瓦片图(即256×256像素图)数据;

2)对初始显示窗口内需要显示的瓦片图进行拼接显示;

3)实现地图加载、放大、缩小、漫游时显示窗口内瓦片图拼接显示和经纬度数值纠偏;

4)对车辆行驶数据文件路径选择输入;

5)在显示窗口标绘驾驶违规(或事故疑点)时的位置,标注相应描述性信息;

6)在显示窗口标绘车辆行驶轨迹的点并连线,并标注相应描述性信息。

5.3 枯燥测试形象化实现

根据枯燥数据形象化设计方案,开发了记录仪随车行驶轨迹数据标绘软件(简称标绘软件),同时为各接口测试软件添加了从运行日志中提取位置数据的功能,某时间段监控台收到的记录仪通过GSM短信以等距离方式上报的行车轨迹如图3所示。

图3 显示的示例数据中,此段行车轨迹数据为等距离报送,从地图上可以形象地看出六里屯南路和亮甲店路交叉口往南路段的行车轨迹数据中遗漏一包数据(每包轨迹数据含8个位置点)。通过记录仪随车行驶轨迹数据标绘软件,可形象地查看并判断各类车辆行驶数据(如轨迹、违规、事故疑点)位置属性数据的正确性,解决了经纬度数据难判对错的难题。

6 结语

本文针对记录仪软件测试过程中出现的接口数据人工难以分析、某些跑车试验场景难以复现、枯燥测试数据难以形象化分析等情况,针对性提出了接口数据显式化的软件测试工具设计理念、软硬件设计时考虑测试重复性的测试驱动设计的软硬件统筹设计理念、枯燥测试数据形象化的软件测试工具设计理念,并针对性开发了专用软件测试工具软件。

在专用软件测试工具软件(通用测试软件,如串口调试助手和网络调试助手仅在专用软件测试工具软件开发和测试阶段发挥了一定作用)的支撑下,测试人员按照测试用例对记录仪的功能性和健壮性进行了充分测试。经过测试,记录仪软件的功能性、稳定性和可靠性得到较大提高,与接收器软件和监控台软件一次性联调成功,批量交付用户后至今未发现问题级别在一般(含一般)之上的问题。

[1]陈石平,杨晓明,史哲英.北斗车载行驶记录仪设计与实现[J].广西通信技术,2014,(1):23-25

[2]孙宁,刘丹.装备软件接口测试自动化研究[J].舰船电子工程,2014,34(07):152-155.

[3]张靖,贲可荣,罗云锋.软件测试研究综述[J].计算机与数字工程,2008,36(10):78-82,93.

[4]盛云龙.基于组合覆盖的嵌入式软件测试平台研制[D].哈尔滨:哈尔滨工业大学,2013:3-9.

[5]贲可荣,何智勇.软件工程——基于项目的面向对象研究方法[M].北京:机械工业出版社,2009:160-177.

[6]苏亭.基于覆盖准则的软件测试用例自动化生成方法的研究与实现[D].上海:华东师范大学,2016:1-3.

[7]Antonia Bertolino.Software testing research:Achieve⁃ments,challenges,dreams[C]//2007 Future of Software Engineering,Washington,2007:85-103.

[8]ChristophCsallner,YannisSmaragdakis,TaoXie.DSD-Crasher:A hybrid analysis tool for bug finding[J]. ACM Transactions on Software Engineering and Methodol⁃ogy,2008,17(2):1-37.

[9]蔡建平.嵌入式软件测试实用技术[M].北京:清华大学出版社,2010:1-5.

[10]李伟,程朝辉.嵌入式软件测试策略研究[J].北京化工大学学报,2007,34(1):43-46.

[11]高翔飞,赵星汉,张倩倩等.基于XML的可配置接口测试工具设计与实现[J].指挥信息系统与技术,2015,6(6):28-32.

[12]黄美锋,张毅彬.分布式应用软件接口测试分析技术[J].计算机工程,2008,34(9):63-65.

Design and Implementation of Software Testing Tools for Vehicle Traveling Data Recorder

NING Xianhong1ZHANG Xian2WANG Shuxue1
(1.Beijing ZHYD Technology Development Co.,Ltd,Beijing100094)(2.Department of Computer Science,Naval University of Engineering,Wuhan430033)

Aiming to resolve the hardness to reproduce test scenarios and the non-intuitiveness of test data and function ex⁃pressed by interface data of vehicle traveling data recorder,proposed:1)the design concept of software testing tools for interface da⁃ta visualization.2)the overall design concept for test repeatability during software/hardware tests.3)the design concept of software testing tools for raw test data imaginable.With the utilization of these design concepts in software and hardware and testing design of vehicle traveling data recorder,special software testing tools are developed.With the help of these tools,the testing efficiency and functional integrality,stability and reliability of the tested software have been significantly improved.

embedded software testing,interface data visualization,test repeatability design,raw test data imaginable

TP311

10.3969/j.issn.1672-9730.2017.08.023

2017年2月13日,

2017年3月10日

宁先洪,男,硕士,高级工程师,研究方向:测量设备、精密仪器。张献,男,博士研究生,研究方向:可信信息系统、软件质量保证。王淑雪,男,硕士,工程师,研究方向:软件测试开发技术研究及实践。

猜你喜欢
形象化记录仪软件测试
软件测试方向人才培养“1+X”融合研究
自主核级无纸记录仪产品发布会在上海召开
浅谈消防执法记录仪在实际工作中的应用
基于OBE的软件测试课程教学改革探索
航天软件测试模型构建与应用
做梦记录仪
学诗2
记录仪
关于 Web 应用系统的软件测试的研究