0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于模糊测试方法实现车载通信测试

北汇信息POLELINK 2022-09-15 11:09 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

作者 | J小编 | 吃不饱模糊测试是网络安全测试领域必然会被提及的一类测试方法。它有着极其鲜明的特点,包括极低的需求依赖性、可逆向的测试理念等,与常规测试方法显得是那么的“风格迥异”。但同时,这种测试方法又常常能发现一些核心、严重的BUG,因此其在整个测试体系中有着重要的地位,且这种测试方法也已“润物细无声”地融入到我们的测试活动中了。本次就为大家介绍如何在车载通信领域运用模糊测试。

1

什么是模糊测试

模糊测试的整体测试思路非常简单,给待测系统输入“随机值”,然后监测是否出现异常。
bcd20ecc-346d-11ed-9ade-dac502259ad0.png图1 模糊测试示意图这个过程中有这样几个特点:

1

/ 随机值

随机值可以是正常的数据,也可以是非预期的数据,通常可以通过变异(篡改原有数据)和生成(通过规则伪造数据)来获得。且整个测试不是找几个随机值来做测试,而是不断地输入大量的随机值(可以理解为无穷尽)来做长时间的持续测试。

bce24332-346d-11ed-9ade-dac502259ad0.png

图2 功能性测试与模糊测试对比

2

/ 监测异常

正是由于待测系统可能接收处理非预期数据,因此其会有各种各样的表现。而异常表现可以是服务停止、程序崩溃,也可以是资源过载、数据丢失。

3

/ 自动化

每个测试轮次都是给定输入然后监测异常,而对于模糊测试来说,这样的轮次需要执行非常多的次数,甚至可以永无止境,所以自动化是基本必须要实现的内容。

2

模糊测试运用到车载通信

虽然模糊测试在车载通信测试中很少被单独拿出来,但实则我们在很多的测试中使用了这种方法。比如:

CAN通信测试中的高负载测试

对CAN通信注入特定的报文,形成期望的负载条件,然后监测是否有异常。这个测试中的随机值变量为负载率和产生负载的报文ID,异常的判断可能包括错误帧、通信恢复等,这就形成了一个高负载模糊测试。

网络管理中的休眠唤醒测试

控制器休眠的各个时刻触发唤醒事件,然后监测是否正常唤醒。这个测试中随机值变量是时序,即唤醒事件的触发是在什么时刻,异常的判断是唤醒行为,这就形成了一个休眠唤醒时序模糊测试。


这里举的2个例子比较特别,想要说明的是我们提及的随机值并不仅仅是协议字段或者信号数值这种很容易联想到的数据,还包括各种状态值(如负载率、吞吐量、频率等)、时序(如休眠唤醒过程、TCP连接的三次握手、诊断服务的解锁交互等)等数据。尤其是时序,通常是有一连串的步骤,这一过程中不仅可以将每一步的间隔时间用作随机值,还可以在各个步骤本身“大做文章”,比如每一步再耦合随机信号值。
概括起来就是万物皆可数据化,数据皆可随机化,这或许是模糊测试的核心思想。结合车载通信本身的特点,我们可以得到一些典型的模糊测试内容:

针对协议中数据格式的模糊测试

CAN总线中接收到不同ID、DLC时,是否出现错误帧。这种测试可能更针对CANFD节点或者OBD节点,甚至还包括扩展帧、远程帧等特殊数据。又比如以太网中接收到不同的源MAC、目标MAC、源IP、目标IP、源端口、目标端口时,是否出现异常。这里的异常又会根据防火墙策略变得不尽相同,比如无响应、重启、发出不可达的错误报文等。
bd2bf96e-346d-11ed-9ade-dac502259ad0.png图3 针对协议中数据格式的模糊测试示例-CAN ID模糊测试

针对信号值的模糊测试

CAN总线中接收到不同的信号值(包括非法值、无效值等),是否出现重启、死机等情况。又比如SOME/IP中接收到各种请求、响应、订阅等数据(包括非预期的数据类型、编码、字节顺序等),是否出现服务暂停、服务崩溃、死机等情况。
bd454806-346d-11ed-9ade-dac502259ad0.png图4 针对信号值的模糊测试示例-CAN信号模糊测试

针对时序的模糊测试

如上文提及的网络管理休眠唤醒测试。又比如SecOC或者时间同步机制中,需要周期性地对特定基准进行同步处理,又有其他数据会使用同步后的基准,而在同步时序中出现各种偏移(包括基准本身的偏移、应用数据使用的基准与基准更新时刻的偏移等),判断同步机制是否崩溃。
bd7e25d6-346d-11ed-9ade-dac502259ad0.png图5 针对时序的模糊测试示例-休眠唤醒模糊测试

针对流量的模糊测试

