服務(wù)器軟件測(cè)試缺乏版本控制的后果
在這次軟件測(cè)試項(xiàng)目中,我們首先會(huì)把發(fā)現(xiàn)的Bug提交給開(kāi)發(fā)人員,開(kāi)發(fā)人員修復(fù)后會(huì)把修改過(guò)的代碼提交到正在測(cè)試的版本中去。問(wèn)題就出在這里。因?yàn)樾薷倪^(guò)后的代碼,我們不能保證它是否會(huì)帶來(lái)新的隱患,這樣就給測(cè)試人員的測(cè)試工作帶來(lái)困擾。后來(lái)發(fā)展到只要開(kāi)發(fā)人員一提交代碼到正在測(cè)試的版本中,我們就會(huì)比沒(méi)有發(fā)現(xiàn)Bug更為緊張,每一次除去驗(yàn)證修復(fù)的Bug之外,還都要盡量保證沒(méi)有遺漏新修正代碼所帶來(lái)的后患。
軟件測(cè)試缺乏版本控制的后果
隨著軟件的規(guī)模及復(fù)雜程度日趨大型化、復(fù)雜化,軟件測(cè)試的方式也從早期的單兵作戰(zhàn)式或手工作坊式,漸漸轉(zhuǎn)變?yōu)榱魉€(xiàn)式的團(tuán)隊(duì)協(xié)作測(cè)試方式。最常見(jiàn)的是多個(gè)測(cè)試人員共同負(fù)責(zé)一個(gè)軟件的測(cè)試,每個(gè)人在各自的機(jī)器上都有整個(gè)軟件的拷貝,并對(duì)之實(shí)施測(cè)試,分別完成各自任務(wù)。但當(dāng)沒(méi)有有效使用版本控制時(shí),這種測(cè)試模式會(huì)遇到一些非常棘手的問(wèn)題。
(1)缺乏版本控制,難以保證測(cè)試進(jìn)度
大多數(shù)的測(cè)試人員都是典型的完美主義者,這樣的做法無(wú)可厚非,但是缺乏版本控制時(shí)會(huì)出現(xiàn)較低的測(cè)試效率。在測(cè)試管理上,不可能要求每個(gè)版本都是完美無(wú)缺,否則就不需要出新版本了。但要求每個(gè)版本的狀態(tài)都必須在掌控之中,最基本的就是哪些功能OK,哪些功能NG。換句話(huà)說(shuō),一個(gè)測(cè)試版本應(yīng)該很容易對(duì)應(yīng)到一個(gè)狀態(tài)。在未來(lái)的任何一個(gè)時(shí)間點(diǎn),新測(cè)試版本應(yīng)可以拿來(lái)和這個(gè)測(cè)試版本的快照(Snapshot)做比較。
(2)缺乏版本控制,難以保證測(cè)試的一致性
軟件測(cè)試往往是多個(gè)測(cè)試人員共同協(xié)作的過(guò)程,不同人對(duì)同一個(gè)軟件的不同部分同時(shí)做著測(cè)試,這種行為有時(shí)會(huì)出現(xiàn)彼此交叉的情況。因此,軟件測(cè)試是多人共同協(xié)力進(jìn)行的復(fù)雜工作,必須要在效率與紀(jì)律間取得一個(gè)平衡,而版本控制據(jù)實(shí)踐證明是有效的方式之一。當(dāng)缺乏版本控制時(shí),測(cè)試一致性的失衡風(fēng)險(xiǎn)就會(huì)經(jīng)常發(fā)生。
因此,對(duì)測(cè)試團(tuán)隊(duì)來(lái)說(shuō),每個(gè)測(cè)試版本都應(yīng)該是一個(gè)重要的核查點(diǎn),因?yàn)榘姹究刂拼碇莆罩鴾y(cè)試過(guò)程某個(gè)時(shí)間點(diǎn)的狀況。所以,在多個(gè)測(cè)試人員共同負(fù)責(zé)的一個(gè)軟件測(cè)試中,沒(méi)有進(jìn)行版本控制或者版本控制本身缺乏正確的流程管理,將會(huì)引入很多問(wèn)題,并難以確保測(cè)試的一致性。
(3)測(cè)試版本冗余,易出現(xiàn)誤用風(fēng)險(xiǎn)
一般來(lái)說(shuō),待測(cè)軟件在各個(gè)測(cè)試人員的機(jī)器上都有拷貝,并且同一個(gè)測(cè)試人員在不同時(shí)期也會(huì)在本機(jī)保留多個(gè)的軟件版本。簡(jiǎn)單的說(shuō)就是,一臺(tái)機(jī)器上可能不止一個(gè)測(cè)試版本。這類(lèi)似于一種信息的冗余,對(duì)于不同版本而言其差別有時(shí)可能并不很大。但一個(gè)很重要的問(wèn)題是隨著時(shí)間推移,測(cè)試人員可能會(huì)對(duì)自己機(jī)器上的不同版本間的具體差異了解也變得模糊不情,甚至忘記了當(dāng)時(shí)為什么區(qū)分這些版本的原因,這就會(huì)給測(cè)試工作帶來(lái)麻煩。而且同時(shí)維護(hù)多個(gè)版本,也很難保證這一過(guò)程不會(huì)出現(xiàn)差錯(cuò)。因此,缺乏版本控制,版本冗余的誤用風(fēng)險(xiǎn)就會(huì)成倍增多。
(4)容易導(dǎo)致本地版本和服務(wù)器版本不一致
測(cè)試版本混亂造成的危害還體現(xiàn)在資源的浪費(fèi)上面,很多測(cè)試團(tuán)隊(duì)經(jīng)常發(fā)生測(cè)試組花費(fèi)時(shí)日測(cè)試某一項(xiàng)功能,卻發(fā)現(xiàn)最新修正的開(kāi)發(fā)版本已經(jīng)把整項(xiàng)功能取消,導(dǎo)致大家重復(fù)測(cè)試。發(fā)生這類(lèi)錯(cuò)誤原因是因?yàn)闇y(cè)試組沒(méi)有拿到最新的開(kāi)發(fā)版本,也可能是測(cè)試人員在從服務(wù)器那里更新本地版本時(shí),由于缺乏版本控制和管理,從而導(dǎo)致本地版本和服務(wù)器版本不一致。因此,加強(qiáng)本地版本和服務(wù)器版本的一致性管理,是絕對(duì)重要的一項(xiàng)工作。
(5)缺乏測(cè)試文檔可追溯性
版本控制不僅只為各種測(cè)試版本提供了文檔管理支持,還能提供可追溯性的文件。這樣我們就可以隨時(shí)查閱軟件測(cè)試過(guò)程中生成的各種文檔,這是提高、總結(jié)和分享測(cè)試經(jīng)驗(yàn)的重要途徑之一。
#p#
什么是軟件測(cè)試的版本控制?
(1)什么是版本控制?
軟件測(cè)試過(guò)程中有一個(gè)非常重要的方面,就是測(cè)試版本控制。對(duì)于軟件測(cè)試人員來(lái)說(shuō),版本控制這個(gè)概念大家都不陌生。版本控制簡(jiǎn)單的說(shuō)就是對(duì)測(cè)試版本有明確的標(biāo)識(shí)、說(shuō)明,并且測(cè)試版本的交付是在項(xiàng)目管理人員的控制之下。測(cè)試版本的標(biāo)識(shí)是用來(lái)識(shí)別所用的版本的狀態(tài),版本號(hào)碼的用處很多,例如在填寫(xiě)錯(cuò)誤報(bào)告的時(shí)候往往需要提供發(fā)現(xiàn)錯(cuò)誤的版本號(hào)。在做缺陷分析時(shí),也可以利用版本號(hào)來(lái)區(qū)別缺陷和判斷缺陷的發(fā)展趨勢(shì)。因此,版本控制從某種意義上也可認(rèn)為是軟件質(zhì)量穩(wěn)定度趨勢(shì)的反映。
版本控制(Revision Control)是軟件測(cè)試的一門(mén)實(shí)踐性技術(shù),版本控制透過(guò)文件控制(Documentation Control)記錄各次測(cè)試行為,并為每次測(cè)試行為編上序號(hào)。版本控制的最簡(jiǎn)單方法是在每一個(gè)公布的測(cè)試文檔版本上做出標(biāo)識(shí),包括一個(gè)版本的歷史情況,即已做的測(cè)試內(nèi)容、測(cè)試日期、測(cè)試人員姓名以及測(cè)試的原因,并根據(jù)約定標(biāo)準(zhǔn)標(biāo)記每一次的測(cè)試順序。最簡(jiǎn)單的例子是,最初的版本指定為1,當(dāng)做了測(cè)試之后,版本編號(hào)增加為2,以此類(lèi)推。
(2)版本控制的作用
版本控制包括兩個(gè)方面:一是保證測(cè)試人員得到的是最新的版本,二是記錄歷史版本的測(cè)試狀態(tài)。版本控制是對(duì)系統(tǒng)不同版次進(jìn)行標(biāo)識(shí)和跟蹤的過(guò)程,而版次則是指一系列版本變遷的其中一個(gè)。版本標(biāo)識(shí)的目的是便于對(duì)版本加以區(qū)分、檢索和跟蹤,以表明各個(gè)版本之間的關(guān)系。版本控制的功能在于能跟蹤記錄整個(gè)測(cè)試過(guò)程,包括測(cè)試本身和相關(guān)文檔,以便對(duì)不同階段的待測(cè)軟件及相關(guān)文檔進(jìn)行標(biāo)識(shí)和差別分析,也便于協(xié)調(diào)和管理測(cè)試團(tuán)隊(duì)的工作。所以,對(duì)版本的控制實(shí)際上就是對(duì)各種測(cè)試行為的管理和控制。
總的來(lái)說(shuō),版本控制是管理測(cè)試后狀態(tài)變更的一種技術(shù)。對(duì)于測(cè)試人員來(lái)說(shuō),它是不可或缺的工具。測(cè)試人員可以通過(guò)版本說(shuō)明文檔了解到當(dāng)前的測(cè)試版本中和上一版本有那些顯著的變化。明確了這些情況之后,測(cè)試人員可以更加高效,有針對(duì)性的執(zhí)行測(cè)試。因此,對(duì)軟件測(cè)試團(tuán)隊(duì)而言,測(cè)試版本發(fā)行和控制是一件大事。
(3)版本控制的評(píng)價(jià)標(biāo)準(zhǔn)
對(duì)軟件測(cè)試的版本控制來(lái)說(shuō),衡量其效果的標(biāo)準(zhǔn)可歸根結(jié)底為兩點(diǎn):效率和質(zhì)量。如果版本控制最終使軟件測(cè)試效率得到提高、使軟件質(zhì)量得到提升,那就是成功的。反之,則是失敗的。效率的提高比較容易理解,而測(cè)試質(zhì)量的提升則體現(xiàn)在:軟件的一致性、冗余程度等。
#p#
如何成功進(jìn)行版本控制?
有效的版本控制能大大提高軟件測(cè)試的工作效率,也是給整個(gè)測(cè)試過(guò)程打下堅(jiān)實(shí)基礎(chǔ)的重要步驟之一。但現(xiàn)實(shí)中卻仍有很多測(cè)試小組根本沒(méi)有使用或不會(huì)正確使用版本控制,許多人抱怨版本控制過(guò)于復(fù)雜,從而對(duì)它望而生畏。其實(shí)只要掌握一些基本用法就可以獲取到版本控制帶來(lái)的好處,就能達(dá)到提高測(cè)試工作效率的目的。
(1)制定規(guī)范的版本控制管理制度
對(duì)于軟件測(cè)試版本,決不是簡(jiǎn)簡(jiǎn)單單的認(rèn)為只把測(cè)試版本進(jìn)行編號(hào)就可以了。這是一個(gè)誤區(qū),不但會(huì)使測(cè)試過(guò)程中存在著很多風(fēng)險(xiǎn),而且稍有不慎就會(huì)導(dǎo)致測(cè)試工作的失敗。因此,首先要了解和明確整個(gè)測(cè)試需求,選擇合適的版本控制切入點(diǎn),通過(guò)把版本控制與測(cè)試?yán)锍瘫慕Y(jié)合來(lái)實(shí)現(xiàn)階段性成果,以規(guī)避測(cè)試過(guò)程混亂的風(fēng)險(xiǎn)。
(2)制定合理版次規(guī)劃和監(jiān)控機(jī)制
為了對(duì)測(cè)試項(xiàng)目所需的版次數(shù)量的有效管理,應(yīng)要對(duì)測(cè)試工作量進(jìn)行合理的評(píng)估,以此來(lái)對(duì)版次作出合理的規(guī)劃。合理而具體的版次規(guī)劃,可以幫助測(cè)試團(tuán)隊(duì)正確處理測(cè)試所發(fā)現(xiàn)的Bug和測(cè)試活動(dòng)的細(xì)節(jié),因?yàn)檫^(guò)于頻繁的版本更新會(huì)給測(cè)試工作帶來(lái)困擾,但過(guò)于少的版本更新也會(huì)造成類(lèi)似缺乏版本控制的弊端。因此,在整個(gè)測(cè)試項(xiàng)目的關(guān)鍵位置設(shè)立檢查點(diǎn),可使得測(cè)試團(tuán)隊(duì)根據(jù)版次規(guī)劃隨時(shí)監(jiān)控版本更新,及時(shí)發(fā)現(xiàn)問(wèn)題,并對(duì)出現(xiàn)的異常現(xiàn)象做出快速反應(yīng),也使得測(cè)試過(guò)程更加清晰和更有計(jì)劃性。
(3)不能忽略版本控制管理員的重要性
雖然可以不必單獨(dú)劃定一人來(lái)?yè)?dān)任這個(gè)角色,但如果沒(méi)有這一角色的存在,或者說(shuō)任何人都可以做版本控制管理員,則又會(huì)出現(xiàn)版本混亂的問(wèn)題。因?yàn)閺哪撤N程度上講,這和沒(méi)有版本控制的情況是等效的。
(4)做好版本控制的文檔管理
由于測(cè)試工作涉及到方方面面,故所有與版本控制相關(guān)的說(shuō)明、標(biāo)識(shí)等都需要文檔化。因此,做好文檔工作是版本控制得以成功的一個(gè)重要支撐。作為控制文檔,應(yīng)該還包括與測(cè)試相關(guān)的資源及其使用情況,以方便跟蹤與監(jiān)控測(cè)試版本的執(zhí)行。
(5)應(yīng)用版本控制的軟件工具
工欲善其事,必先利其器。既然版本控制在軟件測(cè)試中是如此重要,那就有必要花時(shí)間來(lái)仔細(xì)了解和評(píng)估軟件測(cè)試的版本控制工具。因?yàn)檫x擇一款優(yōu)秀的、適合測(cè)試團(tuán)隊(duì)和項(xiàng)目需求的版本控制工具,不但能夠提高測(cè)試工作效率,而且也會(huì)大大提高測(cè)試活動(dòng)的優(yōu)質(zhì)性。所以,善于使用版本控制工具是測(cè)試管理的重要一環(huán)。
【編輯推薦】



















