迴歸測試的定義: 編程
迴歸測試是指修改了舊代碼後,從新進行測試以確認修改沒有引入新的錯誤或致使其餘代碼產生錯誤。安全
1.迴歸測試是指重複之前的所有或部分的相同測試。測試
2.新加入測試的模組,可能對其餘模組產生反作用,故須進行某些程度的迴歸測試。接口
3.迴歸測試的重心,以關鍵性模組爲核心。生命週期
迴歸測試的好處:開發
自動迴歸測試將大幅下降系統測試、維護升級等階段的成本。迴歸測試做爲軟件生命週期的一個組成部分,在整個軟件測試過程當中佔有很大的工做量比重,軟件開發的各個階段都會進行屢次迴歸測試。selenium
迴歸測試的存在乎義:效率
在漸進和快速迭代開發中,新版本的連續發佈使迴歸測試進行的更加頻繁,而在極端編程方法中,更是要求天天都進行若干次迴歸測試。所以,經過選擇正確的迴歸測試策略來改進迴歸測試的效率和有效性是很是有意義的。變量
迴歸測試的需求:軟件
對於一個軟件開發項目來講,項目的測試組在實施測試的過程當中會將所開發的測試用例保存到「測試用例庫」中,並對其進行維護和管理。當獲得一個軟件的基線版本時,用於基線版本測試的全部測試用例就造成了基線測試用例庫。在須要進行迴歸測試的時候,就能夠根據所選擇的迴歸測試策略,從基線測試用例庫中提取合適的測試用例組成迴歸測試包,經過運行迴歸測試包來實現迴歸測試。保存在基線測試用例庫中的測試用例多是自動測試腳本,也有多是測試用例的手工實現過程。
測試用例的選擇:
對於一個軟件開發項目來講,項目的測試組在實施測試的過程當中會將所開發的測試用例保存到「測試用例庫」中,並對其進行維護和管理。當獲得一個軟件的基線版本時,用於基線版本測試的全部測試用例就造成了基線測試用例庫。在須要進行迴歸測試的時候,就能夠根據所選擇的迴歸測試策略,從基線測試用例庫中提取合適的測試用例組成迴歸測試包,經過運行迴歸測試包來實現迴歸測試。保存在基線測試用例庫中的測試用例多是自動測試腳本,也有多是測試用例的手工實現過程。
測試用例的維護是一個不間斷的過程,一般能夠將軟件開發的基線做爲基準,維護的主要內容包括下述幾個方面。
(1)、刪除過期的測試用例
由於需求的改變等緣由可能會使一個基線測試用例再也不適合被測試系統,這些測試用例就會過期。例如,某個變量的界限發生了改變,原來針對邊界值的測試就沒法完成對新邊界測試。因此,在軟件的每次修改後都應進行相應的過期測試用例的刪除。
(2)、改進不受控制的測試用例
隨着軟件項目的進展,測試用例庫中的用例會不斷增長,其中會出現一些對輸入或運行狀態十分敏感的測試用例。這些測試不容易重複且結果難以控制,會影響迴歸測試的效率,須要進行改進,使其達到可重複和可控制的要求。
(3)、刪除冗餘的測試用例
若是存在兩個或者更多個測試用例針對一組相同的輸入和輸出進行測試,那麼這些測試用例是冗餘的。冗餘測試用例的存在下降了迴歸測試的效率。因此須要按期的整理測試用例庫,並將冗餘的用例刪除掉。
(4)、增添新的測試用例
若是某個程序段、構件或關鍵的接口在現有的測試中沒有被測試,那麼應該開發新測試用例從新對其進行測試。並將新開發的測試用例合併到基線測試包中。
經過對測試用例庫的維護不只改善了測試用例的可用性,並且也提升了測試庫的可信性,同時還能夠將一個基線測試用例庫的效率和效用保持在一個較高的級別上。
選擇迴歸測試應該兼顧效率和有效性兩個方面。經常使用的選擇迴歸測試的方式包括:
(1)、再測試所有用例
選擇基線測試用例庫中的所有測試用例組成迴歸測試包,這是一種比較安全的方法,再測試所有用例具備最低的遺漏迴歸錯誤的風險,但測試成本最高。所有再測試幾乎能夠應用到任何狀況下,基本上不須要進行分析和從新開發,可是,隨着開發工做的進展,測試用例不斷增多,重複原先全部的測試將帶來很大的工做量,每每超出了咱們的預算和進度。
(2)、基於風險選擇測試
能夠基於必定的風險標準來從基線測試用例庫中選擇迴歸測試包。首先運行最重要的、關鍵的和可疑的測試,而跳過那些非關鍵的、優先級別低的或者高穩定的測試用例,這些用例即使可能測試到缺陷,這些缺陷的嚴重性也僅有三級或四級。通常而言,測試從主要特徵到次要特徵。
(3)、基於操做剖面選擇測試
若是基線測試用例庫的測試用例是基於軟件操做剖面開發的,測試用例的分佈狀況反映了系統的實際使用狀況。迴歸測試所使用的測試用例個數能夠由測試預算肯定,迴歸測試能夠優先選擇那些針對最重要或最頻繁使用功能的測試用例,釋放和緩解最高級別的風險,有助於儘早發現那些對可靠性有最大影響的故障。這種方法能夠在一個給定的預算下最有效的提升系統可靠性,但實施起來有必定的難度。
(4)、再測試修改的部分
當測試者對修改的局部化有足夠的信心時,能夠經過相依性分析識別軟件的修改狀況並分析修改的影響,將回歸測試侷限於被改變的模塊和它的接口上。一般,一個迴歸錯誤必定涉及一個新的、修改的或刪除的代碼段。在容許的條件下,迴歸測試儘量覆蓋受到影響的部分。
迴歸測試的基本過程:
(1). 識別出軟件中被修改的部分;
(2). 從原基線測試用例庫T中,排除全部再也不適用的測試用例,肯定那些對新的軟件版本依然有效的測試用例,其結果是創建一個新的基線測試用例庫T0。
(3). 依據必定的策略從T0中選擇測試用例測試被修改的軟件。
(4). 若是必要,生成新的測試用例集T1,用於測試T0沒法充分測試的軟件部分。
(5). 用T1執行修改後的軟件。