TL;DR:1962 年 7 月,NASA 的水手 1 号金星探测器发射不到 5 分钟就被地面下令炸毁。流传最广的说法是“一个漏掉的横杠”,但官方资料指出,失败是 Atlas 火箭上的制导信标故障加上软件公式里漏掉一条上划线(overbar)共同造成的。软件错误确实存在,但并非单独的“罪魁祸首”;“横杠”和“1800 万美元”等流行细节,本文不做断言。 这是 1962 年的旧事,不是新闻。 水手 1 号是 NASA 水手系列的第一个探测器,目标是飞越金星。1962 年 7 月
TL;DR:1991 年海湾战争期间,沙特达兰的一套爱国者防空系统没有拦截来袭的伊拉克飞毛腿导弹,导弹击中美军营房,造成 28 名美军死亡。美国审计署(GAO)的调查把原因归为软件时间计算的累积误差:系统连续运行约 100 小时后,时钟偏差约 0.34 秒,足以让雷达在错误的位置找目标。这不是说“一个小数就杀了人”:软件缺陷是直接原因,但补丁推广的时机同样是故事的一部分。 这是 1991 年 2 月 25 日发生的旧事,不是新闻。 爱国者系统的内部时钟以 0.1 秒为单位计数
TL;DR:1996 年 6 月 4 日,欧洲新一代火箭阿丽亚娜 5 号(Ariane 5)首飞,升空约 37 秒后解体自毁。调查委员会认定的直接原因是惯性导航软件把一个 64 位浮点数塞进 16 位整数,数值超限触发异常,两套导航计算机相继停机。这段软件基本沿用自旧型号阿丽亚娜 4 号,而新火箭的飞行轨迹让数值远超旧值。报告没有给出损失金额;业内常引用的“约 3.7 亿美元”来自二手资料。 这是 1996 年的旧事,不是今天的新闻。但它至今仍是软件工程课上的常客。 阿丽亚娜
TL;DR:1999 年起,英国邮政在各地分局推行 Horizon 会计系统,此后十余年里,大批分局长因为系统里“对不上的账”被指控盗窃、做假账,甚至入狱。2019 年英国高等法院裁定,Horizon 确实存在会造成账目差额的 bug、错误和缺陷;2024 年英国又专门立法,批量撤销相关有罪判决。需要说明的是,具体每位当事人的案情各不相同,本文讲的是这起事件的整体脉络。 这是一起老事件,不是今天的新闻。故事从 1999 年开始,主要的错误起诉发生在 2000 年代到 2010