测试员的那点事Ulord社区联盟软件测试

那些价值数亿的史上最强的【Bug之母】你都知道吗?

2020-04-16  本文已影响0人  测试逍遥子

一、互联网时代

在今天的数字时代,计算机漏洞不仅困扰着每一个程序员,而且不可避免地影响着我们的生活,从小事到基本的生活必需品,到国民经济和世界形势。随着我们的生活方式越来越数字化和基于互联网,在数字世界中发现并杀死bug变得越来越重要。

软件历史上最著名的bug有哪些?让我们一起回顾一下:

二、万“虫”之母

笔者来自公众号:软测之家

1947年9月9日下午3点45分,Grace Murray Hopper在她的记录本上记下了史上第一个计算机Bug——在HarvardMarkII计算机里找到的一只飞蛾,她把飞蛾贴在日记本上,并写道”First actual case of bug being found”。

这一发现使Bug这个词在计算机世界中占据了一席之地,并把它变成了无数沮丧而痛苦的程序员的噩梦。从那时起,Bug这个词在计算机世界中被用来表示计算机程序中的一个错误或遗漏,导致程序计算出一个难以理解的结果,甚至导致程序崩溃。格蕾丝·默里·霍珀是历史上最早的程序员之一。她是一名女程序员,曾在海军担任准将。

这是最广泛阅读关于计算机错误的故事,但历史的真相是,Bug这个词被广泛用来指机器的失败早在发明家托马斯·爱迪生的时候,可以看到在爱迪生的笔记本从1870左右。IEEE还称赞爱迪生引入了Bug这个术语。

三、千年虫,炒作的狂欢

笔者来自公众号:软测之家

在上个世纪,软件行业从未想过他们的代码和产品会进入新千年。因此,为了节省内存,许多软件供应商省略了前两位数字,或者默认为19。

随着1999年12月31日的临近,人们越来越担心除夕夜的电脑系统会崩溃,因为除夕夜的日期将从2000年1月1日改为1900年1月1日,这可能意味着许多灾难事件,甚至世界末日。

直到今天,我们还可以拿这个有趣的故事开玩笑,因为核导弹不会自动发射,飞机不会失控,飞机不会从天上掉下来,银行不会让国家和它的用户损失很多钱。

千年虫是真实存在的,全球花费数十亿美元升级系统。还有一些小事故:

停车计时器坏了;

气象局发布了1910年1月1日的天气预报;

公交售票系统崩溃了。

四、价值一个基地的Bug

笔者来自公众号:软测之家

在1991年的一次战争中,一枚导弹准确地击中了某国基地,当场炸死28名士兵。

后来的一项调查发现,一个简单的电脑故障使基地的反导系统失效,并阻止它拦截空中导弹。当时,负责保卫基地的反导系统已经连续工作了100个小时,每工作一个小时,系统中的时钟就会出现微小的毫秒延迟,这就是这次故障悲剧的根源。反导系统的时钟寄存器设计为24位,因此时间精度限制在24位。经过长时间的工作,这种微小的精度误差逐渐放大。工作100小时后,系统延时为1 / 3秒。

对于普通人来说,0.33秒是微不足道的。但是对于一个需要跟踪和摧毁机载导弹的雷达系统来说,这是灾难性的——导弹的速度为4.2马赫(1.5千米/秒),“极微小”的0.33秒相当于大约600米的误差。在导弹的例子中,雷达探测到导弹在空中,但由于时钟误差没有准确地跟踪到它,基地的反导导弹没有发射。

对于普通人来说,0.33秒是微不足道的。但是对于一个需要跟踪和摧毁机载导弹的雷达系统来说,这是灾难性的——导弹的速度为4.2马赫(1.5公里/秒),“极微小”的0.33秒相当于误差约600米。在导弹的情况下,雷达探测到导弹在空中,但由于时钟误差没有准确地跟踪它,基地的反导弹导弹没有发射。

五、价值的一个航天器的Bug

笔者来自公众号:软测之家  

火星气候探测器于1997年发射,用于研究火星的气候,但未能完成这项耗资3亿多美元的任务。在太空中呆了几个月后,探险者号由于导航错误在火星大气层中解体了。探测器的控制小组以英制单位发送导航指令,而探测器的软件系统以公制单位读取指令。此错误会显著更改导航控制路径。该航天器最终进入了火星的低地球轨道(误差达到100公里),在火星大气的压力和摩擦下解体。

六、价值一个火箭的Bug

笔者来自公众号:软测之家    

程序员必须编写程序来定义程序使用的变量,以及这些变量所需的计算机内存(以位为单位定义)。

一个16位的变量可以代表-32.768到32.767中间的值。而一个64位的变量可以代表?9.223.372.036.854.775.808到9.223.372.036.854.775.807中间的值。

1996年6月4日,火箭首次发射后,该火箭开始偏离轨道,被迫引爆并自毁。整个过程只持续了30秒。火箭是基于前面的第4代。在4火箭系统、水平速度测量使用16变量和记忆,因为在4火箭系统反复验证,此值不超过16个变量,和5火箭开发人员只需复制一部分项目,而不是数值验证的新火箭,致命的结果数值溢出。

发射后,小数点后的64位变量转化为一个16位的变量没有小数点,引起一系列的错误,火箭上的所有计算机和硬件的影响,整个系统瘫痪,并迫使它自我毁灭,4亿美元变成了一个巨大的烟火表演。

七、总结

如果你对软件测试、接口测试、自动化测试、面试经验交流感兴趣欢迎加入:

软件测试技术群:695458161,群里发放的免费资料都是笔者十多年测试生涯的精华。还有同行大神一起交流技术哦。

作者:诸葛

出处:https://www.jianshu.com/p/61863231d934

原创不易,欢迎转载,但未经作者同意请保留此段声明,并在文章页面明显位置给出原文链接。

上一篇下一篇

猜你喜欢

热点阅读