回歸測試
出自 MBA智库百科(https://wiki.mbalib.com/)
目錄 |
回歸測試是指修改了舊代碼後,重新進行測試以確認修改沒有引入新的錯誤或導致其他代碼產生錯誤。自動回歸測試將大幅降低系統測試、維護升級等階段的成本。
回歸測試作為軟體生命周期的一個組成部分,在整個軟體測試過程中占有很大的工作量比重,軟體開發的各個階段都會進行多次回歸測試。在漸進和快速迭代開發中,新版本的連續發佈使回歸測試進行的更加頻繁,而在極端編程方法中,更是要求每天都進行若幹次回歸測試。因此,通過選擇正確的回歸測試策略來改進回歸測試的效率和有效性是非常有意義的。
在軟體生命周期中,一個完全的回歸測試包括每個基線測試用例,時間和成本約束可能阻礙運行這樣一個測試,有時測試組不得不選擇一個縮減的回歸測試包來完成回歸測試。
回歸測試的價值在於它是一個能夠檢測到回歸錯誤的受控實驗。當測試組選擇縮減的回歸測試時,有可能刪除了將揭示回歸錯誤的測試用例,消除了發現回歸錯誤的機會。然而,如果採用了代碼相依性分析等安全的縮減技術,就可以決定哪些測試用例可以被刪除而不會讓回歸測試的意圖遭到破壞。
選擇回歸測試策略應該兼顧效率和有效性兩個方面。常用的選擇回歸測試的方式包括:
1、再測試全部用例
選擇基線測試用例庫中的全部測試用例組成回歸測試包,這是一種比較安全的方法,再測試全部用例具有最低的遺漏回歸錯誤的風險,但測試成本最高。全部再測試幾乎可以應用到任何情況下,基本上不需要進行分析和重新開發,但是,隨著開發工作的進展,測試用例不斷增多,重覆原先所有的測試將帶來很大的工作量,往往超出了我們的預算和進度。
2、基於風險選擇測試
可以基於一定的風險標準來從基線測試用例庫中選擇回歸測試包。首先運行最重要的、關鍵的和可疑的測試,而跳過那些非關鍵的、優先順序別低的或者高穩定的測試用例,這些用例即便可能測試到缺陷,這些缺陷的嚴重性也僅有三級或四級。一般而言,測試從主要特征到次要特征。
3、基於操作剖面選擇測試
如果基線測試用例庫的測試用例是基於軟體操作剖面開發的,測試用例的分佈情況反映了系統的實際使用情況。回歸測試所使用的測試用例個數可以由測試預算確定,回歸測試可以優先選擇那些針對最重要或最頻繁使用功能的測試用例,釋放和緩解最高級別的風險,有助於儘早發現那些對可靠性有最大影響的故障。這種方法可以在一個給定的預算下最有效的提高系統可靠性,但實施起來有一定的難度。
4、再測試修改的部分
當測試者對修改的局部化有足夠的信心時,可以通過相依性分析識別軟體的修改情況並分析修改的影響,將回歸測試局限於被改變的模塊和它的介面上。通常,一個回歸錯誤一定涉及一個新的、修改的或刪除的代碼段。在允許的條件下,回歸測試儘可能覆蓋受到影響的部分。
再測試全部用例的策略是最安全的策略,但已經運行過許多次的回歸測試不太可能揭示新的錯誤,而且很多時候,由於時間、人員、設備和經費的原因,不允許選擇再測試全部用例的回歸測試策略,此時,可以選擇適當的策略進行縮減的回歸測試。
1、識別出軟體中被修改的部分;
2、從原基線測試用例庫T中,排除所有不再適用的測試用例,確定那些對新的軟體版本依然有效的測試用例,其結果是建立一個新的基線測試用例庫T0。
3、依據一定的策略從T0中選擇測試用例測試被修改的軟體。
4、如果必要,生成新的測試用例集T1,用於測試T0無法充分測試的軟體部分。
5、用T1執行修改後的軟體。