常見的軟件測試模型包括V模型、W模型、H模型、X模型和前置模型。
V模型V模型(V-model)是一種用圖像表示系統(tǒng)發(fā)展生命周期的模式,可以產(chǎn)出嚴(yán)謹(jǐn)?shù)陌l(fā)展生命周期模型以及專案管理模型。V模型可分為三大類:德國的Das V-Modell、泛用的測試模式以及美國政府標(biāo)準(zhǔn)。
V模型列出了在產(chǎn)品開發(fā)時(shí)需進(jìn)行的各個(gè)階段,以及各階段對應(yīng)的產(chǎn)出。V模型描述了產(chǎn)品開發(fā)中需進(jìn)行的活動(dòng),以及各活動(dòng)產(chǎn)出的資料或是文件。而這些文件也是后面階段需要的資料輸入。
V模型是最具有代表意義的測試模型。V模型是軟件開發(fā)瀑布模型的變種,它反映了測試活動(dòng)與分析和設(shè)計(jì)的關(guān)系 。
軟件測試若使用經(jīng)典的V模型階段可以分為:
單元測試
集成測試
系統(tǒng)測試
V模型問題:
測試是開發(fā)之后的一個(gè)階段。
測試的對象就是程序本身。
實(shí)際應(yīng)用中容易導(dǎo)致需求階段的錯(cuò)誤一直到最后系統(tǒng)測試階段才被發(fā)現(xiàn)。
整個(gè)軟件產(chǎn)品的過程質(zhì)量保證完全依賴于開發(fā)人員的能力和對工作的責(zé)任心,而且上一步的結(jié)果必須是充分和正確的,如果任何一個(gè)環(huán)節(jié)出了問題,則必將嚴(yán)重的影響整個(gè)工程的質(zhì)量和預(yù)期進(jìn)度1
W模型W模型由Evolutif公司公司提出,相對于V模型,W模型增加了軟件各開發(fā)階段中應(yīng)同步進(jìn)行的驗(yàn)證和確認(rèn)活動(dòng)。W模型由兩個(gè)V字型模型組成,分別代表測試與開發(fā)過程,圖中明確表示出了測試與開發(fā)的并行關(guān)系。
W模型中測試與開發(fā)對應(yīng)關(guān)系如下:
開發(fā):需求分析、概要設(shè)計(jì)、 詳細(xì)設(shè)計(jì)、 編碼、 軟件集成、系統(tǒng)集成、部署
↑ ↑ ↑ ↑ ↑ ↑ ↑
測試:需求評(píng)審、概要設(shè)計(jì)評(píng)審、詳細(xì)設(shè)計(jì)評(píng)審、單元測試、集成測試、系統(tǒng)測試、驗(yàn)收測試
W模型強(qiáng)調(diào):測試伴隨著整個(gè)軟件開發(fā)周期,而且測試的對象不僅僅是程序,需求、設(shè)計(jì)等同樣要測試,也就是說,測試與開發(fā)是同步進(jìn)行的。W模型有利于盡早地全面的發(fā)現(xiàn)問題。例如,需求分析完成后,測試人員就應(yīng)該參與到對需求的驗(yàn)證和確認(rèn)活動(dòng)中,以盡早地找出缺陷所在。同時(shí),對需求的測試也有利于及時(shí)了解項(xiàng)目難度和測試風(fēng)險(xiǎn),及早制定應(yīng)對措施,這將顯著減少總體測試時(shí)間,加快項(xiàng)目進(jìn)度。 但W模型也存在局限性。在W模型中,需求、設(shè)計(jì)、編碼等活動(dòng)被視為串行的,同時(shí),測試和開發(fā)活動(dòng)也保持著一種線性的前后關(guān)系,上一階段完全結(jié)束,才可正式開始下一個(gè)階段工作。這樣就無法支持迭代的開發(fā)模型。對于當(dāng)前軟件開發(fā)復(fù)雜多變的情況,W模型并不能解除測試管理面臨著困惑。1
H模型在H模型中,軟件測試的過程活動(dòng)完全獨(dú)立,形成了一個(gè)完全獨(dú)立的流程,貫穿于整個(gè)產(chǎn)品的周期,與其他流程并發(fā)進(jìn)行,某個(gè)測試點(diǎn)準(zhǔn)備就緒后就可以從測試準(zhǔn)備階段進(jìn)行到測試執(zhí)行階段;軟件測試可以根據(jù)被測產(chǎn)品的不同分層進(jìn)行。2
X模型X模型也是對V模型的改進(jìn),X模型提出針對單獨(dú)的程序片段進(jìn)行相互分離的編碼和測試,此后通過頻繁的交接,通過集成最終合成為可執(zhí)行的程序。 X模型的基本思想是由Marick提出的,但首先Marick不建議建立一個(gè)替代模型,同時(shí),他也認(rèn)為他的觀點(diǎn)并不足以支撐一個(gè)模型的完整描述,
不過,Robin F.Goldsmith先生在自己的文章里將其思想定義為X模型,理由是,在Marick的觀點(diǎn)中已經(jīng)具備了一個(gè)模型所需要的一些主要內(nèi)容, 其中也包括了像探索性測試這樣的亮點(diǎn)。
X模型的左邊描述的是針對單獨(dú)程序片段所進(jìn)行的相互分離的編碼和測試,此后將進(jìn)行頻繁的交接,通過集成最終成為可執(zhí)行的程序, 然后再對這些可執(zhí)行程序進(jìn)行測試。己通過集成測試的成品可以進(jìn)行封裝并提交給用戶,也可以作為更大規(guī)模和范圍內(nèi)集成的一部分。 多根并行的曲線表示變更可以在各個(gè)部分發(fā)生。由圖中可見,X模型還定位了探索性測試,這是不進(jìn)行事先計(jì)劃的特殊類型的測試, 這一方式往往能幫助有經(jīng)驗(yàn)的測試人員在測試計(jì)劃之外發(fā)現(xiàn)更多的軟件錯(cuò)誤。但這樣可能對測試造成人力、物力和財(cái)力的浪費(fèi), 對測試員的熟練程度要求比較高。2
本詞條內(nèi)容貢獻(xiàn)者為:
王沛 - 副教授、副研究員 - 中國科學(xué)院工程熱物理研究所