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

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

3天内不再提示

如何有效分拣测试中遇到的bug?

自动驾驶说 来源:自动驾驶说 2020-08-10 15:59 次阅读

研发自动驾驶的核心就是开发新的驾驶技能,然后测试该技能。测试中如果发现了问题,再逐一攻克。

而问题是,工程师们往往只擅长写代码,却忽视了通过测试找到代码中的问题。花一个月时间做好了一个新的驾驶技能,就以为万事大吉了。车一旦上路,问题(bug)却层出不穷。

其实,出了bug没关系,最重要的是要充分利用发现的bug,挖掘bug的根源,才能有效修复,避免再犯。

这就涉及到triage的学问。Triage字面意思是指对问题进行分拣,其实也泛指对问题寻根溯源(root-causing),也包括分拣时所需的工具。

传统互联网的triage过程相对比较简单,代码的层级不会太深。比如,一个对外链接断了,八成是因为那个链接已经挪了地方。

而自动驾驶则复杂很多。肉眼可见的只有那辆车以及坐在车里可以体验到的乘坐感受。背后却有成百上千个代码组成部分,每一个组成部分内部又有多层分级。一旦自动驾驶车出现问题,很难马上判断出到底是哪里需要修改。

比如,肉眼所看到的是,自动驾驶车没能及时躲避一位正在过马路的行人。这可能是摄像头的问题,可能是雷达的问题,可能是行为预测的问题,可能是定位的问题,也可能是高精地图的问题,等等。因此,我们需要一个高效、严谨的过程,快速找到bug根源。

我们可以将triage分为三个阶段。

1. Bug识别

2. Bug分拣

3. Bug追根溯源

第一阶段:Bug识别

发现bug的最直接方式就是在路上测试,然后将错误标注出来。准确的标注可以让工程师更快了解bug的类别。比如使用“突然刹车”、“偏离车道”这些关键词。

然而,大部分的bug很难通过驾驶直接体现出来。如果代码里有100个bug,很可能在驾驶中只能体现出两三个。有的bug只能在特定情境下才会被触发,平时不会被发现。而且有的bug可以被重现,有的则不能。今天在某个地方突然刹车,明天这个问题可能又没了。

因此,必须首先尽量将减少测试中的变量,不要等到上路测试才发现bug。比如,如果利用仿真进行测试,就可以对变量进行有效地控制,快速确认bug。

Bug识别的工具也有很多,比如可以通过指标报表,某项指标一旦发生变化,就报错。也可以通过各种前端工具,将车的探测结果进行可视化,错误就能一目了然。

让系统自动报错虽然省时省力,但问题是,报错的数据中往往有很多杂音(noise),报告100个bug,其中也许只有几个是真正有价值的bug。因此,报错系统必须不断提升,才能提高信噪比(signal-to-noise ratio)。

第二阶段:Bug分拣

团队越大,bug分拣就越困难。假设一家公司里同时有二十个团队在过去一个月里碰过代码,那么如果出现了问题,这二十个团队就都有可能承担责任。如果不去对bug进行分拣,每遇到一个bug就让所有团队研究一次bug,会浪费很多工程师的宝贵时间。

因此,负责分拣bug的人必须对各个团队的业务了如指掌,帮助工程师对bug进行分拣。至少做到将bug及时分发到对应的小组手上,从而节省各个团队的的时间。

分拣bug时往往需要一些基本的决策树,比如,如果看到了某种现象,那么bug的原因就一定是A或B。再根据另一种现象,可以推断出一定是B。随着代码不断更新,这个决策树也需要不断更新。

Bug分拣之后,要对bug的重要等级进行排序。并不是所有的bug都需要马上被修正。根据团队在当下阶段的主要目标,比如该季度中自动驾驶车左转的bug最为重要,就要把和左转有关的bug找出来,视为priority 1。

第三阶段:Bug追根溯源

