軟件測試過程中的測試配置管理與版本控制

摘要:

隨著計算機軟件技術的發(fā)展弟蚀,各種計算機軟件種類繁多,功能各異挑豌,加上計算機軟件規(guī)約的約束和發(fā)展安券,軟件的規(guī)范性變得更加重要。為了開發(fā)合格的軟件氓英,在軟件開發(fā)過程中侯勉,離不開軟件測試。為了更好的完成軟件測試工作铝阐,在軟件測試過程中進行配置管理和版本控制尤為重要址貌。

本文首先介紹了軟件測試過程中的配置管理概念和版本控制概念,然后對軟件測試過程中的配置管理和版本控制做出了詳細分析,論述了配置管理的流程练对、方法意義遍蟋。接著介紹了版本控制的評價標準,軟件測試過程中版本控制方法的應用及幾種版本控制軟件螟凭,最后闡述了在軟件測試過程中的版本控制的作用虚青,以及怎樣有效 的在軟件測試過程中進行軟件測試版本控制。

關鍵詞:軟件測試螺男;配置管理挟憔;版本控制;

1烟号、軟件測試的基本概念

在現(xiàn)代社會绊谭,隨著計算機時代的到來,計算機的應用已擴大深入到社會生活的方方面面汪拥,而隨著計算機技術和計算機軟件的不斷發(fā)展达传,軟件的規(guī)模日趨大型化和復雜化,致使軟件開發(fā)中的軟件測試工作變得越來越繁雜迫筑,工作量越來越大宪赶。為了更好的對軟件測試進行控制和管理,節(jié)約時間脯燃、人員搂妻、成本等,軟件測試中的配置 管理和版本控制隨之產生辕棚。對軟件測試中的資源如何調配欲主,人員如何配置管理和控制成為我們更加關心的問題。

對此逝嚎,為了理解軟件測試中的配置管理和版本控制扁瓢,我們先了解軟件測試的概念和意義。當我們清楚的認識到為軟件測試的作用和意義补君,我們才能更加清楚的認識到軟件測試過程中的配置管理和版本控制的重要性引几。

1.1 軟件測試的概念

軟件測試作為軟件開發(fā)過程中的重要組成部分,是用來確認一個程序的品質或者性能是否達到開發(fā)之前所提出的一些要求挽铁。換句話講伟桅,軟件測試就是為了發(fā)現(xiàn)程序中的錯誤而不得不進行并且不可避免必須要執(zhí)行的過程。

從一個軟件的立項之初叽掘,軟件測試工作就將開始楣铁,并且將會貫穿整個軟件開發(fā)過程。首先了解下測試人員的任務:尋找bug够掠,避免軟件開發(fā)過程中的缺陷民褂,衡量軟件的品質茄菊,關注用戶的需求疯潭。通過了解測試人員在測試過程中的任務赊堪,我們就會對軟件測試產生一個大概的了解。進行軟件測試工作的最終目的是什么呢竖哩?目的 其實只有一個就是要確保軟件的質量哭廉。滿足用戶的需要,使用戶對軟件質量產生足夠的信心相叁。

1.2 軟件測試的分類

軟件測試是一項復雜而又細致的工作遵绰,作為計算機科學的一門學科,它自有其獨到的作用和規(guī)則增淹。軟件測試從產生一直發(fā)展到如今椿访,已經擁有了很完善的軟件測試理論體系和知識概念體系。如今虑润,軟件測試大致分為功能性測試和性能測試成玫,其中又包括手工測試和自動化測試。隨著軟件測試工作的日益繁雜和工作量的加大拳喻,手工測試不再能夠滿足測試需求哭当,因而自動化測試越加顯得重要。我們之所以做這么多工作冗澈,都是為了檢驗程序是否滿足規(guī)格需求說明書钦勘,能否滿足用戶需求,或者 預期結果與實際結果之間的差別亚亲。通過了解軟件測試的分類彻采,我們知道軟件測試在軟件生命過程中的重要性和不可或缺性。

1.3 軟件測試的國內外現(xiàn)狀

為了了解軟件測試在國內外的現(xiàn)狀捌归,我們經過深入調查了解到颊亮,隨著軟件開發(fā)的日趨成熟,國內外的軟件企業(yè)逐步認識到軟件測試在軟件開發(fā)過程中的重要性陨溅。軟件測試受到國內外軟件企業(yè)越來越多的重視终惑,紛紛不約而同的加大了對軟件測試的投入。我們先看兩組數(shù)據门扇,2007年中國軟件企業(yè)對軟件測試的投入為:1% 一下:24%雹有;1%-5%:34%;5%-10%:22%臼寄;10%-30%:16%霸奕;30%以上:4%。我們再從微軟的項目人員比例上 看:Windows200 Team:程序經理 450吉拳,開發(fā)人員 900质帅, 測試人員 1800,技術支持人員 600, 技術傳播人員 1120煤惩,本地化人員 110嫉嘀,培訓人員 115,文檔人員 100魄揉,市場人員 100剪侮, 內部IT50,合計5345洛退。仔細分析對比這兩組數(shù)據瓣俯,從中我們可以看出,國內外軟件企業(yè)對軟件測試的重視程度兵怯,他們不惜將大量的資金彩匕,人力物力投入其中。國內外的軟件企業(yè)之所以如此重視軟件測試媒区,原因只有一個那就是軟件測試已成為軟件開發(fā)過程中不可或缺的一部分推掸。假如軟件開發(fā)過程中離開了軟件測試,我們可以想象后果將會有多么的嚴重驻仅。首先我們無法保證軟件的質量谅畅,也無法保證軟件是否滿足用戶的需求,也無法保證我們程序的可用性噪服。在軟件開發(fā)中如果不進行軟件測試毡泻,很可能使我 們的程序成為鏡中花水中月,不可實現(xiàn)粘优。唯有充分了解軟件測試在軟件開發(fā)過程中的重要性仇味,我們才能更加重視軟件測試工作。

