价值1.35亿美元的BUG

简介: 译者按: 一横值千金啊!原文: Mariner 1's $135 million software bug译者: Fundebug为了保证可读性,本文采用意译而非直译。

译者按: 一横值千金啊!
原文: Mariner 1's $135 million software bug
译者: Fundebug
为了保证可读性,本文采用意译而非直译。
今天,我们有丰富的开发工具可以使用,在写代码的时候自动帮助我们识别拼写错误,类型错误和其它容易犯错的地方。即使不借助开发工具,也可以慢慢地一行一行的reivew代码。然而,当年连这样的福利都没有。
在打孔时代,工程师手动将代码翻译成一张张被打孔的卡片或则使用一个专用的打孔机器来辅助翻译和打孔。

img_1e55ebc49a8c5f6672dffde06bb73d0a.jpe
卡片

img_7bf2a5a6d177d51fe77728e446f07106.jpe
打孔机器

如果不小心敲错了、输入了不正确的命令,没有一个屏幕显示刚刚输入的字符以便查验。如何确保打出来的卡片是否正确呢?再打一张卡片出来,然后使用一个叫做卡片验证器的工具。验证器外观和打孔器几乎一模一样。

img_b54f120a2946354b9769ab5f725942be.gif
卡片验证器

史上最严重的BUG就是由于在打孔的时候的一个失误,最终造成了1962年的水手一号的发射失败。
水手1号探测器是美国发射的第一个水手系列探测器,该探测器原计划探测金星,但因出现故障而被摧毁,它是美国“水手计划”发射的第一个空间探测器。

img_53c073e6ceaf0baf608a90265a18b59f.jpe

水手一号在当年耗资1850万美元,相当于现在的1.35亿美元。
水手一号飞船在1962年的7月22号从弗罗里达的卡纳维拉尔角发射基地升空。在发射之后的几分钟内,阿特拉斯(antenna)导航系统失败,切换到后备的雷达系统。然而该雷达系统有一个很严重的软件BUG:在使用打孔机编写代码的时候,忽略了公式中的一个上横线,导致导航系统对偏差过度修正,最终偏离正确的轨道。
根据推算,如果不及时阻止,水手一号很有可能坠落在居民区。为了防止造成安全威胁,在发射后293秒,一名区域安全主管主动发送命令摧毁了该飞船。
此次水手一号发射失败不仅仅是因为软件BUG,实际上在此前的两次发射中,使用相同的系统并没有出问题。因为只有当硬件导航系统失败之后,才会启动有BUG的后备雷达系统。当然,这个BUG是导致发射失败的主要原因。幸运的是,该BUG很快被修复,一个月之后,水手二号成功发射去完成水手一号的任务,飞往水星。
如果当年的代码可以像如今一样展示在屏幕上被我们review, 是否可以提早排除呢?依然不确定,毕竟有人的因素在里面。事实上,类似的事情在时隔30年之后还是有发生。我们不知道当年NASA使用了什么样的手法去review代码,我只能猜测代码验证器看来没有发挥多大作用。
欢迎加入我们Fundebug全栈BUG监控交流群: 622902485

img_e3dd1254549264a84aeb67509f5ed680.png
全栈BUG监控交流群

版权声明:
转载时请注明作者Fundebug以及本文地址:**
https://blog.fundebug.com/2017/06/05/worst-software-bug-series-1/**

目录
相关文章
|
5月前
|
XML SQL 前端开发
Bug积累
Bug积累
43 1
|
6月前
|
设计模式 算法 JavaScript
祖传代码:代码背后的历史与文化价值
祖传代码:代码背后的历史与文化价值
58 0
|
敏捷开发 安全 项目管理
「敏捷」也许敏捷就是问题所在
「敏捷」也许敏捷就是问题所在
|
监控 安全 测试技术
测试人员的价值体现
做好测试该做的事,讲好测试该有的故事,才能真实地体现测试人员的价值。
202 0
测试人员的价值体现
|
敏捷开发 前端开发 测试技术
一个BUG导致3000万损失!涉及资金交易的功能该如何做好测试和项目管理
一个BUG导致3000万损失!涉及资金交易的功能该如何做好测试和项目管理
255 0
一个BUG导致3000万损失!涉及资金交易的功能该如何做好测试和项目管理
|
数据管理 项目管理
谈谈实施数据治理时常犯的10大错误
我所见过的最大的错误就是企业没有将文化变革纳为数据治理举措的一部分。到目前为止,这个错误是最大和最常见的错误,它最终可能导致数据治理计划的彻底失败。
|
程序员 索引
实施项目--你明白软件的价值和个人的价值么?
  在2013即将结束的最后一个月里,我跑客户的时间时间达到了26天,作为一个技术出身的我这是非常不可思议的,在多年前我敢都不敢想! 在历史上一个月里我连续工作的天数也就27天,当然这是呆在公司办公室里,负责码代码,不会与直接客户面对面接触的(目前大多数技术人员都是如此)。
980 0
|
程序员
《程序员度量:改善软件团队的分析学》一软件团队是成功还是失败
本节书摘来华章计算机《程序员度量:改善软件团队的分析学》一书中的第3章 ,Jonathan Alexander 著 张燎原 周峰 张刚 宋励奋 译更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1100 0

相关实验场景

更多