吳 悅,張春海
(中國海洋大學(xué) 信息科學(xué)與工程學(xué)院,山東 青島 266100)
?
改進(jìn)的軟件測試模型
——“并”模型
吳 悅,張春海
(中國海洋大學(xué) 信息科學(xué)與工程學(xué)院,山東 青島 266100)
通過對(duì)傳統(tǒng)的V模型、W模型、X模型和H模型進(jìn)行分析和比較,得出了它們各自的缺陷,在此基礎(chǔ)上提出了“并”模型這種新的軟件測試模型。該模型克服了傳統(tǒng)軟件測試模型的缺陷,較全面地描述了軟件開發(fā)活動(dòng)和軟件測試活動(dòng)以及它們之間的交互活動(dòng)。最后將該模型運(yùn)用到實(shí)際的項(xiàng)目開發(fā)中,實(shí)踐證明該模型有效提高了軟件測試效率。
軟件測試;改進(jìn);測試模型
近年來,隨著軟件的規(guī)模越來越大,軟件開發(fā)過程中出現(xiàn)的錯(cuò)誤或缺陷也越來越多,同時(shí),隨著市場對(duì)軟件質(zhì)量重要性的認(rèn)識(shí)逐漸增強(qiáng),軟件測試在軟件項(xiàng)目實(shí)施過程中的重要性也逐漸突出了。由于人們開始對(duì)軟件測試活動(dòng)進(jìn)行了更加深入的研究,作為軟件測試活動(dòng)的重要指導(dǎo)依據(jù)的軟件測試模型也就受到了人們廣泛的關(guān)注,由一開始測試專家們提出的幾個(gè)傳統(tǒng)的軟件測試模型,比如,傳統(tǒng)的V模型、W模型、X模型和H模型等,到后來越來越多的軟件測試模型開始涌現(xiàn),選擇一個(gè)合理高效的軟件測試模型來對(duì)軟件測試活動(dòng)進(jìn)行指導(dǎo)顯得尤為重要。但是,隨著軟件產(chǎn)品逐漸趨于復(fù)雜化和多樣化,這些傳統(tǒng)的軟件測試模型開始暴露出其缺點(diǎn)和局限,逐漸變得不再適合了。
本文主要通過對(duì)傳統(tǒng)V模型、W模型、X模型和H模型的研究,尤其是在對(duì)其不足方面深入分析的基礎(chǔ)上,通過對(duì)其進(jìn)行改進(jìn)和強(qiáng)化,提出了“并”模型,并將該模型實(shí)際運(yùn)用到典寶網(wǎng)開發(fā)項(xiàng)目中,經(jīng)實(shí)踐表明,該模型確實(shí)改善了傳統(tǒng)模型中存在的不足,有效提高了軟件開發(fā)的效率。
1.1 V模型
V模型[1]最早由PaulRook在20世紀(jì)80年代后期提出,它是由軟件開發(fā)瀑布模型發(fā)展而來的,反映了軟件測試活動(dòng)與軟件分析和設(shè)計(jì)的關(guān)系。在V模型中,左邊從上至下依次是軟件開發(fā)過程的各個(gè)階段,右邊由下至上依次是軟件測試過程的各個(gè)階段,軟件測試活動(dòng)被加在軟件開發(fā)活動(dòng)的后半段,其中箭頭代表了其進(jìn)行的方向。V模型存在一定的局限性,它僅僅把測試活動(dòng)作為一系列軟件開發(fā)活動(dòng)之后的一個(gè)階段,容易使人們產(chǎn)生這樣的誤解,導(dǎo)致直到測試活動(dòng)的后期才能發(fā)現(xiàn)軟件開發(fā)早期的錯(cuò)誤,會(huì)造成大量人力、物力、時(shí)間等資源的浪費(fèi)。
1.2 W模型
W模型是由Evolutrf公司提出的[2],它修改了V模型,并在此基礎(chǔ)上又添加了一個(gè)V模型,這兩個(gè)V模型分別描述了軟件開發(fā)過程和軟件測試過程,它強(qiáng)調(diào)了軟件測試活動(dòng)應(yīng)伴隨軟件開發(fā)的整個(gè)周期,軟件測試的對(duì)象不應(yīng)該僅僅是程序,還應(yīng)該包含需求和設(shè)計(jì)階段,W模型改善了V模型的不足,有利于較早地發(fā)現(xiàn)軟件的錯(cuò)誤,但也有其局限性,W模型將軟件開發(fā)活動(dòng)和軟件測試活動(dòng)的各個(gè)階段都設(shè)計(jì)為線性的關(guān)系,上一階段完成才進(jìn)入執(zhí)行下一階段,不支持迭代過程。
1.3 X模型
X模型也是在對(duì)V模型改進(jìn)的基礎(chǔ)上提出的[3],它先將程序分離開來,對(duì)每一個(gè)程序進(jìn)行單獨(dú)的編碼和測試,然后對(duì)它們進(jìn)行頻繁的交互,最終集合成一個(gè)可執(zhí)行的程序,再對(duì)其進(jìn)行后續(xù)的測試活動(dòng)。X模型具有一個(gè)很大的亮點(diǎn)就是探索性測試,這是一種事先不進(jìn)行任何設(shè)計(jì)的特殊類型的測試,有經(jīng)驗(yàn)的測試人員通過這一方式往往能發(fā)現(xiàn)更多的錯(cuò)誤,但由于其對(duì)測試人員的能力要求太高,可能在執(zhí)行過程中會(huì)有困難。
1.4 H模型
H模型把軟件測試活動(dòng)獨(dú)立出來,作為一個(gè)完全獨(dú)立的過程,與其他軟件過程并發(fā)地執(zhí)行,并且它指出不同的測試活動(dòng)可以按某個(gè)次序先后進(jìn)行,也可以反復(fù)進(jìn)行,只要某個(gè)測試點(diǎn)準(zhǔn)備就緒,就可以從測試準(zhǔn)備階段進(jìn)入到測試執(zhí)行階段[4]。H模型的不足之處在于它把軟件測試活動(dòng)作為一個(gè)完全獨(dú)立的過程,沒有提出其與軟件開發(fā)活動(dòng)的交互活動(dòng),而且它描述的測試流程不夠細(xì)致,沒有指出具體執(zhí)行步驟。
1.5 局限性概括
對(duì)于以上測試模型的局限性進(jìn)行如下概括:
(1)軟件測試活動(dòng)不完善,沒有描述完整的軟件測試周期活動(dòng),測試活動(dòng)流程沒有具體化,未能體現(xiàn)出測試設(shè)計(jì)與規(guī)劃活動(dòng)。
(2)軟件測試活動(dòng)與軟件開發(fā)活動(dòng)在模型中具有固定的邊界,忽視了測試活動(dòng)與開發(fā)活動(dòng)之間的交互活動(dòng)。
(3)各個(gè)軟件測試活動(dòng)之間的聯(lián)系不明確,大部分都定義為線性的關(guān)系,因此模型不支持迭代開發(fā)與一些變更調(diào)整等活動(dòng)。
(4)測試活動(dòng)介入較晚。
經(jīng)過對(duì)上述局限性的改進(jìn),提出了“并”模型,如圖1所示。“并”模型改進(jìn)點(diǎn)如下:

