軟體Bug引發的十次嚴重後果
2009年2月份Google的Gmail故障,應該算是最近因軟體故障而受到廣泛關注的事件。據Google後稱,那次故障是因資料中心之間的負載均衡軟體的Bug引發的。Gmail故障還僅是導致使用者幾個小時內無法訪問郵箱,並沒有造成傷亡。當然了,對某些使用者來講,是非常不便。但看了這篇文章後,您會發現,Gmail的故障問題真是“小巫見大巫”了。
一觸即發的第三次世界大戰
1980年,北美防空聯合司令部曾報告稱美國遭受導彈襲擊。後來證實,這是反饋系統的電路故障問題,但反饋系統軟體沒有考慮故障問題引發的誤報。
1983年,蘇聯衛星報告有美國導彈入侵,但主管官員的直覺告訴他這是誤報。後來事實證明的確是誤報。
幸虧這些誤報沒有啟用“核按鈕”。在上述兩個案例中,如果對方真的發起反擊,核戰爭將全面爆發,後果不堪設想。
圖1:遊戲模擬圖
“漏網”的臭氧層空洞
南極洲上方的臭氧層空洞一直存在但長期未被發現,這是為什麼?
1978年,NASA啟動臭氧層測繪的計劃。在設計之時,用於該計劃的資料分析軟體忽略了和預測值有很大差距的資料。直到1985年,才發現南極洲上方的臭氧層空洞,但不是NASA發現的(是英國科學家先發現的)。直到NASA重新檢測它們的資料,才發現這一錯誤。在修正錯誤後,NASA證實南極臭氧層的確有個很大的空洞。
圖2:2010年7月19日 臭氧層“CT照片”
致命的輻射治療
1985到1987年,Therac-25輻射治療裝置捲入多宗因輻射劑量嚴重超標引發的醫療事故,其罪魁禍首是醫療裝置電力軟體的Bug。據統計,大量患者接受高達100倍的預定劑量(治療),其中至少3人直接死於輻射劑量超標。
另一宗輻射劑量超標的事故發生在2000年的巴拿馬城(巴拿馬首都)。從美國Multidata公司引入的治療規劃軟體,其(輻射劑量的)預設值有誤。有些患者接受了超標劑量的治療,至少有5人死亡。後續幾年中,又有21人死亡,但很難確定這21人中到底有多少人是死於本身的癌症,還是輻射治療劑量超標引發的不良後果。
阿麗亞娜5型火箭的杯具處/女秀
1996年6月4日,阿麗亞娜5型運載火箭的首航,原計劃將運送4顆太陽風觀察衛星到預定軌道,但因軟體引發的問題導致火箭在發射39秒後偏軌,從而啟用了火箭的自我摧毀裝置。阿麗亞娜5型火箭和其他衛星在瞬間灰飛煙滅。(見圖3)
後來查明的事故原因是:程式碼重用。阿5型的發射系統程式碼直接重用了阿4型的相應程式碼,而阿4型的飛行條件和阿5型的飛行條件截然不同。此次事故損失3.7億美元。
圖3: 阿麗亞娜5型火箭爆炸瞬間
有興趣的朋友可以詳見《阿麗亞娜5型火箭發射失敗的調查報告》。
飛行事故
1994年在蘇格蘭,一架吉努克型直升飛機墜毀,29名乘客全部罹難。然而最初指責聲都指向飛行員,但後來有證據表明,直升飛機的系統錯誤才是罪魁禍首。
另外一次因軟體而引發的飛行事故發生在1993年。瑞典的一架JAS 39鷹獅戰鬥機因飛行控制軟體的Bug而墜毀。
消失在太空
在製造其火星氣候軌道探測器時,一個NASA的工程小組使用的是英制單位,而不是預定的公制單位。這會造成探測器的推進器無法正常運作。正是因為這個Bug,1999年探測器從距離火星表面130英尺的高度垂直墜毀。此項工程成本耗費3.27億美元,這還不包括損失的時間(該探測器從發射到抵達火星將近一年時間。)
圖5:火星氣候軌道探測器
太空中看到的爆炸
據傳,在冷戰時期,CIA曾成功向前蘇聯“輸出”一個有設計缺陷的控制軟體,該軟體用來控制天然氣主管道。(KGB從一家加拿大公司竊取該軟體。)那個植入的Bug最終引發了1982年的西伯利亞天然氣管道大爆炸。
CIA前高/官裡德回憶道:“那次爆炸的結果是非常驚人的,它是除了核爆炸之外最壯觀的爆炸之一,騰起的熊熊大火甚至從太空中都能看到,並已被衛星拍攝了下來。”
雖然這個例子是有意而為之的,但其足以證明軟體缺陷可以引發的致命後果。
仔細測試:不僅能省錢,更能救人
雖然本文中提到了10個例子,但這只是冰山一角。全球每年因軟體缺陷引發的問題數不勝數。
軟體缺陷的代價極其昂貴。2002年,美國國家標準與技術研究所的一項研究表明,軟體缺陷給美國每年造成的損失高達595億美元。想想全球這個數額會是多大。那項研究還證實:超過1/3的損失——高達222億美元,原本稍加測試,即可避免。
後記
有些缺陷或許只會引發小毛病,但飛行控制系統軟體和醫療裝置軟體,還有其他和人命相關的軟體,絕不應該出現因程式問題,而給民眾生命財產帶來無端災難。
來源:Wikipedia和Pingdom 編譯:伯樂線上
相關文章
- 軟體 Bug 引發的十次嚴重後果
- oracle ucm 的嚴重bugOracle
- 軟體測試培訓分享:如何劃分bug的嚴重級別
- mysql xtrabackup 遭遇嚴重bugMySql
- 少年黑客發現MacOS鑰匙串中的嚴重BUG黑客Mac
- 微軟提醒:使用過期Win10預覽版後果嚴重微軟Win10
- 談談BUG嚴重級別(severity)管理
- Gitea 釋出 1.0.2 版本,修正幾個嚴重的 bugGit
- Linux核心修正5年曆史的嚴重bugLinux
- 解Bug之路-中介軟體"SQL重複執行"SQL
- 軟體測試需要嚴進嚴出
- 事後諸葛亮:如何寫出沒有bug的軟體
- SqlException 當前命令發生了嚴重錯誤 應放棄任何可能產生的結果SQLException
- Gitea 釋出 1.0.2版本,修正幾個嚴重的bugGit
- [ZT]智慧ABC一嚴重Bug可使任意程式崩潰
- 軟體開發的“三重門”
- 一個排序引發的BUG排序
- 記一次JVM FullGC引發嚴重線上事故的定位、分析、解決過程!JVMGC
- 為什麼軟體程式設計師的價值總是被嚴重的低估程式設計師
- 《致命Bug:軟體缺陷的災難與啟示》讀後感受
- uTorrent 遭防毒軟體圍剿,Windows Defender視其為嚴重威脅防毒Windows
- CISA警告3個工業控制系統軟體中存在嚴重漏洞
- 軟體開發丨關於軟體重構的靈魂四問
- jdk 升級引發bugJDK
- 軟體開發人員的“七重苦”
- Kubernetes爆發嚴重Bug允許任何使用者訪問管理控制元件控制元件
- 重製遊戲還要重現 Bug?!揭祕遊戲重製的幕後故事遊戲
- 暫緩MongoDB 4.4.2 、4.4.3、 4.4.4版本升級: 存在嚴重BugMongoDB
- MySQL8.0.32版本一個嚴重Bug及解決方案MySql
- 程式碼混淆軟體 DotFuscator 非常嚴重的問題,放在首頁通知一下各位。
- 謹防軟體供應鏈攻擊!軟體設計管理平臺Atlassian中嚴重的Jira缺陷可能導致RCE
- 在Apache Cassandra資料庫軟體中報告高嚴重性RCE安全漏洞Apache資料庫
- 如何解決win10正式版發熱嚴重的問題_win10筆記本發熱嚴重處理方法Win10筆記
- 蘋果iPhone11發熱嚴重訊號差是怎麼回事?iPhone11發熱嚴重訊號差的處理方法蘋果iPhone
- 軟體測試---BUG的生命週期
- mongodb 對記憶體的嚴重佔用以及解決方法MongoDB記憶體
- MongoDB對記憶體的嚴重佔用以及解決方法MongoDB記憶體
- 一次政府部門OA系統webloigc中介軟體BEA-000802引發出來的BUGWebGC