巧破軟件測試缺陷管理之痛

發表于:2011-11-04來源:未知作者:領測軟件測試網采編點擊數: 標簽:測試缺陷管理
人世間最痛苦的事莫過于——我所在項目開發正陷于混亂不堪的缺陷之中。因為缺乏一套缺陷管理的有效解決方案,使程序的缺陷無法回溯,無法跟蹤,解決沒解決不清楚,整一個就是一片模糊。 由于沒有得到足夠的重視,軟件缺陷管理處于失控狀態。軟件測試人

  人世間最痛苦的事莫過于——我所在項目開發正陷于混亂不堪的缺陷之中。因為缺乏一套缺陷管理的有效解決方案,使程序的缺陷無法回溯,無法跟蹤,解決沒解決不清楚,整一個就是一片模糊。

  由于沒有得到足夠的重視,軟件缺陷管理處于失控狀態。軟件測試人員報告的缺陷常常被遺忘掉;或沒有人知道在新的軟件版本里究竟糾正了哪些缺陷,還有哪些缺陷未被糾正。更重要的是糾正過程是否引入了新的缺陷也沒有人知道,再或者就是缺陷報告書寫不規范,使得開發人員不得不一次次找到測試人員來面談,還有許多無效的文檔使缺陷狀態混亂,相關人員無法及時獲得有關的變更信息。

  什么是開發的缺陷管理?

  軟件中的缺陷(Defect或BUG)是軟件開發過程中的“副產品”。通常,缺陷會導致軟件產品在某種程度上不能滿足用戶的需要。每一個軟件開發團隊都必須知道如何妥善處理軟件中的缺陷,這關系到軟件生存、發展的質量根本??蛇z憾的是,并非所有的軟件開發團隊都知道如何有效地管理軟件中的缺陷。

  軟件缺陷管理是在軟件生命周期中為確保缺陷被跟蹤和管理所進行的活動。狹義地講,BUG是寫程序過程中造成的錯誤。廣義地講,BUG是影響客戶正常使用的任何問題。就是說,BUG不僅僅是編程中出現的問題,還包括客戶需求和功能規范等方面。

  (1)缺陷管理的目標

  一般而言,缺陷的跟蹤和管理需要達到以下兩個目標:一是確保每個被發現的缺陷都能夠被解決,二是收集缺陷數據并根據缺陷趨勢曲線識別和預防缺陷的頻繁發生。

  在談到缺陷管理時,一般人都會只想到如何修正缺陷,而對根據缺陷分析進行有效預防缺陷卻很容易忽視。其實,在一個運行良好的項目開發中,缺陷數據的收集和分析是很重要的,從缺陷數據中可以得到很多與軟件質量相關的數據。例如通過缺陷趨勢曲線來確定測試過程是否結束是常用并且較為有效的一種方式。常見的的缺陷數據統計圖表包括缺陷趨勢圖、缺陷分布圖、缺陷及時處理情況統計表等。

  (2)缺陷管理重在預防缺陷

  正如我們所知,BUG應該盡早地在開發過程中被發現。修正處于開發階段的BUG的成本遠遠低于修正處于驗收階段的BUG,而相對與修正已經發布給客戶的產品BUG的成本更是可以忽略不計。因此,越晚修正BUG,需要重做的事情就越多。

  對很多人來說,零缺陷的軟件產品似乎是不切實際的。因此,我們總是聽到許多軟件開發人員說:“軟件永遠有BUG”。軟件產品含有BUG并不奇怪,不幸的是發布一個包含很多BUG的產品給客戶仍然不讓人感到驚訝,這就是一件值提深思的事情了。

  事實上,每個軟件開發團隊都可以通過一些簡單的方法,在不增加額外資源的情況下預防BUG。為了能夠預防BUG,我們首先需要了解BUG的來源。軟件BUG可以分為幾個類別:第一類BUG可能是隨機的,它們通常是因為一時的疏忽造成的。盡管這些BUG可能由于其隨機性很難預防。但是,適當的分析將有助于避免這些BUG。另一類的BUG來自于需求誤解、開發環境的錯誤或者純粹由于缺乏解決問題的相關技術,這類BUG共同的特點是都來自于開發人員。

  但有一個好消息是,軟件中的BUG往往傾向于重復出現,即使是一個隨機出現的BUG。軟件BUG的不斷出現不僅表現在同一個開發人員的工作上,而且表現在同一個項目上。這當然不是說項目中的每一個開發人員都會犯同樣的錯誤。但是,至少其中一些的錯誤足以成為經常性出現的問題。因此,BUG的預防尤為重要。

  缺陷管理的核心:缺陷分析

  缺陷預防的著眼點在于缺陷的共性原因(Common Cause)。通過尋找、分析和處理缺陷的共性原因,實現缺陷預防。BUG預防并不是一個不切實際的目標,但是不能期望它在一夜之間發生。我們在開發過程中應該積極為開發小組提供缺陷分析,使BUG逐漸改善。因此,缺陷管理的最終目標是預防BUG,不斷提高整個開發團隊的技能和實踐經驗,而不只是修正它們。

  BUG預防策略非常簡單和容易實現,策略是發現BUG,找出BUG的根源,然后尋找一個方法來預防類似的BUG在將來出現。這策略并不需要昂貴的花費,但是卻可帶來極大的額外價值。

  (1)BUG記錄

  BUG分析的第一步是記錄BUG,值得注意的是記錄BUG不應該滿足于記錄BUG的表面癥狀。測試的一個重要職責就是試圖發現BUG的根本原因,在測試時不應將產品看作一個黑盒,而應該像開發人員那樣了解產品的內在,包括深入源代碼,理解產品的設計和實現。

  (2)利用BUG分析了解開發質量趨勢

  對于測試出來的BUG進行缺陷分類,找出那些關鍵的缺陷類型,進一步分析其產生的根源,從而針對性的制定改進措施。缺陷分析非常關鍵的一步就是尋找一個預防類似缺陷再次發生的方法。這一方法不僅涉及到開發、測試人員,還涉及到不直接負責代碼編寫的資深開發人員。利用這一階段的實踐成果,開發人員可以預防BUG的發生,而不僅僅是修正這些BUG。

  BUG預防分析是整個BUG分析過程的核心。這一階段總結出的實踐可以在更廣泛的范圍內預防潛在的缺陷。由于分析結果的廣泛應用性,分析某個具體BUG的投入將很容易被收回。在這個時候,BUG分析提供了兩個非常重要的參數,一個是缺陷數量的趨勢,另一個是缺陷修復的趨勢。缺陷趨勢就是將每月新生成的缺陷數、每月被解決的缺陷數和每月遺留的缺陷數標成一個趨勢圖表。

  一般在項目的開始階段發現缺陷數曲線會呈上升趨勢,到項目中后期被修復缺陷數曲線會趨于上升,而發現缺陷數曲線應總體趨于下降。同時處于OPEN狀態的缺陷也應該總體呈下降趨勢,到項目最后,三條曲線都趨向于零。項目經理可通過持續觀察這張圖表,確保項目開發健康發展。同時,通過分析預測項目測試缺陷趨于零的時間,以制定產品質量驗收和發布的時間。

  實際上,BUG分析圖表會告訴我們很多有價值的信息。比如說,可分析開發和測試在人力資源的配比上是否恰當,可以分析出某個嚴重的缺陷所造成的項目質量的波動。對于異常的波動,如本來應該越測試越收斂的,卻到了某個點發現的故障數反而呈上升趨勢,那么意味著往往有一些特殊事件的發生。通過對測試缺陷分析,能夠給予我們很多改進研發和測試工作的信息。

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97