圖1 “并”模型圖
(1)軟件開發(fā)活動(dòng)與軟件測試活動(dòng)并行進(jìn)行,軟件測試伴隨軟件開發(fā)全過程,并行開始下的左列的開發(fā)活動(dòng)和右列的測試活動(dòng)是同時(shí)進(jìn)行的,兩列中相對(duì)應(yīng)的各個(gè)階段應(yīng)處于同一時(shí)間進(jìn)行,這樣有利于保證在每個(gè)階段都能盡早地發(fā)現(xiàn)錯(cuò)誤。另外,在最早的需求分析與功能確認(rèn)階段就開始介入驗(yàn)證,能確保軟件產(chǎn)品與客戶的要求是一致的,較早地發(fā)現(xiàn)錯(cuò)誤也能減少軟件開發(fā)過程中人力、物力和時(shí)間的浪費(fèi)。模型中也明確指出了軟件測試過程和軟件開發(fā)過程的交互行為,用測試驅(qū)動(dòng)開發(fā),有利于提高軟件的質(zhì)量。
(2)模型要求測試人員從最初就參與到軟件開發(fā)的全過程,如測試人員應(yīng)參與到需求分析與功能確認(rèn)階段,這樣測試人員能獲取到用戶的需求等一些信息,相比于單純依靠文檔來設(shè)計(jì)測試用例,站在用戶的角度更能發(fā)現(xiàn)問題。
(3)一系列測試階段中的所有測試活動(dòng)不存在時(shí)間上的相互獨(dú)立,而是在一定程度上并行和交錯(cuò)地進(jìn)行,在基于需求的測試進(jìn)行的同時(shí),也在做驗(yàn)收測試的設(shè)計(jì)工作,在基于功能的測試的同時(shí),做系統(tǒng)測試的設(shè)計(jì)工作,單元測試可與集成測試并行進(jìn)行,但應(yīng)保證至少3個(gè)單元測試完成時(shí)才進(jìn)行集成測試,另外,在集成測試進(jìn)行到2/3時(shí),系統(tǒng)已經(jīng)初步成型,這時(shí)就可以進(jìn)行系統(tǒng)測試了。這樣能在一定程度上減少測試時(shí)間,提高測試的效率。
(4)較高層次測試階段發(fā)現(xiàn)的軟件缺陷可能影響到較低層次的測試階段,因此當(dāng)缺陷修復(fù)的時(shí)候應(yīng)及時(shí)回到較低層次的軟件測試階段進(jìn)行回歸測試,模型中也已經(jīng)明確標(biāo)出,要不斷地對(duì)已有的測試用例進(jìn)行回溯和修改,對(duì)一些測試活動(dòng)迭代循環(huán)地進(jìn)行,這樣不僅能提高軟件的質(zhì)量,還有利于應(yīng)對(duì)一些需求變更調(diào)整的問題。
(5)在需求分析階段就開始進(jìn)行驗(yàn)收測試用例的設(shè)計(jì),確保驗(yàn)收測試用例直接來源于用戶的需求,接下來,后階段的一系列測試活動(dòng)的測試用例應(yīng)該是從上一階段的測試用例的基礎(chǔ)上擴(kuò)展而來的。
(6)所有測試活動(dòng)的測試用例在設(shè)計(jì)時(shí),應(yīng)遵循復(fù)用的規(guī)則,在測試用例設(shè)計(jì)時(shí)應(yīng)先根據(jù)項(xiàng)目的特點(diǎn)和共性查找可復(fù)用測試用例庫,如果有合適的測試用例,則在此基礎(chǔ)上進(jìn)行補(bǔ)充和完善使用,如果沒有,再進(jìn)行設(shè)計(jì),最后這次的測試用例也應(yīng)放入測試用例庫中,以備下次使用。
在典寶網(wǎng)管理員模塊開發(fā)項(xiàng)目中使用了“并”模型進(jìn)行測試。由于管理員模塊是屬于整個(gè)典寶網(wǎng)項(xiàng)目的一部分,在開發(fā)該模塊時(shí),需求分析和功能確認(rèn)已經(jīng)完成,直接從編碼階段開始進(jìn)行,按照“并”模型的指導(dǎo),一步步執(zhí)行開發(fā)和測試工作。典寶網(wǎng)的用戶模塊也是典寶網(wǎng)的一部分,與管理員模塊的功能大致相似,但其是在傳統(tǒng)的測試模型的指導(dǎo)下進(jìn)行的測試活動(dòng),所以,在這里將這兩個(gè)模塊的測試結(jié)果進(jìn)行了對(duì)比,如表1所示。

