聶蕓
摘 要:軟件質量保證是當今軟件行業一個值得關注的重要問題。軟件的質量則直接關系到用戶的生命和財產安全。而在實際的工程應用中,軟件質量的優劣與軟件工程過程的合理與否有著密切的關系。本文從理論和實踐兩個角度詳細闡述了基于CMMI的軟件質量保證過程,從而實現了基于CMMI的軟件質量保證的定量和全面的質量管理。
關鍵詞:CMM;軟件質量保證;過程管理
中圖分類號:TP31 文獻標識碼:A
Abstract:Software quality assurance is an important issue of the software industry.Software quality is directly related to people's life and property safety.In the actual engineering application,the pros and cons of the software quality have a close relationship with software engineering process.From two angles of theory and practice,this paper has a detailed elaborated based on CMMI,software quality assurance process for software quality assurance of the quantitative and comprehensive quality management.
Keywords:CMMI;software quality assurance;process management
1 引言(Introduction)
在計算機軟件工程方面,質量常常被視為系統內部部件或系統過程中滿足的以下兩個要求:(1)明確的需求。(2)客戶或用戶對系統的需要或期望的程度。更為重要的是,軟件產品的質量往往是軟件工程的核心所在[1]??墒?,目前在軟件工程中還沒有形成完整且統一的軟件質量的概念,而目前比較權威的觀點則認為質量滿足有以下四種條件:首先,軟件質量需要集合計算機系統穩定和卓越程度的所有屬性;其次,軟件質量需要集合軟件產品中滿足明確需求程度的屬性;第三,軟件質量需要集合軟件產品的明確或隱含的需求能力的特性或者特征;最后,軟件質量需要滿足在質量定義中客戶明確指出的需求[2]。
綜上所述,軟件質量需滿足以下三個特性:(1)軟件需求成為度量軟件質量的基礎。(2)軟件質量是一種難以定量度量的屬性。(3)軟件質量需要同時保證客戶的明確需求和隱含需求。
2 軟件的質量管理(Software quality management)
而軟件的質量管理則包括執行確定的質量政策、目標與職責過程相關的活動,進而使待完成的項目滿足一開始制定的需求。隨著各行各業中信息技術越來越廣泛的使用,軟件質量受到了越來越多的關注和重視。因此,軟件質量的好壞與否已經越來越成為公司能否生存的核心競爭力之一。而這種決定企業生存的競爭力除了體現在多樣的產品類型和先進的產品功能上外,更多的競爭力則體現在產品是否具有可靠且穩定的質量保證上。隨著目前信息科技在社會日常需求上的發展,軟件被應用的領域在進一步被細化。隨之而來的則是進一步復雜的設計程度,以及不斷被要求縮短的軟件研發周期。只有軟件具有的質量和服務在制定之處就以利潤最大化和質量最優化為市場導向,才能將軟件具有的市場價值最大化[3]。
而目前有很多能夠影響軟件質量的因素。首先影響軟件質量的管理學因素主要有軟件執行的正確性,軟件的健壯性,軟件運行的效率,軟件的安全性和可用性,軟件運行的風險,軟件執行的可理解性,軟件本身的可維護性和適應性,以及軟件的可移植性和可再用性等因素。而軟件的復雜性這個屬性則決定了必須由相應固定的標準來保證軟件質量,從而形成了完整統一的軟件質量保證體系。
3 軟件的質量保證(Software quality assurance)
軟件質量保證(Software Quality Assurance,SQA)也往往具有不同的定義。目前比較權威的定義是:軟件質量保證是軟件質量評估和度量的一個功能單位,其包括過程和產品的保證。它的基本任務是確保軟件項目履行的過程中對產品和過程的承諾。在整個軟件的開發過程中,軟件質量保證應該一直貫穿其中,且在該過程中軟件不會被耗損,這是與硬件系統最大的不同。因此,在軟件交付使用之后,該軟件的可用性不會隨著時間的流逝而改變,具有相當的穩定性[4]。
針對軟件質量保證的軟件質量管理體系是標準化組織經過長期的研究和實踐逐步演化和制定的一整套適用于軟件管理的理論體系。它的目的是對質量管理過程進行規范,使得軟件質量管理有據可依。目前在國際社會中有兩種被廣泛采用的軟件質量管理體系分別是ISO9000和CMM/CMMI。前者是集合了國際標準化組織的現代管理學理念的精華部分,并合并了ISO9001、ISO9002和ISO9003三種標準,進一步將PDCA戴明環閉環管理模式引入其中,同時把持續改進的思想引進并貫穿于整個軟件質量管理標準,從而建立一種可持續改進的結構。后者ISO9001:2000則為各種機構和組織提供了軟件質量管理的另一種切實可行的方案,并以體系化模式來管理軟件組織的質量,該體系把“以顧客為中心”和“持續改進”的理念徹底貫徹到標準中,以擁有持續滿意的顧客為目的,從而使軟件質量和軟件服務更好地滿足顧客的期望值。
4 基于CMMI的軟件質量保證(On software qualityassurance of CMMI)
軟件能力成熟度模型集成(Capability Maturity Model Integration,CMMI)是軟件能力成熟度模型(Capability Maturity Model for Software,CMM)模型的最新版本。CMMI可以描述組織軟件過程的能力,其核心是將軟件開發過程花,并對軟件開發和維護進行監控和研究,使其滿足標準化,科學化的要求,幫助企業實現更好的商業目的。在實際的執行過程中CMMI將能力成熟度劃分為五個等級,分別是:初始級、已管理級、已定義級、量化管理級和優化級。這個五個等級中的每一個級別都將構成下一個級別的基礎。CMMI被公認為是軟件產品進入國際市場的通行證,它為改進軟件組織的過程提供了一種單一的集成化框架,消除了模型之間的差異性,減少了各類模型的重復勞動,增加了軟件的透明度和理解,從而建立了一個自動的并可擴展的框架,并從總體上改進軟件組織的質量和運行效率。因此,有效實施地CMMI可以有效地提升軟件開發項目的成功率,進一步降低軟件開發風險和成本,并提高產品的質量,使得企業的競爭力在根本上得到提升。在目前看來,有兩點原因促使企業實施CMMI,其一是為適應市場需求,特別是提升企業在投標活動中通過CMMI門檻的概率;第二個方面出于有效管理的目的,通過CMMI的順利實施來對組織內部的管理進行改進,從而有效提升組織的工作效率。迄今為止,CMMI主要被應用在軟件能力評估和持續過程改進這兩大方面。
在實際的操作過程中,開發人員的素質和團隊管理能力則往往更多地決定了軟件質量,而在大型軟件開發的項目中,主要體團隊的總體能力又體現在軟件開發人員的能力上。而軟件開發過程中的控制力和自我改善能力又決定了軟件的成熟度,其對軟件的實際開發質量起到了至關重要的作用。因此,只有不斷的加強軟件開發成員團隊素質的管理,才能更好地建立有效且穩定的軟件開發過程,進而達到對軟件開發質量的控制,以更好地保證軟件的開發質量。
以上的描述主要從理論上闡述了基于CMMI的軟件質量保證的概念與理論,為了更好地詮釋基于CMMI的軟件質量保證,本文將進一步從工程實際出發描述軟件質量保證的實際操作。
5 基于CMMI的軟件質量保證的實際工程操作(Thepractice of software quality assurance of CMMI)
在軟件開發項目立項后,需要首先任命一名該項目的測試負責人。該測試負責人需要具體負責項目測試的相關文檔,測試進度,測試質量,測試過程的管控。進而在軟件測試開始前,團隊的開發人員需要首先熟悉產品需求規格說明書,產品開發計劃和產品詳細設計等準備工作。
在熟悉產品需求規格書方面,測試人員應該參與產品需求規格說明書的審核,產品需求規格說明書完成后,需求人員應以郵件方式及時發送給測試人員,避免在產品開發完成提交測試時才告知測試人員。當開發過程和測試過程中發現需求定義有問題的,開發人員和測試人員都只能向需求人員提出問題,當需求出現疑義時,必須由需求人員與客戶溝通確認,并更新需求規格說明書。在產品開發計劃方面,在確定開發人員提交測試版本的時間時需要開發負責人簽字確認,開發人員在提交測試版本同時給出測試說明,測試說明包括本測試版本已知重要問題,未完成功能(如果存在),測試建議等。在產品詳細設計方面,對于軟件項目的需求,開發人員提交測試版本時同時提交該需求的產品詳細設計,內容包含開發人員為實現需求,所做的改動,新增的功能,刪除的功能等說明。同時其他項目的產品詳細設計內容,見軟件開發流程中產品詳細設計的相關說明。在整個準備過程中,開發人員、測試人員和需求分析人員需要保持充分積極的溝通,以保證所設計出的軟件能夠體現客戶的真正需要。
在軟件的設計過程中,需要詳盡地將整個軟件設計過程分成若干可執行的階段,確定好每階段的時間節點和完成需求,保證每一個階段的充分可執行性。在完成軟件設計后,測試團隊需要根據最初的設計制定完備的測試需求并搭建測試平臺,編寫測試計劃,完成測試用例審核和測試人員評估,最后在測試的完成階段做好詳盡的測試報告以備客戶查詢。
總之,軟件的設計與測試的實際操作是一個嚴絲合縫并環環相扣的過程。
6 結論(Conclusion)
基于CMMI的軟件測試是一個龐大且詳細的框架體系,其對軟件質量的保證和企業市場的擴大有著非常重要的促進作用。而基于CMMI的軟件測試需要整個設計和測試團隊的密切配合和積極溝通,其實際操作具有相當大的探討空間。
參考文獻(References)
[1] 趙麗莉,金學軍.軟件性能測試面面觀[J].軟件工程師,2006(11):40-42.
[2] 劉濤,薛勝軍.基于CMM/CMMI的軟件質量保證[J].交通與計算機,2006,24(2):121-123.
[3] 賴耿標.基于CMMI的A公司軟件質量管理診斷研究[D].華南理工大學,2014.
[4] 劉文紅,吳欣,張敏.基于CMMI的軟件質量保證[J].現代電子技術,2012,35(16):53-56.
作者簡介:
聶 蕓(1978-),女,本科,工程師.研究領域:軟件測試管理,軟件質量保證,軟件測試.