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