了解了軟件測試在軟件開發(fā)過程中的作用和意義雹顺,以及國內外對軟件測試的重視程度和資源投入對比丹墨,為了保證軟件質量,使我們的軟件更加符合用戶需求嬉愧,我們應當思考如何更好地進行軟件測試贩挣,在軟件企業(yè)投入了足夠的人力物力等資源之后,怎樣利用這些資源來更好的進行軟件測試工作自然成為了我們應該思考的問 題没酣。

2王财、軟件測試的測試配置管理

2.1 進行測試配置管理的必要性

在擁有了足夠的資源和人力之后,我們能否認為軟件測試工作可以很好的進行并且能夠保證軟件測試過程不會出現(xiàn)問題呢裕便?也許我們認為只要需要的測試條件滿足了绒净,我們就可以圓滿的完成測試工作了,其實這樣的觀點是錯誤的偿衰。軟件測試工作是由人來進行的挂疆,因而首先要考慮到人的問題改览,一項工作只要有人的參與,就必須要將人的因素考慮進去缤言。人無完人宝当,金無足赤,測試人員對軟件測試工作造成的負面影響在軟件測試中是不能夠忽略的墨闲。軟件是由人來編寫實施的,但是軟件開發(fā)又是一個極其容易產生錯誤的復雜過程郑口,因其產生就注定了它不會是一個簡單的過程鸳碧。盡管程序員和軟件工程師等為了完善軟件而做出了巨大的努力和工作,但是軟件錯誤仍然是不可避免的犬性。世上不存在百分百完美的軟件瞻离,因此軟件過程中的軟件錯誤是不可避免的,這是他自身的一種特性乒裆。我們所能做的就是盡量減少軟件中的 錯誤套利,爭取做到使這些錯誤可以忽略不計,或者盡量不影響我們的正常使用鹤耍。給定了足夠的資源之后肉迫,我們再進行軟件測試工作,這時仍然不能認為沒有問題了稿黄,還需要在軟件測試時進行配置管理喊衫。在軟件測試中缺少了測試的配置管理我們是做不好測試工作的。我們進行軟件測試就是為了以最少的時間杆怕,最少的人力物力去盡可能多的發(fā)現(xiàn)軟件中潛藏著的各種錯誤和缺陷族购。但是伴隨著軟件測試工作量的加大,軟件企業(yè)僅僅投入更多的人力物力以及其他各種資源是不夠的陵珍,他們還需要思考除 此之外怎樣才能更好的進行軟件測試寝杖。為了更好的進行軟件測試,我們應該對測試人員互纯、測試環(huán)境瑟幕、生產環(huán)境進行配置管理。只有建立了完整的合理的軟件測試配置 管理體系留潦,軟件測試工作才能更好的進行收苏,更加完美的完成測試目標。

如果在軟件測試過程中缺少了測試配置管理將會造成及其嚴重的后果。據我們實際調查了解到,在日常的軟件研發(fā)工作中拼余,很多軟件企業(yè)都會或多或少的在軟件測試時遇到很多的問題奕删,而這些問題的產生都是因為在測試過程中缺乏配置管理流程和工具。因為人員具有頻繁的流動性搜吧,并且在組織的過程中會產生知識和財富的流失娩梨,再加上現(xiàn)代社會的激烈競爭碟渺,如果一個企業(yè)沒有設計配置管理流程和使用必要的配置管理工具肛冶,就可能會因此而造成無可估量的損失街氢,甚至導致整個軟件項目的崩潰。因而作為一個軟件企業(yè)睦袖,必須要做到及時了解項目的進展狀況珊肃,對項目進行管理,遇到突發(fā)狀況的解決馅笙。軟件工程思想發(fā)展到現(xiàn)在伦乔,認為在軟件過程中如果能夠越早的發(fā)現(xiàn)缺陷和風險,這時只要采取相應的措施董习,所要付出的代價就越小烈和。缺乏配置管理流程的一個很明顯之處就是測試過程中缺乏并發(fā)執(zhí)行的手段,沒有了配置管理的支持皿淋,軟件過程中的并發(fā)執(zhí)行將會變得十分的困難招刹。這時往往會造成修改過的bug重復出現(xiàn),又或者幾個人員進行相同的測試工作和進程窝趣,從而產生不必要的浪費疯暑。如果企業(yè)不能很清晰很流暢的對整個軟件測試過程進行管理,就會造成測試工作的不同步哑舒,不一致缰儿。在測試工作中需要測試人員完成的沒有完成,而暫時不需要或者以后在完成的卻首先完成了散址,這樣會增加測試工作的復雜性和難度乖阵,因此我們需要在軟件測試中進行配置管理。

2.2 測試配置管理的方法和內容

既然測試配置管理在軟件測試中如此重要预麸,企業(yè)該如何進行測試配置管理呢瞪浸。我們首先簡單談談軟件測試的測試配置管理體系。它一般由兩種方法構成:那就是應用過程方法和系統(tǒng)方法吏祸。意思就是在測試過程中对蒲,我們應該把測試管理這塊單獨作為一個系統(tǒng)去對待。識別并且管理組成這個系統(tǒng)的每個過程贡翘,從而實現(xiàn)在測試工作開始之初設定的目標蹈矮。在上面的基礎之上,我們還要做到使這些過程在測試工作中能夠協(xié)同作用鸣驱,互相促進泛鸟,最終使他們的總體作用更大。在軟件測試配置管理中的主要目標是在設定的條件限制下踊东,企業(yè)應當盡最大的努力去發(fā)現(xiàn)和排除軟件缺陷北滥。測試配置管理其實是包含在軟件配置管理中的刚操,是軟件配置管理的子集。測試配置管理作用于軟件測試的各個階段再芋,貫穿于整個測試過程之中菊霜。它的管理對象包括以下內容:測試方案,測試計劃或者測試用例济赎,測試工具鉴逞,測試版本,測試環(huán)境以及測試結果等司训。這些就構成了軟件測試配置管理的全部內容构捡。

