回歸測試的目的是在程序有修改的情況下保證原有功能正常的一種測試策略和方法,因為這時的測試不需要進行全面測試,從頭到尾測一遍,而是根據修改的情況進行有效測試。程序在發現嚴重軟件缺陷要進行修改或版本升級要新增功能,這時需要對軟件進行修改,修改后的程序要進行測試,要檢驗對軟件所進行的修改是否正確,保證改動不會帶來新的嚴重錯誤。這里所說的關于軟件修改的正確性有兩層含義:

  ● 所做的修改達到了預定的目的,如錯誤得到了改正,新功能得到了實現,能夠適應新的運行環境等。

  ● 不影響軟件原有功能的正確性。

  在軟件生命周期中的任何一個階段,只要軟件發生了改變,可能給該軟件帶來新的問題。軟件的改變可能是源于發現了缺陷并做了修改,也有可能是因為在集成或維護階段加入了新的功能或增強原有的功能而引發。當軟件中所含錯誤被發現時,如果錯誤跟蹤與管理系統不夠完善,可能會遺漏對這些錯誤的修改;而開發者對錯誤理解的不夠透徹,也可能導致所做的修改只修正了錯誤的外在表現,而沒有修復錯誤本身,從而造成修改失;修改還有可能產生副作用從而導致軟件未被修改的部分產生新的問題,使本來工作正常的功能產生錯誤;同樣,在有新代碼加入軟件的時候,除了新加入的代碼中有可能含有錯誤外,新代碼還有可能對原有的代碼帶來影響。因此,每當軟件發生變化時,必須重新測試現有的功能,以便確定修改是否達到了預期的目的,檢查修改是否損害了原有的正常功能。同時,還需要補充新的測試用例來測試新的或被修改了的功能。

  回歸測試作為軟件生命周期的一個組成部分,在整個軟件測試工作量中占有很大的比重,軟件開發的各個階段都可能需要進行多次回歸測試。在漸進和快速迭帶開發中,新版本的連續發布使回歸測試進行的更加頻繁,而在極端編程方法中,更是要求每天都進行若干次回歸測試。因此,通過選擇正確的回歸測試策略來改進回歸測試的效率和有效性是非常有意義的。