在上圖右邊的方塊中,最好要改成為“執(zhí)行某些適當(dāng)?shù)臏y(cè)試并得到相應(yīng)的結(jié)果”。
圖中的左邊會(huì)怎樣?考慮一下系統(tǒng)測(cè)試設(shè)計(jì),它的主要根據(jù)和信息來(lái)源是是規(guī)格說(shuō)明。假設(shè)你知道有2個(gè)單元處在一個(gè)特定的子系統(tǒng)中,它們?cè)谶\(yùn)行時(shí)相互聯(lián)系,并且要執(zhí)行規(guī)格說(shuō)明中的一個(gè)特定的聲明。為什么不在該子系統(tǒng)被集成時(shí)立即對(duì)此規(guī)格說(shuō)明中的聲明進(jìn)行測(cè)試,就象是在設(shè)計(jì)完成后立即開始測(cè)試的設(shè)計(jì)一樣呢?如果該聲明的執(zhí)行和子系統(tǒng)外的子系統(tǒng)沒有任何關(guān)系,為什么還要等到整個(gè)系統(tǒng)完成以后再測(cè)試呢?難道越早發(fā)現(xiàn)bug成本越低不對(duì)嗎?
在上一張圖片中,我們用了向上指的箭頭(更有效,但在時(shí)間上有延遲)。這里還可以把箭頭往下指(在時(shí)間上提前):
新的方法:在不同階段上提前進(jìn)行測(cè)試設(shè)計(jì)
在這種情況下,左邊的方塊中最好被標(biāo)記為:“在當(dāng)前信息條件和情況下可以做的任何測(cè)試設(shè)計(jì)”。這樣,當(dāng)測(cè)試設(shè)計(jì)得自于系統(tǒng)中某一個(gè)組件的描述時(shí),模型必須允許這樣的測(cè)試在組件被裝配之前被執(zhí)行。我必須承認(rèn)我的圖片非常難看,這些箭頭指得到處都是,對(duì)此我有2點(diǎn)說(shuō)明:
1. 我們所討論的事情不是創(chuàng)造美,而是想要發(fā)現(xiàn)盡可能多的嚴(yán)重錯(cuò)誤,同時(shí)盡可能地降低成本。
2. 難看的部分原因也是因?yàn)楸仨毎凑漳承┐涡騺?lái)執(zhí)行的結(jié)果,亦即開發(fā)人員先提供系統(tǒng)描述文檔,然后測(cè)試和這些文檔進(jìn)行關(guān)聯(lián)。這些文檔就象是堅(jiān)實(shí)的老橡樹,而測(cè)試設(shè)計(jì)則象是細(xì)細(xì)的枝條纏繞在樹上。如果我們采用不同的原理來(lái)進(jìn)行組織,圖片可能就會(huì)變得好看些。但復(fù)雜性仍不可避免,因?yàn)槲覀円懻摰膯?wèn)題本身就很復(fù)雜。
V模型失敗的原因是它把系統(tǒng)開發(fā)過(guò)程劃分為具有固定邊界的不同階段,這使得人們很難跨過(guò)這些邊界來(lái)采集測(cè)試所需要的信息。有些測(cè)試應(yīng)該執(zhí)行得更早些,有些測(cè)試則需要延后進(jìn)行。而且,它也阻礙了你從系統(tǒng)描述的不同階段中取得信息進(jìn)行綜合。例如,某些組織有時(shí)執(zhí)行這樣的做法,即對(duì)完成的工作進(jìn)行簽署。這樣的規(guī)定也擴(kuò)展到系統(tǒng)測(cè)試的設(shè)計(jì)。簽署表示已經(jīng)過(guò)評(píng)估,該測(cè)試設(shè)計(jì)工作已經(jīng)完成,除非對(duì)應(yīng)的設(shè)計(jì)文檔改變,否則就不會(huì)被修訂。如果同這些測(cè)試相關(guān)的信息后來(lái)被重新挖掘和認(rèn)識(shí),例如,架構(gòu)設(shè)計(jì)表明有些測(cè)試是多余的,或者,詳細(xì)設(shè)計(jì)表明有一個(gè)內(nèi)部的邊界可以和已存在的系統(tǒng)測(cè)試組合在一起進(jìn)行測(cè)試的話,那么實(shí)際上還需要繼續(xù)調(diào)整原來(lái)的系統(tǒng)測(cè)試設(shè)計(jì)。
因此,模型必須允許利用不同來(lái)源的綜合信息進(jìn)行個(gè)別的測(cè)試設(shè)計(jì)。另外,模型還應(yīng)該允許在新的信息來(lái)源出現(xiàn)后重新進(jìn)行測(cè)試的設(shè)計(jì)。
相關(guān)推薦:考試吧策劃:2010年軟件水平考試完全指南北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |