都包含需求、設(shè)計(jì)、編碼、集成、測(cè)試等過(guò)程。在每一次迭代完成之后,便會(huì)開始新的迭代過(guò)程。通過(guò)一次次迭代的累進(jìn),系統(tǒng)會(huì)增量式集成一些新的功能,直至整個(gè)系統(tǒng)功能的完成。其中,每個(gè)迭代周期的測(cè)試工作由兩方面內(nèi)容構(gòu)成:
· 對(duì)當(dāng)前迭代周期產(chǎn)品的增量測(cè)試。
· 對(duì)前迭代周期已完成功能的回歸測(cè)試。
隨著迭代周期的累進(jìn),測(cè)試工作內(nèi)容隨之不斷變化。早期迭代測(cè)試重點(diǎn)在于新功能的測(cè)試,后期迭代測(cè)試重點(diǎn)在于累積功能的回歸測(cè)試。
有的人不喜歡XP編程的開發(fā)方式,認(rèn)為其沒(méi)有明確的階段性劃分,不利于計(jì)劃管理,模式過(guò)于靈活,不好掌握。迭代式開發(fā)模式為這些人提供了新的選擇。這種開發(fā)方式繼承了瀑布式開發(fā)模式的優(yōu)點(diǎn)――全面、嚴(yán)謹(jǐn)、有計(jì)劃性、易管理,更重要的是,這種模式將測(cè)試工作分布到每個(gè)迭代周期中,使測(cè)試工作提前進(jìn)行,從而使將發(fā)現(xiàn)軟件缺陷的周期提前,大大降低軟件風(fēng)險(xiǎn)及開發(fā)成本。
測(cè)試過(guò)程的衡量
測(cè)試過(guò)程在不斷地改進(jìn),但效果如何,如何來(lái)衡量測(cè)試的效果呢?我們需要引入一把尺子,一個(gè)度量標(biāo)準(zhǔn),這樣才能把握測(cè)試過(guò)程的改進(jìn)方向。那么,怎樣來(lái)收集數(shù)據(jù),如何來(lái)度量?這是我們長(zhǎng)久以來(lái)一直困惑的地方。
我們不妨借助“他山之石”來(lái)想想辦法,CMMI是當(dāng)今國(guó)際流行的軟件過(guò)程衡量模型,它在這方面是有自己的獨(dú)到之處的:
1、 面向全局。CMMI的測(cè)試度量面向的不僅僅是測(cè)試過(guò)程的改進(jìn),測(cè)試效果的加
強(qiáng),它面向的是整個(gè)開發(fā)過(guò)程,并始終將質(zhì)量監(jiān)督放在工作首位。比如,它度量工作產(chǎn)品規(guī)模(例如代碼行數(shù)),度量工作量和成本(例如人工小時(shí)數(shù))。我們從中搜集的數(shù)據(jù)對(duì)整個(gè)開發(fā)過(guò)程的改進(jìn)都有指導(dǎo)作用。更高的起點(diǎn)可使我們避免項(xiàng)目管理改進(jìn)過(guò)程中常見(jiàn)的“頭痛醫(yī)頭、腳痛醫(yī)腳”毛病。
2、 建立度量數(shù)據(jù)庫(kù),從而對(duì)搜集的數(shù)據(jù)、分析的方式及結(jié)果進(jìn)行完整、規(guī)范的
保存。這個(gè)數(shù)據(jù)庫(kù)面向的是軟件開發(fā)過(guò)程的持續(xù)改進(jìn),它的數(shù)據(jù)是可復(fù)用的,可供多個(gè)項(xiàng)目參考使用,不隨當(dāng)前項(xiàng)目的結(jié)束而消失,而是會(huì)作為歷史信息持續(xù)保存,從而為測(cè)試及其他軟件過(guò)程的改進(jìn)提供更客觀、更全面的度量數(shù)據(jù)。
3、 關(guān)注度量、分析過(guò)程的改進(jìn)。度量過(guò)程是為了對(duì)測(cè)試及其他軟件過(guò)程的改進(jìn)提
供參考依據(jù),它自身運(yùn)作方式的合理性直接會(huì)影響度量結(jié)果的準(zhǔn)確性。CMMI避免了“燈下黑”現(xiàn)象的出現(xiàn),它沒(méi)有忽略測(cè)量分析度量過(guò)程的改進(jìn),它會(huì)定期召集受影響的受益者一起審查初始分析結(jié)果,總結(jié)本過(guò)程運(yùn)作中遇到的經(jīng)驗(yàn)教訓(xùn),從而對(duì)度量過(guò)程方式進(jìn)行改進(jìn),保證度量結(jié)果的正確性,可參考性。
CMMI度量方式的優(yōu)點(diǎn)往往是我們所忽略的,我們應(yīng)盡力學(xué)習(xí)它的這些長(zhǎng)處,這對(duì)軟件測(cè)試過(guò)程的改進(jìn)會(huì)很有幫助。
結(jié)束語(yǔ)
測(cè)試很重要,它是檢驗(yàn)開發(fā)結(jié)果是否接近預(yù)期目標(biāo)的重要手段,但我們應(yīng)清楚地認(rèn)識(shí)到:它畢竟只是一種信息反饋過(guò)程,作為軟件質(zhì)量的守護(hù)者,它可以發(fā)現(xiàn)缺陷,但無(wú)法避免缺陷的發(fā)生,我們不能將軟件質(zhì)量的安危都押在測(cè)試這個(gè)砝碼上。
曾看過(guò)一個(gè)比喻,還記憶猶新,它將軟件開發(fā)比喻成制作一桌盛宴,項(xiàng)目經(jīng)理比作大廚,測(cè)試人員比作品嘗師,用戶則比作就餐者。為保障飯菜質(zhì)量,上菜之前,先由品嘗師對(duì)滿桌的半成品、準(zhǔn)成品逐個(gè)品嘗,發(fā)現(xiàn)不足的地方要及時(shí)通知大廚進(jìn)行改進(jìn),完善質(zhì)量,直至品嘗師覺(jué)得:全部的飯菜已經(jīng)色、香、味俱佳,滿足用戶要求了,才通過(guò)審查,允許飯菜上桌,供就餐者品嘗。我想說(shuō)的是:飯菜質(zhì)量靠品嘗師的監(jiān)督,但主要靠的是大廚的技術(shù),同理,軟件的質(zhì)量則是靠各個(gè)項(xiàng)目管理過(guò)程的互相配合及項(xiàng)目經(jīng)理的整體控制和把握,測(cè)試只是其中的一份子。所以,請(qǐng)不要將軟件的質(zhì)量都交給測(cè)試過(guò)程來(lái)承擔(dān),那樣將是“生命不能承受之重”。