缺陷的預測
質量、成本和進度是決定一個項目成敗的關鍵因素。雖然國際軟件質量標準中有說明,但是由于軟件擁有很多質量特性,因此也很難定義軟件質量的內容。在實踐中,質量管理往往跟缺陷相關,因此我們使用交付后的缺陷密度,即:交付后軟件的每個單位規模的缺陷數作為軟件質量的定義。該定義是實際上的行業通用標準。該定義表明一個軟件項目的目標就是盡可能的降低交付后的產品的缺陷數。但是,如何定義缺陷呢?通常我們可以將軟件的缺陷理解為導致開發出的軟件與客戶的要求或需求不一致的因素。
對于高質量的軟件來說,最終的產品應該盡量少缺陷,而軟件開發是一種人為的活動,不可避免的會注入各種缺陷,因此,對于交付的高質量軟件來說,積極的去除缺陷很有必要。排除缺陷貫穿質量控制的評審活動和測試活動中。質量控制不同于質量管理。因此質量控制關注找到并排除缺陷,質量保證的主要的目的是確保軟件開發的流程和標準被遵守執行。
軟件質量控制對任何項目都很重要。詳細可以參考 CMMI3 級中關于軟件測試的實踐。關注點為確保質量控制活動合理執行。我們稱這種戰略為“流程化質量控制方法”。量化進行質量計劃和質量是CMMI4 級關注點。我們首先討論質量管理的概念和方法,然后描述質量計劃的方法應用。
軟件質量和缺陷
在討論質量管理的技術之前,首先要理解缺陷注入和缺陷排除的過程。缺陷在軟件開發的整個階段都會注入,也就是說,在將從獲取客戶需求到開發出滿足客戶需求的軟件產品的過程中,缺陷是隨時都可能產生的。這些階段主要是需求階段,概要設計階段,詳細設計階段和編碼階段。
基于上述原因,在交付產品前的排除缺陷就顯得極為迫切。
項目的過程包括發現缺陷以及由此引發的排除缺陷的很多活動,雖然兩者不同,但是我們講利用排除缺陷來綜合考慮項目。缺陷發現的時間越晚,排除缺陷的成本就越高。因此一個成熟的過程一定包括每個階段質量控制活動。缺陷排除的活動包含需求評審,設計評審,代碼評審,單元測試,集成測試cmmi345.org,系統測試和驗收測試(雖然計劃文檔的評審也幫助提高軟件質量,但這里不包含對計劃文檔的評審)。過程的缺陷注入和排除如下圖所示。
質量管理的任務是計劃合理的質量控制活動,并適當的執行和控制這些活動,使得在產品交付之前能發現的缺陷達到最多。 |
|