吳 悅,張春海
(中國海洋大學(xué) 信息科學(xué)與工程學(xué)院,山東 青島 266100)
?
改進(jìn)的軟件測試模型
——“并”模型
吳 悅,張春海
(中國海洋大學(xué) 信息科學(xué)與工程學(xué)院,山東 青島 266100)
通過對傳統(tǒng)的V模型、W模型、X模型和H模型進(jìn)行分析和比較,得出了它們各自的缺陷,在此基礎(chǔ)上提出了“并”模型這種新的軟件測試模型。該模型克服了傳統(tǒng)軟件測試模型的缺陷,較全面地描述了軟件開發(fā)活動和軟件測試活動以及它們之間的交互活動。最后將該模型運用到實際的項目開發(fā)中,實踐證明該模型有效提高了軟件測試效率。
軟件測試;改進(jìn);測試模型
近年來,隨著軟件的規(guī)模越來越大,軟件開發(fā)過程中出現(xiàn)的錯誤或缺陷也越來越多,同時,隨著市場對軟件質(zhì)量重要性的認(rèn)識逐漸增強(qiáng),軟件測試在軟件項目實施過程中的重要性也逐漸突出了。由于人們開始對軟件測試活動進(jìn)行了更加深入的研究,作為軟件測試活動的重要指導(dǎo)依據(jù)的軟件測試模型也就受到了人們廣泛的關(guān)注,由一開始測試專家們提出的幾個傳統(tǒng)的軟件測試模型,比如,傳統(tǒng)的V模型、W模型、X模型和H模型等,到后來越來越多的軟件測試模型開始涌現(xiàn),選擇一個合理高效的軟件測試模型來對軟件測試活動進(jìn)行指導(dǎo)顯得尤為重要。但是,隨著軟件產(chǎn)品逐漸趨于復(fù)雜化和多樣化,這些傳統(tǒng)的軟件測試模型開始暴露出其缺點和局限,逐漸變得不再適合了。
本文主要通過對傳統(tǒng)V模型、W模型、X模型和H模型的研究,尤其是在對其不足方面深入分析的基礎(chǔ)上,通過對其進(jìn)行改進(jìn)和強(qiáng)化,提出了“并”模型,并將該模型實際運用到典寶網(wǎng)開發(fā)項目中,經(jīng)實踐表明,該模型確實改善了傳統(tǒng)模型中存在的不足,有效提高了軟件開發(fā)的效率。
1.1 V模型
V模型[1]最早由PaulRook在20世紀(jì)80年代后期提出,它是由軟件開發(fā)瀑布模型發(fā)展而來的,反映了軟件測試活動與軟件分析和設(shè)計的關(guān)系。在V模型中,左邊從上至下依次是軟件開發(fā)過程的各個階段,右邊由下至上依次是軟件測試過程的各個階段,軟件測試活動被加在軟件開發(fā)活動的后半段,其中箭頭代表了其進(jìn)行的方向。V模型存在一定的局限性,它僅僅把測試活動作為一系列軟件開發(fā)活動之后的一個階段,容易使人們產(chǎn)生這樣的誤解,導(dǎo)致直到測試活動的后期才能發(fā)現(xiàn)軟件開發(fā)早期的錯誤,會造成大量人力、物力、時間等資源的浪費。
1.2 W模型
W模型是由Evolutrf公司提出的[2],它修改了V模型,并在此基礎(chǔ)上又添加了一個V模型,這兩個V模型分別描述了軟件開發(fā)過程和軟件測試過程,它強(qiáng)調(diào)了軟件測試活動應(yīng)伴隨軟件開發(fā)的整個周期,軟件測試的對象不應(yīng)該僅僅是程序,還應(yīng)該包含需求和設(shè)計階段,W模型改善了V模型的不足,有利于較早地發(fā)現(xiàn)軟件的錯誤,但也有其局限性,W模型將軟件開發(fā)活動和軟件測試活動的各個階段都設(shè)計為線性的關(guān)系,上一階段完成才進(jìn)入執(zhí)行下一階段,不支持迭代過程。
1.3 X模型
X模型也是在對V模型改進(jìn)的基礎(chǔ)上提出的[3],它先將程序分離開來,對每一個程序進(jìn)行單獨的編碼和測試,然后對它們進(jìn)行頻繁的交互,最終集合成一個可執(zhí)行的程序,再對其進(jìn)行后續(xù)的測試活動。X模型具有一個很大的亮點就是探索性測試,這是一種事先不進(jìn)行任何設(shè)計的特殊類型的測試,有經(jīng)驗的測試人員通過這一方式往往能發(fā)現(xiàn)更多的錯誤,但由于其對測試人員的能力要求太高,可能在執(zhí)行過程中會有困難。
1.4 H模型
H模型把軟件測試活動獨立出來,作為一個完全獨立的過程,與其他軟件過程并發(fā)地執(zhí)行,并且它指出不同的測試活動可以按某個次序先后進(jìn)行,也可以反復(fù)進(jìn)行,只要某個測試點準(zhǔn)備就緒,就可以從測試準(zhǔn)備階段進(jìn)入到測試執(zhí)行階段[4]。H模型的不足之處在于它把軟件測試活動作為一個完全獨立的過程,沒有提出其與軟件開發(fā)活動的交互活動,而且它描述的測試流程不夠細(xì)致,沒有指出具體執(zhí)行步驟。
1.5 局限性概括
對于以上測試模型的局限性進(jìn)行如下概括:
(1)軟件測試活動不完善,沒有描述完整的軟件測試周期活動,測試活動流程沒有具體化,未能體現(xiàn)出測試設(shè)計與規(guī)劃活動。
(2)軟件測試活動與軟件開發(fā)活動在模型中具有固定的邊界,忽視了測試活動與開發(fā)活動之間的交互活動。
(3)各個軟件測試活動之間的聯(lián)系不明確,大部分都定義為線性的關(guān)系,因此模型不支持迭代開發(fā)與一些變更調(diào)整等活動。
(4)測試活動介入較晚。
經(jīng)過對上述局限性的改進(jìn),提出了“并”模型,如圖1所示?!安ⅰ蹦P透倪M(jìn)點如下:
圖1 “并”模型圖
(1)軟件開發(fā)活動與軟件測試活動并行進(jìn)行,軟件測試伴隨軟件開發(fā)全過程,并行開始下的左列的開發(fā)活動和右列的測試活動是同時進(jìn)行的,兩列中相對應(yīng)的各個階段應(yīng)處于同一時間進(jìn)行,這樣有利于保證在每個階段都能盡早地發(fā)現(xiàn)錯誤。另外,在最早的需求分析與功能確認(rèn)階段就開始介入驗證,能確保軟件產(chǎn)品與客戶的要求是一致的,較早地發(fā)現(xiàn)錯誤也能減少軟件開發(fā)過程中人力、物力和時間的浪費。模型中也明確指出了軟件測試過程和軟件開發(fā)過程的交互行為,用測試驅(qū)動開發(fā),有利于提高軟件的質(zhì)量。
(2)模型要求測試人員從最初就參與到軟件開發(fā)的全過程,如測試人員應(yīng)參與到需求分析與功能確認(rèn)階段,這樣測試人員能獲取到用戶的需求等一些信息,相比于單純依靠文檔來設(shè)計測試用例,站在用戶的角度更能發(fā)現(xiàn)問題。
(3)一系列測試階段中的所有測試活動不存在時間上的相互獨立,而是在一定程度上并行和交錯地進(jìn)行,在基于需求的測試進(jìn)行的同時,也在做驗收測試的設(shè)計工作,在基于功能的測試的同時,做系統(tǒng)測試的設(shè)計工作,單元測試可與集成測試并行進(jìn)行,但應(yīng)保證至少3個單元測試完成時才進(jìn)行集成測試,另外,在集成測試進(jìn)行到2/3時,系統(tǒng)已經(jīng)初步成型,這時就可以進(jìn)行系統(tǒng)測試了。這樣能在一定程度上減少測試時間,提高測試的效率。
(4)較高層次測試階段發(fā)現(xiàn)的軟件缺陷可能影響到較低層次的測試階段,因此當(dāng)缺陷修復(fù)的時候應(yīng)及時回到較低層次的軟件測試階段進(jìn)行回歸測試,模型中也已經(jīng)明確標(biāo)出,要不斷地對已有的測試用例進(jìn)行回溯和修改,對一些測試活動迭代循環(huán)地進(jìn)行,這樣不僅能提高軟件的質(zhì)量,還有利于應(yīng)對一些需求變更調(diào)整的問題。
(5)在需求分析階段就開始進(jìn)行驗收測試用例的設(shè)計,確保驗收測試用例直接來源于用戶的需求,接下來,后階段的一系列測試活動的測試用例應(yīng)該是從上一階段的測試用例的基礎(chǔ)上擴(kuò)展而來的。
(6)所有測試活動的測試用例在設(shè)計時,應(yīng)遵循復(fù)用的規(guī)則,在測試用例設(shè)計時應(yīng)先根據(jù)項目的特點和共性查找可復(fù)用測試用例庫,如果有合適的測試用例,則在此基礎(chǔ)上進(jìn)行補(bǔ)充和完善使用,如果沒有,再進(jìn)行設(shè)計,最后這次的測試用例也應(yīng)放入測試用例庫中,以備下次使用。
在典寶網(wǎng)管理員模塊開發(fā)項目中使用了“并”模型進(jìn)行測試。由于管理員模塊是屬于整個典寶網(wǎng)項目的一部分,在開發(fā)該模塊時,需求分析和功能確認(rèn)已經(jīng)完成,直接從編碼階段開始進(jìn)行,按照“并”模型的指導(dǎo),一步步執(zhí)行開發(fā)和測試工作。典寶網(wǎng)的用戶模塊也是典寶網(wǎng)的一部分,與管理員模塊的功能大致相似,但其是在傳統(tǒng)的測試模型的指導(dǎo)下進(jìn)行的測試活動,所以,在這里將這兩個模塊的測試結(jié)果進(jìn)行了對比,如表1所示。
表1 測試結(jié)果比較表
由表1可知,在相同的時間內(nèi),使用“并”模型完成了較傳統(tǒng)模型1.2倍的測試任務(wù),有效地減少了測試時間,另外可發(fā)現(xiàn),使用“并”模型,在單元測試階段發(fā)現(xiàn)的錯誤較多,越往后的階段發(fā)現(xiàn)的錯誤越少,單元測試階段發(fā)現(xiàn)錯誤數(shù)占總錯誤數(shù)的75.7%,高于使用傳統(tǒng)模型的69.6%,也就是說,大部分錯誤在編碼階段就被及時地發(fā)現(xiàn)了??偟膩碚f,使用“并”模型提高了測試效率。
利用軟件測試模型來指導(dǎo)軟件測試過程的進(jìn)行是軟件測試效率較高的測試方法,本文在分析了幾個傳統(tǒng)測試模型所存在的不足的基礎(chǔ)上,提出了“并”模型這種新的軟件測試模型,并把該模型成功地應(yīng)用于典寶網(wǎng)項目的實際開發(fā)中,實踐表明,該模型是有效的,使用該模型可以盡早地發(fā)現(xiàn)錯誤,減少軟件測試中資源和時間的浪費,提高軟件測試的效率,有一定的參考價值,但后續(xù)也需要在實踐中不斷地對其進(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ī)應(yīng)用技術(shù)。