即使有經驗的程式設計師,一般開發
7~10
行源程式就會引入乙個缺陷,一般在編譯和測試階段能發現和糾正大部分缺陷,但仍有許多缺陷留在最終產品中。
缺陷是指程式中存在的錯誤
為防止缺陷的引入,需要精通所用的程式語言,深入理解開發支援環境,掌握要開發的應用系統的型別等。
一般的軟體組織要用一半以上的時間和精力來查詢和修復缺陷,由於測試時間難以預計,產品缺陷常常是產生超支和延期的主要原因。
當軟體工程師對你說程式中僅剩幾個
bug時,你可能感到一陣輕鬆,若告訴你程式經過全部測試,僅留幾個定時炸彈時,你的感覺如何?
編寫程式的軟體工程師本人最適合查詢和修復程式中的缺陷,因此軟體工程師應該承擔所生產的軟體的質量的責任。
若你不朝著設計無缺陷程式的方向努力,你永遠也不可能達做到這一點。
把缺陷進行分類,把精力集中到最容易引起問題的幾類缺陷上,這是缺陷管理的關鍵。
逃過你所有的缺陷預防和檢測手段的漏網者,對於了解你自己的個體軟體過程的弱點是非常重要的,對它們的了解將成為你個體過程改善的主要資料**。
目前,我們可把精力集中在編譯或測試階段發現缺陷,隨著收集缺陷的增多和習慣,逐漸關注和尋找在設計和編碼階段出現的錯誤,因為大多數的缺陷還是在設計和編碼階段引入的。
收集缺陷資料的理由:(1
)提高程式設計水平。缺陷資料可以幫助你改進編寫程式的方法,不要輕易對缺陷辯解,不要輕易原諒缺陷。 (
2)減少程式中缺陷個數。通過收集缺陷資料,改進程式設計方法,可以減少引入的缺陷。 (
3)節省時間。錯誤能引起更多的錯誤,查詢和修復缺陷應越早越好,越能節約專案時間。 (
4)節約開支。缺陷帶來的費用是昂貴的,單元測試後,在以後的各個測試和維護階段,其查詢和修復的費用平均以十倍的速度增長。 (
5)負責任地完成工作。缺陷是工程師引入的,他們有責任查詢和修復這些缺陷。
使用編譯器發現缺陷
編譯器能標識出大部分語法錯誤,但它不能辨認你的意圖
.編譯器檢查不出來的大部分是設計錯誤,也有一些是語法錯誤。
c++的缺陷資料表明,大約有
9.4%
的語法錯誤會通過編譯。
通過測試找出缺陷
通過使用者發現和反饋找出缺陷
這是一種常見的方法,事實證明,這也是花費最大的策略,如
ibm每年花費大約
2.5億美元用於修復
1.3萬個客戶反饋的缺陷和重新安裝修復後的版本,每個缺陷花費約
2000
美元。
通過**複查技術找出缺陷
**複查就是個人複查源程式清單。這是最快和最有效的發現和修復缺陷的方法。
**複查有效率的原因是:在**複查時看到的是缺陷本身而不是徵兆。
**複查也有缺點:一是非常耗時,二是很難恰當地進行。
編譯器是現有速度最快的缺陷檢測工具,但它只能查出大約
90%的語法錯誤和很少的邏輯錯誤。
單元測試是最有效的測試階段,但它只能發現大約
50%的缺陷。
系統測試一般僅能找到進入系統測試時產品中缺陷的大約
30~40%
測試可以驗證程式幾乎所有的功能,但它只能給出缺陷的徵兆,需要你去找出問題的根源,然後開始修復。
同行檢查,或叫同行評審,是讓幾個工程師彼此複查程式。
同行檢查組織得好,一般會發現程式中
50~70%
的缺陷。 在
psp中主要的缺陷排除方法是個人**複查,先列印程式清單,然後逐行進行複查。
最有效的方法是找出以前的程式中在編譯和測試階段引起最大問題的那些缺陷型別。
在第一次編譯前仔細地複查**,能減少編譯時間,大約
10%的編譯時間,並且可節省更多的測試時間。
PSP課程 一 PSP簡介
psp簡介 主題 改變所需要的 psp和tsp原則和目標 什麼是tsp?管理支援所需要的 什麼是psp,它能提供什麼幫助?課程結果 軟體,改變的世界 軟體控制著多數的商業 和軍事系統。l 工廠操作由軟體控制 l 大多數高階產品的生產由軟體控制 l 金融 管理和商業操作的運營都需要軟體 軟體的消費 規...
缺陷上報統一模板及缺陷管理流程
1 前置條件 要根據對測試理論及專案業務的理解呢,對缺陷的嚴重性和優先順序有個清晰思路並進行正確的劃分。2 統一缺陷報告的模板 1 編號 2 所屬模組 3 摘要 標題 用一句話描述bug 4 測試環境 操作步驟 實際結果 期望結果 備註 5 bug優先順序 嚴重性 6 測試人 7 日期 8 bug狀...
缺陷跟蹤管理
缺陷跟蹤管理是測試工作的乙個重要部分,測試的目的是為了盡早發現軟體系統中的缺陷,因此,對缺陷進行跟蹤管理,確保每個被發現的缺陷都能夠及時得到處理是測試工作的一項重要內容。1 缺陷跟蹤管理的目標 缺陷能夠引起軟體執行時產生的一種不希望或不可接受的外部行為結果,軟體測試過程簡單說就是圍繞缺陷進行的,對缺...