CMMI5在小型項(xiàng)目中的成本過(guò)高,對(duì)CMMI5的實(shí)施體會(huì)與在實(shí)際項(xiàng)目中的應(yīng)用分析,在項(xiàng)目實(shí)施的過(guò)程中精簡(jiǎn)了CMMI5的實(shí)施流程和部分文檔,這個(gè)精簡(jiǎn)的流程在項(xiàng)目實(shí)施的過(guò)程中既可以確保流程規(guī)范與質(zhì)量信賴又可以節(jié)約項(xiàng)目成本:
一、需求與規(guī)范的管理
1、 由測(cè)試負(fù)責(zé)人(或?qū)iT(mén)的需求分析負(fù)責(zé)人)統(tǒng)一接收來(lái)自移動(dòng)總的行業(yè)網(wǎng)關(guān)相關(guān)規(guī)范和新需求,測(cè)試負(fù)責(zé)人瀏覽規(guī)范獲知大意后回復(fù)郵件,將規(guī)范和新需求轉(zhuǎn)發(fā)給開(kāi)發(fā)經(jīng)理、項(xiàng)目經(jīng)理、相關(guān)的開(kāi)發(fā)人員和測(cè)試人員,同時(shí)commit到CVS;
2、 測(cè)試負(fù)責(zé)人(或?qū)iT(mén)的需求分析負(fù)責(zé)人)、項(xiàng)目經(jīng)理仔細(xì)閱讀規(guī)范與需求后,對(duì)規(guī)范和新需求進(jìn)行研究,并就難點(diǎn)和疑點(diǎn)進(jìn)行討論,整理出重點(diǎn)內(nèi)容,并將重點(diǎn)內(nèi)容發(fā)給開(kāi)發(fā)經(jīng)理、項(xiàng)目經(jīng)理、相關(guān)的開(kāi)發(fā)人員和測(cè)試人員,同時(shí)commit到CVS;
3、 開(kāi)發(fā)經(jīng)理、項(xiàng)目經(jīng)理、測(cè)試負(fù)責(zé)人、需求分析負(fù)責(zé)人、相關(guān)的開(kāi)發(fā)人員與測(cè)試人員開(kāi)會(huì)對(duì)規(guī)范、需求和重點(diǎn)內(nèi)容進(jìn)行討論,確定需求的具體含義以及最終實(shí)現(xiàn)的需求和功能點(diǎn);
4、 項(xiàng)目經(jīng)理根據(jù)規(guī)范、需求和開(kāi)會(huì)討論結(jié)果編寫(xiě)《需求規(guī)格說(shuō)明書(shū)》與《功能列表》,測(cè)試負(fù)責(zé)人(或?qū)iT(mén)的需求分析負(fù)責(zé)人)對(duì)文檔進(jìn)行檢查并修改完善,然后commit到CVS;
5、 測(cè)試負(fù)責(zé)人(或?qū)iT(mén)的PPQA)確認(rèn)所有相關(guān)文檔經(jīng)過(guò)了評(píng)審并都已經(jīng)commit到CVS。
二、項(xiàng)目計(jì)劃與測(cè)試計(jì)劃
1、 由開(kāi)發(fā)經(jīng)理組織項(xiàng)目計(jì)劃討論會(huì),在討論會(huì)上各開(kāi)發(fā)負(fù)責(zé)人對(duì)自己所負(fù)責(zé)的模塊所需要的工作量進(jìn)行評(píng)估,根據(jù)工作量和工程需求初步確定總體開(kāi)發(fā)計(jì)劃、測(cè)試計(jì)劃和發(fā)布時(shí)間;
2、項(xiàng)目經(jīng)理根據(jù)估算工作量和工程需求編寫(xiě)項(xiàng)目計(jì)劃,使用CMMI5總體測(cè)試計(jì)劃模板并對(duì)其進(jìn)行適當(dāng)?shù)牟眉艉脱a(bǔ)充,編寫(xiě)適合本項(xiàng)目的項(xiàng)目計(jì)劃;
3、測(cè)試負(fù)責(zé)人根據(jù)項(xiàng)目計(jì)劃與發(fā)布時(shí)間編寫(xiě)測(cè)試計(jì)劃,使用CMMI5總體測(cè)試計(jì)劃模板并對(duì)其進(jìn)行適當(dāng)?shù)牟眉艉脱a(bǔ)充,編寫(xiě)適合本項(xiàng)目的測(cè)試計(jì)劃;
4、項(xiàng)目計(jì)劃與測(cè)試計(jì)劃編寫(xiě)完成后發(fā)送給開(kāi)發(fā)經(jīng)理、項(xiàng)目經(jīng)理、相關(guān)的開(kāi)發(fā)人員和測(cè)試人員,開(kāi)發(fā)經(jīng)理、項(xiàng)目經(jīng)理、相關(guān)的開(kāi)發(fā)人員和測(cè)試人員閱讀項(xiàng)目計(jì)劃、測(cè)試計(jì)劃后將建議和意見(jiàn)以郵件的形式反饋給項(xiàng)目經(jīng)理與測(cè)試負(fù)責(zé)人,項(xiàng)目經(jīng)理與測(cè)試負(fù)責(zé)人收集大家的郵件分別對(duì)項(xiàng)目計(jì)劃與測(cè)試計(jì)劃進(jìn)行修改完善,同時(shí)回復(fù)郵件說(shuō)明項(xiàng)目計(jì)劃與測(cè)試計(jì)劃修改情況,如果存在爭(zhēng)議則召開(kāi)一個(gè)小型會(huì)議對(duì)異議進(jìn)行討論,修改后的項(xiàng)目計(jì)劃、測(cè)試計(jì)劃commit到CVS;
5、測(cè)試負(fù)責(zé)人(或?qū)iT(mén)的PPQA)確認(rèn)所有相關(guān)文檔經(jīng)過(guò)了評(píng)審并都已經(jīng)commit到CVS。
三、開(kāi)發(fā)設(shè)計(jì)與評(píng)審
1、 項(xiàng)目經(jīng)理構(gòu)思系統(tǒng)設(shè)計(jì),項(xiàng)目組開(kāi)發(fā)成員一起討論系統(tǒng)的設(shè)計(jì),對(duì)設(shè)計(jì)形成較為清晰的思路;
2、 項(xiàng)目經(jīng)理負(fù)責(zé)編寫(xiě)概要設(shè)計(jì)文檔,與開(kāi)發(fā)經(jīng)理、開(kāi)發(fā)團(tuán)隊(duì)成員與測(cè)試負(fù)責(zé)人一起討論概要設(shè)計(jì);
3、 概要設(shè)計(jì)完成后,項(xiàng)目經(jīng)理編寫(xiě)詳細(xì)設(shè)計(jì)文檔、數(shù)據(jù)庫(kù)設(shè)計(jì)文檔和編碼規(guī)范,各模塊負(fù)責(zé)人負(fù)責(zé)編寫(xiě)所負(fù)責(zé)的模塊進(jìn)行詳細(xì)設(shè)計(jì);
4、 設(shè)計(jì)文檔編寫(xiě)完成后,發(fā)郵件通知開(kāi)發(fā)經(jīng)理、項(xiàng)目經(jīng)理、測(cè)試負(fù)責(zé)人、相關(guān)開(kāi)發(fā)人員和測(cè)試人員;
5、 開(kāi)發(fā)經(jīng)理、項(xiàng)目經(jīng)理、測(cè)試負(fù)責(zé)人、相關(guān)開(kāi)發(fā)人員和測(cè)試人員對(duì)所提交的概要設(shè)計(jì)文檔、詳細(xì)設(shè)計(jì)文檔進(jìn)行審查,將建議和意見(jiàn)以郵件的形式反饋給模塊負(fù)責(zé)人;
6、 模塊負(fù)責(zé)人收集郵件中的修改建議并對(duì)設(shè)計(jì)文檔進(jìn)行修改,同時(shí)回復(fù)郵件說(shuō)明詳細(xì)設(shè)計(jì)修改情況,修改后的詳細(xì)設(shè)計(jì)commit到CVS;
7、 如果對(duì)設(shè)計(jì)存在爭(zhēng)議或出現(xiàn)明顯不合理的設(shè)計(jì),召開(kāi)一個(gè)小型會(huì)議對(duì)異議進(jìn)行討論,有效解決設(shè)計(jì)所出現(xiàn)的分歧
8、 測(cè)試負(fù)責(zé)人(或?qū)iT(mén)的PPQA)對(duì)開(kāi)發(fā)最終修改的詳細(xì)設(shè)計(jì)計(jì)劃進(jìn)行檢查,并確認(rèn)所有文檔都已經(jīng)commit到CVS。
注:在大型的項(xiàng)目中,必須先完成概要設(shè)計(jì)后再完成詳細(xì)設(shè)計(jì),在小項(xiàng)目或需求中可做適當(dāng)剪裁概要設(shè)計(jì)與詳細(xì)設(shè)計(jì)合在一起完成。
四、測(cè)試方案與評(píng)審
1、在項(xiàng)目的設(shè)計(jì)階段,測(cè)試負(fù)責(zé)人根據(jù)規(guī)范文檔、功能列表和概要文檔編寫(xiě)總體測(cè)試方案與性能測(cè)試方案;
2、測(cè)試方案編寫(xiě)完成后,發(fā)郵件通知開(kāi)發(fā)經(jīng)理、項(xiàng)目經(jīng)理、相關(guān)開(kāi)發(fā)人員和測(cè)試人員;
3、開(kāi)發(fā)經(jīng)理、項(xiàng)目經(jīng)理、測(cè)試負(fù)責(zé)人、相關(guān)開(kāi)發(fā)人員和測(cè)試人員對(duì)所提交的測(cè)試方案進(jìn)行審查,開(kāi)發(fā)經(jīng)理和項(xiàng)目經(jīng)理對(duì)測(cè)試方案進(jìn)行總體性的審查,而各模塊負(fù)責(zé)人則負(fù)責(zé)相關(guān)模塊或功能的測(cè)試方案的審查,將建議和意見(jiàn)以郵件的形式反饋給測(cè)試負(fù)責(zé)人;
4、測(cè)試負(fù)責(zé)人收集郵件中的修改建議并對(duì)測(cè)試方案進(jìn)行修改,同時(shí)回復(fù)郵件說(shuō)明測(cè)試方案修改情況,修改后的測(cè)試方案commit到CVS;
5、測(cè)試負(fù)責(zé)人(或?qū)iT(mén)的PPQA)對(duì)最終修改的測(cè)試方案進(jìn)行檢查,并確認(rèn)所有文檔都已經(jīng)commit到CVS。
五、編碼實(shí)現(xiàn)與單元測(cè)試
1、在產(chǎn)品詳細(xì)設(shè)計(jì)完成后,開(kāi)發(fā)工程師依據(jù)設(shè)計(jì)進(jìn)行編碼工作;
2、編碼完成后,開(kāi)發(fā)工程師編寫(xiě)單元測(cè)試案例并進(jìn)行單元測(cè)試,單元測(cè)試完成后提交單元測(cè)試報(bào)告;
3、項(xiàng)目經(jīng)理根據(jù)項(xiàng)目實(shí)際情況對(duì)開(kāi)發(fā)工程師編寫(xiě)的代碼組織Code Review,記錄相關(guān)問(wèn)題;
4、產(chǎn)品模塊單元測(cè)試完成后,開(kāi)發(fā)之間進(jìn)行產(chǎn)品聯(lián)調(diào)測(cè)試,并修改所發(fā)現(xiàn)問(wèn)題以及提交聯(lián)調(diào)測(cè)試報(bào)告;
5、產(chǎn)品初步完成后,在提交測(cè)試前進(jìn)行一次產(chǎn)品演示,參加人員包括開(kāi)發(fā)經(jīng)理、項(xiàng)目經(jīng)理、測(cè)試負(fù)責(zé)人、開(kāi)發(fā)工程師、測(cè)試工程師、售前工程師與售后工程師,在演示的過(guò)程中對(duì)產(chǎn)品提出改進(jìn)建議;
6、各模塊負(fù)責(zé)人對(duì)Code Review以及產(chǎn)品展示所發(fā)現(xiàn)的問(wèn)題進(jìn)行修改,相關(guān)的代碼與文檔commit到CVS;
7、項(xiàng)目經(jīng)理對(duì)編碼完成后的系統(tǒng)進(jìn)行確認(rèn),確保提交測(cè)試的系統(tǒng)是可運(yùn)行的,測(cè)試負(fù)責(zé)人(或?qū)iT(mén)的PPQA)確認(rèn)所有文檔和代碼都已經(jīng)commit到CVS。
六、測(cè)試設(shè)計(jì)與評(píng)審
1、 在項(xiàng)目編碼階段,測(cè)試方案編寫(xiě)完成后,測(cè)試負(fù)責(zé)人或相關(guān)測(cè)試人員根據(jù)測(cè)試方案、規(guī)范文檔、功能列表和詳細(xì)設(shè)計(jì)進(jìn)行測(cè)試用例設(shè)計(jì);
2、 測(cè)試案例設(shè)計(jì)的類型包括功能測(cè)試,邊界測(cè)試,異常測(cè)試,性能測(cè)試,壓力測(cè)試等,在用例設(shè)計(jì)中,除了功能測(cè)試案例外,應(yīng)盡量考慮邊界、異常、性能的情況,以便發(fā)現(xiàn)更多的隱藏問(wèn)題;
3、 在編寫(xiě)測(cè)試案例的過(guò)程中,對(duì)于存在疑問(wèn)的地方或測(cè)試重點(diǎn),主動(dòng)與開(kāi)發(fā)負(fù)責(zé)人或項(xiàng)目經(jīng)理溝通討論,一方面有助于設(shè)計(jì)完善的測(cè)試案例,另一方面也有助于開(kāi)發(fā)進(jìn)一步清晰編碼思路;
4、 測(cè)試用例編寫(xiě)完成后,發(fā)郵件給開(kāi)發(fā)經(jīng)理、項(xiàng)目經(jīng)理、相關(guān)開(kāi)發(fā)人員和測(cè)試人員;
5、 開(kāi)發(fā)經(jīng)理、項(xiàng)目經(jīng)理、相關(guān)開(kāi)發(fā)人員和測(cè)試人員對(duì)所提交的測(cè)試案例進(jìn)行審查,開(kāi)發(fā)經(jīng)理與項(xiàng)目經(jīng)理對(duì)測(cè)試案例進(jìn)行總體性的檢查,各模塊負(fù)責(zé)人則負(fù)責(zé)檢查自己所負(fù)責(zé)的測(cè)試案例,將建議和意見(jiàn)以郵件的形式反饋給測(cè)試負(fù)責(zé)人;
6、 測(cè)試負(fù)責(zé)人收集大家的郵件對(duì)測(cè)試案例進(jìn)行修改完善,同時(shí)回復(fù)郵件說(shuō)明修改情況,如果存在爭(zhēng)議則召開(kāi)一個(gè)小型會(huì)議對(duì)異議進(jìn)行討論,修改后的測(cè)試案例commit到CVS;
7、 測(cè)試用例編寫(xiě)完成之后需要不斷完善,軟件產(chǎn)品新增功能或更新需求后,測(cè)試案例必須配套修改更新;在測(cè)試過(guò)程中發(fā)現(xiàn)設(shè)計(jì)測(cè)試案例時(shí)考慮不周,需要對(duì)測(cè)試案例進(jìn)行修改完善;在軟件交付使用后客戶反饋的軟件缺陷,而缺陷又是因測(cè)試案例存在漏洞造成,也需要對(duì)測(cè)試案例進(jìn)行完善;
8、 測(cè)試負(fù)責(zé)人(或?qū)iT(mén)的PPQA)對(duì)最終修改測(cè)試案例進(jìn)行檢查,并確認(rèn)所有文檔都已經(jīng)commit到CVS。
七、測(cè)試實(shí)施
1、代碼提交前一天準(zhǔn)備相關(guān)的測(cè)試環(huán)境(如服務(wù)器或數(shù)據(jù)庫(kù)等),代碼提交后測(cè)試人員向Build Master申請(qǐng)打包,并搭建正式測(cè)試環(huán)境,為了不做到測(cè)試以及確保產(chǎn)品可以跨平臺(tái),每個(gè)測(cè)試人員各自搭建一個(gè)測(cè)試環(huán)境,每個(gè)平臺(tái)至少要有一個(gè)以上的測(cè)試人員負(fù)責(zé);
2、測(cè)試環(huán)境搭建好后進(jìn)行煙霧測(cè)試,如果煙霧測(cè)試通過(guò)則繼續(xù)詳細(xì)的功能測(cè)試,否則中斷測(cè)試并返回給開(kāi)發(fā);
3、測(cè)試人員按照預(yù)定的測(cè)試計(jì)劃和測(cè)試方案逐項(xiàng)對(duì)測(cè)試案例進(jìn)行測(cè)試,在測(cè)試過(guò)程中發(fā)現(xiàn)的任何與預(yù)期目標(biāo)不符的現(xiàn)象和問(wèn)題都必須詳細(xì)記錄下來(lái),填寫(xiě)測(cè)試記錄,在必要的時(shí)候協(xié)助開(kāi)發(fā)追蹤與修改所發(fā)現(xiàn)的問(wèn)題;如果在測(cè)試的過(guò)程中發(fā)現(xiàn)重大的bug或因?yàn)槟承゜ug導(dǎo)致測(cè)試不能繼續(xù),測(cè)試中斷并返回給開(kāi)發(fā);
4、每個(gè)測(cè)試階段測(cè)試結(jié)束后,由測(cè)試負(fù)責(zé)人總結(jié)測(cè)試情況,對(duì)測(cè)試結(jié)果進(jìn)行分析和下一階段測(cè)試測(cè)試計(jì)劃與可能引進(jìn)的bug數(shù)量進(jìn)行預(yù)測(cè),并提交“測(cè)試階段分析報(bào)告”,并發(fā)送給開(kāi)發(fā)經(jīng)理、項(xiàng)目經(jīng)理、相關(guān)測(cè)試人員和開(kāi)發(fā)人員;
5、開(kāi)發(fā)經(jīng)理對(duì)測(cè)試階段分析報(bào)告中存在的問(wèn)題采取恰當(dāng)?shù)拇胧┖驼{(diào)整相關(guān)資源,確保下一階段的開(kāi)發(fā)與測(cè)試計(jì)劃順利進(jìn)行;
6、開(kāi)發(fā)對(duì)bug進(jìn)行修改;
7、開(kāi)發(fā)對(duì)bug修改后測(cè)試人員進(jìn)行回歸測(cè)試,經(jīng)過(guò)修改的軟件可能仍然包含著錯(cuò)誤,甚至引入了新的錯(cuò)誤,因此,對(duì)于修改以后的程序和文檔,按照修改的方法和影響的范圍,必須重新進(jìn)行有關(guān)的測(cè)試;
8、產(chǎn)品的功能比較完善后,進(jìn)行產(chǎn)品的性能壓力測(cè)試,并根據(jù)測(cè)試結(jié)果進(jìn)行性能調(diào)優(yōu);
9、確認(rèn)測(cè)試,在軟件發(fā)布前,對(duì)產(chǎn)品進(jìn)行確認(rèn)測(cè)試;
10、當(dāng)測(cè)試產(chǎn)品達(dá)到測(cè)試計(jì)劃所制定的產(chǎn)品質(zhì)量目標(biāo)和測(cè)試質(zhì)量目標(biāo),整理產(chǎn)品發(fā)布包和編寫(xiě)相關(guān)文檔,確認(rèn)發(fā)布包和文檔完整后進(jìn)行產(chǎn)品發(fā)布。
八、產(chǎn)品發(fā)布
當(dāng)測(cè)試產(chǎn)品達(dá)到測(cè)試計(jì)劃所制定的產(chǎn)品質(zhì)量目標(biāo)和測(cè)試質(zhì)量目標(biāo),整理產(chǎn)品發(fā)布包和編寫(xiě)相關(guān)文檔,在發(fā)布前對(duì)照功能列表進(jìn)行一次全面的確認(rèn)測(cè)試,確認(rèn)發(fā)布包和文檔完整后進(jìn)行產(chǎn)品發(fā)布。對(duì)于新產(chǎn)品來(lái)說(shuō),必要的文檔必須包括:(1) 產(chǎn)品安裝操作手冊(cè);(2) 產(chǎn)品白皮書(shū);(3) 產(chǎn)品管理維護(hù)手冊(cè);(4) 用戶操作手冊(cè);(5) 總體測(cè)試報(bào)告(6)性能測(cè)試報(bào)告。
九、版本控制
在測(cè)試過(guò)程中,軟件的打包統(tǒng)一由Build Master完成。新版本軟件發(fā)布之后,馬上對(duì)代碼進(jìn)行質(zhì)量控制:
(1) Build Master給新版本的源代碼打一個(gè)cvs tag,方便代碼回滾check out。比如,發(fā)布版本為IAGW1.0.0,則給該軟件源代碼也打一個(gè)與發(fā)布版本相同名字的tag IAGW1.0.0。這樣做的一個(gè)好處是,在目前的軟件的基礎(chǔ)上做了修改并發(fā)布新的版本后,如果需要check out某個(gè)版本的源代碼,則可以通過(guò)這個(gè)版本的tag來(lái)check out,代碼的修改可以在該版本上進(jìn)行。
(2) Build Master對(duì)新發(fā)布的軟件源代碼進(jìn)行cvs lock,不允許開(kāi)發(fā)人員在軟件發(fā)布之后commit源代碼,直到有新版本需求修改再給開(kāi)發(fā)人員開(kāi)放commit權(quán)限。這樣做的好處是避免開(kāi)發(fā)人員隨意修改和commit源代碼,確保源代碼服務(wù)器上的源代碼版本與當(dāng)前最新的發(fā)布版本一致。
十、自動(dòng)測(cè)試
產(chǎn)品穩(wěn)定后,進(jìn)行自動(dòng)測(cè)試工具開(kāi)發(fā),對(duì)于穩(wěn)定的功能使用自動(dòng)測(cè)試工具進(jìn)行測(cè)試,新增的功能使用手工測(cè)試,使用自動(dòng)測(cè)試+手工測(cè)試的模式,可以大大提供測(cè)試效率。