如上文提及的高负载测试。又比如网关节点的性能测试中,在各端口并行接收不同的数据流以构成不同的吞吐量,判断路由机制是否崩溃。
bd9cd350-346d-11ed-9ade-dac502259ad0.png图6 针对流量的模糊测试示例-吞吐量模糊测试

3

模糊测试中需要注意的问题

虽然有大量的测试可以使用模糊测试方法,但同样的,模糊测试也有着其局限性或者说不足,如何尽可能地发挥其优点、规避其不足可能需要考虑以下内容:

异常

对于异常的判断是一个十分困难但又非常重要的点。困难是在于异常的情况比较复杂且能够监测的手段很多时候是有限的,尤其是需要实现异常情况的自动化监测。在车载网络中可以用来判断异常的包括特定信号值、周期报文的周期波动、控制器的电流值、DTC等。对于每一种不同的模糊测试,应该需要根据测试内容选择合适的异常判断方式。另一个有效的方法是进行“插桩”,用来突破控制器本身的局限性,突破常规“黑盒测试”的局限性。
bdc47bee-346d-11ed-9ade-dac502259ad0.png图7 插桩示意图

平衡

由于模糊测试是一种趋近于无穷测试的方式,带来的必然影响就是时间成本的增加。但是我们实际的产出并不会随时间增加而呈现线性的增加,因此测试效率会变得越来越低。为了提高测试效率,我们必然会使用一些规则做随机值的筛选,但这又必然导致随机性的降低。正如很多测试理论所描述,“测试可以证明存在缺陷,但不能证明不存在缺陷”。我们很多的测试都是在投入和产出中寻求平衡,模糊测试由于其特点显得更加明显,以至于我们要界定测试是否完成会存在一些争议和博弈,要处理这样的平衡,难度会可能大于测试本身。

定位及修复

测试会发现问题,这带来的另一个问题就是如何定位。而模糊测试的特点又会导致问题的定位(包括问题复现)会有很大的难度和不确定性,尤其是当模糊测试中随机值是更多维度的情况下,事情就会变得更加复杂。另一个需要考虑的点就是问题修复后的复测工作,这可能比做一次完整的模糊测试还要麻烦,此时需要解决的点是如何快速验证问题已被修复和如何验证修复方案是否会产生新的问题。虽然这两个点在所有测试中都存在,但是由于模糊测试的随机性,这两个问题显得更加困难。综合上述几点考量,个人认为对于当前的车载通信来说,在开发前中期采用模糊测试时需要有规则性和针对性的,虽然我们降低了发现问题的范围,但得到的是测试效率、问题修复效率、资源利用率的有效提升。而随着软件的逐步成熟,可以逐步放开原有规则,增加随机性。这一过程中也需要结合自身的情况来做调整,总之,关键点其实就两个字:平衡。

4

总结

