一、概述
在軟件生命周期中的任何一個階段,只要軟件發生了改變,就可能給該軟件帶來問題。軟件的改變可能是源于發現了錯誤并做了修改,也有可能是因為在集成或維護階段加入了新的模塊。當軟件中所含錯誤被發現時,如果錯誤跟蹤與管理系統不夠完善,就可能會遺漏對這些錯誤的修改;而開發者對錯誤理解的不夠透徹,也可能導致所做的修改只修正了錯誤的外在表現,而沒有修復錯誤本身,從而造成修改失;修改還有可能產生副作用從而導致軟件未被修改的部分產生新的問題,使本來工作正常的功能產生錯誤。同樣,在有新代碼加入軟件的時候,除了新加入的代碼中有可能含有錯誤外,新代碼還有可能對原有的代碼帶來影響。因此,每當軟件發生變化時,我們就必須重新測試現有的功能,以便確定修改是否達到了預期的目的,檢查修改是否損害了原有的正常功能。同時,還需要補充新的測試用例來測試新的或被修改了的功能。為了驗證修改的正確性及其影響就需要進行回歸測試。
二、回歸測試的流程
1.在測試策略制定階段,制定回歸測試策略
2.確定回歸測試版本
3.回歸測試版本發布,按照回歸測試策略執行回歸測試
4.回歸測試通過,關閉缺陷跟蹤單
5.回歸測試不通過,缺陷單返回開發人員.等重新修改,再次做回歸測試.
每當一個新的模塊被當作集成測試的一部分加進來的時候,軟件就發生了改變。新的數據流路徑建立起來,新的I/O 操作可能也會出現,還有可能激活了新的控制邏輯。這些改變可能會使原本工作得很正常的功能產生錯誤。在集成測試策略的環境中,回歸測試是對某些已經進行過的測試的某些子集再重新進行一遍,以保證上述改變不會傳播無法預料的副作用。
在更廣的環境里,(任何種類的)成功測試結果都是發現錯誤,而錯誤是要被修改的,每當軟件被修改的時候,軟件配置的某些方面(程序、文檔、或者數據)也被修改了,回歸測試就是用來保證(由于測試或者其他原因的)改動不會帶來不可預料的行為或者另外的錯誤。
回歸測試可以通過重新執行所有的測試用例的一個子集人工地進行,也可以使用自動化的捕獲回放工具來進行。捕獲回放工具使得軟件工程師能夠捕獲到測試用例,然后就可以進行回放和比較;貧w測試集(要進行的測試的子集)包括三種不同類型的測試用例:
能夠測試軟件的所有功能的代表性測試用例。
專門針對可能會被修改影響的軟件功能的附加測試。
針對修改過的軟件成分的測試。
在集成測試進行的過程中,回歸測試可能會變得非常龐大。因此,回歸測試應當設計為只對出現錯誤的模塊的主要功能進行測試,每當進行一個修改時,就對每一個程序功能都重新執行所有的測試是不實際的而且效率很低的。
三、回歸測試的策略
回歸測試是貫穿在整個測試的各個階段的一個測試活動。它的目的是檢驗已經被發現的缺陷有沒有被正確的修改和修改過程中有沒有引發新的缺陷。軟件在測試或者其他活動中發現的缺陷經過修改后,都要進行回歸測試的驗證。在做回歸測試的時候可以采用不同的策略。
策 略(1) 可以選擇完全重復測試。把所有的測試用例,全部再完全的執行一邊,以確認問題修改的正確性和修改后周邊是否受到影響。
缺點是由于要把用例全部執行,所以會增加項目成本,也會影響項目進度。所以很難來完全執行,所以引出了回歸測試策略(2) 選擇性重復測試。
策 略(2) 可以選擇性重復測試?梢赃x擇一部分進行執行,以確認問題修改的正確性和修改后周邊是否受到影響。那么我們怎樣去選擇用例呢?這里有三個方法:1.覆蓋修 改法 針對發生錯誤的模塊,選取這個模塊的全部用例進行測試.這樣只能驗證本模塊是否還存在缺陷,但不能保證周邊與它有聯系的模塊不會因為這次改動而引發 缺陷.所以引出第2個方法,即2.周邊影響法.除了把出錯模塊的用例執行之外,把周邊和它有聯系的模塊的用例也執行一邊,保證回歸測試的質量.當然我們還 可以用量化的角度去分析模塊的質量,比如:經過上面的一系列回歸測試后,看看遺留的缺陷率是否已經在允許的范圍之內了,那么我們以此為標準可以結束本次回 歸測試.也就是我要提到的第三個方法。常笜诉_成法
四、回歸測試實踐
在實際工作中,回歸測試需要反復進行,當測試者一次又一次地完成相同的測試時,這些回歸測試將變得非常令人厭煩,而在大多數回歸測試需要手工完成的時候尤其如此,因此,需要通過自動測試來實現重復的和一致的回歸測試。通過測試自動化可以提高回歸測試效率。為了支持多種回歸測試策略,自動測試工具應該是通用的和靈活的,以便滿足達到不同回歸測試目標的要求。
在測試軟件時,應用多種測試技術是常見的。當測試一個修改了的軟件時,測試者也可能希望采用多于一種回歸測試策略來增加對修改軟件的信心。不同的測試者可能會依據自己的經驗和判斷選擇不同的回歸測試技術和策略。
回歸測試并不減少對系統新功能和特征的測試需求,回歸測試包應包括新功能和特征的測試。如果回歸測試包不能達到所需的覆蓋要求,必須補充新的測試用例使覆蓋率達到規定的要求。
回歸測試是重復性較多的活動,容易使測試者感到疲勞和厭倦,降低測試效率,在實際工作中可以采用一些策略減輕這些問題。例如,安排新的測試者完成手工回歸測試,分配更有經驗的測試者開發新的測試用例,編寫和調試自動測試腳本,做一些探索性的或ad hoc測試。還可以在不影響測試目標的情況下,鼓勵測試者創造性地執行測試用例,變化的輸入、按鍵和配置能夠有助于激勵測試者又能揭示新的錯誤。
在組織回歸測試時需要注意兩點,首先是各測試階段發生的修改一定要在本測試階段內完成回歸,以免將錯誤遺留到下一測試階段。其次,回歸測試期間應對該軟件版本凍結,將回歸測試發現的問題集中修改,集中回歸。
在實際工作中,可以將回歸測試與兼容性測試結合起來進行。在新的配置條件下運行舊的測試可以發現兼容性問題,而同時也可以揭示編碼在回歸方面的錯誤。
文章來源于領測軟件測試網 http://www.kjueaiud.com/