2.2.1 測試配置管理的目標和階段

現(xiàn)在我們了解軟件測試配置管理的目標:第一步是在測試過程中控制和審計測試活動的變更,第二步是在測試過程中隨著測試項目的里程碑豁遭,同步建立相應的基線叭喜;第三步是在測試過程中記錄并且跟蹤贺拣,測試活動過程中的變更請求蓖谢;第四步是在測試過程中針對相應的軟件測試活動或者產品,測試人員應將他們標識為被標識 和控制并且是可用的譬涡。

軟件測試配置管理的階段:第一階段為需求階段:我們要進行客戶需求調研和軟件需求分析闪幽;第二階段為設計階段:在這個階段我們要進行概要設計和詳細設計工作;第三階段為編碼階段:這時我們主要進行的工作是編碼涡匀;第四個階段是測試和試運行階段:在這個階段我們要進行:單元測試盯腌,用戶手冊編寫,集成測試陨瘩,系 統(tǒng)測試腕够,安裝培訓,試運行和安裝運行這些工作舌劳;第五階段也就是最后一個階段是正式運行及維護階段:這是要做的是對產品進行發(fā)布和不斷的維護帚湘。

圖2.1 配置管理階段示意圖

在軟件測試的過程中會產生很多東西,比如測試的相關文檔和測試各階段的工作成果甚淡,這些包括測試計劃文檔大诸,測試用例,還有自動化測試執(zhí)行腳本和測試缺陷數(shù)據等贯卦。為了以后可能的查閱和修改资柔,我們應該將這些工作成果和文檔保存起來。

2.2.2 測試配置管理的過程管理

了解了軟件測試過程中配置管理的目標和階段撵割,接下來就應該進行軟件測試配置過程管理了贿堰。他的配置管理過程包括:

(1)建立配置變更控制委員會:配置控制委員會(CCB)應該要做到對項目的每個方面都有所了解,并且CCB這個團體不應該由選舉產生啡彬,它的人員構成包括主席和顧問官边,在軟件研發(fā)中每一個項目組都必須建立CCB作為變更權威沸手。

(2)SCM庫的建立和使用:我們要求在每一個項目過程中都要維護一個軟件配置管理庫。在項目中通過使用配置管理工具注簿,簡稱(VSS)契吉,企業(yè)通過該工具在配置管理服務器之上,建立和使用軟件配置管理庫诡渴。這些操作有助于在技術和管理這兩個方面對所有的配置項進行控制捐晶,并且對他們的發(fā)布和有效性也能起到控制作用。同時還有很重要的一點就是我們應該對SCM庫進行備份妄辩。這樣做的目的是為了在產生意外或者風險時惑灵,能夠作為保存災難恢復備份的副本。

(3)配置狀態(tài)報告:配置狀態(tài)報告是軟件測試配置管理過程中的一項重要的活動眼耀,在軟件測試配置管理過程中英支,配置人員要管理和控制所有提交的產品,然后在有產品提交或者變更為完成時哮伟,配置人員要經過相應的質量檢查干花,這就是配置人員應該進行的工作。而在這之后楞黄,配置人員不但要將批準通過的配置項放入基線庫 中池凄。并且還要記錄配置項及其狀態(tài),編寫配置狀態(tài)說明和報告鬼廓。通過配置人員的這些工作來確保所有應該了解情況的組或者個人能夠及時的知道相關的信息肿仑。

(4)評審、審計和發(fā)布過程:為了保持SCM庫中內容的完整性和質量碎税,我們應該采取適當?shù)馁|量保證活動來應對SCM庫中各項的變化尤慰。以此來確保在基線發(fā)布之前能夠執(zhí)行審計活動,該活動包括這幾點:基線審計雷蹂,基線發(fā)布和產品構造伟端。

軟件測試過程中的配置管理就是由這些構成的。該過程不但提供給了我們良好的理論知識和清醒的認知萎河,還讓我們清楚的了解到軟件測試過程中應該進行的工作有哪些荔泳。要想研發(fā)出好的軟件需要進行好的軟件測試。而要想進行好的軟件測試虐杯,就需要我們掌握軟件測試過程中的配置管理玛歌,并且了解該怎么樣去運用它。只有對其有了深入的了解之后我們才能更好的進行軟件測試工作擎椰,運用科學而且標準的測試配置管理知識為軟件質量提供保障支子。 2.2.3 測試配置管理的主要參與人員及其分工

了解了配置管理的目標和階段以及如何進行軟件測試配置過程管理达舒,僅僅這些是不夠的值朋。有了這些知識叹侄,我們還不能夠對軟件測試進行完整的配置管理,不能憑借這些來有效的保障我們的軟件質量昨登。在這些基礎之上趾代,我們還需要對軟件測試配置管理中的角色進行分配和分工。唯有如此才能確保在軟件的開發(fā)和維護中丰辣,我們能夠使配置管理活動得到貫徹執(zhí)行撒强。因此在制定測試配置管理計劃和開展測試配置管理之前,我們首先要確定配置管理活動的相關人員以及他們的職責和權限笙什,下面 我們來詳細的了解配置管理過程中主要的參與人員和他們分職責分工飘哨。

(1)項目經理(PM,Project Manager)琐凭。項目經理作為整個軟件的開發(fā)以及整個軟件的維護活動的負責人芽隆,那么他的職責是什么呢?他的主要職責包括采納軟件測試配置控制委員會的建議统屈,對配置管理的各項活動進行批準胚吁,并且在批準之后還要控制它們的進程。項目經理的具體工作職責如下:首先制定項目的組織結構以及配置管理策略鸿吆;然后要批 準和發(fā)布配置管理計劃囤采;再然后要對項目起始基線和軟件開發(fā)工作里程碑進行制定述呐;最后要接受并審閱配置控制委員會的報告惩淳。