Bug分配到正确的团队的手上之后,就需要被追根溯源,看看根本问题到底出现在哪里。越复杂的bug牵扯出来的问题就会越多,根本原因也埋得越深,修正所需要的时间也越长。

针对相对容易的bug,效率就是一切。如果容易的bug都修复不了,就会拖其他复杂bug的后腿,bug越积越多,最终造成恶性循环。因此,团队必须在控制代码质量的基础上,遵守定时修复bug的流程。

因为一些bug修正起来太困难,所以很多团队会选择进行“热修复”,即hotfix,而不去从根本上解决问题。Hotfix什么时候该用,什么时候不该用,也需要各个团队做到统一。否则代码的核心质量无法保证。

其实,很多bug的根本问题不在于技术本身,而在于公司团队的组织架构设计不合理,或是高层的技术决策出现失误。团队的领导者要认清事实,敢于及时止损。

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

    关注

    30

    文章

    4742

    浏览量

    68333
  • BUG
    BUG
    +关注

    关注

    0

    文章

    155

    浏览量

    15649
  • 自动驾驶
    +关注

    关注

    783

    文章

    13680

    浏览量

    166116

原文标题:如何有效分拣测试中遇到的bug?

文章出处:【微信号:zidongjiashishuo,微信公众号:自动驾驶说】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    项目案例:高效精准的螺栓分拣测试解决方案

    随着制造业自动化程度的不断提高,某大型汽配企业为提升生产效率、减少人力成本,提出了使用复合机器人完成螺栓分拣的需求。富唯智能通过采用复合机器人,结合3D工业相机和高性能控制器,实现螺栓的自动抓取,从而提升生产线的整体运行效率。
    的头像 发表于 11-06 16:13 82次阅读
    项目案例:高效精准的螺栓<b class='flag-5'>分拣</b><b class='flag-5'>测试</b>解决方案

    快递分拣设备物联网数据采集系统

    随着电子商务经济的火热发展,不仅带来越来越高快速业务量,而且快速包裹配送也呈现出多种类、大批量、高速率等特点。传统的人工分拣模式在成本、效率、准确率等方面存在着不足,加上用人成本越来越高,导致企业
    的头像 发表于 10-25 13:44 117次阅读

    明达Mbox网关重塑分拣线的高效与智能

    在日新月异的物流行业,每一分每一秒的效率提升都意味着成本的降低与服务的升级。随着物联网、大数据、云计算等技术的飞速发展,物流分拣线正经历着一场前所未有的智能化变革。在这场变革,网关技术作为连接物理世界与数字世界的桥梁,正悄然
    的头像 发表于 10-21 10:23 95次阅读
    明达Mbox网关重塑<b class='flag-5'>分拣</b>线的高效与智能

    RFID技术助力物流自动化分拣:提升速度、效率与准确性

    在当今快速发展的物流行业,自动化分拣系统的应用已成为提升整体运营效率的关键。射频识别(RFID)技术以其独特的优势,在物流自动化分拣中发挥着不可或缺的作用。本文将从高速移动的包裹识
    的头像 发表于 09-25 17:23 218次阅读

    自动分拣设备实时监控管理系统方案

    对航站楼运营部门来说,运用高效、可靠的行李自动分拣设备可以按时保质完成行李的输送和分拣,从而影响到航班开放装载的时间、值机柜台的开放时间、旅客交运行李的行为模式等多个方面,对于提升旅客出行体验,改善
    的头像 发表于 09-07 10:53 167次阅读

    智能分拣投递机器人

    自研智能分拣投递机器人,专注于物流行业“NC小件”的分拣与投递,机器人运行稳定、分拣效率高,搭配智能分拣投递系统单台机器人最大作业效率可达400件/H,投递效率相较于传统“小黄人“提升
    的头像 发表于 08-30 15:24 243次阅读
    智能<b class='flag-5'>分拣</b>投递机器人

    使用VCA810过程遇到的一些问题求解

    流被放大。 3、在信号有效范围内,当输入信号增大,输出信号失真。 图1 电路原理图(实际PCB1,8脚对调) 图2 小信号输入,输入端8脚70mV左右直流(CH4为测试信号) 图3 小信号输入,输出端1.6V左右直流(C
    发表于 08-30 07:11

    兰宝工业智能读码器在物流行业的货物自动分拣方面的应用

    兰宝工业读码器在物流货物自动分拣系统的应用,不仅提高了货物分拣的速度和准确性,还为物流公司提供了强大的数据支持,帮助他们优化流程、降低成本,并提高客户满意度。随着技术的进步,智能读码器和自动
    的头像 发表于 08-15 13:44 173次阅读
    兰宝工业智能读码器在物流行业的货物自动<b class='flag-5'>分拣</b>方面的应用

    stm32H7 HAL库存在的bug

    stm32H7 hal 库里面的以太网代码,坑了鱼鹰很多次(不知道最新版是否已经修复了这些bug),这里分享一篇网上的文章,因为鱼鹰也遇到过,靠它解决了其中一个编译优化问题,在此感谢作者。不过hal
    的头像 发表于 08-12 17:37 846次阅读

    工业一体机在智能分拣的应用

    工业一体机在智能分拣系统的应用是物流行业自动化和智能化升级的重要组成部分。这些设备通常具备高性能计算能力、稳定性和耐用性,能够在复杂和苛刻的工业环境持续运行,满足高速、高精度的分拣
    的头像 发表于 07-15 15:25 293次阅读
    工业一体机在智能<b class='flag-5'>分拣</b><b class='flag-5'>中</b>的应用

    教育场景的自动化分拣系统!基于大象机器人UltraArm P340机械臂和传送带的实现

    引言 今天我们将展示一个高度自动化的模拟场景,展示多个机械臂与传送带协同工作的高效分拣系统。在这个场景,机械臂通过视觉识别技术对物体进行分类,并通过精确的机械操作将它们放置在指定的位置。这一
    的头像 发表于 07-03 17:31 1577次阅读
    教育场景<b class='flag-5'>中</b>的自动化<b class='flag-5'>分拣</b>系统!基于大象机器人UltraArm P340机械臂和传送带的实现

    干电池分拣装置:智能化提升电池分类效率|比斯特自动化

    随着科技的快速发展,电池作为我们日常生活不可或缺的能源之一,其使用量和种类不断增加。为了保障电池的质量,提高电池使用的安全性和效率,干电池分拣装置应运而生。本文比斯特自动化小编将详细介绍干电池分拣装置的工作原理、优势以及其在电
    的头像 发表于 05-27 14:15 354次阅读

    EMI测试整改:从问题识别到有效优化

    深圳比创达电子EMC|EMI测试整改:从问题识别到有效优化
    的头像 发表于 05-06 14:02 513次阅读
    EMI<b class='flag-5'>测试</b>整改:从问题识别到<b class='flag-5'>有效</b>优化

    BUG收集】为昕原理图设计EDA软件(Jupiter)免费评测活动常见问题及BUG收集

    感谢各位参与评测活动的工程师,请先认真阅读评测规则和本帖顶部的视频讲解。 如遇到bug可以在本帖反馈,会由为昕EDA的工程师们为各位解答。 【软件及使用指南】 软件使用指南见本帖底部视频 软件本体请
    发表于 04-25 18:23

    变频器在自动化分拣系统的关键作用与应用

    自动分拣系统一般由控制装置、分类装置、输送装置及分拣道口组成。 控制装置的作用是识别、接收和处理分拣信号,根据分拣信号的要求指示分类装置、按商品品种、按商品送达地点或按货主的类别对商品
    发表于 02-26 11:15 442次阅读
    变频器在自动化<b class='flag-5'>分拣</b>系统<b class='flag-5'>中</b>的关键作用与应用