表1 測試結(jié)果比較表
由表1可知,在相同的時(shí)間內(nèi),使用“并”模型完成了較傳統(tǒng)模型1.2倍的測試任務(wù),有效地減少了測試時(shí)間,另外可發(fā)現(xiàn),使用“并”模型,在單元測試階段發(fā)現(xiàn)的錯(cuò)誤較多,越往后的階段發(fā)現(xiàn)的錯(cuò)誤越少,單元測試階段發(fā)現(xiàn)錯(cuò)誤數(shù)占總錯(cuò)誤數(shù)的75.7%,高于使用傳統(tǒng)模型的69.6%,也就是說,大部分錯(cuò)誤在編碼階段就被及時(shí)地發(fā)現(xiàn)了。總的來說,使用“并”模型提高了測試效率。
利用軟件測試模型來指導(dǎo)軟件測試過程的進(jìn)行是軟件測試效率較高的測試方法,本文在分析了幾個(gè)傳統(tǒng)測試模型所存在的不足的基礎(chǔ)上,提出了“并”模型這種新的軟件測試模型,并把該模型成功地應(yīng)用于典寶網(wǎng)項(xiàng)目的實(shí)際開發(fā)中,實(shí)踐表明,該模型是有效的,使用該模型可以盡早地發(fā)現(xiàn)錯(cuò)誤,減少軟件測試中資源和時(shí)間的浪費(fèi),提高軟件測試的效率,有一定的參考價(jià)值,但后續(xù)也需要在實(shí)踐中不斷地對(duì)其進(jìn)行完善。
[1] PONS C, BAUM G. Reasoning about the correctness of software development process[C]. Proceedings of the 24th International Conference on Software Engineering, 2002: 708.
[2] 張向宏.軟件生命周期質(zhì)量保證與測試[M].北京:電子工業(yè)出版社,2009.
[3] GOLDSMITH R F. This or that, V or X?[EB/OL].(2005-08-01)[2016-12-30].http://www.sdbestpractices.com.
[4] JORGENSEN P C. 軟件測試[M]. 北京:機(jī)械工業(yè)出版社,2003.
Improved software testing model: parallel model
Wu Yue, Zhang Chunhai
(Institute of Information Science and Engineering, Ocean University of China, Qingdao 266100, China)
By analyzing and comparing the traditional V model, W model, X model and H model, and drawing their own shortcomings, a new software testing model named "并" model (parellel model) is put forward.The model overcomes the shortcomings of the traditional software testing model, and describes software development activities and software testing activities as well as interactions between them.Finally, the model is applied to the actual project development, and the practice has proved that the model can improve the software testing efficiency.
oftware test; improve; test model
TP311.5
A
10.19358/j.issn.1674- 7720.2017.14.005
吳悅,張春海.改進(jìn)的軟件測試模型——“并”模型[J].微型機(jī)與應(yīng)用,2017,36(14):14-15,19.
2016-12-31)
吳悅(1993-),女,碩士研究生,主要研究方向:軟件工程與信息技術(shù)。
張春海(1963-),男,教授,碩士生導(dǎo)師,主要研究方向:軟件工程與信息技術(shù)、計(jì)算機(jī)應(yīng)用技術(shù)。