(2)配置控制委員會(CCB,Configuration Control Board)乓搬。該委員會的職責則是對配置管理的各項具體活動進行指導和控制思犁,并且為項目經理的決策提供建議。該委員會的具體工作職責如下:首先是要批準軟件基線的建立以及配置項的標志进肯;然后是制定訪問控制策略激蹲;再然后是建立、更改基線的設置江掩,和審核變更申請学辱;最后是根據配置管理員的報告從而決定相應的對策。

(3)配置管理員(CMO环形,Configuration Management Officer)策泣。根據制定的配置管理計劃執(zhí)行各項管理任務這就是配置管理員的職責,配置管理員要定期向CCB提交報告抬吟,同時還要列席CCB的例會萨咕,他的 具體工作職責如下:第一,對軟件配置管理工具進行日常管理與維護火本;第二危队,提交配置管理計劃聪建;第三,各配置項的管理與維護茫陆;第四金麸,執(zhí)行版本控制和變更控制方 案;第五簿盅,完成配置審計并提交報告钱骂;第六,對開發(fā)人員進行相關的培訓挪鹏;第七见秽,開發(fā)過程中存在的問題加以識別并制定解決方案。

(4)開發(fā)人員(Dev讨盒,Developer)解取。開發(fā)人員的職責為在了解了項目組織確定的配置管理計劃和相關規(guī)定之后,按照配置管理工具的使用模型來完成開發(fā)任務返顺。

只有在清晰的了解了軟件測試配置管理的概念禀苦,構成,原理和配置管理的人員及其分工之后遂鹊,企業(yè)才能去靈活的應用它振乏,在企業(yè)的軟件測試過程中去嚴格的執(zhí)行它,我相信一個企業(yè)只要做好這一步秉扑,就一定能夠做好軟件測試工作慧邮。從而保證軟件的質量,滿足用戶的需求舟陆。

2.3 測試配置管理的應用

下面我們以一個實際項目中的配置管理的例子來介紹項目中的配置管理應用误澳。我們用來示例的項目是電信的一個項目,項目人員為16人秦躯,項目周期為一年忆谓,前期主要為開發(fā)工測試工作,后期的主要是由維護人員進行系統(tǒng)維護和調整踱承。在整個項目正式啟動之前倡缠,配置管理工作就可以開始了。首先茎活,應該評估團隊當前的配置管理現(xiàn)狀:清楚了解測試團隊當前配置管理的現(xiàn)狀是計劃配置管理實施的基礎昙沦,評估團隊當前的配置管理現(xiàn)狀有兩種方法,一種是自己進行妙色,另外一種是引入外部專業(yè)咨詢人員來完成評估活動桅滋。有了評估的結果之后才能進行改進,因此,這項工作一定要做好丐谋。然后芍碧,定義實施的范圍,在經過了評估之后号俐,會找出很多的改進點泌豆,對于這些改進點,必須要花費大的精力來思考解決吏饿。還需要指定一個專門的人員就是配置管理員踪危。在一個建立了配置管理平臺的團隊中他負責掌控整個團隊的工作流 程和成果,要負責維護和管理配置管理系統(tǒng)猪落。有一個合格的配置管理員能夠為整個團隊的進度帶來極其良好的影響贞远。而在配置管理工作開始后的第一步就是一份配置管理計劃。一般而言笨忌,需要在配置管理計劃中明確的內容包括:1蓝仲、配置管理軟硬件資源;2官疲、配置庫結構袱结;3、人員途凫、角色以及配置管理規(guī)范垢夹;4、基線計 劃维费;5果元、配置庫備份計劃,6執(zhí)行配置審計掩完;下面我們來圍繞其中一些內容就行詳細描述:

配置管理環(huán)境:包括軟硬件環(huán)境噪漾。具體的資源需求應該根據項目實際情況來確定硼砰,一般需要考慮的包括:網絡環(huán)境且蓬、配置管理服務器的處理能力、空間需求题翰,配置管理軟件的選擇等恶阴。配置管理環(huán)境的確定需要綜合考慮各個方面的因素,包括我們采用的工具豹障,人員對配置管理工具的熟悉程度等冯事,同時,配置管理軟件和測試工具的集成程度也是一個必須考慮的因素血公,根據我們的經驗昵仅,選擇一個和測試環(huán)境集成緊密的配置管理工具至少可以減少20%花費在Check In/Check Out和配置管理人員保持配置庫完整上的工作量。

然后是配置管理工具的選擇:從測試人員具有的配置管理工具使用經驗和配置管理工具使用的難易度方面來說,VSS是最好的選擇摔笤,在現(xiàn)有的基礎上只需要對測試人員進行簡單培訓够滑;考慮到和測試工具的集成,VSS也是一個不錯的選擇吕世。不過本項目還要求對遠程接入方式的支持彰触,以及對Solaris平臺的支持,VSS肯定是不能滿足要求的(VSS通過VPN方式應該是可以實現(xiàn)對遠程訪問的支持命辖,但VSS的完全共享方式實在是不敢在Internet上使用)况毅。 除VSS外,可以選擇的配置管理工具還有CCC Harvest尔艇、ClearCase尔许、CVS等,但Harvest和ClearCase使用起來比較復雜终娃,需要一個專門的配置庫管理員負責技術支持母债,還需 要對測試人員進行較多的培訓。

