韓雪
文章編號:ISSN1006—656X(2013)12-0064-02
一、軟件質量管理的含義
美國項目管理專家資質認證委員會主席Paul Grace說過,在當今社會中,一切都是項目,一切也將成為項目。項目管理學科的發展,不管在國內還是國外,都進入了一個以超乎尋常的速度發展的階段。軟件項目管理作為一個新興領域隨著軟件產業的蓬勃發展而愈發受人矚目。而軟件項目的質量始終是軟件的核心競爭力,要真正實現和提高軟件項目質量,做好項目質量管理就顯得尤為重要。隨著時代的發展,各企業的信息化程度越來越高,一旦軟件使用過程中出現問題,對客戶的影響將無法估計。
那什么是軟件的質量呢?
國際化標準組織在ISOPIEC9126中將軟件質量定義為:“反映軟件產品滿足規定需求和潛在需求能力的特征和特征的總和”。而M. J . Fisher 將軟件質量定義為:“所有描述計算機軟件優秀程度的特性的組合”。
軟件項目質量管理指的是保證項目滿足其目標要求所需要的過程,它包括編制質量計劃、質量控制、軟件質量保證、軟件配置管理、軟件測試及軟件過程改進所形成的質量保證系統。軟件項目質量管理包括:質量計劃編制、質量保證和質量控制三個過程域。質量計劃是質量管理的第一過程域,它主要結合各個公司的質量方針,產品描述以及質量標準和規則通過收益、成本分析和流程設計等工具制定出來實施方略,其內容全面反應用戶的要求,為質量小組成員有效工作提供了指南,為項目小組成員以及項目相關人員了解在項目進行中如何實施質量保證和控制提供依據,為確保項目質量得到保障提供堅實的基礎。質量保證則是貫穿整個項目全生命周期的有計劃和有系統的活動,經常性地針對整個項目質量計劃的執行情況進行評估、檢查與改進等工作,向管理者、顧客或其他方提供信任,確保項目質量與計劃保持一致。質量控制是對階段性的成果進行檢測、驗證,為質量保證提供參考依據,它是一個PDCA循環過程。
二、軟件項目質量管理的主要內容
軟件項目質量管理主要包括三個過程:質量計劃、質量保證和質量控制。
(一)質量計劃
現代質量管理的基本宗旨是:“質量出自計劃,而非出自檢查”。只有做出精準的質量計劃,才能指導項目的實施、做好質量控制。 質量管理計劃就是為了實現質量目標的計劃。而質量目標則是由商業目標決定的。質量管理計劃是全面質量管理的行動綱領。
所謂質量計劃是質量管理的第一過程域,它主要指依據公司的質量方針、產品描述以及質量標準和規則等制定出來實施方略,其內容全面反應用戶的要求,為質量小組成員有效工作提供了指南,為項目小組成員以及項目相關人員了解在項目進行中如何實施質量保證和控制提供依據,為確保項目質量得到保障提供堅實的基礎。
編制項目的質量計劃,首先必須確定項目的范圍、中間產品和最終產品,然后明確關于中間產品和最終產品的有關規定、標準,確定可能影響產品質量的技術要點,并找出能夠確保高效滿足相關規定、標準的過程方法。編制質量計劃通常采用流程圖、因果分析圖等方法對項目進行分析,確定需要監控的關鍵元素,設置合理的見證點(W點)、停工待檢點(H點),并制定質量標準。
質量在計劃中確定,而非在檢驗中確定。質量計劃包括計劃哪種質量標注適合該項目并決定如何達到這些標注。在項目計劃中,其是程序推進的主要動力之一,應當有規律地執行并與其他項目計劃并行。
(二)質量保證。
所謂質量保證是貫穿整個項目全生命周期的有計劃和有系統的活動,經常性地針對整個項目質量計劃的執行情況進行評估、檢查與改進等工作,向管理者、顧客或其他方提供信任,確保項目質量與計劃保持一致。
(三)質量控制
質量計劃確定后,按照其建立的質量管理體系,各責任單位就必須按照PDCA質量環的要求,實施有效的質量控制。質量控制應貫穿于項目的整個過程,它可分為監測和控制兩個階段:監測的目的就是收集、記錄和匯報有關項目質量的數據信息;控制就是使用質量監測提供的數據,進行控制,確保項目質量與計劃保持一致。
所謂質量控制是對階段性的成果進行測試、驗證,為質量保證提供參考依據,其具體包括:
(1)質量檢測分析。在質量監測過程中,對于質量計劃中設置的見證點、停工待檢點,質量監測人員要按照作業程序及時進行測量檢查(其中對于停工待檢點必須由監理人員簽字認可后才能進入下一道工序),以確定項目成果(或階段成果)是否符合相關的質量標準。對于見證點或停工待檢點要防止跳過檢查,因為避免錯誤的成本總是大大低于補救錯誤的成本。 對質量監測的結果應采用相應的統計方法進行分析,如帕累托圖法(按發生頻率排序的直方圖,它顯示了可識別原因的種類和所造成的結果的數量)等。通過統計分析對人員、設備、參考資料、方法、環境等影響項目質量的因素進行監控,確定項目實施過程是否在控制之中,同時進行趨勢分析,對一些偏向于不合格的趨勢及早進行控制。 質量控制階段應根據驗收數據做出驗收決定,確定是否進入下一步工序。對于質量監測中發現的不合格,應及時利用“因果分析圖”等方法分析原因,并進行適宜的處置,保證不合格得到識別和有效的控制。不合格處置包括返工、返修、降級、讓步放行、報廢等形式。
質量監測分析時,對于已發現的不合格或潛在不合格,應制定相應的糾正措施或預防措施,以消除不合格或潛在不合格的原因,防止不合格的發生。糾正措施或預防措施制定后,應對質量計劃進行相應的調整,保證項目的順利實施。
(2)項目收尾。項目收尾包括項目評估和項目終止兩個階段。項目收尾階段的質量控制是個非常重要而又容易忽視的內容。
(3)質量評估。項目質量評估不僅僅是在項目完成后進行,還包括對項目實施過程中的各個關鍵點的質量評估。項目質量評估看起來屬于事后控制,但他的目的不是為了改動那些已發生的事情,而是試圖抓住項目質量合格或不合格的精髓,以使將來的項目質量管理能從中獲益。
(4)項目終止。項目收尾包括項目評估和項目終止兩個階段。項目收尾階段的質量控制是一個非常重要而又容易忽視的內容。項目質量評估不僅僅是在項目完成后進行,還包括對項目實施過程中的各個關鍵點的質量評估。項目質量評估看起來屬于事后控制,但它的目的不是為了改變那些已經發生的事情,而是試圖抓住項目質量合格或不合格的精髓,以使將來的項目質量管理能從中獲益。
項目終止階段,是在決策項目終止后,檢查項目文件資料完備,包括項目施工質量驗評表、竣工報告等,同時進行項目總結。項目總結是一個把實際運行情況與項目計劃不斷比較以提煉經驗教訓的過程。通過項目質量計劃和總結,項目過程中的經驗和教訓將得到完整的記錄和升華,成為“組織財富”。
三、軟件項目質量分析工具
(一)因果圖
因果圖又稱魚骨圖或石川圖,它側重表示潛在問題之間的各種相關因素。通過因果圖可以刺激思維和討論,以便對問題進行深入討論,尋找潛在的根源。
其主要步驟:
(1)確定討論問題;
(2)挑選人員進行討論;
(3)確定主要原因,畫出問題框和主干箭線;
(4)確定下一級主要原因;
(5)確定各缺陷原因;
(6)畫出整個因果圖;
(7)分析原因及糾正行動;
(8)確定糾正行動。
(二)帕累托圖
帕累托圖是一種柱狀圖,其是按照對問題發生的頻率或影響從大到小的方式進行排列,從而確定解決問題的先后順序。
帕累托圖是根據帕累托法則得來的。帕累托法則也稱為80/20法則,它是一種統計規律。例如:社會上的80%財富掌握在20%的人手中,大約80%的問題目是因為20%的原因造成的。
通過帕累托圖,管理人員可以很快找到那20%的主要原因并進行解決,使系統的質量得到迅度提升。
(三)控制圖
控制圖可以對開發過程中的質量參數進行采樣,科學地分析其是隨機波動還是異常波動,從而對開發過程中的異常趨勢提出預警人,以便項目管理人員及時采取行勸,消除異常,從而達到提高和控制質量的目的。
對于開發環節中的某一特性,例如,對缺陷嚴重程度進行跟蹤時,允許其出現級別較高的缺陷。只要在控制界限內的過程結果都是可以接受的,如果過程結果超出了控制界限,那通常稱為失控。
四、提升軟件項目質量管理的方法
(一)明確用戶需求
明確用戶的真實需求是非常重要的,在項目失敗的案例中, 大部分是由于需求分析的不明確造成的。軟件項目的需求決定了軟件項目的功能和目標,目標不明確就沒法制定下一階段的工作計劃,從而不能按質量完成整個軟件項目。因此, 明確客戶的真實需求, 是保證軟件產品質量是否能合格使用的關鍵一環。需求分析是研發人員對系統需要做什么和怎樣做的定義過程。從系統研發的過程得知,系統分析時犯下的錯誤,會在接下來的階段被成倍的放大,越是在研發的后期,糾正分析時犯下的錯誤所花費的代價越是昂貴,也越發影響系統的工期和系統的質量。所以需求分析一定要做好、做細,確保需求分析的準確性,并做好需求變更風險評估與需求變更記錄。
此外,軟件項目負責人和需求的提出者應該盡可能早地分析項目的相關業務邏輯、明確軟件項目的需求。項目需求明確的越早,就能夠越早的制定開發計劃,軟件項目的開發質量就越容易得到保證。在項目的實施階段,還需要對每個階段的需求進行進一步明確,制定每個階段的子計劃,從而使得軟件項目的開發得以分解。保證了每個子計劃的開發質量,就能夠保證整個項目的開發質量。
(二)實行軟件測試
測試就是對軟件產品的檢驗。軟件測試的目的是根據用戶需求檢查系統是否符合項目合同與任務書規定的要求。項目測試分集成測試和系統測試,主要進行功能測試、健壯性測試性能一效率測試用戶界面測試、安全性測試、壓力測試可靠性測試安裝/反安裝測試等活動。測試過程通常在模擬環境中進行。只有通過了上述全部測試的軟件,才可以稱之為符合用戶質量要求的合格的軟件。
測試活動要盡可能覆蓋整改項目過程,從最初的需求到部署階段,都應該制訂詳細的計劃并編制相應的文檔,如測試計劃測試用例文檔測試報告等。通過測試活動盡可能早得發現每個階段中軟件存在的缺陷,以方便后續階段的實施。在這測試活動過程中,我們應該遵守一條基本原則—按照用戶需求進行測試。我們即不能為求速度而縮短測試規模,也不能忽視用戶需求而提高測試要求。總之一切測試應該符合用戶需求。
(三)進行代碼走查
軟件質量在很大程度上依賴于代碼質量。在實際環境中對于同一項目而言,由于項目組成員的編程能力、習慣、風格、對需求的理解和個性的不同所開發的代碼質量也不盡相同。再加上一些難以預測的人為因素由此帶來的隱患將嚴重影響代碼質量最終造成軟件質量低下,使得用戶無法正常使用并為以后的維護帶來更大的工作量和難度。
程序員寫代碼時,要思路清晰,認真負責,好的程序是高內聚、低耦合,同時也是條理分明,結構科學的。但由于項目組中各個成員的能力、編碼習慣各有不同,所開發的代碼質量也不盡相同。因此, 在軟件開發過程中引進代碼走查是非常有必要的。在一段時間內或是規定的時間, 讓程序員對其所開發代碼的主要部分進行講解, 不僅能促使開發人員自己提高開發代碼的質量, 而且能夠促進組內成員的交流和學習, 從而更有力促進軟件質量的提高。
代碼走查的作用是非常有效率的,它可以檢查到其他測試方法無法監測的錯誤,好多的邏輯錯誤是無法通過測試手段發現的,許多項目證明這是一個很好的質量控制方法。
(四)提升人員的執行力和技術
高質量的軟件產品,必須依靠熱心于質量,以提高質量產品為榮的專業人士開發。因此控制開發過程中“人”的質量非常重要。很多時候導致企業缺乏核心競爭力的原因是執行力太差。對質量管理目的的偏差,是造成執行力低這一問題的很大因素。我們總是常常提到利潤最大化這個詞,如果開發公司不斷盲目強調收益,而且是“用最小的投入獲得最大的利益”。這會導致開發團隊不得不最大限度地、甚至不擇手段地去取得財務的增長,從而大大降低了他們的執行力。質量的目的只是為了解決銷售,質量管理真正實現的根基就不存在。我們應當逐步讓公司企業選擇一種更和諧的盈利方式。使自己的開發團隊去注重用戶的感受,選擇與客戶、合作伙伴的長遠利益。
此外,應當認識到軟件行業中人才的重要性以及人才對軟件質量的重要作用,特別是領頭人的作用。一個項目的主管、開發經理、實施經理對項目的把控水平、相互之間的溝通、協調、配合,以及項目中其它人員之間的合作,是項目質量保證的關鍵。項目經理需要關注如何才能充分調動項目成員的積極性、主動性,激發他們工作熱情和責任感等問題。除了采用目標激勵、信任激勵、職務激勵等精神激勵外,還要采取相應的物質激勵手段,這些都可以有助于提高人員的執行力。
參考文獻:
[1](美)項目管理協會 編著,王勇,張斌譯.項目管理知識體系指南(第4版)(PMBOK指南).電子工業出版社.2009(08)
[2]朱少民.軟件質量保證和管理.清華大學出版社.2007(01)
[3]陳淦.也談軟件項目管理中的質量保證.福建電腦.2006 (10)