【摘 要】本文描述了軟件回歸測(cè)試的概念和進(jìn)行回歸測(cè)試的基本步驟,介紹了可用于回歸測(cè)試的測(cè)試用例庫(kù)的維護(hù)方法,給出了幾種可以可保證回歸測(cè)試效率和有效性的回歸測(cè)試策略,總結(jié)了回歸測(cè)試時(shí)應(yīng)該注意的一些實(shí)際問(wèn)題。
【關(guān)鍵詞】回歸測(cè)試 測(cè)試用例 基線測(cè)試用例庫(kù)
一、概述
在軟件生命周期中的任何一個(gè)階段,只要軟件發(fā)生了改變,就可能給該軟件帶來(lái)問(wèn)題。軟件的改變可能是源于發(fā)現(xiàn)了錯(cuò)誤并做了修改,也有可能是因?yàn)樵诩苫蚓S護(hù)階段加入了新的模塊。當(dāng)軟件發(fā)生變化時(shí),我們就必須重新測(cè)試現(xiàn)有的功能,以便確定修改是否達(dá)到了預(yù)期的目的,檢查修改是否損害了原有的正常功能。同時(shí),還需要補(bǔ)充新的測(cè)試用例來(lái)測(cè)試新的或被修改了的功能。為了驗(yàn)證修改的正確性及其影響就需要進(jìn)行回歸測(cè)試?;貧w測(cè)試在軟件生命周期中扮演著重要的角色,因忽視回歸測(cè)試而造成嚴(yán)重后果的例子不計(jì)其數(shù),導(dǎo)致阿里亞娜5型火箭發(fā)射失敗的軟件缺陷就是由于復(fù)用的代碼沒(méi)有經(jīng)過(guò)充分的回歸測(cè)試造成的?;貧w測(cè)試作為軟件生命周期的一個(gè)組成部分,在整個(gè)軟件測(cè)試過(guò)程中占有很大的工作量比重,軟件開(kāi)發(fā)的各個(gè)階段都會(huì)進(jìn)行多次回歸測(cè)試。在漸進(jìn)和快速迭代開(kāi)發(fā)中,新版本的連續(xù)發(fā)布使回歸測(cè)試進(jìn)行的更加頻繁,而在極端編程方法中,更是要求每天都進(jìn)行若干次回歸測(cè)試。因此,通過(guò)選擇正確的回歸測(cè)試策略來(lái)改進(jìn)回歸測(cè)試的效率和有效性是非常有意義的。
二、回歸測(cè)試策略
對(duì)于一個(gè)軟件開(kāi)發(fā)項(xiàng)目來(lái)說(shuō),項(xiàng)目的測(cè)試組在實(shí)施測(cè)試的過(guò)程中會(huì)將所開(kāi)發(fā)的測(cè)試用例保存到“測(cè)試用例庫(kù)”中,并對(duì)其進(jìn)行維護(hù)和管理。當(dāng)?shù)玫揭粋€(gè)軟件的基線版本時(shí),用于基線版本測(cè)試的所有測(cè)試用例就形成了基線測(cè)試用例庫(kù)。在需要進(jìn)行回歸測(cè)試的時(shí)候,就可以根據(jù)所選擇的回歸測(cè)試策略,從基線測(cè)試用例庫(kù)中提取合適的測(cè)試用例組成回歸測(cè)試包,通過(guò)運(yùn)行回歸測(cè)試包來(lái)實(shí)現(xiàn)回歸測(cè)試。保存在基線測(cè)試用例庫(kù)中的測(cè)試用例可能是自動(dòng)測(cè)試腳本,也有可能是測(cè)試用例的手工實(shí)現(xiàn)過(guò)程。回歸測(cè)試需要時(shí)間、經(jīng)費(fèi)和人力來(lái)計(jì)劃、實(shí)施和管理。為了在給定的預(yù)算和進(jìn)度下,盡可能有效率和有效力地進(jìn)行回歸測(cè)試,需要對(duì)測(cè)試用例庫(kù)進(jìn)行維護(hù)并依據(jù)一定的策略選擇相應(yīng)的回歸測(cè)試包。
(一)測(cè)試用例庫(kù)的維護(hù)。為了最大限度地滿足客戶的需要和適應(yīng)應(yīng)用的要求,軟件在其生命周期中會(huì)頻繁地被修改和不斷推出新的版本,修改后的或者新版本的軟件會(huì)添加一些新的功能或者在軟件功能上產(chǎn)生某些變化。為了保證測(cè)試用例庫(kù)中測(cè)試用例的有效性,必須對(duì)測(cè)試用例庫(kù)進(jìn)行維護(hù)。同時(shí),被修改的或新增添的軟件功能,僅僅靠重新運(yùn)行以前的測(cè)試用例并不足以揭示其中的問(wèn)題,有必要追加新的測(cè)試用例來(lái)測(cè)試這些新的功能或特征。因此,測(cè)試用例庫(kù)的維護(hù)工作還應(yīng)包括開(kāi)發(fā)新測(cè)試用例,這些新的測(cè)試用例用來(lái)測(cè)試軟件的新特征或者覆蓋現(xiàn)有測(cè)試用例無(wú)法覆蓋的軟件功能或特征。測(cè)試用例的維護(hù)是一個(gè)不間斷的過(guò)程,通??梢詫④浖_(kāi)發(fā)的基線作為基準(zhǔn),維護(hù)的主要內(nèi)容包括這幾個(gè)方面:刪除過(guò)時(shí)的測(cè)試用例、改進(jìn)不受控制的測(cè)試用例、刪除冗余的測(cè)試用例 、增添新的測(cè)試用例。
(二)回歸測(cè)試包的選擇。在軟件生命周期中,即使一個(gè)得到良好維護(hù)的測(cè)試用例庫(kù)也可能變得相當(dāng)大,這使每次回歸測(cè)試都重新運(yùn)行完整的測(cè)試包變得不切實(shí)際。一個(gè)完全的回歸測(cè)試包括每個(gè)基線測(cè)試用例,時(shí)間和成本約束可能阻礙運(yùn)行這樣一個(gè)測(cè)試,有時(shí)測(cè)試組不得不選擇一個(gè)縮減的回歸測(cè)試包來(lái)完成回歸測(cè)試?;貧w測(cè)試的價(jià)值在于它是一個(gè)能夠檢測(cè)到回歸錯(cuò)誤的受控實(shí)驗(yàn)。當(dāng)測(cè)試組選擇縮減的回歸測(cè)試時(shí),有可能刪除了將揭示回歸錯(cuò)誤的測(cè)試用例,消除了發(fā)現(xiàn)回歸錯(cuò)誤的機(jī)會(huì)。然而,如果采用了代碼相依性分析等安全的縮減技術(shù),就可以決定哪些測(cè)試用例可以被刪除而不會(huì)讓回歸測(cè)試的意圖遭到破壞。
選擇回歸測(cè)試策略應(yīng)該兼顧效率和有效性兩個(gè)方面。常用的選擇回歸測(cè)試的方式包括:1.再測(cè)試全部用例;2.基于風(fēng)險(xiǎn)選擇測(cè)試;3.基于操作剖面選擇測(cè)試;4.再測(cè)試修改的部分。
(三)回歸測(cè)試的基本過(guò)程
有了測(cè)試用例庫(kù)的維護(hù)方法和回歸測(cè)試包的選擇策略,回歸測(cè)試可遵循下述基本過(guò)程進(jìn)行: 1.識(shí)別出軟件中被修改的部分;2.從原基線測(cè)試用例庫(kù)T中,排除所有不再適用的測(cè)試用例,確定那些對(duì)新的軟件版本依然有效的測(cè)試用例,其結(jié)果是建立一個(gè)新的基線測(cè)試用例庫(kù)T0;3.依據(jù)一定的策略從T0中選擇測(cè)試用例測(cè)試被修改的軟件;4.如果必要,生成新的測(cè)試用例集T1,用于測(cè)試T0無(wú)法充分測(cè)試的軟件部分;5.用T1執(zhí)行修改后的軟件。第(2)和第(3)步測(cè)試驗(yàn)證修改是否破壞了現(xiàn)有的功能,第(4)和第(5)步測(cè)試驗(yàn)證 修改工作本身。
三、回歸測(cè)試實(shí)踐
在實(shí)際工作中,回歸測(cè)試需要反復(fù)進(jìn)行,當(dāng)測(cè)試者一次又一次地完成相同的測(cè)試時(shí),這些回歸測(cè)試將變得非常令人厭煩,而在大多數(shù)回歸測(cè)試需要手工完成的時(shí)候尤其如此,因此,需要通過(guò)自動(dòng)測(cè)試來(lái)實(shí)現(xiàn)重復(fù)的和一致的回歸測(cè)試。通過(guò)測(cè)試自動(dòng)化可以提高回歸測(cè)試效率。為了支持多種回歸測(cè)試策略,自動(dòng)測(cè)試工具應(yīng)該是通用的和靈活的,以便滿足達(dá)到不同回歸測(cè)試目標(biāo)的要求?;貧w測(cè)試并不減少對(duì)系統(tǒng)新功能和特征的測(cè)試需求,回歸測(cè)試包應(yīng)包括新功能和特征的測(cè)試。如果回歸測(cè)試包不能達(dá)到所需的覆蓋要求,必須補(bǔ)充新的測(cè)試用例使覆蓋率達(dá)到規(guī)定的要求?;貧w測(cè)試是重復(fù)性較多的活動(dòng),容易使測(cè)試者感到疲勞和厭倦,降低測(cè)試效率,在實(shí)際工作中可以采用一些策略減輕這些問(wèn)題。在組織回歸測(cè)試時(shí)需要注意兩點(diǎn),首先是各測(cè)試階段發(fā)生的修改一定要在本測(cè)試階段內(nèi)完成回歸,以免將錯(cuò)誤遺留到下一測(cè)試階段。其次,回歸測(cè)試期間應(yīng)對(duì)該軟件版本凍結(jié),將回歸測(cè)試發(fā)現(xiàn)的問(wèn)題集中修改,集中回歸。
在實(shí)際測(cè)試時(shí),可以將回歸測(cè)試與兼容性測(cè)試結(jié)合起來(lái)進(jìn)行。在新的配置條件下運(yùn)行舊的測(cè)試可以發(fā)現(xiàn)兼容性問(wèn)題,而同時(shí)也可以揭示編碼在回歸方面的錯(cuò)誤。
參考文獻(xiàn):
[1]Robert V. Binder,面向?qū)ο笙到y(tǒng)的測(cè)試,人民郵電出版社,2001。
[2]Rex Black,測(cè)試流程管理,北京大學(xué)出版社,2001。
作者簡(jiǎn)介:
黃淼,(1981-06)男,四川省綿陽(yáng)市,本科,助理講師,研究方向:計(jì)算機(jī)應(yīng)用;郵編:621000;四川省綿陽(yáng)市財(cái)經(jīng)學(xué)校;