最后是配置庫維護和備份計劃:配置庫的維護的備份需要專職的配置庫管理員來負責尝抖。在整個項目中我們采用的配置庫維護策略是根據Microsoft的 Best Practice白皮書建議毡们,包括以下要點:1.保持配置數(shù)據庫的大小不超過5G;Microsoft建議昧辽,配置庫的大小在3-5G比較合適衙熔,太大的數(shù)據 庫會極大影響VSS的效率;2.每周進行VSS數(shù)據庫的分析(Analysis)搅荞,發(fā)現(xiàn)問題及時修正红氯;VSS提供了Analysis和Fix工具,由于不 合理的Delete等操作咕痛,VSS數(shù)據庫有可能會出現(xiàn)一些Interrupt Data之類的問題痢甘,通過定期的每周的分析工作,可以極大減少數(shù)據庫出現(xiàn)問題的風險茉贡;3.每日進行配置庫的增量備份塞栅,每周進行數(shù)據庫的完全備份;VSS庫的備份可以通過VSS自己的Archive功能或者是操作系統(tǒng)的Backup程序來進行腔丧。VSS的Archive功能對VSS中的文件數(shù)據進行壓縮并保留 VSS的所有狀態(tài)放椰,但只能對VSS庫進行完全備份,不能實現(xiàn)增量備份功能愉粤。Windows2000 Server提供的Backup實用程序可以對文件進行備份砾医,由于VSS庫就是以文件形勢存在的,因此針對VSS的data目錄進行備份也可以完全達到備 份的目的衣厘,使用系統(tǒng)備份工具的好處是可以實現(xiàn)增量備份如蚜。我們在實際中使用的系統(tǒng)的備份工具,每周五生成的完全備份采用刻錄光盤的方式保存,每天的增量備份 數(shù)據存放在文件服務器上進行備份错邦。

3涎显、軟件測試的測試版本控制

3.1 測試版本控制的必要性

通過上面我們對軟件測試的配置管理有了詳細的了解,此外我們還需要了解配置管理中的一方面兴猩,那就是軟件測試過程中的版本控制期吓,這同樣也是軟件測試過程中不可缺少的一部分。很多人不了解軟件測試過程中的版本控制倾芝,甚至認為軟件測試不需要版本控制讨勤。這種想法是錯誤的,在軟件測試中也同樣需要版本控制晨另,這是軟件測試中不能缺少的一部分潭千。如果測試組長或者測試人員不對軟件測試進行版本控制,那么這樣帶來的危害也是顯而易見的借尿。軟件測試過程中如果缺乏版本控制刨晴,我們很難保證測試進度和測試的一致性。我們知道在進行測試工作時路翻,很容易出現(xiàn)的是出現(xiàn)冗余這一問題狈癞,這樣很容易導致本地版本和服務器版本的不一致,軟件測試過程中缺乏版本控制就會造成上面這些問題茂契。由此可見蝶桶,軟件測試是離不開版本控制的。在測試過程中適合的版本控制可以有效的提高開發(fā)和測試效率掉冶,消除很多 由于版本帶來的問題真竖,并且可以確保在軟件開發(fā)和測試過程中,能夠及時并且正確的更新不同的人員所涉及的同一文檔厌小。

3.1.1 測試版本控制的概念

軟件測試的版本控制簡單的說就是對測試有明確的標識恢共、說明、并且測試版本的交付是在項目管理人員的控制之下璧亚。用來識別所用版本的狀態(tài)就是對測試版本的標識讨韭,對不同的版本進行編號,軟件質量穩(wěn)定度趨勢的反映也可以由測試的版本控制體現(xiàn)涨岁。版本控制是軟件測試的一門十分實用的實踐性技術拐袜,將各次的測試行為以文件的形式進行記錄,并且對每次的測試行為進行編號梢薪,標識公布過的每一個測試版本,以此來進行測試排序尝哆,比如將最初的版本標識為1秉撇,經過測試后,之后的版本依次標識為2,3琐馆,4等等规阀。

圖3.1 Linux下的版本控制

圖3.2 Git版本控制

3.1.2 測試版本控制的作用

軟件測試的版本控制有兩個方面的作用:一個方面是標記歷史上產生的每個版本的版本號和測試狀態(tài),另一個方面是保證測試人員得到的測試版本是最新的版本瘦麸。所謂版本控制其實就是跟蹤標記測試過程中的軟件版本谁撼,以方便對比的一個過程,通過版本控制來表明各個版本之間的關系滋饲,和不同的軟件開發(fā)測試階段厉碟。從而 方便測試工作的進行。版本控制是測試人員不可缺少的一種技術屠缭。有了軟件測試的版本控制箍鼓,測試人員在軟件測試工作可以更加高效并且有針對性的進行。3.1.3 如何做好測試版本控制

軟件測試版本控制其實是在軟件測試中為了便于追溯和跟蹤問題而出現(xiàn)的呵曹,對測試版本的控制實際上就是對軟件測試過程中的各種測試行為的管理和控制款咖。軟件測試的版本控制,主要是指對于測試對象的版本控制奄喂,也就是指測試小組在軟件測試過程中對開發(fā)部提交給測試部門的產品進行版本控制铐殃。如果開發(fā)小組不能夠規(guī)范的管理軟件版本,那么這時候測試小組對于產品進行版本控制就將顯得十分重要跨新,這時軟件測試小組要保證測試對象的可控性被限制在我們可以控制的范圍之內背稼。對此,我們建議開發(fā)小組和測試小組要做到如下要求:兩個小組不但分工明確玻蝌,還要協(xié)商出一個明確的約定蟹肘,指定專門的測試版本負責人來專門負責版本控制這一塊, 讓這個負責人去制定版本控制的提交原則俯树,在軟件研發(fā)過程中對提交的情況要進行詳細的記錄帘腹,通過這些措施,這樣就能在基本上對因為版本失控可能造成的測試失 誤或者無效加以避免许饿。

