複製鏈接
請複製以下鏈接發送給好友

程序錯誤

鎖定
程序錯誤,即英文的Bug,也稱為缺陷、臭蟲,是指在軟件運行中因為程序本身有錯誤而造成的功能不正常、死機、數據丟失、非正常中斷等現象。 早期的計算機由於體積非常龐大,有些小蟲子可能會鑽入機器內部,造成計算機工作失靈。史上的第一隻 Bug ,真的是因為一隻飛蛾意外走入一電腦而引致故障,因此Bug從原意為臭蟲引申為程序錯誤。
中文名
程序錯誤
外文名
Bug
也稱為
缺陷、臭蟲
原    意
臭蟲引申為程序錯誤

目錄

程序錯誤定義

中文常稱BUG為“缺陷”。而且,“缺陷”一詞更能反映事情的本質。因為“臭蟲”是從外面飛進去的,並非程序本身有問題。而程序本身存在的問題,是程序原來就具有的。因此,在這裏將BUG翻譯為“系統漏洞”更合適。

程序錯誤由來

Bug一詞的原意是“臭蟲”或“蟲子”。但是現在,在電腦系統或程序中,如果隱藏着的一些未被發現的缺陷或問題,人們也叫它“bug”,這是怎麼回事呢?
歷史上第一個Bug 歷史上第一個Bug
原來,第一代的計算機是由許多龐大且昂貴的真空管組成,並利用大量的電力來使真空管發光。可能正是由於計算機運行產生的光和熱,引得一隻小蟲子(Bug)鑽進了一支真空管內,導致整個計算機無法正常工作。研究人員費了半天時間,總算髮現原因所在,把這隻小蟲子從真空管中取出後,計算機又恢復正常。後來,Bug這個名詞就沿用下來,用來表示電腦系統或程序中隱藏的錯誤、缺陷、漏洞等問題。
1945年,計算機還是由機械式繼電器和真空管驅動的,機器有房間那麼大。體現當時技術水平的MarkⅡ,是由哈佛大學製造的一個龐然大物。當技術人員正在進行不整機運行時,它突然停止了工作。他們爬上去找原因,發現這台巨大的計算機內部一組繼電器的觸點之間有一隻飛蛾,這顯然是由於飛蛾受光和熱的吸引,飛到了觸點上,然後被高電壓擊死。
與Bug相對應,人們將發現Bug並加以糾正的過程叫做“Debug”(中文稱作“調試”),意即“捉蟲子”或“殺蟲子”。
後來就直接用bug 在現在很多的軟件測試中 都用Bug來説明那些問題。
“bug”術語的發明,因為格蕾絲·霍波Grace Murray Hopper,是一位為美國海軍工作的電腦專家,也是最早將人類語言融入到電腦程序的人之一。)她公佈過早期電子計算機的一個故障原因,通常錯誤地歸功於她。這個版本的故事源自下面這段話:“在1946年,當霍波退役後後,她加入哈佛大學的計算機實驗室,繼續研究馬克II型和馬克III型計算機的工作。操作員在追蹤馬克II型的錯誤時發現繼電器中有一隻飛蛾,遂有bug術語。這個bug被仔細移除,並被貼在日誌本上。這帶來的第一個bug,就是我們今日所説的錯誤(error)或程序中的故障(glitch)。”
格蕾絲·霍波其實並不是那位發現這隻飛蛾的人,只是她欣然承認了而已。雖然日誌本上的日期是1947年9月9日,不過有時候被錯誤地報導成1945年。發現飛蛾的操作員,包括威廉姆·比爾·伯克,伯克在弗吉尼亞州達爾格倫的海軍武器實驗室,熟悉工程術語,好逗樂,給飛蛾寫下了“首個發現bug的實際案例”。霍波喜歡講述這個故事。這個日誌本現存於史密森尼國立美國曆史博物館,飛蛾還完整地貼於其上。

程序錯誤概念

所謂“(Bug)”,是指電腦系統的硬件、系統軟件(如操作系統)或應用軟件(如文字處理軟件)出錯。硬件的出錯有兩個原因,一是設計錯誤,一是硬件部件老化失效等。
軟件的Bug,狹義概念是指軟件程序的漏洞或缺陷,廣義概念除此之外還包括測試工程師或用户所發現和提出的軟件可改進的細節、或與需求文檔存在差異的功能實現等。僅就狹義概念而言,軟件出現Bug的原因有:
  1. 對各種流程分支考慮不全面;
  2. 對邊界情況的處理不到位;
  3. 編碼時的手誤。
任何軟件在發佈時都不可能是絕對的零Bug。在軟件過程管理中通行的CMM能力成熟度模型)中規定的軟件質量標準是(Bug個數/千行源碼):
CMM1級 11.95
CMM2級 5.52
CMM3級 2.39
CMM4級 0.92
CMM5級 0.32