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


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

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

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

版权声明:
转载时请注明作者Fundebug以及本文地址:
https://blog.fundebug.com/2017/06/05/worst-software-bug-series-1/
价值1.35亿美元的BUG的更多相关文章
- 再砸4.35亿美元,LG疯狂扩建太阳能电池生产线
LG在收缩高分辨率电视和其他消费电子产品业务的同时,在太阳能面板业务上却很明显一直在进行扩张.LG公司表示,他们将斥资4.35亿美元在韩国工厂增加超过6条生产线,使其太阳能电池生产量能够在2018年达 ...
- BrandZ:2016年全球最具价值品牌百强榜(完整报告)
https://wppbaz.com/admin/uploads/files/BZ_Global_2016_Report.pdf Millward Brown编制的BrandZ最新排行榜(2016 B ...
- 面试官问,说一个你在工作非常有价值的bug
如果你去参考面试,做足了准备,面对面试官员从容不迫,吐沫横飞的大谈自己的工作经历.突然,面试官横插一句:说一个你在工作非常有价值的bug.顿时,整个空气都仿佛都凝固了!“What?”... 我想没几个 ...
- 软件测试 —— Bug
[Bug规范] Bug标题中需包含Bug的具体位置并以[]标注 举例:[模块-子模块-页面]XXXXXXXXXXXX Bug标题尽量简明 做什么操作 + 出现什么结果,比如(点击提交按钮,出现卡顿现象 ...
- 面试时让你说一个印象最深的bug,该怎么回答
其实,面试官并不关心你描述的这个bug是否真的有价值,或有多曲折离奇?他只是: * 了解你平时工作中的测试能力 所以,这就要求的你平时工作中遇到bug时试着自己去定位,定位bug的过程远比你的单纯的执 ...
- 同城快递公司Postmates近日完成1亿美元融资,美国外卖餐饮迎来一波融资热潮
美国外卖市场尚未出现一家独大的巨头,一部分原因是与中国的外卖平台相比,在美国,外卖平台要克服的难题可能更多. 4个月之前才完成3亿美元融资的美国同城快递公司Postmates近日又完成1亿美元融资,估 ...
- 向通用自动驾驶部门Cruise投资22.5亿美元,软银打得什么主意?
5月29日,加利福尼亚州的一辆特斯拉Model S撞上停在路边的警车.据透露,当时这辆特斯拉正处于自动辅助驾驶即Autopilot模式.而在今年,这已经不是第一次特斯拉自动驾驶模式出问题了.此外,Ub ...
- HTML5 学习总结(一)——HTML5概要与新增标签
一.HTML5概要 1.1.为什么需要HTML5 HTML4陈旧不能满足日益发展的互联网需要,特别是移动互联网.为了增强浏览器功能Flash被广泛使用,但安全与稳定堪忧,不适合在移动端使用(耗电.触摸 ...
- 如何说服你的老板必须使用APM?
APM研究院 2015/04/24 16:56 2013年,某权威机构提供一组数据显示:亚马逊每100毫秒延迟会使销售额下降1%:雅虎一秒钟服务器延迟导致收入下降2.8%:谷歌搜索结果页面放缓100毫 ...
随机推荐
- LabVIEW(五):DAQ同步
1.在许多的测试测量应用当中,我们会需要在通过一个时间段内进行同步测量. 同步采集通常分为两类: (1).同时测量:即不同的任务在同一时刻开始.举例来说,我们会在一个模拟输入通道上采集数据,同时在一个 ...
- springboot下载文件
例子 /** * 下载假期模板 */ @ResponseBody @RequestMapping(value = "/downloadDolidayTemplate.do") pu ...
- 在Ubuntu 18.04中安装pyenv(Python多版本管理工具)
最近正在重头梳理Python的基础知识,为了更好地使用Python进行开发,防止发生版本混乱(不同的第三方库有可能因为Python版本不兼容而报错),所以需要使用pyenv进行版本管理. *** 通常 ...
- Apache Lucene全局搜索引擎入门教程
Lucene简介 Lucent:Apache软件基金会Jakarta项目组的一个子项目,Lucene提供了一个简单却强大的应用程式接口,能够做全文索引和搜寻.在Java开发环境里Lucene是一个成熟 ...
- 【app】自动化环境搭建(Appium)for java
Appium来做app自动化相信大家都很熟悉了吧,就不再赘述他的概念和作用了,我们接下来着重介绍怎么来搭建整个app自动化环境,整个环境包括如下几个步骤: 1.安装jdk和eclipse及配置jdk的 ...
- spark面试总结1
Spark Core面试篇01 一.简答题 1.Spark master使用zookeeper进行HA的,有哪些元数据保存在Zookeeper? 答:spark通过这个参数spark.deploy.z ...
- 可以落地的DDD到底长什么样?
领域驱动设计的概念 大家都知道软件开发不是一蹴而就的事情,我们不可能在不了解产品(或行业领域)的前提下进行软件开发,在开发前通常需要进行大量的业务知识梳理,然后才能到软件设计的层面,最后才是开发. ...
- vue路由对不同界面进行传参及跳转的总结
最近在做一个公众号的商城项目,主要用的VUE+MUI,其实今天这个点对于有过项目经验的前端工作者来说是最基础的,但也是必须要掌握的,今天小编主要是记录下传参和跳转的一些总结(仅供参考). 首先我们先上 ...
- ui2code中的深度学习+传统算法应用
背景 在之前的文章中,我们已经提到过团队在UI自动化这方面的尝试,我们的目标是实现基于 单一图片到代码 的转换,在这个过程不可避免会遇到一个问题,就是为了从单一图片中提取出足够的有意义的结构信息,我们 ...
- Zookeeper Client简介
直接使用zk的api实现业务功能比较繁琐.因为要处理session loss,session expire等异常,在发生这些异常后进行重连.又因为ZK的watcher是一次性的,如果要基于wather ...