模糊测试是一个相当有效的测试方法,其随机性的思想可以让我们发现通过逻辑很难想到的问题,这扩大了我们发现问题的范围和手段,能有效提高测试经验,这与场景测试有着异曲同工之妙。但同时,其投入多、修复难的问题也是不可忽视的内容。如何达到平衡是我们必须要考虑的点,总的来说,这是个以时间换经验还是以经验换时间的选择题。另外,本文的车载通信测试是广义概念,也包括了以车载通信技术作为载体的安全通信、安全诊断、安全刷写等测试。北汇信息专注于汽车电子测试,与国内外众多OEM和Tier1合作,在车载通信、诊断刷写、OTA、车内网络安全、域控制器功能测试等领域积累了丰富的实践经验,欢迎大家交流、探讨。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 测试
    +关注

    关注

    8

    文章

    6032

    浏览量

    130725
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    开关电源测试流程方法合集

    开关电源作为电子行业中最为常见的电源类型,其应用领域十分广泛,作为电源模块测试系统的专业供应商,纳米软件接触的用户中,有很大一部的客户需要我们为其提供开关电源的测试流程和方法,作为其自动化测试
    的头像 发表于 10-31 09:36 789次阅读
    开关电源<b class='flag-5'>测试</b>流程<b class='flag-5'>方法</b>合集

    车载以太网测试典型问题三则

    北汇信息作为国内外众多OEM的第三方认证测试服务商,积累了大量的测试服务经验,分享三则车载以太网测试典型问题。
    的头像 发表于 10-11 15:42 1760次阅读
    <b class='flag-5'>车载</b>以太网<b class='flag-5'>测试</b>典型问题三则

    通信测试领域的可靠伙伴:HP 8924 系列测试仪解析

    在现代通信技术飞速发展的进程中,通信设备的性能测试是保障通信质量稳定、高效的关键环节。而 HP(惠普)推出的 HP 8924 系列通信
    的头像 发表于 09-18 17:46 692次阅读
    <b class='flag-5'>通信</b><b class='flag-5'>测试</b>领域的可靠伙伴:HP 8924 系列<b class='flag-5'>测试</b>仪解析

    怎么科学测试车载中控屏幕?涵盖触控、显示与兼容性的方法

    车载中控屏幕的测试从来不是简单的功能核验,而是对 “人 - 车 - 环境” 复杂关系的深度校准。从基础显示到极端环境适应,从单一功能到多模块协同,每一项测试指标的背后,都是对用户体验的细致打磨和对行车安全的极致追求。
    的头像 发表于 08-04 09:57 890次阅读
    怎么科学<b class='flag-5'>测试车载</b>中控屏幕?涵盖触控、显示与兼容性的<b class='flag-5'>方法</b>

    ISO 11452-4:BCI与TWC测试方法详解及应用选型

    随着汽车电子系统复杂度的不断提升,电磁兼容性(EMC)测试在车辆开发流程中愈加重要。ISO 11452-4:2020(E) 是国际通行的车载电子抗扰度测试标准,涵盖了多种通过电缆线束注入干扰的
    的头像 发表于 07-04 16:42 800次阅读

    软件更新 | TSMaster 202504 版本已上线!三大功能让车载测试更智能

    车载测试的智能化时代正在加速到来!TSMaster202504版本正式发布,本次更新聚焦以太网通信与数据高效处理,带来三大核心功能升级—以太网报文信息过滤、XCPonEthernet支持、按时间范围
    的头像 发表于 05-23 20:05 818次阅读
    软件更新 | TSMaster 202504 版本已上线!三大功能让<b class='flag-5'>车载</b><b class='flag-5'>测试</b>更智能

    RCD测试全解析:原理、方法、问题与发展

    本文详细介绍了剩余电流动作保护器(RCD)的概述、测试原理与标准、测试方法、常见问题与解决方案、高级测试技术、现场测试注意事项以及未来发展趋
    的头像 发表于 05-14 14:24 3184次阅读

    聚焦汽车座舱车载屏幕测试

    本文关注汽车座舱车载屏幕测试,着重探讨其性能优劣对用户体验及行车安全的影响。测试包括亮度、对比度、色彩准确性、可视角度、触控性能和可靠性测试等多方面,旨在为相关研发工作提供参考。
    的头像 发表于 04-18 17:12 815次阅读

    电源浪涌测试方法

    电源浪涌测试是评估电气设备在电源浪涌条件下的性能表现的重要手段。以下是电源浪涌测试的一些常用方法
    的头像 发表于 01-27 11:31 2503次阅读

    什么是灯具的耐压测试方法

    耐压测试概念耐压测试,亦称为高压测试,是一种通过在绝缘体两端施加预定的高电压并保持一定时间,通过监测流经绝缘体的电流大小来评估其绝缘性能的检测方法。耐压
    的头像 发表于 01-03 16:59 1228次阅读
    什么是灯具的耐压<b class='flag-5'>测试</b><b class='flag-5'>方法</b>?

    桌面式车载网络自动化测试系统TESTBASE-DESKNAT

    车载网络是汽车电子控制系统交互的桥梁,直接影响整车功能实现及可靠性。经纬恒润在国内较早开展车载网络测试业务,深耕网络技术20多年,现基于自主车载
    的头像 发表于 12-26 10:35 1415次阅读
    桌面式<b class='flag-5'>车载</b>网络自动化<b class='flag-5'>测试</b>系统TESTBASE-DESKNAT

    倍科检测认证 EMC测试指标和测试方法介绍

    EMC(Electromagnetic Compatibility,电磁兼容性)测试是确保设备或系统在电磁环境中能够正常工作且不对其他设备或系统造成不可接受的电磁干扰的重要方法。 EMC测试主要
    的头像 发表于 12-25 10:47 1346次阅读

    车联网HIL仿真测试解决方案

    经纬恒润结合硬件在环技术、通信信息、云平台、场景仿真、车载单元仿真技术,开发了针对车联网V2N测试&V2X应用场景测试的仿真系统,实现
    的头像 发表于 12-24 14:24 978次阅读
    车联网HIL仿真<b class='flag-5'>测试</b>解决方案

    面向教学科研的车载网络系统开发及测试实验室

    车载网络通讯技术是汽车行业的基础技术,是软件定义汽车的基础。网络通信设计与网络测试目的是保证各个ECUs控制器之间一致性和正确性,是整车应用功能得以实现的基础。经纬恒润以量产车型
    的头像 发表于 12-18 10:35 1025次阅读
    面向教学科研的<b class='flag-5'>车载</b>网络系统开发及<b class='flag-5'>测试</b>实验室

    面向教学科研的车载网络系统开发及测试实验室

    车载网络通讯技术是汽车行业的基础技术,是软件定义汽车的基础。网络通信设计与网络测试目的是保证各个ECUs控制器之间一致性和正确性,是整车应用功能得以实现的基础。 经纬恒润以量产车型
    的头像 发表于 12-18 09:50 61次阅读
    面向教学科研的<b class='flag-5'>车载</b>网络系统开发及<b class='flag-5'>测试</b>实验室