软件测试技术在车载TBOX 项目中的应用
王敬丽
(中国电子科技集团公司第三十八研究所,安徽合肥230088)
摘要:为了在短期内完成车载远程信息终端(TBOX )软件的开发,同时保证软件的质量,提高用户满意度,提出了将静态测
试和动态测试相结合的测试方法。在编码阶段引入静态测试,采用测试工具分析和人工审查两种方式相结合,关注代码实现的细节。在系统测试阶段,采用黑盒测试方法,关注功能实现情况。实践表明从细节和整体这两个维度对软件进行测试,不仅提高了测试效率,同时也提高了TBOX 软件的质量。关键词:终端;静态分析;代码审查;台架测试;实车测试中图分类号:TP311
文献标识码:A
文章编号:1009-3044(2020)35-0069-02
开放科学(资源服务)标识码(OSID ):
Application of Software Testing Technology in Tbox Project WANG Jing-li
(The 38th Research Institute of China Electronics Technology Group Corporation,Hefei 230088,China)
Abstract:To complete the development of Telematics Box (TBOX)software in a short time,at the same time to ensure the quality of the software,improve customers ’satisfaction,a test method combining static test with dynamic test is proposed.In the coding phase,static testing is introduced,which combines test tool analysis and manual review to pay attention to the details of code imple⁃mentation.In the system testing stage,the black box test method is used to pay attention to the
function realization.Practice shows that testing the software from the two dimensions of details and the whole not only improves the testing efficiency,but also improves the quality of TBOX software.
Key words:TBOX;static analysis;code review;bench test;real vehicle test
随着车联网的发展,TBOX 作为车辆与平台信息交互的关键设备,其应用将越来越普遍。TBOX 通过CAN 总线获取整车信息,上传到TSP (Telematics Service Provider )平台,并且可通过手机App 实现对车辆的远程控制,TBOX 软件的质量好坏直接影响用户的体验。TBOX 广泛使用,对软件质量要求更高,软件测试是保证软件质量的一个重要环节。
软件测试的经典定义是在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。按照是否让被测软件运行分为静态测试和动态测试,两者相结合可有效提高软件质量。
1车载TBOX 工作原理
车载TBOX 通过CAN 网络实现与整车ECU (Electronic Con⁃trol Unit )交互,实时获取车辆的信息,如里程、电池电量、车速、位置以及故障信息等上传至平台,实现对车辆信息的查询、显示和存储;通过手机App 实现对车辆的远程控制,可以帮助用户远程打开车门、打开空调、车辆定位、远程充电
等,给用户使用带来方便;能够实现对车辆ECU 的OTA (Over-the-Air Tech⁃nology )升级,为整车厂升级软件提供便利;休眠唤醒,车辆熄火一段时间后,TBOX 和车辆其他ECU 进入休眠状态,此时终端
和其他ECU 的功耗较低,当出现唤醒信号如开车门,TBOX 进
入正常工作模式,该功能可以减少车辆电瓶电量的消耗;车辆发生碰撞触发安全气囊后,TBOX 会自动触发客户救援热线号码,自动上传车辆位置信息等至后台,让事故车辆和人员得到及时的救援。
2静态测试
静态分析是指在不运行代码的方式下,借助软件工具对源程序进行分析,如控制流分析、数据流分析、接口分析、表达式分析、复杂度分析等。它的特点是不实际执行程序,执行速度快、效率高,误报率也较高。
本项目使用Testbed 测试工具分析软件,LDRA Testbed 工具能够支持C/C++数千种条目的规则检测,包括MISRA C/C++,GJB5369等编码规范,是最早进入中国市场的静态分析工具,在嵌入式软件测试中广泛应用。Testbed 自动生成的报告有一定的误报率,需人工对每一条违反规则的情况进行排查,最终确定静态分析问题报告。静态分析一般能发现违反规则的情况如下:
1)数组越界访问;
2)函数返回局部指针变量;
收稿日期:2020-09-12作者简介:王敬丽(1990—),女,河北成安县人,研究生,从事软件测试工作。
3)使用未初始化的变量;
4)使用malloc函数申请内存后,未判定指针是否为空;5)内存泄露;
6)存在不可达代码。
代码审查采用人工读代码的方式进行审查,作为对静态分析的补充,主要检查代码执行标准的情况、代码和设计的一致性、代码逻辑表达的正确性、代码结构的合理性以及代码的可读性。依据代码审查单和软件详细设计文档,参考TestBed静态分析结果,对审查模块中复杂度高、扇入、扇出数高的模块,以及关键模块进行重点审查,代码审查采用Source Insight代码阅读工具。
通过静态测试,可有效提高软件开发的质量,减少在动态测试阶段出错的概率。
3动态测试
动态测试是使被测代码在真实环境或仿真环境下有控制地运行,检查运行结果与预期结果的差异,以发现其中的错误。采用黑盒测试方法,首先功能分解将一个功能项拆分成多个子功能,之后再对子功能采用等价类划分法、边界值分析法、猜错法等设计测试用例。一般在静态测试结束后进入,为了让软件开发与测试的效率尽可能最大化,动态测试分为两个阶段台架测试和实车测试。测试环境示意图如图1
所示。
图1软件测试环境示意图
1)台架测试
台架测试是在实验室利用计算机上的软件工具模拟测试TBOX的数据输入,查看TBOX的输出是否正确,
主要对数据上报、远程控制、休眠唤醒等功能进行模拟测试。使用CANTest 软件模拟整车数据发送报文到终端,登录企业管理平台,查看数据上报是否正确;手机App发送车控指令,如开空调、车门、车窗等,TSP后台收到后会发出请求指令到车载终端,使用CANTest软件查看终端输出的报文对应位变化是否与协议一致。模拟整车控制器(VCU)发送空调状态改变的报文,通过平
台查看终端上报结果。
图2CANTest软件监控报文变化
休眠唤醒功能通过接通或断开ACC电源线模拟实车钥匙状态,万用表串联接入电路,用于观察终端休眠后的静态电流,该功能影响整车的功耗,若车辆下电后终端不能正常休眠,将导致车上小电瓶亏电,车辆无法启动。对于该功能的测试,采用功能分解和等价类划分法设计测试用例,如表1所示。
表1休眠唤醒用例设计
2)实车测试
在真实的实车环境下,检验TBOX软件是否实现软件需求规格中规定的功能和性能要求。实车测试应充分考虑使用场景,车辆静止、充电、行驶状态,行驶测试还应考虑不同路况下(如高架、隧道、山区、高速等)和不同天气下(晴天、雨天)终端的稳定性,如数据上报、4G信号状态、GPS定位情况等。除了验证需求规定的功能外,测试用例应覆盖各种异常情况、误操作,比如需求中一个“远程升级”功能:终端连接上平台后,通过平台下发升级包(S19文件),终端自动完成升级更新为最新版本,以该功能为例描述测试用例设计策略。
S19文件每行S-record
的通用格式如下:
类型长度地址数据校验和
针对该功能项设计测试用例如下:
表2升级用例设计
测试发现问题有上报数据内容丢失、死机、车辆亏电、通信网络无信号、车控功能不稳定、手机状态未更新等,测试可以发现软件存在的错误,但不能保证软件没有错误,而是把错误控制在一个合理的范围内,减少软件发布后出现故障的风险。
4结束语
电动汽车的推广,车载TBOX大批量产对软件的可靠性要求越来越高。软件需经过严格测试,尽早地发现错误,才能减
(下转第80页)
图3资讯发布实现图
4.2酒店管理系统
用户可以查看酒店的信息,对酒店进行预订,我们使用一套独立的酒店管理系统。来管理酒店的SKU (具体的房间)和SPU (房间的类型),并可以进行添加,删除,查看订单等多项操作。实现图如图4所示:
$("#submitEditorBtn").click(function (){var text =html();$.ajax({
"url":"save/hotelItem","type":"post","data":hotelInfo,
});
图4酒店房间管理实现图
4.3后台管理系统
系统可以对网站的旅游信息进行管理操作、对网站的访问
量,用户的偏好,热门浏览记录进行统计。并通过图表的形式展示给网站的管理员,便于信息统计与分析。后台信息管理如图5
所示。
图5后台信息管理实现图
4.4信息的浏览
用户登录之后,可以在网站上面浏览信息,信息包含图片、视频、音频等多种多媒体方式。用户可以实现收藏、评论点赞等功能,浏览实现图如图6
所示。
图6浏览信息实现图
5结束语
目前,分布式系统架构是网站开发的常用架构[6],借助分布式的文件系统。能够有效地应对网络流量的冲击,并提供了良好的文件存取服务。构建了攀枝花康养旅游网站,能够促进攀枝花旅游产业的发展,增强攀枝花城市知名度。
参考文献:
[1]赵子晨,朱志祥,蒋来好.构建基于Dubbo 框架的Spring Boot 微服务[J].计算机与数字工程,2018,46(12):2539-2543,2551.[2]宋万洋.基于Dubbo 框架的分布式视频网站架构设计[J].软件导刊,2018,17(8):137-140.
[3]崔益彪,上官声标,曹骢腾,等.基于Dubbo 框架和生态构建O2O 新零售支撑体系[J].信息通信技术,2019,13(3):56-63.[4]石珊.云平台下基于FastDFS 的文件管理系统的研究与实现[D].成都:电子科技大学,2019.
[5]杨廷发,丁川芸,兰全祥.基于SSH 的二维码点餐系统的设计与实现[J].电脑知识与技术,2018,14(30):84-86.
[6]杨柳.基于Dubbo 的高校贫困生资助系统设计与实现[D].合肥:安徽大学,2019.
【通联编辑:谢媛媛】
(上接第70页)
少量产后的维护成本。本文介绍的车载TBOX 软件的测试方法,发现了软件代码和功能实现上的缺陷,
一定程度上提高了软件的可靠性。另外测试技术还需要进一步完善,同时测试人员也应深入了解TBOX 软件,才能有效地提高软件的质量。
参考文献:
[1]蔡建平,沈琦,谢会东,等.嵌入式软件测试实用技术[M].北京:
清华大学出版社,2010:123-164.
[2]柳纯录,黄子河,陈渌萍.软件评测师教程[M].北京:清华大学出版社,2005:6-175.软件测试app
[3]李志涛.车联网测试的研究与分析[J].汽车电器,2017(2):11-13.
【通联编辑:梁书】

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。