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