本文分別從軟件開發方和用戶方的角度描述軟件質量的特性因子,分析影響軟件質量的要素,在此基礎上從軟件開發方的視角探討提高軟件質量的技術、過程和管理方法。
軟件質量特性因子分析
軟件的復雜性決定了衡量軟件質量不能采用單一的特性指標,需要采用多重緯度的軟件特性因子度量軟件質量,可以采用軟件質量特性因子衡量軟件的綜合質量。所謂軟件質量特性因子,是指一個特定軟件產品的質量是由多個軟件質量特性因子構成的,這些軟件質量特性因子對軟件質量的影響程度不同,它們有機組合形成了軟件質量的綜合質量。
由于對軟件的處理方式不同,軟件開發的技術工程人員和最終用戶對于用戶的軟件質量的關注點是不同的。下面分別研究軟件開發人員和用戶關注的軟件質量特性因子。
軟件質量特性因子
從軟件開發工程技術人員的角度,軟件質量特性因子包含:功能性、性能、可靠性、安全性、使用性、維護性、移植性、重用性。如下圖所示。
各個質量特性因子的具體含義如質量特性因子表所示。
從用戶角度考慮的立場,用戶主要關注的軟件運行的功能和性能,維護的方便性,為此用戶對軟件質量特性可分解成五個質量特性因子:功能性、使用性、可靠性、維護性和移植性,它們包含了軟件的基本特征。
作為軟件產品開發人員,為了開發高質量的軟件,需要在深入理解和實現用戶質量特性因子上,盡量全面覆蓋軟件開發的質量特性因子設計的質量指標,以便減少軟件維護、擴展和移植等后期管理成本。
以用戶為中心的軟件質量管理
軟件的最終使用者是用戶,因此提高軟件質量要以用戶滿意為中心,以影響軟件質量特性因子為基礎,綜合考慮開發方和用戶方關注的質量特性因子。
從軟件生命周期的過程來看,軟件質量特性因子的各項指標貫穿于軟件需求、軟件開發、軟件交付和軟件維護的各個環節。作為軟件開發工程人員,僅僅考慮滿足用戶的現實需求是不夠的,還需要考慮軟件未來擴展的方便性,考慮在軟件開發過程中模塊的可重用性。
軟件質量特性因子偏重于軟件技術方面的要求,主要靠有效選擇和應用合適的軟件開發和測試技術來實現。除此之外,一個高質量的軟件項目要取得成功,軟件團隊、軟件過程和項目管理是關鍵要素。
顯然,提高軟件質量需要“多管齊下”的綜合技術、過程、團隊和管理等各個關鍵要素,下面分別論述如何更好的應用這些要素。
設計為本,測試輔助
近年來,軟件測試對保證軟件質量的重要性已經得到軟件企業的廣泛認識。但是,從軟件測試的技術和方法看,當前的軟件測試技術不能保證軟件沒有缺陷,只能盡量的、被動的發現缺陷。也就是說,單純的靠軟件測試進行質量把關是做不到的。
提高軟件質量重要的是分析軟件缺陷的根本來源。軟件測試的實踐統計表明,大部分軟件缺陷是由于需求不準確、架構設計不合理、軟件編碼錯誤引起的。進一步分析表明,比較嚴重的軟件缺陷都是在需求分析和架構設計階段產生的。
因此,提高軟件質量的最有效方法是準確獲取用戶的真實需求(功能和性能),采用合理的軟件架構設計技術(擴展性、安全性、移植性),在軟件編碼階段遵守編程規范(使用性、可靠性、重用性)。在此基礎上,盡早和全面的實施測試的驗證和確認技術。 “設計為本,測試輔助”的方法可以在保證軟件質量方面實現從被動檢測到主動預防,從事后質量檢測,轉變為事前和事中檢測。
規范過程,不拘標準
軟件開發是一系列過程和階段相互銜接的產品生產方式?梢院唵蔚膭澐譃轫椖恳巹、需求分析、架構設計、編碼、測試、維護等階段。每一個當前過程的輸入都是前一個過程的輸出,當前過程的輸出作為后一個過程的輸入。
無論軟件開發采用傳統的“瀑布模型”還是“RUP”模型,過程的規范程度是影響軟件質量的因素。通過規范過程改進提高軟件質量,這是CMM/CMMI規范的基本思想。
規范軟件過程沒有統一的標準和模式。ISO9001,ISO15504 (SPICE),CMM/CMMI,六西格瑪,全面質量管理(TQM)等都是可以參考的標準和過程規范,F在CMM/CMMI正在大行其道,但是對于非外包行業的中小軟件企業而言,如果內部的開發過程不很規范,筆者建議初期采用ISO9001標準作為過程改進的基礎,另外結合公司的技術和資源現狀,確立公司的過程管理準則。
規范過程的基本要求是劃分過程和階段,確定過程基線(里程碑),明確各個過程的目標、角色、進入、輸入、輸出、退出、驗證與確認的準則,采用統一的模板化的文檔、流程化和可視化的跟蹤、度量和評估過程的實施情況。
團隊激勵,知識傳承
打造具有戰斗力的項目團隊成為保證軟件質量的理想目標。團隊是具有共同目標的多個人員和角色的成員構成的。團隊中的每個人知識背景不同,掌握的技能不同,承擔的角色認為不同。團隊的價值體現在“1+1>2”,即任何個人的能力都是有限的,多個人的團隊合作的能量可以最大化的發揮出來。 “夢幻團隊”是由行業和技術精英組成的,但是軟件企業需要的是現實地具有戰斗力的團隊,而不是“夢幻團隊”。
團隊的能量來自于團隊成員的有效激勵、既明確各自職責,同時相互配合,通過有效交流,信息共享和知識傳承,保證團隊眾的每個人都始終處于高效率的、滿足進度和質量要求的,向著團隊共同的目標努力。
在保證軟件質量的共同目標下,團隊中的個人從原來的單角色轉變為多角色,每個人都承擔質量保證的不同職責,付諸實施PSP/TSP的規范,充分發揮個人的技能,提高整個團隊的績效能力,改進企業組織級的過程管理能力。
項目管理,高層支持
軟件開發是系統化、過程化和復雜化的工程任務,需要專業的項目經理帶領團隊成員、采用正確的技術、規范的過程、實現質量、進度和成本的有效平衡。在提高軟件質量方面,項目經理的職責之一是制定、分配和監控明確的、可量化的、可度量的、具有不同優先級的項目質量目標。對于實現高質量的項目,項目經理的重要性是不言而喻的。
提高軟件質量是涉及面廣泛的工程體系,在很多軟件企業屬于公司“一把手”工程。項目經理和項目團隊一定要爭取企業管理層對軟件質量重要性的認識和支持。管理層的職責是制定企業質量方針和目標,確立組織統一的質量宗旨及方向,創造并保持使員工能充分參與實現組織目標的內部環境,以統一的方式評估、協調和實施質量活動確保員工主動理解和自覺實現組織的質量目標。
文章來源于領測軟件測試網 http://www.kjueaiud.com/