舉一個軟件測試項目中版本控制的例子阳欲,一個公司的員工負責了一個軟件測試項目,在項目開展初期陋率,該項目的測試工作進行的還算順利球化。但是在測試后期工作即將結束時,卻出現(xiàn)了問題瓦糟。而這個問題的出現(xiàn)正是由于版本控制不當筒愚,在這個軟件測試項目中,他們將測試過程中發(fā)現(xiàn)的bug提交給開發(fā)人員菩浙,開發(fā)人員在對測試人員提交的bug進行修改巢掺,在對這些bug修改后開發(fā)人員會將修改后的代碼放入當前的軟件版本之中句伶,問題正是出現(xiàn)在這個階段。那么為什么問題會出現(xiàn)在這 個階段呢陆淀?其實是因為對于修改過的代碼考余,我們不能夠保證他們一定是正確的,很可能在開發(fā)人員修改過之后轧苫,仍然是錯誤的楚堤,或者在修改過之后仍然會給軟件帶來 別的問題,這種情況下就會給軟件測試人員的測試工作帶來新的麻煩含懊。這樣就會造成一個很嚴重的后果身冬,那就是測試人員對開發(fā)人員提交的新代碼會很緊張,不能徹底放心绢要,測試人員對新提交的新修正的代碼還要在進行驗證吏恭,進行排錯,來確保不會因此而帶來新的隱患重罪,新的漏洞樱哼。在這個時候我們就應該思考怎樣去解決這個問題了,這時我們就可以嘗試一下軟件測試的版本控制了剿配。首先測試人員要測試開發(fā)人員提交的代碼搅幅,將測試過程中查找到的bug進行提交。而當測試人員提交的bug到了開發(fā)人員手中之后呼胚,開發(fā)人員要針對這些bug進行修復工作茄唐,并且將修改后的代碼放入程序中,作為新的軟件版本蝇更。但是絕對不能將它再放回到現(xiàn)在正在進行的測試版本中沪编。而測試人員在完成這一輪的測試工作后,在對新的版本也就是對經過開發(fā)人員修改過得下一個版本展新一輪的測試年扩。而這就是軟件測試過程中 的版本控制蚁廓。

3.1.4 缺乏測試版本控制的危害

軟件測試缺乏測試版本控制會帶來很多危害:隨著計算機軟件技術的日趨成熟和日益復雜。現(xiàn)代的軟件產品規(guī)模越來越大厨幻,結構越來越復雜相嵌。單純的手工測試不再能夠滿足軟件工程中的測試需要。一兩個人完成一個項目的測試工作的時代不復存在况脆,一個大型項目的測試工作饭宾,現(xiàn)在都是由很多測試人員參與并且有不同的分工,以團隊合作流水線式的方式來開展工作的格了,他們在測試過程中是協(xié)同完成測試工作的看铆。在進行測試的時候,同一個板塊的測試會由很多人共同負責笆搓,他們將會分配到同樣的任務性湿。在這么多人完成同一板塊的過程中纬傲,企業(yè)怎樣去保證每個人的測試工作對軟件產生的影響能夠綜合到一起產生好的作用满败。而不是因為人員的差異而對測試版本造成不一致性呢肤频?運用軟件測試中的版本控制就成為此時有效地解決途徑,有效的版本控制能夠很好的解決這些問題算墨,并對軟件的開發(fā)進行產生好的積極的影響宵荒。但是如果版本控制不當則會造成很多讓人搞到棘手的問題。

(1)缺乏版本控制净嘀,將難以保證測試進度

大多數(shù)的測試人員都希望他們進行的測試工作是完美的报咳,經過他們測試后的軟件更是完美無缺的。這種想法是好的挖藏,但是一個軟件在它的整個生命過程中是不可能完美到沒有一點錯誤存在的暑刃,我們只能盡我們所能去不斷地完善它。這時如果能夠提供有效的版本控制就會極大地提高軟件測試的工作效率膜眠。在測試中對測試版本進行版本控制時岩臣,我們起碼要做到能夠掌握軟件過程中的每個版本。在每個版本中宵膨,我們能夠找到哪些功能不過關架谎,哪些功能沒問題。對于新的測試版本不管在測試工作中的哪個時間段辟躏,都應該有一個可以用來比較的對象谷扣。并且能夠與之前的版本進行對比。

(2)缺乏版本控制捎琐,難以保證測試的一致性

軟件測試工作因為十分復雜并且有很多人員參與其中会涎,在進行測試工作時,因為測試人員的分工不同瑞凑,不同的測試人員要負責不同的測試模塊末秃。但是因為軟件有其整體性,所以測試人員要互相協(xié)作拨黔,那么在測試過程中則必然會產生交叉蛔溃。所以測試工作是一項十分復雜的工作,它是由很多人一起共同協(xié)作完成的篱蝇。在整個測試中為了保證測試過程中的一致性我們必須要找到一個平衡點贺待。而大量的實踐證明如果進行有效的版本控制,將有效保證測試過程中的一致性零截,大大的降低因為缺乏版本控制或者流程管理可能帶來的諸多問題麸塞。

(3)測試版本冗余,易出現(xiàn)誤用風險

因為有眾多測試員參與到軟件測試過程中涧衙,而進行測試工作時每個人都必須使用一臺機器哪工,那么在每個人的機器上都要拷貝一個待測軟件奥此。隨著測試工作的進行,在測試過程中會不斷產生新的軟件版本雁比,為了測試需要稚虎,每個人的機器上都要不斷更新軟件版本,那么每個人的電腦上必然會保存不同時期的軟件版本偎捎。而這些不同的測試版本隨著時間的推移和測試工作的復雜很容易混雜在一起蠢终,造成測試人員無法分清每個版本之間的差異,甚至分不清對于當前版本應該做什么事情茴她,從而給測試工作帶來極大的困擾寻拂,出現(xiàn)版本的冗余。這時丈牢,如果缺乏有效的測試版本控制就會增大測試風險祭钉,給測試工作帶來麻煩。

(4)容易導致本地版本和服務器版本不一致

因為測試版本的眾多和混亂己沛,測試小組在測試工作上不但要花費更多的時間和精力慌核,還可能造成不必要的重復性測試和不必要性測試,當測試版本不及時更新時泛粹,會造成測試版本和現(xiàn)行版本的不一致遂铡,這些就是缺乏版本控制和管理的結果。因而加強測試過程中的版本控制是一項很重要的工作晶姊。(5)缺乏測試文檔可追溯性

