程序錯誤(英語:Bug),是程序設計術語,是指軟件運行時因程序本身有錯誤而造成功能不正常、死機、數據丟失、非正常中斷等現象。有些程序錯誤會造成計算機安全隱患,此時叫漏洞

第一次發現導致計算機錯誤的飛蛾,也是第一個計算機程序錯誤。
貝爾尼十字架站的當機狀態
廣州地鐵票務檢驗機彈出程序出錯對話框

一些有趣的隱錯有時也會成為一種樂趣。在電腦遊戲中,假如一些隱錯不令遊戲出現大錯誤的話,經常會變成一種玩遊戲時的秘技(秘技有時是遊戲設計者故意加入,用於檢查程序設計,繞過不需要的步驟直接檢驗需要的地方時所使用的代碼)。

有嚴重後果的錯誤會受到廣泛關注。[1]修補、改正軟件程序錯誤的過程稱為調試

「Bug」的詞源

來自工程學

用bug來指工程錯誤這種用法大約出現在1870年代,早在電腦出現前就存在。目前最早找到的證據是愛迪生在1878年的信[2]

It has been just so in all of my inventions. The first step is an intuition, and comes with a burst, then difficulties arise—this thing gives out and [it is] then that "Bugs"—as such little faults and difficulties are called—show themselves and months of intense watching, study and labor are requisite before commercial success or failure is certainly reached.

中譯如下:

在我所有發明都如此。第一步是直覺,然後靈光一閃,然後出現困難——這事發生了,然後「Bug」——這樣稱呼那些微小錯誤和困難——展現出來。在明確到達商業成功或失敗前必需數個月的密切關注、研究和勞動。

資訊工程與一般大眾所知的起源

1947年9月9日,葛麗絲·霍普(Grace Hopper)發現了第一個電腦bug。有一次Mark II突然宕機,整隊團隊都搞不清電腦為何不能正常運作。經過大家深度挖掘,發現原來有飛蛾意外飛入一臺電腦引起故障(如圖所示)。團隊很快排除錯誤,並在日誌本記錄這事。也因此,人們逐漸開始用「Bug」(原意「蟲子」)來稱呼計算機隱錯。現在在華盛頓美國國家歷史博物館還可以看到這份遺稿。[3]

管理錯誤的常見用語

Thumb
典型錯誤歷史(GNU Classpath project數據)。由用戶提交的錯誤是「未確認」(unconfirmed),一旦該錯誤由開發人員重現,即為「已確認」(confirmed)錯誤。此後已確認的錯誤會「修復」(fixed)。其他類別的錯誤(無法重現、不予解決等)通常不多見。
  • 處理進度
    • New:代表新回報錯誤
    • Resolved:代表錯誤已處理完(見下方「處理方式」)
    • Closed:處理完並已驗證
  • 處理方式
    • Fixed:錯誤已修復
    • Later:必須到未來的版本才能解決。
    • Workaround:不能解決,但可用替代方法避開。
    • Duplicate:重複回報的錯誤
    • Severity:錯誤造成的嚴重度
    • Debugging(簡稱Debug):指解決錯誤的動作和過程(調試)。

參見

參考資料

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.