細數(shù)軟件Bug引發(fā)的十大災難后果
2009年2月份Google的Gmail故障,應該算是最近因軟件故障而受到廣泛關注的事件。據(jù)Google后稱,那次故障是因數(shù)據(jù)中心之間的負載均衡軟件的Bug引發(fā)的。
Gmail故障還僅是導致用戶幾個小時內無法訪問郵箱,并沒有造成傷亡。當然了,對某些用戶來講,是非常不便。
但看了這篇文章后,您會發(fā)現(xiàn),Gmail的故障問題真是“小巫見大巫”了。
一觸即發(fā)的第三次世界大戰(zhàn)
1980年,北美防空聯(lián)合司令部曾報告稱美國遭受導彈襲擊。后來證實,這是反饋系統(tǒng)的電路故障問題,但反饋系統(tǒng)軟件沒有考慮故障問題引發(fā)的誤報。
1983年,蘇聯(lián)衛(wèi)星報告有美國導彈入侵,但主管官員的直覺告訴他這是誤報。后來事實證明的確是誤報。
幸虧這些誤報沒有激活“核按鈕”。在上述兩個案例中,如果對方真的發(fā)起反擊,核戰(zhàn)爭將全面爆發(fā),后果不堪設想。
圖1:游戲模擬圖
“漏網”的臭氧層空洞
南極洲上方的臭氧層空洞一直存在但長期未被發(fā)現(xiàn),這是為什么?
1978年,NASA啟動臭氧層測繪的計劃。在設計之時,用于該計劃的數(shù)據(jù)分析軟件忽略了和預測值有很大差距的數(shù)據(jù)。直到1985年,才發(fā)現(xiàn)南極洲上方的臭氧層空洞,但不是NASA發(fā)現(xiàn)的(是英國科學家先發(fā)現(xiàn)的)。直到NASA重新檢測它們的數(shù)據(jù),才發(fā)現(xiàn)這一錯誤。在修正錯誤后,NASA證實南極臭氧層的確有個很大的空洞。
圖2:2010年7月19日 臭氧層“CT照片”
致命的輻射治療
1985到1987年,Therac-25輻射治療設備卷入多宗因輻射劑量嚴重超標引發(fā)的醫(yī)療事故,其罪魁禍首是醫(yī)療設備電力軟件的Bug。據(jù)統(tǒng)計,大量患者接受高達100倍的預定劑量(治療),其中至少3人直接死于輻射劑量超標。
另一宗輻射劑量超標的事故發(fā)生在2000年的巴拿馬城(巴拿馬首都)。從美國Multidata公司引入的治療規(guī)劃軟件,其(輻射劑量的)預設值有誤。有些患者接受了超標劑量的治療,至少有5人死亡。后續(xù)幾年中,又有21人死亡,但很難確定這21人中到底有多少人是死于本身的癌癥,還是輻射治療劑量超標引發(fā)的不良后果。
阿麗亞娜5型火箭的杯具處/女秀
1996年6月4日,阿麗亞娜5型運載火箭的首航,原計劃將運送4顆太陽風觀察衛(wèi)星到預定軌道,但因軟件引發(fā)的問題導致火箭在發(fā)射39秒后偏軌,從而激活了火箭的自我摧毀裝置。阿麗亞娜5型火箭和其他衛(wèi)星在瞬間灰飛煙滅。(見圖3)
后來查明的事故原因是:代碼重用。阿5型的發(fā)射系統(tǒng)代碼直接重用了阿4型的相應代碼,而阿4型的飛行條件和阿5型的飛行條件截然不同。此次事故損失3.7億美元。
圖3: 阿麗亞娜5型火箭爆炸瞬間
飛行事故
1994年在蘇格蘭,一架吉努克型直升飛機墜毀,29名乘客全部罹難。然而最初指責聲都指向飛行員,但后來有證據(jù)表明,直升飛機的系統(tǒng)錯誤才是罪魁禍首。
另外一次因軟件而引發(fā)的飛行事故發(fā)生在1993年。瑞典的一架JAS 39鷹獅戰(zhàn)斗機因飛行控制軟件的Bug而墜毀。
消失在太空
在制造其火星氣候軌道探測器時,一個NASA的工程小組使用的是英制單位,而不是預定的公制單位。這會造成探測器的推進器無法正常運作。正是因為這個Bug,1999年探測器從距離火星表面130英尺的高度垂直墜毀。此項工程成本耗費3.27億美元,這還不包括損失的時間(該探測器從發(fā)射到抵達火星將近一年時間。)
圖4:火星氣候軌道探測器
太空中看到的爆炸
據(jù)傳,在冷戰(zhàn)時期,CIA曾成功向前蘇聯(lián)“輸出”一個有設計缺陷的控制軟件,該軟件用來控制天然氣主管道。(KGB從一家加拿大公司竊取該軟件。)那個植入的Bug最終引發(fā)了1982年的西伯利亞天然氣管道大爆炸。
CIA前高/官里德回憶道:“那次爆炸的結果是非常驚人的,它是除了核爆炸之外最壯觀的爆炸之一,騰起的熊熊大火甚至從太空中都能看到,并已被衛(wèi)星拍攝了下來。”
雖然這個例子是有意而為之的,但其足以證明軟件缺陷可以引發(fā)的致命后果。
仔細測試:不僅能省錢,更能救人
雖然本文中提到了10個例子,但這只是冰山一角。全球每年因軟件缺陷引發(fā)的問題數(shù)不勝數(shù)。
軟件缺陷的代價極其昂貴。2002年,美國國家標準與技術研究所的一項研究表明,軟件缺陷給美國每年造成的損失高達595億美元。想想全球這個數(shù)額會是多大。那項研究還證實:超過1/3的損失——高達222億美元,原本稍加測試,即可避免。
后記
有些缺陷或許只會引發(fā)小毛病,但飛行控制系統(tǒng)軟件和醫(yī)療設備軟件,還有其他和人命相關的軟件,絕不應該出現(xiàn)因程序問題,而給民眾生命財產帶來無端災難
【編輯推薦】