版本控制在提供可追溯性的文件的同時還能夠為各種測試版本提供文檔管理支持扒接。使我們能夠很方便的隨時查閱在軟件測試過程中生成的各種文檔。

3.2 測試版本控制方法及工具解析

3.2.1 測試版本控制的方法

有效的版本控制能夠極大的方便軟件測試工作们衙,提高測試工作的效率钾怔,那么我們如何才能成功的進行版本控制呢?為此我們應該制定一套標準蒙挑,制定相應的版本控制方法規(guī)劃來規(guī)范化軟件測試的版本控制宗侦。方法如下:

(1)在軟件測試過程中制定規(guī)范的版本控制管理制度,明確整個測試中的測試需求忆蚀,選擇合適的版本控制切入點矾利,把版本控制和測試里程碑結合到一起來實現(xiàn)階段性成果咨察,從而避免測試規(guī)劃過程混亂的風險捻悯。(2)通過制定合理版次規(guī)劃和監(jiān)控機制來進行版本控制,為了有效的管理測試項目所需的版本次數(shù)强缘,應該對測試工作量進行合理的評估欣鳖,以此來做出合理的版次規(guī)劃察皇。(3)我們不能忽略版本控制管理員在版本控制中的重要性,版本控制管理員在測試版本控制中的重要性是不 可估量的泽台,離開了版本控制管理員和缺乏版本控制的情況是等效的什荣。(4)我們還要做好版本控制的文檔管理矾缓,對相關文檔進行嚴格規(guī)范的管理,將測試過程中版本 控制產生的相關文檔記錄稻爬、標識是很重要的嗜闻,有了這些能夠很方便的跟蹤和監(jiān)控測試版本的執(zhí)行。(5)選擇合理的應用版本控制的軟件工具因篇,能夠極大的提高測試 工作的效率泞辐,大大提高測試活動的優(yōu)質性笔横。

3.2.2 版本控制工具解析

工欲善其事竞滓,必先利其器。介紹完了版本控制的方法和軟件測試中版本控制的重要性吹缔,要想方便的進行測試工作就必須進行有效的版本控制商佑,選擇一款好的測試 工具這時就顯得尤為重要。下面我就簡單介紹一種版本控制工具厢塘,同時它也是一種配置管理的工具茶没。那就是ClearCase。這是由RATIONAL公司開發(fā) 的一款配置管理工具晚碾。下面我來講解下ClearCase的四種功能:(1)控制任何文件的版本(Version Control)抓半,它能夠維護和控制軟件版本,有效的管理版本內容格嘁。(2)在版本樹中組織元件發(fā)展的過程(Workspace Management)笛求。針對目錄結構它可以定制一個版本樹的結構,并且其中包含多層分支和子分支糕簿。(3)對目錄和子目錄進行版本控制(Build Management)探入,比如:在其中建立一個新的文件夾,或者對文件名進行修改懂诗,又或者新建子目錄或者在不同的目錄間移動文件等蜂嗽。(4)明確項目設計的流程(Process Control)。比如:可以通過將不同的權限授權給全體人員來阻止某些修改的發(fā)生殃恒,立刻通知團隊成員任何時刻某一事件的發(fā)生植旧,對開發(fā)的進程建立一個永久 記錄并不斷維護它。

3.3 測試版本控制應用

我們以一個實際項目中的例子來介紹項目中的版本控制离唐。在這個項目中病附,我們已經分好了測試小組及組內成員的分工,啟動軟件測試的條件已經具備侯繁,在開發(fā)人 員發(fā)布了測試版本后胖喳,有相應的文檔支持比如自測報告、軟件版本說明等等贮竟,然后啟動測試工作丽焊,其中在對其版本進行測試的過程中较剃,測試小組對項目進行版本控制 分以下幾步:第一,制定規(guī)范的版本控制管理制度技健,測試小組要了解和明確整個測試的需求写穴,選擇合適的版本控制切入點,對于測試中產生的測試版本要進行嚴格控 制雌贱,還要規(guī)范化的控制測試過程中產生的不同時期的測試版本啊送,通過把版本控制與測試里程碑的結合來實現(xiàn)階段性成果,以規(guī)避測試過程混亂的風險欣孤。第二馋没,應該制 定合理版次規(guī)劃和監(jiān)控機制,對測試項目所需的版次數(shù)量進行有效管理降传,并且對版次做出合理的規(guī)劃篷朵。在整個測試項目的關鍵位置要設立檢查點,要能根據版次規(guī)劃 隨時監(jiān)控版本更新婆排,及時發(fā)現(xiàn)問題声旺,并對出現(xiàn)的異常現(xiàn)象做出快速反應段只,這樣才能使得測試過程更加清晰和更有計劃性腮猖。第三,測試小組要指定版本控制管理員赞枕。測 試版本控制作為一個貫穿整個測試周期的一項活動澈缺,測試版本控制會涉及到很多的人員角色,其中最為主要的人力資源就是測試版本控制管理員鹦赎。在一個建立了良好 版本控制機制的測試團隊中測試版本控制管理員是十分重要的谍椅。他負責掌控整個測試過程的測試版本,要負責記錄和監(jiān)控測試中不同測試階段產生的測試版本古话。他的 地位是不可動搖的雏吭。有一個合格的測試版本控制管理員能夠為版本控制工作帶來極其良好的影響。最后是選擇一款合適的版本控制工具陪踩,在進行版本控制的過程中測 試小組選擇一款合適的測試版本控制軟件是不可缺少的杖们。常見的版本控制工具有CVS,SVN肩狂,Clearcase摘完,其中CVS 是一款開放源代碼軟件,其功能強大傻谁、跨平臺孝治、支持并發(fā)版本控制而且免費,所以它在中小型軟件企業(yè)中得到廣泛使用。但是它最大的遺憾就是缺少相應的技術支 持谈飒,許多問題的解決需要自己尋找資料岂座,甚至是研究源代碼。而SVN是對CVS的缺點進行改進產生的版本控制工具杭措,相比于CVS而言费什,SVN更為簡單易用, 且SVN有其特定平臺的客戶端工具手素。如TortoiseSVN鸳址,是為windows外殼程序集成到windows資源管理器和文件管理系統(tǒng)的SVN客戶 端,使用相當方便泉懦。最后一種版本控制工具Clearcase是Rational公司一款重量級的軟件配置管理工具稿黍。與CVS和SVN不同的 是,Clearcase涵蓋的范圍包括版本控制祠斧、建立管理闻察、工作空間管理和過程控制。Clearcase貫穿于整個軟件生命周期琢锋,支持現(xiàn)有的絕大多數(shù)操作 系統(tǒng),但它的安裝呢灶、配置吴超、使用相對較復雜,需要進行團隊培訓鸯乃。選擇一款合適的版本控制工具不但能夠提高測試工作效率鲸阻,而且也會大大提高測試活動的優(yōu)質性。

