賈曉哲(北京全路通信信號(hào)研究設(shè)計(jì)院有限公司,北京 100073)
1970年W inston Royce提出了著名的“瀑布開(kāi)發(fā)模型”[1],它將軟件生命周期劃分為制定計(jì)劃、需求分析、軟件設(shè)計(jì)、程序編寫(xiě)、軟件測(cè)試和運(yùn)行維護(hù)等6個(gè)基本活動(dòng),并且規(guī)定了它們自上而下、相互銜接的固定次序,這種模型的開(kāi)發(fā)安全性高且易于管理,但是它所需要的時(shí)間較長(zhǎng),而且如果產(chǎn)品需求稍做變更,會(huì)導(dǎo)致后面的幾個(gè)階段也要進(jìn)行更改,同時(shí)它把測(cè)試過(guò)程作為在需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)及編碼之后的一個(gè)階段,這樣會(huì)導(dǎo)致開(kāi)發(fā)早期的錯(cuò)誤可能要等到開(kāi)發(fā)后期的測(cè)試階段才能發(fā)現(xiàn),其帶來(lái)的后果是嚴(yán)重的。
Pau l R ook在80年代后期提出了V模型針對(duì)瀑布模型對(duì)軟件測(cè)試過(guò)程進(jìn)行了補(bǔ)充[2],如圖1所示。
V模型最早提出測(cè)試并不是一個(gè)事后彌補(bǔ)行為,而是一個(gè)同開(kāi)發(fā)過(guò)程同樣重要的過(guò)程,同時(shí)它明確的表明測(cè)試過(guò)程的各個(gè)階段及其和開(kāi)發(fā)過(guò)程期間
賈曉哲,男,碩士畢業(yè)于北京交通大學(xué),系統(tǒng)工程師。主要研究方向?yàn)榻煌ㄐ畔⒐こ膛c控制。曾在EI上發(fā)表文章1篇,擁有兩項(xiàng)專(zhuān)利。各階段的對(duì)應(yīng)關(guān)系。但是V模型的問(wèn)題也是很明顯的,比如容易讓人形成“測(cè)試是開(kāi)發(fā)之后的一個(gè)階段”,“測(cè)試的對(duì)象就是程序”之類(lèi)的誤解。由于V模型把系統(tǒng)開(kāi)發(fā)過(guò)程劃分為具有固定邊界的不同階段,這使得人們很難跨過(guò)這些邊界來(lái)采集測(cè)試所需要的信息。有些測(cè)試應(yīng)該執(zhí)行得更早些,有些測(cè)試則需要延后進(jìn)行。不僅如此,V模型也阻礙了從系統(tǒng)描述的不同階段中取得信息進(jìn)行綜合。所以,一些改進(jìn)過(guò)的軟件測(cè)試模型被提了出來(lái)。
W模型也叫雙V模型,是對(duì)V模型的改進(jìn),它由Systeme Evolutif公司提出,針對(duì)V模型的問(wèn)題,W模型強(qiáng)調(diào)需求、功能和設(shè)計(jì)同樣要測(cè)試,測(cè)試的對(duì)象不僅僅是程序,軟件測(cè)試應(yīng)該貫穿整個(gè)開(kāi)發(fā)周期之中,只要相應(yīng)的開(kāi)發(fā)活動(dòng)完成,就可以開(kāi)始執(zhí)行測(cè)試,可以說(shuō),測(cè)試與開(kāi)發(fā)是同步進(jìn)行的。從而有利于盡早的發(fā)現(xiàn)問(wèn)題,如圖2所示。
但是不論是V模型還是W模型,適用于那些需求非常明確,已經(jīng)文檔化了的項(xiàng)目,開(kāi)發(fā)人員和測(cè)試人員都需要嚴(yán)格定義好的需求和設(shè)計(jì)來(lái)開(kāi)展工作。在實(shí)際的開(kāi)發(fā)過(guò)程中,因?yàn)樾枨笞兓炔豢杀苊獾脑?,開(kāi)發(fā)人員并沒(méi)有按照文檔來(lái)工作,也就是說(shuō)文檔沒(méi)有及時(shí)更新,有時(shí)候在一些不規(guī)范的公司,文檔根本就沒(méi)有。這些情況下,V模型和W模型在實(shí)施起來(lái)就很困難。此外,無(wú)論是V模型,還是W模型,都把軟件的開(kāi)發(fā)視為需求、設(shè)計(jì)、編碼等等一系列的串行活動(dòng)。而事實(shí)上,雖然這些活動(dòng)之間存在著互相牽制的關(guān)系,但在大部分時(shí)間,它們是互相獨(dú)立的,是可以并發(fā)進(jìn)行的。雖然軟件開(kāi)發(fā)期望有清晰的需求、設(shè)計(jì)和編碼等等階段,但實(shí)踐告訴我們,嚴(yán)格的階段之分只是一種理想狀況。
為了解決V模型和W模型中存在的問(wèn)題,很多人也提出了其他種類(lèi)的測(cè)試模型,例如前置測(cè)試模型,把驗(yàn)收測(cè)試和技術(shù)測(cè)試作為相互獨(dú)立的兩個(gè)部分;X測(cè)試模型,增加了探索測(cè)試的內(nèi)容;H測(cè)試模型,具有很高的效率和靈活性等等。這些模型分別對(duì)經(jīng)典的V和W測(cè)試模型進(jìn)行了不同方向的補(bǔ)充和發(fā)展,但同樣也存在相應(yīng)的不足,表1對(duì)這些測(cè)試模型進(jìn)行了對(duì)比和分析。
表1 測(cè)試模型對(duì)比和分析
通過(guò)上述測(cè)試模型的介紹,可以看出測(cè)試并不是在開(kāi)發(fā)之后的過(guò)程,而是與開(kāi)發(fā)同步進(jìn)行的過(guò)程。而且在執(zhí)行測(cè)試之前需要進(jìn)行充分的測(cè)試準(zhǔn)備工作,這樣才會(huì)使測(cè)試進(jìn)行的更加充分、高效、有序。因此,本文對(duì)傳統(tǒng)W模型進(jìn)行了改進(jìn),提出了擴(kuò)展W模型,如圖3所示。
擴(kuò)展W模型有3個(gè)V形組成,里層的V形,中層的V形和外層的V形。
里層的V形代表系統(tǒng)的開(kāi)發(fā)過(guò)程,一個(gè)完整的系統(tǒng)是由多個(gè)子系統(tǒng)構(gòu)成,每個(gè)子系統(tǒng)則又是由多個(gè)功能模塊組成。因此開(kāi)發(fā)的過(guò)程首先是通過(guò)對(duì)用戶(hù)需求的分析,編制系統(tǒng)需求,再劃分為各子系統(tǒng)的需求,之后每個(gè)子系統(tǒng)根據(jù)需求編制概要設(shè)計(jì)、詳細(xì)設(shè)計(jì),之后進(jìn)行程序的編寫(xiě);各個(gè)模塊編寫(xiě)完成后進(jìn)行模塊的組裝,軟件的組裝,之后構(gòu)成子系統(tǒng)進(jìn)而組成整個(gè)系統(tǒng)。
中層的V形代表系統(tǒng)的測(cè)試過(guò)程,測(cè)試過(guò)程應(yīng)同開(kāi)發(fā)過(guò)程同步進(jìn)行,從編制需求時(shí)就對(duì)需求進(jìn)行測(cè)試,這樣不但保證軟件的可測(cè)性,同時(shí)也避免了由于需求存在問(wèn)題而導(dǎo)致的軟件修改,大大節(jié)省了開(kāi)發(fā)的時(shí)間成本和經(jīng)濟(jì)成本。同時(shí)利用白盒、灰盒以及黑盒的測(cè)試方法從代碼內(nèi)部、功能實(shí)現(xiàn)、接口協(xié)議、數(shù)據(jù)配置和故障模擬等各個(gè)層面和階段對(duì)軟件進(jìn)行測(cè)試,保證的測(cè)試的充分性。
外層的V形代表的是測(cè)試輔助過(guò)程,但卻是測(cè)試過(guò)程中不可缺少的部分。這個(gè)過(guò)程包括了軟件開(kāi)發(fā)完成前的測(cè)試準(zhǔn)備過(guò)程和測(cè)試軟件過(guò)程中的缺陷管理、回歸測(cè)試兩大部分。測(cè)試準(zhǔn)備包括測(cè)試案例的撰寫(xiě)、測(cè)試環(huán)境的搭建、測(cè)試工具的開(kāi)發(fā)等內(nèi)容,好的測(cè)試案例可以彌補(bǔ)測(cè)試經(jīng)驗(yàn)的不足,同時(shí)也能更好的發(fā)現(xiàn)問(wèn)題;成熟的測(cè)試環(huán)境,先進(jìn)的測(cè)試工具,可以使測(cè)試更加高效,也更加充分。而測(cè)試過(guò)程中對(duì)缺陷的管理對(duì)測(cè)試來(lái)說(shuō)則是重中之重。因此這部分的測(cè)試輔助過(guò)程也是測(cè)試中的重要組成部分。
信號(hào)系統(tǒng)是城市軌道交通自動(dòng)化系統(tǒng)中的重要組成部分,該系統(tǒng)以安全為核心、以保證和提高列車(chē)運(yùn)行效率為目標(biāo),在保證列車(chē)和乘客安全的前提下,通過(guò)調(diào)節(jié)列車(chē)運(yùn)行間隔和運(yùn)行時(shí)分,實(shí)現(xiàn)列車(chē)運(yùn)行的高效和指揮管理的有序。城市軌道交通信號(hào)系統(tǒng)的自動(dòng)化水平較高,系統(tǒng)協(xié)同性較強(qiáng),通常又被稱(chēng)為列車(chē)自動(dòng)控制(ATC)系統(tǒng)。
A TC系統(tǒng)包括列車(chē)自動(dòng)監(jiān)控(A TS)子系統(tǒng)、列車(chē)自動(dòng)防護(hù)(ATP)子系統(tǒng)、計(jì)算機(jī)聯(lián)鎖(CBI)子系統(tǒng)和列車(chē)自動(dòng)運(yùn)行(ATO)子系統(tǒng)。A TC系統(tǒng)通過(guò)車(chē)載設(shè)備、軌旁設(shè)備、車(chē)站和控制中心組成的控制系統(tǒng)完成列車(chē)運(yùn)行控制。
城軌A TC系統(tǒng)是一個(gè)復(fù)雜而龐大的系統(tǒng),不但涉及到多個(gè)子系統(tǒng),同時(shí)需要子系統(tǒng)之間必須很好的協(xié)同工作。因此如果采用傳統(tǒng)的V或W模型,測(cè)試沒(méi)有和開(kāi)發(fā)同步進(jìn)行,同時(shí)無(wú)測(cè)試輔助等環(huán)節(jié),系統(tǒng)開(kāi)發(fā)和測(cè)試過(guò)程中會(huì)很可能出現(xiàn)時(shí)間過(guò)長(zhǎng)、準(zhǔn)備不足、測(cè)試不能有序開(kāi)展等情況。擴(kuò)展W測(cè)試模型則可以很好的避免上述問(wèn)題的發(fā)生。
在程序開(kāi)發(fā)前,開(kāi)發(fā)人員執(zhí)行里層的V即根據(jù)用戶(hù)需求,進(jìn)行A TC系統(tǒng)需求的撰寫(xiě),同時(shí)測(cè)試人員則執(zhí)行中層的V即對(duì)A TC系統(tǒng)需求進(jìn)行評(píng)審測(cè)試,而測(cè)試人員及輔助人員則同步執(zhí)行外層的V,開(kāi)展熟悉用戶(hù)需求,撰寫(xiě)測(cè)試案例,搭建并驗(yàn)收系統(tǒng)測(cè)試環(huán)境,熟悉環(huán)境的使用以及測(cè)試工具的開(kāi)發(fā)等活動(dòng)。系統(tǒng)需求完成后,各子系統(tǒng)開(kāi)發(fā)人員執(zhí)行里層的V即根據(jù)系統(tǒng)需求開(kāi)始撰寫(xiě)子系統(tǒng)需求、概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)等,測(cè)試和測(cè)試輔助和開(kāi)發(fā)同步進(jìn)行,同時(shí)各子系統(tǒng)這些活動(dòng)也可以同步進(jìn)行。編碼完成后,由于前期測(cè)試準(zhǔn)備活動(dòng)已完成,測(cè)試活動(dòng)就可以馬上展開(kāi),大大節(jié)省了時(shí)間。同時(shí)由于前期開(kāi)發(fā)階段測(cè)試已經(jīng)介入,因此保證了前期開(kāi)發(fā)活動(dòng)的質(zhì)量。測(cè)試中發(fā)現(xiàn)的問(wèn)題通過(guò)分析,制定回歸范圍,進(jìn)行回歸測(cè)試和修改,避免了軟件的重新開(kāi)發(fā),增加了開(kāi)發(fā)和測(cè)試的效率。
本文在傳統(tǒng)的W模型的基礎(chǔ)上增加了測(cè)試輔助過(guò)程,提出了一種擴(kuò)展的W模型。擴(kuò)展的W測(cè)試模型通過(guò)增加測(cè)試人員培訓(xùn)、測(cè)試工具準(zhǔn)備、測(cè)試環(huán)境搭建等測(cè)試準(zhǔn)備活動(dòng)、缺陷管理以及測(cè)試回歸等內(nèi)容使得測(cè)試活動(dòng)能夠更加有效的進(jìn)行,并應(yīng)用于城市軌道交通A TC系統(tǒng)的軟件測(cè)試中,提高了測(cè)試的質(zhì)量和效率。
[1] Winston W.Royce.Managing the Development of Large Software Systems[EB/OL].[2012-12-01].Http://wen ku.baidu.com/view/5152638/d4d8d15abe234e57.html.
[2] 黃龍水,黃城學(xué).軟件測(cè)試模型介紹[J].艦船電子工程,2004,24(3):35-37.
[3] William,E.Perry.Effective Methods for SofwtareTesting[M].2th ed.usA:JohnWiley&SonsInc.,1999.
[4]張永梅,陳立潮,馬禮,等.軟件測(cè)試技術(shù)研究[J].測(cè)試術(shù)學(xué)報(bào),2002,16(2):15-17.
[5] Beizer B. Software Testing Techniques[M]. NewYork: Van Nostrand Reinhold Co, Inc., 1990.
[6]曹德勝,王燕興.一種新的軟件測(cè)試過(guò)程模型[J].華北科技學(xué)院學(xué)報(bào),2006,3(2):72-74.