摘要:QA活動(dòng)是CMMI實(shí)施中較難貫徹的過程。本文針對目前國內(nèi)的QA過程實(shí)施情況,從QA的地位、原則、活動(dòng)、實(shí)施等方面進(jìn)行了闡述。同時(shí)討論了QA與QC、測試之間的關(guān)系,以及實(shí)施QA活動(dòng)的最佳實(shí)踐,為組織實(shí)施過程改進(jìn)提供了基礎(chǔ)。
1 概述
在使用CMMI模型實(shí)施過程改進(jìn)時(shí),需建立QA(QualityAssurance)的組織職能和角色,并實(shí)施“過程和產(chǎn)品質(zhì)量保證”活動(dòng)。這些活動(dòng)目的在于使項(xiàng)目工作人員和所有各層管理者能適當(dāng)?shù)亓私庹麄€(gè)項(xiàng)目生存周期中工作產(chǎn)品和過程的情況,從而支持交付高質(zhì)量的產(chǎn)品和服務(wù)。
由于CMMI模型是建立在西方的企業(yè)文化背景下,包含有三權(quán)分立的思想,所以對于國內(nèi)IT及軟件企業(yè)而言,如何理解和建立QA機(jī)制,更好地利用CMMI模型進(jìn)行過程改進(jìn)就顯得非常重要。但是,目前國內(nèi)IT及軟件企業(yè)對于QA的意義和認(rèn)識存在誤區(qū),導(dǎo)致在實(shí)施過程改進(jìn)活動(dòng)中,QA活動(dòng)流于形式或沒有發(fā)揮出其真正作用。到底QA在組織中應(yīng)扮演什么樣的角色,CMMI的QA的與ISO9000的QA或QC(QualityControl)概念有何區(qū)別,QA與測試是什么關(guān)系,如何實(shí)施QA活動(dòng),等等,本文針對這些進(jìn)行闡述,以解決企業(yè)CMMI實(shí)施過程中的薄弱環(huán)節(jié)。
2 QA的地位及活動(dòng)
2.1 QA的地位
圖1顯示了在CMMI實(shí)施過程中QA所處的地位。
圖1 QA的組織結(jié)構(gòu)
QA活動(dòng)的目標(biāo)是以獨(dú)立審查方式,從第三方的角度監(jiān)控軟件開發(fā)任務(wù)的執(zhí)行,就項(xiàng)目是否正遵循已制定的計(jì)劃、標(biāo)準(zhǔn)和規(guī)程給開發(fā)人員和管理層提供反映產(chǎn)品和過程質(zhì)量的信息和數(shù)據(jù),提高項(xiàng)目透明度,同時(shí)輔助軟件工程組交付高質(zhì)量的軟件產(chǎn)品。所以對過程和產(chǎn)品質(zhì)量保證的客觀評價(jià)是項(xiàng)目成功的關(guān)鍵,一般是通過獨(dú)立于項(xiàng)目的QA小組來提供這種客觀性。每個(gè)從事QA活動(dòng)的人都要進(jìn)行質(zhì)量保證方面的培訓(xùn)。從事某個(gè)產(chǎn)品的QA活動(dòng)的那些人不應(yīng)該是直接介入該工作產(chǎn)品開發(fā)或維護(hù)的人。同時(shí),應(yīng)該有一條向適當(dāng)?shù)墓芾韺营?dú)立報(bào)告問題的渠道,以便在必要時(shí)逐級上報(bào)不符合問題。
不過,在某些組織里,不要求這種獨(dú)立性而實(shí)現(xiàn)過程和產(chǎn)品質(zhì)量保證角色可能更合適。例如,在一個(gè)具有開放的、面向質(zhì)量的文化環(huán)境的組織里,可以由同行擔(dān)任(部分或全部)過程和產(chǎn)品質(zhì)量保證角色,可以把質(zhì)量保證功能鑲嵌在過程中。
QA應(yīng)具備以下職責(zé):
2.2 QA的活動(dòng)
QA的工作內(nèi)容為:
1) 客觀評價(jià)過程和工作產(chǎn)品:對于所實(shí)施的過程和相關(guān)工作產(chǎn)品以及服務(wù)對適用的過程描述、標(biāo)準(zhǔn)和規(guī)程的遵循情況進(jìn)行客觀評價(jià)。
2) 提供客觀情況:客觀地跟蹤和通報(bào)不符合問題,并且確保解決它們。
因此,QA的活動(dòng)步驟如圖2所示。
由上可知,QA涉及以下活動(dòng):
3 QA與QC、測試之間的關(guān)系
3.1 QA和QC
QA和QC區(qū)別在于:
由上面的區(qū)別可知,QC進(jìn)行質(zhì)量控制,向管理層反饋質(zhì)量信息;QA則確保QC和過程實(shí)施者按照過程進(jìn)行質(zhì)量控制活動(dòng),按照過程將檢查結(jié)果向管理層匯報(bào)。軟件開發(fā)過程和的QC工作通常就是對軟件工作產(chǎn)品的技術(shù)評審(如同行評審等)。
在這樣的原則下,簡單而言QA只要檢查項(xiàng)目按照過程進(jìn)行了某項(xiàng)活動(dòng)沒有,產(chǎn)出了某個(gè)產(chǎn)品沒有;而QC來檢查產(chǎn)品是否符合質(zhì)量要求。
3.2 QA與測試
下圖顯示了一個(gè)企業(yè)的開發(fā)過程、支持過程的關(guān)系。
從現(xiàn)代軟件工程的觀點(diǎn)來看,測試應(yīng)是軟件生命周期過程的一個(gè)不可缺少的階段,是確保規(guī)定的需求得以滿足,上圖的流程模型體現(xiàn)了這一點(diǎn)。而QA活動(dòng)則是貫穿于整個(gè)軟件生命周期過程及其支持過程,包括培訓(xùn)、采購等活動(dòng),以確保所策劃的過程得以實(shí)施。QA活動(dòng)和測試過程可能同時(shí)關(guān)注同一個(gè)產(chǎn)品,但是關(guān)注的角度不同。
應(yīng)該在項(xiàng)目的早期階段開始QA過程,以便確定有益于項(xiàng)目的計(jì)劃、過程、標(biāo)準(zhǔn)和規(guī)程并且滿足項(xiàng)目需求和組織方針。從事質(zhì)量保證的人要參加計(jì)劃、過程、標(biāo)準(zhǔn)和規(guī)程的確定,以確保它們適合于項(xiàng)目的需要和適合于進(jìn)行質(zhì)量保證評價(jià)。
4 實(shí)施QA活動(dòng)的方法
4.1 QA的工作流程
圖4描述了QA的一般工作流程。
應(yīng)指定在生存周期中將進(jìn)行評價(jià)的特定過程和產(chǎn)品。可以根據(jù)抽樣方式或客觀準(zhǔn)則進(jìn)行指定;這些準(zhǔn)則要與組織的方針和項(xiàng)目需求以及需要一致。
識別出不符合問題后,首先是在項(xiàng)目內(nèi)部處理,如果可能,就地加以解決。任何不能在項(xiàng)目組內(nèi)部解決的不符合問題,要逐級上報(bào)適當(dāng)?shù)墓芾碚哂枰越鉀Q。
在過程中,QA一般比較注重的是過程是否符合規(guī)范?測試是否合理、充分?評審是否及時(shí)、有效等,這些是重要的“檢驗(yàn)”過程,可以列為重點(diǎn)。過程是否符合規(guī)范,一般要看過程有沒有計(jì)劃,計(jì)劃詳細(xì)與否,可行與否,工作量評估是否可行(主要是檢查評估方法)?日常管理是否可行?配置管理是否可行?過程遵循那些標(biāo)準(zhǔn)?實(shí)施什么樣的裁減,等等。
在整個(gè)QA過程的評審活動(dòng)中,QA需要具備一定的數(shù)據(jù)意識,要不斷的收集各種數(shù)據(jù),尤其是質(zhì)量數(shù)據(jù)。最好具備一定的項(xiàng)目管理經(jīng)驗(yàn),要不然,只能是一種邊緣參與,是進(jìn)入不了項(xiàng)目的。QA最好能幫助PM將問題分析清楚。PM會(huì)思考要將問題做成什么樣子,而QA可以思考如何去做,這樣就可以達(dá)到一種配合的效果。
其次還要注意一點(diǎn),就是QA以什么心態(tài)去監(jiān)控項(xiàng)目組,我們公司提出的是“質(zhì)量服務(wù)”,也就是說,項(xiàng)目組是我們的客戶,我們是為他們提供質(zhì)量服務(wù)的。
4.2 最佳實(shí)踐
實(shí)施QA活動(dòng)的最佳實(shí)踐應(yīng)該根據(jù)不同的企業(yè)情況而不同,但以下幾條是實(shí)施過程改進(jìn)活動(dòng)中總結(jié)出來的,具有一般意義。
1) QA人員要求
2) 制定QA計(jì)劃
計(jì)劃中可能包含以下內(nèi)容:
3) 編制檢查表
檢查表是QA人員進(jìn)行評審活動(dòng)的工具。編制檢查表時(shí)應(yīng)考慮以下問題:
4) 形成QA報(bào)告
QA應(yīng)對檢查的結(jié)果形成報(bào)告,以便跟蹤、解決、關(guān)閉所發(fā)現(xiàn)的問題。形成QA報(bào)告時(shí)應(yīng)考慮:
5) 幾個(gè)參見問題
5 結(jié)束語
總之,QA活動(dòng)對于過程改進(jìn)具有重要的意義,這是由人治到法治的一個(gè)必經(jīng)階段。所以,只要國內(nèi)IT及軟件企業(yè)能夠認(rèn)真貫徹CMMI模型規(guī)范的要求,持之以恒,隨時(shí)解決實(shí)施中發(fā)現(xiàn)的問題,就會(huì)體會(huì)到QA活動(dòng)的巨大效益。