有效的軟件質(zhì)量管理
發(fā)布時間:2010/9/7 16:14:00
質(zhì)量管理包括:質(zhì)量計劃編制、質(zhì)量保證和質(zhì)量控制三個過程域。質(zhì)量計劃是質(zhì)量管理的第一過程域,它主要結(jié)合各個公司的質(zhì)量方針,產(chǎn)品描述以及質(zhì)量標(biāo)準(zhǔn)和規(guī)則通過收益、成本分析和流程設(shè)計等工具制定出來實施方略,其內(nèi)容全面反應(yīng)用戶的要求,為質(zhì)量小組成員有效工作提供了指南,為項目小組成員以及項目相關(guān)人員了解在項目進(jìn)行中如何實施質(zhì)量保證和控制提供依據(jù),為確保項目質(zhì)量得到保障提供堅實的基礎(chǔ)。質(zhì)量保證則是貫穿整個項目全生命周期的有計劃和有
系統(tǒng)的活動,經(jīng)常性地針對整個項目質(zhì)量計劃的執(zhí)行情況進(jìn)行評估、檢查與改進(jìn)等工作,向管理者、顧客或其他方提供信任,確保項目質(zhì)量與計劃保持一致。質(zhì)量控制是對階段性的成果進(jìn)行檢測、驗證,為質(zhì)量保證提供參考依據(jù),它是一個PDCA循環(huán)過程。
隨著社會信息化水平的不斷提高,信息行業(yè)急速膨脹,信息企業(yè)快速成長,隨之帶來的信息市場競爭激烈,企業(yè)為了求生存,滿足客戶要求則成為各行各業(yè)的首要責(zé)任。依賴于質(zhì)量、成本和進(jìn)度的客戶滿意度,質(zhì)量則是重點支撐之一,這樣要求我們對質(zhì)量管理需要加強(qiáng)認(rèn)識。我們都知道pmbok把項目管理劃分為9個知識領(lǐng)域,即范圍管理、時間管理、成本管理、質(zhì)量管理、人力資源管理、溝通管理、采購管理、風(fēng)險管理和綜合管理。質(zhì)量管理作為9大知識領(lǐng)域之一,可見其重要性。
一、質(zhì)量管理責(zé)任分配
我們公司在開發(fā)項目上按照規(guī)范化軟件的生產(chǎn)方式進(jìn)行生產(chǎn),在生產(chǎn)流程上采用ISO9000的標(biāo)準(zhǔn)進(jìn)行。每個項目除配備了項目開發(fā)所需角色外,還專門配備了配置管理小組、測試小組和質(zhì)量保證小組確保質(zhì)量管理的實施,下面針對這三種角色進(jìn)行說明:
1、配置管理小組職責(zé)
配置管理小組是保證項目開發(fā)完畢的同時,內(nèi)部文檔和外部文檔都同時完成。內(nèi)部文檔的及時產(chǎn)生和規(guī)范,是保證項目開發(fā)各小組能夠更好的接口和溝通的重要前提,從另一個方面講,也是保證工程不被某個關(guān)鍵路徑所阻塞而延滯的前提。如上所述,配置管理小組還是保證質(zhì)量保證小組得以發(fā)揮作用的基礎(chǔ)。配置管理小組的主要職責(zé)包括: 完善各個部門發(fā)送需要存檔和進(jìn)行版本控制的代碼、文檔(包括外來文件)和階段性成果; 對代碼、文檔等進(jìn)行單向出入的控制;對所有存檔的文檔進(jìn)行版本控制; 提供文檔規(guī)范,并傳達(dá)到開發(fā)組中。
2、測試小組職責(zé)
測試小組作為質(zhì)量控制的主要手段,負(fù)責(zé)軟件的測試設(shè)計和執(zhí)行工作。如同軟件開發(fā)一樣,測試在執(zhí)行之前,同樣需要進(jìn)行測試計劃和測試策略的設(shè)計,通常情況下測試可以分為如下幾種類型,如:正確性測試、功能性測試、性能測試、安全測試和系統(tǒng)測試等。而這些測試均需要在測試計劃和測試策略中進(jìn)行描述用以指導(dǎo)測試小組成員進(jìn)行測試用例編寫和測試執(zhí)行。程序員在交給測試人員之前是進(jìn)行過一定的單元測試,確保程序編譯、運行正確。
測試人員根據(jù)詳細(xì)設(shè)計的文檔對軟件要實現(xiàn)的功能進(jìn)行一一測試,保證軟件的執(zhí)行正確的實現(xiàn)設(shè)計要求,在此也只證明了軟件正確的反映了設(shè)計思想,但是否真正反映了用戶的需求仍需要進(jìn)一步的功能性測試。
測試人員只有根據(jù)軟件需求規(guī)格說明書所提及的功能進(jìn)行檢測,才能確保項目組開發(fā)的軟件產(chǎn)品滿足用戶需求。在正確性測試完成之后,需要測試的是軟件的性能,軟件的性能在本項目中占有重要的地位,性能要求有可能改變軟件的設(shè)計,為避免造成軟件的后期返工,測試在性能上需要較大的側(cè)重。如果有必要的話,測試小組還需要做安全測試,以確保系統(tǒng)使用安全可靠。
3、質(zhì)量保證小組職責(zé)
質(zhì)量保證小組作為質(zhì)量保證的實施小組,主要職責(zé)是保證軟件透明開發(fā)的主要環(huán)節(jié)。在項目開發(fā)的過程中幾乎所有的部門都與質(zhì)量保證小組有關(guān)。質(zhì)量保證小組對項目經(jīng)理提供項目進(jìn)度與項目真正開發(fā)時的差異報告,提出差異原因和改進(jìn)方法。
在項目進(jìn)度被延滯或質(zhì)量保證小組認(rèn)為某階段開發(fā)質(zhì)量有問題時,提請項目經(jīng)理、項目負(fù)責(zé)人等必要的相關(guān)人員舉行質(zhì)量會議。解決當(dāng)前存在的和潛在的問題。質(zhì)量保證是建立在文檔的復(fù)審基礎(chǔ)之上,因而文檔版本的控制,特別是軟件配置管理,直接影響軟件質(zhì)量保證的影響力和力度。質(zhì)量保證小組的檢測范圍包括:系統(tǒng)分析人員是否正確的反映了用戶的需求; 軟件執(zhí)行體是否正確的實現(xiàn)了分析人員的設(shè)計思想; 測試人員是否進(jìn)行了較為徹底的和全面的測試;配置管理員是否對文檔的規(guī)范化進(jìn)行的比較徹底,版本控制是否有效。
二、質(zhì)量管理實施
有了良好的資源配備,又如何在項目全生命周期內(nèi)實施質(zhì)量保證,讓我們從以下幾個方面來看質(zhì)量保證的實施過程:
1、項目進(jìn)度的質(zhì)量保證
項目進(jìn)度是項目進(jìn)行是否順利的最直觀表現(xiàn)。顯然在項目開始之前,項目開發(fā)計劃是必須的。如果項目開發(fā)計劃的制定的是完全合理的,那項目進(jìn)度也就真正表達(dá)了項目與最終的交付使用之間的距離,然而要制定完全合理的項目開發(fā)計劃幾乎不太可能?梢娨WC項目進(jìn)度,首先要保證項目開發(fā)計劃盡可能合理。
項目計劃的合理程度與項目計劃制定者從事類似規(guī)模和類似業(yè)務(wù)的項目的經(jīng)驗有直接關(guān)系,通過經(jīng)驗往往能夠預(yù)見潛在的阻礙,這樣要求項目計劃制定者需要集眾人之力來完善計劃。
當(dāng)項目計劃制定初期,由質(zhì)量保證小組組織召開的項目計劃評審會,邀請公司技術(shù)專家、用戶以及項目組小組成員一起討論項目計劃的可行性,會議通常采用頭腦風(fēng)暴法,各抒己見,會后由指定的記錄員形成質(zhì)量記錄,發(fā)送給相關(guān)人員,對其計劃中不合理的地方進(jìn)行修改完善,并由質(zhì)量保證人員對其結(jié)果跟蹤,以確保項目計劃完整性、可行性,完善后的計劃交由配置管理人員進(jìn)行版本控制。
然而在計劃實施過程中,計劃不是“固定化”。常有人道,“計劃趕不上變化”,但“要跟上變化”。項目計劃以里程碑為界限,將整個開發(fā)周期劃分為若干階段。根據(jù)里程碑的完成情況,適當(dāng)?shù)恼{(diào)整每一個較小的階段的任務(wù)量和完成的任務(wù)時間,這種方式非常有利于整個項目計劃的動態(tài)調(diào)整。也利于項目質(zhì)量保證的實施。
實際運作中,當(dāng)質(zhì)保小組發(fā)現(xiàn)計劃實施的差異后,報告項目經(jīng)理,由項目經(jīng)理組織負(fù)責(zé)對計劃進(jìn)行周期性維護(hù),對于已經(jīng)變動的計劃由質(zhì)保小組協(xié)助配置管理小組完成版本控制。本公司已經(jīng)開發(fā)湖南移動的集中客服系統(tǒng),開發(fā)中的子項目多達(dá)六個,歷時十個月,目前多數(shù)項目已經(jīng)開發(fā)完畢,系統(tǒng)正在試運行階段,項目金額數(shù)千萬元。在這樣的項目中,從管理者到開發(fā)人員到測試人員都積累了較為豐富的經(jīng)驗,特別是項目開發(fā)計劃的制定,和項目進(jìn)度的控制。
2、項目開發(fā)各階段的質(zhì)量保證項目
a、需求分析
需求分析是開發(fā)人員對系統(tǒng)需要做什么和如何做的定義過程。從系統(tǒng)分析的經(jīng)驗來看,這個過程往往是個循序漸進(jìn)的過程,一次性對系統(tǒng)形成完整的認(rèn)識是困難的。只有不斷地和客戶領(lǐng)域?qū)<疫M(jìn)行交流確認(rèn),方能逐步明了用戶的需求。從系統(tǒng)開發(fā)的過程得知,系統(tǒng)分析時犯下的錯誤,會在接下來的階段被成倍的放大,越是在開發(fā)的后期,糾正分析時犯下的錯誤所花費的代價越是昂貴,也越發(fā)影響系統(tǒng)的工期和系統(tǒng)的質(zhì)量。
解決系統(tǒng)分析錯誤的方法我們公司通常采用邀請用戶參與進(jìn)行需求評定,然后對其用戶的意見由質(zhì)保成員跟蹤檢測是否納入需求規(guī)格說明書,同時與用戶簽字確認(rèn)形成需求基線,交由配置管理員放入配置管理庫。
雖然盡早的邀請用戶參與,仍然避免不了項目進(jìn)行中用戶的需求變更請求。對于開發(fā)過程存在的需求變動,我們要求用戶填寫變更申請單發(fā)送給項目配置管理員,在通過配置配置員轉(zhuǎn)交質(zhì)保小組,負(fù)責(zé)組織專家小組和項目組成員一起討論實施變更的可行性及實施后所帶來的影響,小的變更則直接記錄入變更記錄原因分析項和風(fēng)險項欄,大的變更則需要形成正式的變更報告,無論那種變更都需要對相應(yīng)的文檔實施同步變更(包括需求規(guī)格說明書、詳細(xì)設(shè)計文、安裝手冊、操作手冊等)。但是對于無法實現(xiàn)或是變更會帶來巨大的影響而將導(dǎo)致進(jìn)度的延期,這時,我們將變更報告提交給用戶或邀請用戶進(jìn)行協(xié)調(diào)會議,討論變更取舍問題或是項目進(jìn)度變更問題。
決定變更之后,由項目經(jīng)理組織實施變更,測試人員檢測變更結(jié)果,而質(zhì)保小組成員監(jiān)督變更實施過程并協(xié)助配置管理員對變更后的成果物進(jìn)行版本控制。變更實施完后,上線前還需要指定人員協(xié)助用戶一同測試并由用戶簽字后同意方可上線。
b、系統(tǒng)設(shè)計
優(yōu)良的體系結(jié)構(gòu)應(yīng)當(dāng)具備可擴(kuò)展性和可配置性,而好的體系結(jié)構(gòu)則需要好的設(shè)計方法,自然設(shè)計選型成為了系統(tǒng)設(shè)計首要的工作,究竟是采用哪種設(shè)計方法好呢?對于設(shè)計選型不能一概而論,需要針對項目的結(jié)構(gòu)、項目的特征和用戶的需求來分析,同樣也要考慮到參與項目小組成員的素質(zhì),如果其中大部分都沒有從事過面向?qū)ο蟮脑O(shè)計且項目進(jìn)對緊迫,這樣沒有多余的時間來培訓(xùn)小組成員來掌握面向?qū)ο蟮脑O(shè)計方法,盡管眾所周知面向?qū)ο笤O(shè)計方法的優(yōu)勢,我們還是不如采用面向過程的方式(除用戶指定開發(fā)設(shè)計方式外)可以減少項目承擔(dān)的技術(shù)風(fēng)險。
我們公司有過一個項目,用戶指定需要采用面向?qū)ο蠓治、設(shè)計和開發(fā),且開發(fā)周期短,在無賴的情況下,項目小組只能選用面向?qū)ο蟮能浖_發(fā)過程,由于項目小組很少從事過面向?qū)ο蟮拈_發(fā),經(jīng)驗缺乏,導(dǎo)致項目上馬后項目進(jìn)度延誤,項目沒有達(dá)到預(yù)期的效果。
針對此次開發(fā),我們分析其原因,發(fā)現(xiàn)小組成員在開發(fā)過程中對于新技術(shù)互相交流少,各自有各自的理解和想法,造成理解上的不一致性,導(dǎo)致工作重復(fù)性高,滯后項目進(jìn)度。建議解決方法是項目組成員采用集中辦公,分塊學(xué)習(xí),學(xué)習(xí)的成果馬上向項目相關(guān)人員發(fā)布,再由配置管理員對其發(fā)布的文檔進(jìn)行整理、規(guī)類放入配置庫以供大家共享。這樣方便大家的互相學(xué)習(xí),減少重復(fù)的工作。在這次開發(fā)中我們公司從管理人員、設(shè)計人員到開發(fā)人員都汲取了很多教訓(xùn),同時經(jīng)過此次項目的開發(fā),小組成員也積累了豐富的面向?qū)ο蟮拈_發(fā)經(jīng)驗。
除設(shè)計選型,還有一個容易被忽視的問題,就是公共類開發(fā)。公共類開發(fā)可以減少工作中的重復(fù)工作,降低開發(fā)成本。這要求我們再設(shè)計階段通過對用戶需求的仔細(xì)研究,盡可能的識別出公共類,并進(jìn)行定義指定專人負(fù)責(zé)設(shè)計通知其它設(shè)計人員,以減少重復(fù)工作。對于項目組提供的設(shè)計文檔,由質(zhì)保小組組織技術(shù)專家、項目組設(shè)計人員、開發(fā)人員和測試人員對其設(shè)計文檔的評審,檢測設(shè)計文檔對其下一階段工作的可行性,及時發(fā)現(xiàn)設(shè)計中可能存在的錯誤,降低項目開發(fā)風(fēng)險,同時確保設(shè)計文檔能為開發(fā)人員、測試人員提供切實的指導(dǎo)。對于可復(fù)用的設(shè)計進(jìn)行提取作為公共庫設(shè)計和開發(fā),提供項目組或整個公司重用。最后交由配置管理員進(jìn)行設(shè)計文檔的版本控制。
c、實現(xiàn)
實現(xiàn)也就是代碼的生產(chǎn)過程。這里不僅包括代碼的產(chǎn)生,同時也包括測試用例的產(chǎn)生。針對上一階段提供詳細(xì)設(shè)計,程序員開始編碼并且調(diào)試程序,測試人員則根據(jù)設(shè)計進(jìn)行測試用例的設(shè)計,設(shè)計出來的用例需要得到項目組成員認(rèn)可由項目經(jīng)理審核通過才能進(jìn)入配置庫。同時程序員調(diào)試完程序提交測試人員進(jìn)行程序正確性檢測。
d、文檔管理
文檔維護(hù)主要是配置管理小組的工作。文檔從用途上分主要分為內(nèi)部文檔和外部文檔。
內(nèi)部文檔包括: 項目開發(fā)計劃; 需求分析; 體系結(jié)構(gòu)設(shè)計說明; 詳細(xì)設(shè)計說明; 構(gòu)件索引; 構(gòu)件成分說明; 構(gòu)件接口及調(diào)用說明; 組件索引;組件接口及調(diào)用說明; 類索引; 類屬性及方法說明; 測試報告; 測試統(tǒng)計報告; 質(zhì)量監(jiān)督報告; 源代碼; 文檔分類版本索引; 軟件安裝打包文件。
外部文檔主要包括: 軟件安裝手冊; 軟件操作手冊; 在線幫助; 系統(tǒng)性能指標(biāo)報告; 系統(tǒng)操作索引。
如何保證文檔的全面性,使其真正為項目的進(jìn)度提供保證,又不因為文檔的寫作而耽誤項目的進(jìn)度,這仍然是一個比較難解決的問題。解決此問題,其核心仍然是個"度"的問題。在本項目的開發(fā)中,配置管理小組的一個非常重要的任務(wù)還是書寫文檔規(guī)范和文檔模板。當(dāng)有文檔模板后需要書寫文檔的人員只剩下"填空"的工作,從某種意義上講,書寫文檔的速度會加快。如果書寫文檔的人員認(rèn)為文檔的更細(xì)致的部分可以由他人幫助完成,則該文檔即交由他人完成,但此時文檔并不算被正式提交,當(dāng)他人書寫完畢之后,必須由文檔的初寫者進(jìn)行復(fù)審,復(fù)審通過后方可以正式提交,進(jìn)入軟件配置管理的循環(huán)中。
配置管理小組真正核心的工作是對文檔的組織管理。根據(jù)文檔的不同,文檔的來源也不同,有些是通過質(zhì)量保證小組經(jīng)過復(fù)審之后轉(zhuǎn)交給配置管理小組,有些則會直接從文檔的出處到達(dá)配置管理小組。文檔的管理是一個非常煩瑣的工作,但是長遠(yuǎn)來看它不僅使項目的開發(fā)對單個主要人員的依賴減少,從而減少人員流動給項目的帶來的風(fēng)險,更重要的是在項目進(jìn)行到后百分之十的時候起到拉動項目的作用。
從以往做大項目的經(jīng)驗來看,寫作文檔在項目開發(fā)的早期可能會使項目的進(jìn)度比起不寫文檔要稍慢,但隨著項目的進(jìn)展,各個部門需要配合越來越多,開發(fā)者越來越需要知道其他人員的開發(fā)思路和開發(fā)過程,才能使自己的開發(fā)向前推進(jìn)。一個明顯的例子就是系統(tǒng)整合,或者某些環(huán)節(jié)是建立在其他環(huán)節(jié)完成的基礎(chǔ)之上時,就更顯現(xiàn)出文檔交流的準(zhǔn)確性和高效性。
3、系統(tǒng)維護(hù)質(zhì)量保證
在我們公司,維護(hù)小組的任務(wù)一方面是保證對項目客戶的跟蹤服務(wù),另一方面是確保該項目其它的開發(fā)人員從項目中盡快的解脫出來以便投入到下一個項目的開發(fā)中。所以通常項目維護(hù)小組成員主要由項目組的少部分開發(fā)人員承擔(dān)完成。他們不僅了解軟件的核心內(nèi)容,而且與客戶也不陌生,以便能夠以最快的速度修正錯誤。對于一般性的錯誤,如操作不當(dāng)?shù)纫鸬膯栴},全部由維護(hù)小組執(zhí)行完成,但需要用戶測試確認(rèn)上線。如果較大的修改則需要走變更控制流程,用戶或者維護(hù)人員填寫變更申請,經(jīng)專家會議討論分析可行方案在由維護(hù)小組實施,通過測試后方可提交用戶。
維護(hù)小組的人員基本上是按項目跟進(jìn)的。當(dāng)一個項目剛剛交付用戶時,在維護(hù)小組有較多的人員進(jìn)行跟進(jìn),隨軟件的穩(wěn)定,跟進(jìn)的人逐步減少,并轉(zhuǎn)移到其它項目中去。
2009-7-29