程序错误

程序错误（），是程序设计術語，是指软件运行時因程序本身有错误而造成功能不正常、死机、数据丢失、非正常中断等现象。有些程序错误会造成计算机安全隐患，此时叫漏洞。

一些有趣的隐错有时也会成为一种乐趣。在电脑游戏中，假如一些隐错不令遊戲出現大錯誤的話，经常会变成一种玩游戏时的秘技（秘技有時是遊戲設計者故意加入，用於檢查程序設計，繞過不需要的步驟直接檢驗需要的地方時所使用的代碼）。

有严重后果的错误会受到广泛关注。修补、改正软件程序错误的过程称为调试。

「Bug」的詞源

來自工程學 
用bug來指工程錯誤這種用法大約出現在1870年代，早在電腦出現前就存在。目前最早找到的證據是愛迪生在1878年的信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”（原意“虫子”）来称呼计算机隐错。现在在华盛顿美国国家历史博物馆还可以看到这份遗稿。

管理錯誤的常見用語 

 處理進度
 New：代表新回報错误
 Resolved：代表错误已處理完（見下方「處理方式」）
 Closed：處理完並已驗證
 處理方式
 Fixed：错误已修復
 Later：必須到未來的版本才能解決。
 Workaround：不能解決，但可用替代方法避開。
 Duplicate：重複回報的错误
 Severity：错误造成的嚴重度
 Debugging（简称Debug）：指解决错误的动作和过程（调试）。

参见 
 调试
 2000年问题
Therac-25案例
 
Gotcha（编程）
軟體缺陷指-{}-標

参考资料

 
计算机编程