寫了九年的部落格,我猜測至少有一半的內容是圍繞**質量或除錯進行的。 雖然我寫關於這些主題的文章,花費了很多時間,但是無論出於何種原因,直到昨天,我才意識到我沒有乙個可靠的關於debug定義,或者甚至是針對debug問題的bug定義。在debug的時候,我們到底在debug什麼。 我想我是還是有對什麼是bug以及debug**意味著什麼的通常的理解的。 意識到這可能並非如此,我想出了乙個定義來解釋bugs對我來說是什麼......
bug:乙個特性被定義,實現和/或預期滿足特定目的,但未能實現的狀態。這是乙個相當廣泛的定義。 我想說這是乙個明顯的定義,但考慮到我花了這麼長時間才想出來 - 不必介意我在寫這個過程中多次修改它的事實! - 這讓我想知道這是不是真的。 讓我解釋我是如何來到這個的。
首先,我認為觀點很重要,在硬體方面,我認為有三個截然不同的觀點。 首先是架構師或決策者的視角; 他們的觀點就成了定義。 其次是開發人員和功能的實施。 最後是使用者的角度以及他們對該功能如何影響其使用模式的期望。 在巨集觀層面上,成功的應用情景要求,所有三個方面保持一致是似乎是很容易的:乙個功能必須按預期定義並正確實施。 但實際上,它比聽起來更複雜。
(在細節方面,往往會有很大的擺動空間,完全一致性依賴於團隊在常見假設下開發和工作,我知道我們作為乙個行業喜歡相信產品說明書中的規格說明,但我傾向於看到常見的假設對feature生命週期比任何spec更有影響力,而且它們只能來自一起工作。)
現在轉到「但未能這樣做」來檢視所有不同的可能故障模式。我們可以定義乙個不符合預期的feature:它可能通過設計產生不正確的結果,也許它會產生正確的結果,但形式不可接受; 也許它不會產生一些預期的結果。
然後有一些實施中的錯誤,我們可以將其分成幾個子類別。最常見的是開發人員理解定義,但不會產生與之匹配的實現。較少但仍然很常見的是牢固實現自己的misunderstanding。當然,我們也可能在實施的格式和完整性方面存在問題。
請注意,我正在根據期望定義bug。有時期望是有效的,設計或實施需要改變; 有時需要改變的是期望。
最後,什麼時候可以安全地得到期望(即什麼時候bug成為bug)?對於我來說,如果某個功能發布給使用者,或者只是簡單地讓使用者可以接受,並且它可以工作。如果沒有,就有乙個bug。這是乙個很高的要求,但這對於通過開發和部署來保持一致的質量水平至關重要。並不是很多硬體團隊都這樣做,這可能就是為什麼我們在這裡。就我個人而言,我知道每當我繞著這條規則行事時,就會有人出其不意在黑暗深林中釋放出乙個bug。
說到漏洞中的bug,這裡有乙個debug的定義...
除錯:努力花費時間對bug進行調整並從中恢復。另乙個(故意)寬泛的定義。當我們從端到端的角度來看,開始和結束時,bug會激發乙個永遠不會存在的長鏈。認識到存在乙個錯誤; 有時他們很明顯,其他時間不是那麼多。然後是根本原因分析。基本缺陷可能會直接傳送給設計和應用補丁的人。對於更複雜的錯誤,正確的解決方案可能需要長時間的電子郵件討論和/或更正式的會議。還有處理bug報告的資料庫。不要忘了管理者要專門維護資料庫,編寫報告等。如何統計回溯和更新補丁花費的時間?最後還有發布補丁,這可能會或可能不需要更多的會議和/或團隊之間的協調。這很多,不是嗎? 可能我錯過了某些步驟,但底線在這裡:除錯不僅僅是我們致力於分析和重新編碼的時間。無論如何...給(de)bug的定義一些想法,讓我知道你的想法!
BUG 與 DEBUG的神秘探索
呵呵,我想搞it的應該每天會遇到很多的bug吧,呵呵,特別是做軟體的同胞們,有時候bug遇到多了都想把電腦給砸了,有乙個bug 我 下面就讓我們了解一下他的來歷哦 霍德華 艾肯在哈佛大學攻讀物理學博士學位時,開始夢想製作一台計算機幫他解決數學難題,工作後,他找到ibm公司為其投資100萬美元研製計算...
bug的嚴重程度級別,bug的定義
不過等級劃分 1級 致命 1.由於程式引起的非法宕機,退出,資料丟失,主要功能完全喪失,系統懸掛等錯誤 2.操作或使用某一功能時,導致程式異常退出,或其餘功能無法使用,或造成經常性宕機和重啟 3.正常的使用者操作,導致系統崩潰 2級 嚴重 1.嚴重影響系統要求或基本功能的實現,且沒有辦法避免衝突 2...
Bug等級定義
1.1 a 級 high 描述 1.系統崩潰,如應用程式死掉 應用程式異常退出 通訊意外中斷或系統進入死迴圈 2.基本功能無法實現或遺漏,如某一應用程式啟動不了或關鍵功能無法執行,關鍵資料錯失較多 3.效能問題,如操作實時失敗 資料庫讀寫效率低 4.無法正常安裝 5.公升級指令碼錯誤,使公升級失敗 ...