Mia Bajić在PyCon US 2025上讨论了历史上最奇怪的软件错误,强调复杂系统中的连锁反应和测试的重要性。她通过案例展示了缺乏测试和沟通导致的灾难,提醒开发者关注用户输入的边缘情况,并强调流程改进和标准化的必要性。
软件频繁出错的原因在于复杂的编程环境和不可靠的API。即使使用AI工具,开发者仍面临维护困难和安全性问题,随着软件数量增加,这些问题将更加突出。
Prequel推出了一项新服务,帮助开发者发现软件错误,填补可观察性空白。通过CRE(通用可靠性枚举),开发者能更轻松地识别和分类可靠性问题,促进团队协作。该工具强调实时问题检测,旨在降低技术债务,提高生产力。
文章讨论了调试复杂软件错误的挑战,特别提到一位开发者在谷歌工作时,仅用两天修复了一个复杂的JS编译器错误。解决错误的难易程度受开发者经验和团队支持等多种因素影响。调试过程中常遇到难以重现的“海森虫”错误,以及在大型公司中沟通和协作的重要性。
由于软件错误和地图更新,Waymo正在召回凤凰城的672辆无人驾驶汽车。这是他们继去年两起轻微碰撞事故后的第二次召回。此事件增加了无人驾驶汽车行业面临的监管审查,目前Waymo因超过二十起事件正在接受调查。
2023年10月4日,Cloudflare因内部软件错误经历了DNS解析问题,导致一些用户收到了SERVFAIL DNS响应。问题是由于Cloudflare的递归DNS基础设施无法解析新的ZONEMD记录,导致系统无法解析根区域的新版本。Cloudflare正在采取措施改进可见性、弹性、测试和架构,以防止类似事件再次发生。
软件错误造成的经济损失取决于直接成本、停机、数据丢失、交易浪费和声誉受损。长期的财务损失和信任损失可能发生。软件错误还可能对隐私、数据和安全产生负面影响。历史上的一些代价最高的软件错误包括水手1号宇宙飞船、莫里斯蠕虫、奔腾FDIV错误、比特币黑客攻击、EDS儿童抚养系统。千年虫问题花费了大量资金在应急计划和准备方面。
科学必须可复制重现,但计算机也有Bug。软件错误训练我们避免问题,如定期重启操作系统和应用程序,避免中断电脑工作,避免过多多任务处理。人机交互研究人员可以研究软件错误的操作性条件反射。
完成下面两步后,将自动完成登录并继续当前操作。