与传统仪表相比,全液晶仪表的控制系统需要实现液晶屏幕的驱动和图形的动态刷新,随着各类智能化信息的增加,嵌入式系统的逻辑运算要求也在不断的提高。对仪表软件的安全性,实时性和可扩展性也提出了更高的要求。
因此,全液晶仪表系统比传统仪表复杂很多,其中牵涉到的代码也比传统仪表有2个数量级的增多(运行时相关代码将从5-10万行增加到1000万行以上)。软件的Bug数量和代码行数是正相关的[1]。
KLOC(每千行的代码错误数)是基于统计学结果的,从软件工程的角度来说,软件很容易被证明有问题,而永远不能证明没有问题,如何使系统更稳定、容错性更好,除了在系统架构设计、开发上进行防护与白盒测试以外,系统测试层面也会提出更高更严苛的要求。
针对2个数量级复杂度的提升,如果还是用传统的人工测试,不仅在时间上满足不了系统开发周期的要求,对系统验证的可靠性上也是无法保证的。
但仅用通用的自动测试工具,又无法满足液晶仪表系统在安全要求高、定制化要求高、开发周期紧的特性。
友衷在16年已经就液晶仪表测试工具上做了大量的工作。针对液晶仪表的软件测试可以分为白盒测试和黑盒测试,主要包括:静态测试、动态测试、单元测试、代码覆盖度测试、集成测试、性能测试、压力测试等各种方法。以黑盒测试为例,到如今专用与液晶仪表测试的Test Suite自动化测试工具集已经成为量产流程上的重要守护。
IT子系统后台数据支撑
完整的测试套件构建,通过IT子系统管理整个项目需求管理、测试用例管理、测试任务分配、测试计划执行进度、测试报告输出,满足多任务、多设备同时测试。
丰富的测试用例
数千个专属的汽车液晶仪表测试用例,涵盖功能测试、显示测试、压力测试、模拟路试测试。其中压力测试可以自由的随机组合上述专属测试用例,使得最终表达给仪表的测试用例将达到数百万种。
7*24小时持续测试
可远程监控的不间断压力测试。通过Test Suite的 “报文风暴”反复执行重复性较高的操作,模拟各种压力测试,例如自动模拟上下电、点熄火等操作,此类操作需要反复执行几十万次,这种脏活累活完全可以放给Test Suite自动完成,执行的日志、结果都会自动保存在IT子系统的数据库中,最终生成的测试报告会包含这些自动保存的数据。
自行设置测试次数随机发送各个信号,通过远程监控串口信息、CAN/LIN报文、IO状态、实时画面等,以确保压力测试数据的准确性,提高测试准确率。
报文可视化
可视化图形界面或脚本方式运行测试。可以根据不同车型给出的不同信号源自动转换报文,报文CAN、LIN等总线信号转化成简单易懂的文字/图形界面,降低测试人员的能力要求和工作强度。
模拟全工况路试
支持目标环境和模拟真实驾驶环境的测试执行。Test Suite可以在不需要人工
干预的情况下自动模拟各种随机路况和模拟环境。
如:随机模拟路试7*24小时,路试期间系统随机模拟城市拥堵、路口等待交通标志、临时停靠、急加速、急减速、熄火加油、不熄火加油、半坡熄火。半坡启动等各种工况。自动将异常结果发送到测试工程师的手机报警。
历史回放
上述所有的测试过程,都有数据库记录。当问题出现的时候,可以通过回放历史记录的方式使问题尽快的再现。
小结:
全液晶仪表取代传统的指针式仪表,当然不会只是因为它的显示效果更炫酷。全数字汽车仪表是一种网络化、智能化的仪表,其功能更强大。
在如此复杂、丰富的需求下,“安全稳定”更是其中的重中之重。在友衷液晶仪表开发的每一个环节,都会把“安全稳定”放在首位。
注解[1]
KLOC(每千行的代码错误数)
a、业界平均值为15-50KLOC(每千行的代码错误数)
b、微软release标准为0.5KLOC
c、根据Mills等人提出的’ cleanroom development’模型,可以把发行代码的KLOC降到0.1。极少数的应用于宇航的软件,可以达到50万行零错误。
参考文献
[1]Code Complete: A Practical Handbook of Software Construction
[2]Cobb, R. H. and Mills, H. D. (1990). Engineering Software under Statistical Quality Control. IEEE Software,7(6), 44-54.