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

    文章

    4976

    浏览量

    74358
  • BUG
    BUG
    +关注

    关注

    0

    文章

    156

    浏览量

    16306
  • 自动驾驶
    +关注

    关注

    794

    文章

    14979

    浏览量

    181391

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

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    变频器使用遇到的问题

    变频器作为现代工业控制系统的核心部件,在电机调速、节能降耗等领域发挥着重要作用。然而,在实际应用,用户常会遇到各种问题,影响设备正常运行。本文将系统分析变频器使用的典型问题,并提供解决方案,帮助用户更好地应对实际挑战。
    的头像 发表于 03-05 17:27 693次阅读

    在使用电磁屏蔽箱测试遇到谐振怎么办?

    在什么是电磁屏蔽箱谐振?这篇文章我们讲了电磁屏蔽箱谐振的产生的原因和原理,现在我们来讲讲在使用OI-ESA/OI-ESS/OI-ES系列电磁屏蔽箱测试遇到谐振该怎么解决。处理谐振的
    的头像 发表于 02-27 17:22 1570次阅读
    在使用电磁屏蔽箱<b class='flag-5'>测试</b><b class='flag-5'>中</b><b class='flag-5'>遇到</b>谐振怎么办?

    破解快递分拣痛点!光子精密颜色传感器赋能高速分拣提质增效

    面对高速分拣响应滞后、检测不稳、调试复杂等行业痛点,传统颜色检测方案已难以适配快递行业自动化、规模化的发展需求。PW-D150颜色检测传感器以客户需求为导向,凭借200μs极速响应、99.9%精准
    的头像 发表于 02-24 15:06 218次阅读
    破解快递<b class='flag-5'>分拣</b>痛点!光子精密颜色传感器赋能高速<b class='flag-5'>分拣</b>提质增效

    数通即效率:疆鸿智能Devicenet转Ethercat网关驱动分拣革命

    数通即效率:疆鸿智能Devicenet转Ethercat网关驱动分拣革命 项目背景与工业网关的核心作用 在现代仓储物流自动化系统分拣流水线的高效运行依赖于底层设备与上层控制系统的无缝通信。某大
    的头像 发表于 01-21 13:43 288次阅读
    数通即效率:疆鸿智能Devicenet转Ethercat网关驱动<b class='flag-5'>分拣</b>革命

    嵌入式软件测试bug的常见方法和秘诀

    在嵌入式软件开发过程,一般来说,花在测试比花在编码的时间要多很多,通常为3:1(甚至更多)。这个比例随着你的编程和测试水平的提高而不断下降,但不论怎样,软件测试对一般人来讲很重要。
    发表于 01-12 07:07

    平面分拣机远程监控运维系统方案

    某企业专业制造平面分拣机,主要为家具、家电等行业提供物料分拣工作,能够通过多个通道将多种物料输送到不同的包装设备,具备生产效率高、自动化程度高等优势。由于该设备往往销往全国各地,点多、面广的分布
    的头像 发表于 11-26 15:19 355次阅读
    平面<b class='flag-5'>分拣</b>机远程监控运维系统方案

    MR30分布式I/O助力物流分拣系统智能化升级

    本文以MR30分布式I/O在某大型电商物流中心分拣系统的应用为例,详细阐述其在合流、分拣、分流、分运全流程的模块化应用方案。
    的头像 发表于 10-31 10:58 1145次阅读
    MR30分布式I/O助力物流<b class='flag-5'>分拣</b>系统智能化升级

    【综述】工作总有规范——测试执行和bug

    关于测试工作的规范,上次讨论了用例部分。本次将继续聊下测试执行期间的规范标准,是主要需要测试执行人员关注的部分。【测试执行】测试执行规范或标
    的头像 发表于 10-24 10:04 528次阅读
    【综述】工作总有规范——<b class='flag-5'>测试</b>执行和<b class='flag-5'>bug</b>

    工业新实践:S7-1500无线控制S7-1200在分拣系统的应用

    本次业主是宁波某快递分拣站点,主要负责该区域的通、圆通物流承运。随着电商行业的爆发式增长,目前快递分拣面临巨大的效率压力。传统人工分拣或环形分拣
    的头像 发表于 09-12 11:02 702次阅读
    工业新实践:S7-1500无线控制S7-1200在<b class='flag-5'>分拣</b>系统<b class='flag-5'>中</b>的应用

    滚珠导轨在物流分拣系统作用有多大?

    在物流行业飞速发展、分拣需求日益增长的当下,物流分拣系统的效率与精度至关重要。
    的头像 发表于 09-11 17:55 793次阅读
    滚珠导轨在物流<b class='flag-5'>分拣</b>系统<b class='flag-5'>中</b>作用有多大?

    无线通讯在快递分拣系统的应用——以西门子PLC控制系统为例

    在物流分拣领域,直线窄带分拣机是提升货物处理效率的关键设备之一。优化物流分拣流程,也成为智能化技术改造的重要环节。达泰无线设备此次承担了窄带分拣
    的头像 发表于 09-06 11:40 801次阅读
    无线通讯在快递<b class='flag-5'>分拣</b>系统的应用——以西门子PLC控制系统为例

    滚珠导轨:物流输送与包装分拣的“高速轨道”

    滚珠导轨凭借其低摩擦、高刚性的特点,广泛应用于输送线、分拣机及包装机械,确保货物搬运与包装流程的稳定性和速度,成为行业自动化升级的关键部件。
    的头像 发表于 07-21 17:54 1242次阅读
    滚珠导轨:物流输送与包装<b class='flag-5'>分拣</b>的“高速轨道”

    RFID在物流智能分拣的应用

    二、RFID在物流智能分拣的优势高效率:RFID可以快速批量读取货物信息,大幅缩短分拣时间,提高分拣效率。准确性:RFID减少了人工操作的错误率,提高了货物
    的头像 发表于 07-21 15:57 650次阅读
    RFID在物流智能<b class='flag-5'>分拣</b><b class='flag-5'>中</b>的应用

    DELTA机械手多物料视觉分拣的应用

    正运动DELTA机械手多物料视觉分拣解决方案
    的头像 发表于 06-24 11:16 1148次阅读
    DELTA机械手多物料视觉<b class='flag-5'>分拣</b>的应用

    【行业应用案例】“扫”出一条快车道,杰和科技智能物流分拣方案

    自动化分拣配送设备,如超导磁悬浮分拣系统,3D视觉机械臂,AGV机器人,无人机配送等技术,以提升仓储分拣与配送的智能化水平。以分拣线工作站例,作为
    的头像 发表于 05-12 18:34 870次阅读
    【行业应用案例】“扫”出一条快车道,杰和科技智能物流<b class='flag-5'>分拣</b>方案