更新時(shí)間:2020-11-13 來源:黑馬程序員 瀏覽量:
在軟件開發(fā)過程中,人們根據(jù)經(jīng)驗(yàn)教訓(xùn)并結(jié)合未來軟件的發(fā)展趨勢總結(jié)出了很多軟件開發(fā)模型,如瀑布模型、快速原型模型、迭代模型等,這些模型對(duì)軟件開發(fā)過程具有很好的指導(dǎo)作用,但遺憾的是它們對(duì)軟件測試并沒有給予足夠的重視,利用這些模型無法更好地指導(dǎo)軟件測試工作。
軟件測試是與軟件開發(fā)緊密相關(guān)的一系列有計(jì)劃的活動(dòng),是保證軟件質(zhì)量的重要手段因此人們又相繼設(shè)計(jì)了很多軟件測試模型用于指導(dǎo)測試工作。軟件測試模型兼顧了軟件開發(fā)過程,對(duì)軟件開發(fā)和測試進(jìn)行了很好的融合,它既明確了軟件開發(fā)與測試之間的關(guān)系,又使測試過程與開發(fā)過程產(chǎn)生交互,是測試工作的重要參考依據(jù)。
軟件測試模型對(duì)測試工作具有指導(dǎo)作用,對(duì)測試效果與質(zhì)量都有很大的影響,很多測試專家在實(shí)踐中不斷改進(jìn)創(chuàng)新,創(chuàng)建了很多實(shí)用的軟件測試模型。下面介紹幾種比較重要的軟件測試模型。
V模型
V模型是由保羅·魯克(Paul
Rook)在20世紀(jì)80年代提出的,它是軟件測試模型中最具有代表性的模型之一。V模型是瀑布模型的變種,在瀑布模型的后半部分添加了測試工作如下圖所示。
V模型描述了基本的開發(fā)過程與測試行為,主要反映了測試活動(dòng)分析與設(shè)計(jì)之間的關(guān)系。它非常明確地表明了測試過程所包含的不同級(jí)別,以及測試各階段與開發(fā)各階段所對(duì)應(yīng)的關(guān)系。V模型的左邊是自上而下、逐步細(xì)化的開發(fā)過程,右邊是自下而上、逐步集成的過程,這也符合了軟件開發(fā)與軟件測試的關(guān)系。
V模型應(yīng)用瀑布模型的思想將復(fù)雜的測試工作分成了目標(biāo)明確的小階段來完成,具有階段性、順序性和依賴性,它既包含了對(duì)于源代碼的底層測試,也包含了對(duì)于軟件需求的高層測試。但是V模型也有一定的局限性,它只有在編碼之后才能開始測試,早期的需求分析等前期工作沒有涵蓋其中,因此它不能發(fā)現(xiàn)需求分析等早期的錯(cuò)誤,這為后期的系統(tǒng)測試、驗(yàn)收測試埋下了隱患。
W模型
W模型是由Ⅴ模型演變而來的,它強(qiáng)調(diào)測試應(yīng)伴隨整個(gè)軟件生命周期。其實(shí)W模型是個(gè)雙V模型,軟件開發(fā)是一個(gè)V模型,而軟件測試是與開發(fā)同步進(jìn)行的另一個(gè)V模型如下圖所示。
W模型的測試范圍不僅包括程序,還包括需求分析、軟件設(shè)計(jì)等前期工作,這樣有利于盡早地全面發(fā)現(xiàn)問題。但是W模型也有自己的局限性,它將軟件開發(fā)過程分成需求、設(shè)計(jì)、編碼、集成等一系列的串行活動(dòng),無法支持迭代、自發(fā)性等需要變更調(diào)整的項(xiàng)目。
H模型
為了解決V模型與W模型存在的問題,有專家提出了H模型,H模型將測試活動(dòng)完全獨(dú)立了出來,形成一個(gè)完全獨(dú)立的流程,這個(gè)流程將測試準(zhǔn)備活動(dòng)和測試執(zhí)行活動(dòng)清晰地體現(xiàn)出來。測試流程和其他工作流程是并發(fā)執(zhí)行的,只要某一個(gè)工作流程的條件成熟就可以開始進(jìn)行測試。例如在概要設(shè)計(jì)工作流程上完成一個(gè)測試,其過程如下圖所示。
只是體現(xiàn)了軟件生命周期中概要設(shè)計(jì)層次上的一個(gè)測試“微循環(huán)”。在H模型中測試級(jí)別不存在嚴(yán)格的次序關(guān)系,軟件生命周期的各階段的測試工作可以反復(fù)觸發(fā)、迭代,即不同的測試可以反復(fù)迭代地進(jìn)行。在實(shí)際測試工作中,H模型并無太多指導(dǎo)意義,讀者重點(diǎn)是理解其中的設(shè)計(jì)意義。
X模型
X模型的設(shè)計(jì)原理是將程序分成多個(gè)片段反復(fù)迭代測試,然后將多個(gè)片段集成再進(jìn)行選代測試,如下圖所示。
X模型左邊描述的是針對(duì)單獨(dú)程序片段進(jìn)行的相互分離的編碼和測試,多個(gè)程序片段進(jìn)行頻繁的交接,在X模型的右上部分,將多個(gè)片段集成為一個(gè)可執(zhí)行的程序再進(jìn)行測試。通過集成測試的產(chǎn)品可以進(jìn)行更大規(guī)模的集成,也可以進(jìn)行封裝提交給客戶。
在X模型的右下部分還定位了探索性測試,它能夠幫助有經(jīng)驗(yàn)的測試人員發(fā)現(xiàn)更多測試計(jì)劃之外的軟件錯(cuò)誤,但這對(duì)測試人員要求會(huì)高一些。
上面共介紹了4種軟件測試模型,在實(shí)際測試工作中,測試人員更多的是結(jié)合W模型與H模型進(jìn)行工作,軟件各個(gè)方面的測試內(nèi)容是以W模型為準(zhǔn),而測試周期、測試計(jì)劃和進(jìn)度是以H模型為指導(dǎo)。X模型更多是作為最終測試、熟練性測試的模板,例如對(duì)一個(gè)業(yè)務(wù)測試已經(jīng)有2年時(shí)間,則可以使用X模型進(jìn)行模塊化的、探索性的方向測試。
猜你喜歡: