回歸測試是指修改了舊**後,重新進行測試以確認修改沒有引入新的錯誤或導致其他**產生錯誤。在軟體開發過程當中,一旦軟體**做了修改,就有可能引入新的問題,所以這個時候就需要把已經完成了的驗證用例重新跑一下,以確保**的修改沒有對已經驗證過的功能造成影響。我們把這乙個過程叫做回歸驗證(也有人叫**回歸)。
自動回歸測試將大幅降低系統測試、維護公升級等階段的成本。1、單元測試
2、功能測試
(一)白盒技術
⒈邏輯覆蓋:⑴語句覆蓋。⑵判定覆蓋。⑶條件覆蓋。⑸條件組合覆蓋。⑹路徑覆蓋。
⒉迴圈覆蓋
⒊基本路徑測試:每個可執行語句至少執行一次
(二)黑盒技術
1.等價類劃分方法 是把所有可能的輸入資料,劃分成若干部分(子集)輸入輸出
2.邊界值分析方法
3.錯誤推測方法
4.因果圖方法
5.判定表驅動分析方法
6.正交實驗設計方法
7.功能圖分析方法
**的修改主要有幾個方面:1、新增新的功能。2、修改現有**中的功能。3、軟體版本重構迭代更新等。
這時需要回歸發現問題,以保證bug確實被設計人員修復了。但是開發人員在修復bug的時候有可能理解的不夠透徹,只修改了bug的外在表現,而沒有修復bug的內在原因;也有可能是設計人員修復了乙個bug,卻引入了另外乙個bug,使原本驗證通過的用例不能通過。所以在回歸的時候需要進行分析,針對此bug是否需要增加新的用例,是否對原來已經驗證過的用例有影響。這也是我們常常遇到的問題。【bug沒修好,新bug卻被引入】
另外當**當中增加或者刪除了一些功能的時候,也需要進行了回歸。
新**加入的時候,除了新加入的**當中有可能含有bug之外,還有可能對原有的**帶來影響。當然刪除**的時候也有可能造成影響。因此,每當**發生變化,我們就必須重新測試現有的功能,以便確定修改是否達到了預期的目的,檢查修改是否損害了原有的正常功能。同時還需要補充新的測試用例來測試新的或被修改了的功能。
那麼是不是說,每發現乙個bug,或者**稍有修改,我們都要把原來已經測試通過的用例重新跑一遍呢?
我覺得沒有必要。因為我們驗證整個或者單個模組,有可能開發成百上千條用例。隨著驗證工作的進展,測試通過的用例會越來越多,如果在後期,每回歸一次,可能就要跑成百上千條用例。而這一項工作需要很長的時間和資源,會對專案的整體進度造成影響。尤其是專案如果採用迭代開發的方法,設計人員逐次提交包含功能1,功能2,功能3…的**。驗證人員也是相應地完成功能1、2、3…的驗證,不可能說在進行功能2的驗證時,把功能1的驗證用例回歸一下;進行功能3的驗證時,把功能1,2的用例再回歸一下。當然如果可以,這樣做是最好了。但是我們往往沒有這麼多的人員、時間和資源。所以每個在寫單元測試是,單個模組或檔案寫乙個測試用例檔案,當修改區域性功能只需測試該部分的檔案即可。
一般地,我們在所有的功能都驗證完成了之後,會把所有的驗證用例進行回歸一次。就這一次回歸,也是需要很多時間和資源的。為了提高效率,需要開發乙個回歸指令碼來完成這項工作。指令碼需要具有自動完成驗證用例的提交,自動統計回歸結果等功能。在專案做持續整合時或大版本發布前也是需要整體測試,做好回歸,做好**覆蓋率測試,以保證軟體的質量和可靠性。
logistic回歸 簡介 邏輯回歸 理論簡介
邏輯回歸logistic regression 分類演算法原理簡介 嗶哩嗶哩 乾杯 bilibili www.bilibili.com 如果某個函式可以用半開區間的指示函式的有限次線性組合來表示,那麼這個函式就是階躍函式。階躍函式是有限段分段常數函式的組合。然而邏輯回歸是乙個概率模型,我們需要的輸出...
線性回歸簡介
舉例 線性回歸 linear regression 是利用回歸方程 函式 對乙個或多個自變數 特徵值 和因變數 目標值 之間關係進行建模的一種分析方式。那麼怎麼理解呢?我們來看幾個例子 上面兩個例子,我們看到特徵值與目標值之間建立了乙個關係,這個關係可以理解為線性模型。線性回歸當中主要有兩種模型,一...
線性回歸簡介
注釋 單特徵與目標值的關係呈直線關係,或者兩個特徵與目標值呈現平面的關係 如果是非線性關係,那麼回歸方程可以理解為 w1x1 w2x22 w3x32 from sklearn.linear model import linearregression x 80,86 82,80 85,78 90,90...