4缨睡、小結與展望

本文從對軟件測試概念的講解鸟悴,軟件測試工作的重要性講解開始,又通過國內外軟件企業(yè)軟件測試的現(xiàn)狀為切入點奖年,對軟件測試過程中必須要進行軟件測試配置 管理進行了講解和敘述细诸。詳細介紹了軟件測試配置管理的必要性和不可或缺性,并且詳細敘述了配置管理的概念陋守,過程和方法震贵,以此來保證軟件產品質量。又通過對 軟件測試過程中的版本控制進行講解水评,敘述了版本控制在軟件測試中的重要性猩系。同時對版本控制的概念,意義還有方式方法進行了論述中燥。講述了版本控制在軟件測試 以及整個軟件過程中的重要性寇甸。本文從軟件測試的配置管理和版本控制兩個方面,講述了如何有效的進行軟件測試工作來保證軟件的質量。 如果對軟件測試有興趣拿霉,想了解更多的測試知識式塌,可以加入我的QQ群 高級測試學習大家庭:652068511

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市友浸,隨后出現(xiàn)的幾起案子峰尝,更是在濱河造成了極大的恐慌,老刑警劉巖收恢,帶你破解...
    沈念sama閱讀 222,252評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件武学,死亡現(xiàn)場離奇詭異,居然都是意外死亡伦意,警方通過查閱死者的電腦和手機火窒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來驮肉,“玉大人熏矿,你說我怎么就攤上這事±攵郏” “怎么了票编?”我有些...
    開封第一講書人閱讀 168,814評論 0 361
  • 文/不壞的土叔 我叫張陵,是天一觀的道長卵渴。 經常有香客問我慧域,道長,這世上最難降的妖魔是什么浪读? 我笑而不...
    開封第一講書人閱讀 59,869評論 1 299
  • 正文 為了忘掉前任昔榴,我火速辦了婚禮,結果婚禮上碘橘,老公的妹妹穿的比我還像新娘互订。我一直安慰自己,他們只是感情好痘拆,可當我...
    茶點故事閱讀 68,888評論 6 398
  • 文/花漫 我一把揭開白布仰禽。 她就那樣靜靜地躺著,像睡著了一般错负。 火紅的嫁衣襯著肌膚如雪坟瓢。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,475評論 1 312
  • 那天犹撒,我揣著相機與錄音折联,去河邊找鬼。 笑死识颊,一個胖子當著我的面吹牛诚镰,可吹牛的內容都是我干的奕坟。 我是一名探鬼主播,決...
    沈念sama閱讀 41,010評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼清笨,長吁一口氣:“原來是場噩夢啊……” “哼月杉!你這毒婦竟也來了?” 一聲冷哼從身側響起抠艾,我...
    開封第一講書人閱讀 39,924評論 0 277
  • 序言:老撾萬榮一對情侶失蹤苛萎,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后检号,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體腌歉,經...
    沈念sama閱讀 46,469評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,552評論 3 342
  • 正文 我和宋清朗相戀三年齐苛,在試婚紗的時候發(fā)現(xiàn)自己被綠了翘盖。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,680評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡凹蜂,死狀恐怖馍驯,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情玛痊,我是刑警寧澤汰瘫,帶...
    沈念sama閱讀 36,362評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站卿啡,受9級特大地震影響吟吝,放射性物質發(fā)生泄漏。R本人自食惡果不足惜颈娜,卻給世界環(huán)境...
    茶點故事閱讀 42,037評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望浙宜。 院中可真熱鬧官辽,春花似錦、人聲如沸粟瞬。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽裙品。三九已至俗批,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間市怎,已是汗流浹背岁忘。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留区匠,地道東北人干像。 一個月前我還...
    沈念sama閱讀 49,099評論 3 378
  • 正文 我出身青樓帅腌,卻偏偏與公主長得像,于是被迫代替她去往敵國和親麻汰。 傳聞我的和親對象是個殘疾皇子速客,可洞房花燭夜當晚...
    茶點故事閱讀 45,691評論 2 361

推薦閱讀更多精彩內容

  • 文章來自:http://blog.csdn.net/mj813/article/details/52451355 ...
    好大一只鵬閱讀 9,193評論 2 126
  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn)五鲫,斷路器溺职,智...
    卡卡羅2017閱讀 134,711評論 18 139
  • 軟件配置管理 軟件配置管理 (Software Configuration Management, SCM) 問題...
    厲鉚兄閱讀 8,596評論 2 14
  • 1.測試與軟件模型 軟件開發(fā)生命周期模型指的是軟件開發(fā)全過程、活動和任務的結構性框架位喂。軟件項目的開發(fā)包括:需求浪耘、設...
    Mr希靈閱讀 21,965評論 7 278
  • 1.問:你在測試中發(fā)現(xiàn)了一個 bug ,但是開發(fā)經理認為這不是一個 bug 忆某,你應該怎樣解決点待。 首先,將問題提...
    qianyewhy閱讀 9,270評論 4 123