如何實(shí)施軟件質(zhì)量保證(轉(zhuǎn))
軟件質(zhì)量保證(即SQA——Software Quality Assurance),是CMM2級(jí)中的一個(gè)關(guān)鍵過程域,它是貫穿整個(gè)軟件過程的第三方獨(dú)立審查活動(dòng),出現(xiàn)在大多數(shù)關(guān)鍵過程域的檢查與驗(yàn)證的公共特性中,在整個(gè)軟件開發(fā)過程中充當(dāng)重要角色。
從CMM2級(jí)中包含的6個(gè)關(guān)鍵過程域來看,無論是需求管理、軟件項(xiàng)目計(jì)劃、軟件項(xiàng)目跟蹤與監(jiān)控,還是軟件子合同管理、軟件配置管理,都不同程度地存在于我們現(xiàn)在正在進(jìn)行的軟件項(xiàng)目開發(fā)過程中,對(duì)于它們的了解我們已經(jīng)不再陌生,只有SQA這個(gè)關(guān)鍵過程域,是在我們準(zhǔn)備以CMM2級(jí)要求的關(guān)鍵過程域?yàn)榛A(chǔ)進(jìn)行軟件過程改進(jìn)前未接觸過的。
在很多軟件企業(yè)中還沒有與之相對(duì)應(yīng)的人員和工作方法,整套關(guān)注軟件開發(fā)過程的軟件質(zhì)量保證體系還沒有建立起來。所以,在企業(yè)以CMM2級(jí)關(guān)鍵過程域?yàn)閰⒖歼M(jìn)行軟件過程改進(jìn)時(shí),SQA往往是一個(gè)難點(diǎn),直接涉及到組織結(jié)構(gòu)的變化。
實(shí)施SQA的目的
軟件質(zhì)量保證的目標(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)品。主要包括以下四個(gè)方面:
● 通過監(jiān)控軟件開發(fā)過程來保證產(chǎn)品質(zhì)量;
● 保證開發(fā)出來的軟件和軟件開發(fā)過程符合相應(yīng)標(biāo)準(zhǔn)與規(guī)程;
● 保證軟件產(chǎn)品、軟件過程中存在的不符合問題得到處理,必要時(shí)將問題反映給高級(jí)管理者;
● 確保項(xiàng)目組制定的計(jì)劃、標(biāo)準(zhǔn)和規(guī)程適合項(xiàng)目組需要,同時(shí)滿足評(píng)審和審計(jì)需要;
除了以上四點(diǎn)之外,我們還希望SQA能作為軟件工程過程小組(SEPG)在項(xiàng)目組中的延伸,能夠收集項(xiàng)目中好的實(shí)施方法和發(fā)現(xiàn)實(shí)施不利的原因,為修改企業(yè)內(nèi)部軟件開發(fā)整體規(guī)范提供依據(jù),為其他項(xiàng)目組的開發(fā)過程實(shí)施提供先進(jìn)方法和樣例。
對(duì)SQA人員的素質(zhì)要求
1. SQA人員(有時(shí)簡稱SQA)要有很強(qiáng)的溝通能力。從實(shí)施SQA的目的中可以看出,SQA不在項(xiàng)目中,是獨(dú)立于軟件項(xiàng)目的第三方,但他要了解項(xiàng)目的開發(fā)過程和進(jìn)度,捕捉到項(xiàng)目中不符合要求的問題,這就要求SQA能夠深入項(xiàng)目,和軟件開發(fā)經(jīng)理以及項(xiàng)目組中的開發(fā)人員保持很好的溝通,這樣才能及時(shí)獲得真實(shí)的項(xiàng)目情況。
2. SQA要熟悉軟件開發(fā)過程。作為SQA,既然要確保項(xiàng)目組制定的計(jì)劃、標(biāo)準(zhǔn)和規(guī)程,要符合項(xiàng)目組要求,那么SQA首先自己就要了解軟件項(xiàng)目開發(fā)過程,以及企業(yè)內(nèi)部已經(jīng)有的開發(fā)過程規(guī)范。
3. SQA本身要有很強(qiáng)的計(jì)劃性。SQA一方面要監(jiān)督軟件項(xiàng)目組編寫計(jì)劃,另一方面SQA自身的工作也要有計(jì)劃,并且能夠按照計(jì)劃開展工作。
4. SQA要能應(yīng)對(duì)繁雜的工作。作為SQA,在跟蹤項(xiàng)目進(jìn)行過程的時(shí)候要對(duì)項(xiàng)目組的很多工作產(chǎn)品進(jìn)行審計(jì),而且會(huì)參與項(xiàng)目組中的多種活動(dòng)。同時(shí)一個(gè)SQA還有可能會(huì)面對(duì)多個(gè)項(xiàng)目組,所以任務(wù)相對(duì)繁雜細(xì)碎,這就要求SQA在處理這些事物的時(shí)候要耐心細(xì)致。
5. SQA要客觀,有責(zé)任心。作為第三方對(duì)項(xiàng)目過程進(jìn)行監(jiān)督,SQA要能保持自己的客觀性,不能一味討好項(xiàng)目經(jīng)理,也不能成為項(xiàng)目組中的憲兵,否則會(huì)影響工作的開展。對(duì)于項(xiàng)目組中多次協(xié)調(diào)解決不了的問題,能夠向項(xiàng)目的高層經(jīng)理進(jìn)言,完成SQA的使命。
以上五點(diǎn)是作為SQA應(yīng)該具備的基本素質(zhì),除此之外,一個(gè)好的SQA還應(yīng)該在軟件開發(fā)過程中作為開發(fā)人員或測(cè)試人員參與過一個(gè)或多個(gè)環(huán)節(jié),這樣他們才能在過程監(jiān)督中比較準(zhǔn)確地抓住重點(diǎn),同時(shí)他們的意見和提出的解決辦法也會(huì)更貼近項(xiàng)目組,容易被項(xiàng)目組接受。
SQA人員的組成
軟件企業(yè)中的SQA人員既可以由全職人員擔(dān)任,也可以由企業(yè)內(nèi)具有相關(guān)素質(zhì)、經(jīng)過SQA培訓(xùn)的人員兼職擔(dān)任。由此組成的SQA小組可能是一個(gè)真正的物理上存在的獨(dú)立部門,也可以是一個(gè)邏輯上存在的平臺(tái)。但不管是真正的獨(dú)立部門還是邏輯上的平臺(tái),它都需要有一個(gè)靈魂人物——SQA小組組長,來組織SQA小組的日常活動(dòng)。
在給一個(gè)項(xiàng)目組分配負(fù)責(zé)監(jiān)督其項(xiàng)目過程的SQA時(shí),一定要注意一點(diǎn):就是該項(xiàng)目的SQA不能是該項(xiàng)目組的開發(fā)人員、配置管理人員或測(cè)試人員,一個(gè)項(xiàng)目的SQA除了監(jiān)控項(xiàng)目過程,完成SQA相關(guān)工作以外,不應(yīng)該參與項(xiàng)目組的其他實(shí)質(zhì)性工作,否則他會(huì)與項(xiàng)目組捆綁在一起,很難保持客觀性。
SQA工作的內(nèi)容
SQA的工作內(nèi)容主要包括以下六類:
1. 與SQA計(jì)劃直接相關(guān)的工作:SQA在項(xiàng)目早期要根據(jù)項(xiàng)目計(jì)劃制定與其對(duì)應(yīng)的SQA計(jì)劃,定義出各階段的檢查重點(diǎn),標(biāo)識(shí)出檢查、審計(jì)的工作產(chǎn)品對(duì)象,以及在每個(gè)階段SQA的輸出產(chǎn)品。定義越詳細(xì),對(duì)于SQA今后的工作的指導(dǎo)性就會(huì)越強(qiáng),同時(shí)也便于軟件項(xiàng)目經(jīng)理和SQA組長對(duì)其工作的監(jiān)督。編寫完SQA計(jì)劃后要組織SQA計(jì)劃的評(píng)審,并形成評(píng)審報(bào)告,把通過評(píng)審的SQA計(jì)劃發(fā)送給軟件項(xiàng)目經(jīng)理、項(xiàng)目開發(fā)人員和所有相關(guān)人員。
2. 參與項(xiàng)目的階段性評(píng)審和審計(jì):在SQA計(jì)劃中通常已經(jīng)根據(jù)項(xiàng)目計(jì)劃定義了與項(xiàng)目階段相應(yīng)的階段檢查,包括參加項(xiàng)目在本階段的評(píng)審和對(duì)其階段產(chǎn)品的審計(jì)。對(duì)于階段產(chǎn)品的審計(jì)通常是檢查其階段產(chǎn)品是否按計(jì)劃按規(guī)程輸出并內(nèi)容完整,這里的規(guī)程包括企業(yè)內(nèi)部統(tǒng)一的規(guī)程也包括項(xiàng)目組內(nèi)自己定義的規(guī)程。但是SQA對(duì)于階段產(chǎn)品內(nèi)容的正確性一般不負(fù)責(zé)任檢查,對(duì)于內(nèi)容的正確性通常交由項(xiàng)目中的評(píng)審來完成。SQA參與評(píng)審是從保證評(píng)審過程有效性方面入手,如參與評(píng)審的人是否具備一定資格、是否規(guī)定的人員都參見了評(píng)審、評(píng)審中對(duì)被評(píng)審的對(duì)象的每個(gè)部分都進(jìn)行了評(píng)審、并給出了明確的結(jié)論等等。
3. 對(duì)項(xiàng)目日常活動(dòng)與規(guī)程的符合性進(jìn)行檢查: 這部分的工作內(nèi)容是SQA的日常工作內(nèi)容。由于SQA獨(dú)立于項(xiàng)目組,如果只是參與階段性的檢查和審計(jì)很難及時(shí)反映項(xiàng)目組的工作過程,所以SQA也要在兩個(gè)階段點(diǎn)之間設(shè)置若干小的跟蹤點(diǎn),來監(jiān)督項(xiàng)目的進(jìn)行情況,以便能及時(shí)反映出項(xiàng)目組中存在的問題,并對(duì)其進(jìn)行追蹤。如果只在階段點(diǎn)進(jìn)行檢查和審計(jì),即便發(fā)現(xiàn)了問題也難免過于滯后,不符合盡早發(fā)現(xiàn)問題、把問題控制在最小的范圍之內(nèi)的整體目標(biāo)。
4. 對(duì)配置管理工作的檢查和審計(jì):SQA要對(duì)項(xiàng)目過程中的配置管理工作是否按照項(xiàng)目最初制定的配置管理計(jì)劃進(jìn)行監(jiān)督,包括配置管理人員是否定期進(jìn)行該方面的工作、是否所有人得到的都是開發(fā)過程產(chǎn)品的有效版本。這里的過程產(chǎn)品包括項(xiàng)目過程中產(chǎn)生的代碼和文檔。
5. 跟蹤問題的解決情況: 對(duì)于評(píng)審中發(fā)現(xiàn)的問題和項(xiàng)目日常工作中發(fā)現(xiàn)的問題,SQA要進(jìn)行跟蹤,直至解決。對(duì)于在項(xiàng)目組內(nèi)可以解決的問題就在項(xiàng)目組內(nèi)部解決,對(duì)于在項(xiàng)目組內(nèi)部無法解決的問題,或是在項(xiàng)目組中跟催多次也沒有得到解決的問題,可以利用其獨(dú)立匯報(bào)的渠道報(bào)告給高層經(jīng)理。
6. 收集新方法,提供過程改進(jìn)的依據(jù):此類工作很難具體定義在SQA的計(jì)劃當(dāng)中,但是SQA有機(jī)會(huì)直接接觸很多項(xiàng)目組,對(duì)于項(xiàng)目組在開發(fā)管理過程中的優(yōu)點(diǎn)和缺點(diǎn)都能準(zhǔn)確的獲得第一手資料。他們有機(jī)會(huì)了解項(xiàng)目組中管理好的地方是如何做的,采用了什么有效的方法,在SQA小組的活動(dòng)中與其他SQA共享。這樣這些好的實(shí)施實(shí)例就可以被傳播到更多的項(xiàng)目組中。對(duì)于企業(yè)內(nèi)過程規(guī)范定義的不準(zhǔn)確或是不方便的地方,軟件項(xiàng)目組也可以通過SQA小組反映到軟件工程過程小組,便于下一步對(duì)規(guī)程進(jìn)行修改和完善。
SQA與幾類角色間的關(guān)系
一個(gè)企業(yè)內(nèi)的部門設(shè)置可能會(huì)各有不同,但是很多角色設(shè)置是相同的,從一個(gè)項(xiàng)目的SQA出發(fā),我們可以把SQA與其他相關(guān)角色的關(guān)系表示為下圖: 以上圖示只說明SQA與高層經(jīng)理、項(xiàng)目組和其他相關(guān)組之間的關(guān)系,并不是以上幾個(gè)角色之間所有關(guān)系的描述,所以即便項(xiàng)目組會(huì)直接向高層經(jīng)理匯報(bào),但與SQA無直接關(guān)系,在圖中就沒有表現(xiàn)出來。
SQA工作中常見的幾個(gè)問題
1. 最初給項(xiàng)目組配置SQA人員的時(shí)候,SQA的價(jià)值不被認(rèn)可因?yàn)槭切鹿ぷ鞯某醮伍_展,已經(jīng)習(xí)慣了自己管理項(xiàng)目,向高層經(jīng)理匯報(bào)的項(xiàng)目組難免會(huì)有抵觸情緒。要從兩個(gè)方面解決這個(gè)問題:一方面,從組織的角度,要明確SQA的角色及其合法性; 另一方面,SQA也要以其專業(yè)的工作贏得項(xiàng)目組認(rèn)可,為項(xiàng)目組增加價(jià)值。
2. 一個(gè)全職的SQA可以同時(shí)兼任多少個(gè)項(xiàng)目的SQA工作對(duì)于不同的項(xiàng)目規(guī)模和組織管理方式,這個(gè)問題會(huì)有不同的答案,根據(jù)實(shí)施中的一些經(jīng)驗(yàn)總結(jié),通常在第一次實(shí)施時(shí),承擔(dān)一個(gè)20人左右的項(xiàng)目組的SQA工作需要占用一個(gè)人30%左右的工作量,隨著SQA的成熟,這個(gè)比例會(huì)降低到15%。對(duì)于一個(gè)10人以內(nèi)的項(xiàng)目組,SQA需要投入其10%左右的工作量。當(dāng)然,項(xiàng)目越大SQA的投入就越多。
3. SQA與項(xiàng)目組的關(guān)系難處理對(duì)于SQA與項(xiàng)目組的關(guān)系,應(yīng)該遵循以下兩條原則: 要在過程方面成為項(xiàng)目組的嚴(yán)師,有錯(cuò)必糾,但不能有錯(cuò)全報(bào);要做項(xiàng)目組的朋友,但不能對(duì)項(xiàng)目組包庇縱容。
4. 項(xiàng)目組有了SQA,可是需求文檔和設(shè)計(jì)文檔的質(zhì)量還是不高對(duì)不起,這不是SQA的直接工作范圍。提高需求和設(shè)計(jì)的質(zhì)量,要從人員培訓(xùn)和嚴(yán)格評(píng)審入手,讓有經(jīng)驗(yàn)有資格的人來完成需求和設(shè)計(jì)文檔。SQA只能從規(guī)程符合方面進(jìn)行監(jiān)督。
總之,在軟件企業(yè)中建立SQA體系,是軟件項(xiàng)目管理由人治到法治的一個(gè)必經(jīng)階段,也是軟件企業(yè)以CMM模型為參考,進(jìn)行軟件過程改進(jìn)中一個(gè)不可缺少的部分。軟件企業(yè)只要真正建立了SQA規(guī)范,培養(yǎng)了專業(yè)的SQA人員就會(huì)真正從中體會(huì)到它的好處。
posted on 2008-01-08 19:30 靈! 閱讀(354) 評(píng)論(1) 編輯 收藏 所屬分類: SQA