一.軟件測試相關定義 算法
1.從軟件質量保證上來劃分測試,測試能夠劃分爲靜態測試和動態測試。靜態測試就是指不運行被測程序自己,僅經過分析或者檢查源程序的文法、結構、過程、接口等來檢查程序的正確性,靜態測試能夠分爲代碼審查、代碼走讀、文檔審查等行爲。動態測試是指經過運行被測程序,檢查運行結果與預期結果的差別,並分析運行效率和健壯性等性能的測試過程。數據庫
2.按照測試技術劃分,測試能夠劃分爲:白盒測試、黑盒測試和灰盒測試。 網絡
3.按照測試階段劃分,測試能夠劃分爲單元測試、集成測試、系統測試、系統集成測試、用戶驗收測試和維護測試。 架構
二.白盒測試、黑盒測試和灰盒測試性能
1.白盒測試單元測試
- 白盒測試是對一個軟件組件或者系統內部的設計知識爲基礎的測試。
- 白盒測試是邏輯爲導向,重點是經過對某些軟件測試的執行路徑。
- 測試設計決定被測軟件所須要的必定路徑下輸入設定,並指定每一個輸入的預期將要採起的路徑和輸出。
- 測試執行運行有指定輸入的軟件,檢查了預期的路徑追蹤,有產出符合預期的結果。代碼覆蓋測試常常被用來評估白盒測試的完全狀況
2.黑盒測試測試
- 黑盒測試是需求導向。
- 測試測試描述的是無論一個軟件組件或者系統內部的設計知識的測試。
- 黑盒測試專一於輸入和輸出的軟件測試
- 測試設計根據軟件的設置,在肯定的輸入狀況下,指定每一個輸入的預期輸出。
- 測試執行是指定的輸入狀況下的軟件,檢查對預期輸出的結果。
3.灰盒測試編碼
- 灰盒測試描述的測試是一個黑盒測試與白盒測試組合。
- 側重於輸入與產出(預期結果),可是測試設計和執行是基於算法,架構,數據庫的知識。
- 灰盒測試被最多的用在測試數據的覆蓋範圍,但也多是單獨使用在確認配置文件的變化。
2、單元測試和集成測試設計
1.單元測試接口
- 單元測試是對新的或者更改過的代碼模塊進行的初步測試。它驗證程序或者模塊的內部邏輯和程序規範。
- 開始點:單元測試開始在開發階段,當編碼已經完成
- 結束點:全部的測試案例被成功執行,沒有嚴重缺陷1或2
- 單元測試的做用:單元測試有助於早期識別和修復缺陷,早期消除單元模塊的不肯定性。
- 單元測試的評估有:代碼覆蓋率的百分比,符合組編碼標準,圈複雜度,行代碼,路徑,參數,缺陷密度。
2.集成測試
- 集成測試驗證多個已經完成了單元測試的模塊的執行。所測試的應用程序一般不鏈接到系統中的其餘應用程序。
- 子系統模塊的通訊測試是在一個控制和隔離的環境。
- 開始點:單元測試已經順利完成
- 結束點:全部的測試案例的成功執行,沒有嚴重缺陷1或2
- 集成測試的做用:集成測試有助於較早的識別和修復中缺陷,下降成本。減輕了系統測試過程當中的風險。
- 集成測試的評估:成本和進度誤差,缺陷,生產力,效率和測試覆蓋度。
- 圈複雜度一種代碼複雜度的衡量標準
3.系統測試
- 系統測試把系統的全部組件和對其餘系統的接口當作一個總體來測試,包含功能性的測試和結構性的測試,證明這個系統能夠正確的運行。
- 開始點:單元測試和集成測試已經順利完成。
- 結束點:當系統測試執行完成全部的系統測試階段的測試用例,結果中沒有嚴重性爲或者2的缺陷。
- 系統測試的做用:驗證一個系統的全部模塊和接口可以做爲一個總體並且正確的工做。
4.系統集成測試
- 驗證了系統的總體運做。它測試近似在生產的環境中的應用程序,硬件和網絡的合做。
- 開始點:系統集成測試開始於成功的上一階段的系統測試的結束。
- 結束點:當系統集成測試執行完全部的這階段的測試用例,結果中沒有嚴重性爲1或者2的缺陷。
- 系統集成測試的做用:系統集成測試驗證在近似生產環境中把系統做爲一個總體來驗證整個系統的功能。關鍵缺陷識別和修復,以免在用戶驗收測試階段去進行昂貴的返工。
5.用戶驗收測試
- 用戶驗收測試(UAT):驗證系統是否知足指定的用戶需求。該UAT的模擬用戶環境,由最終用戶或者站在用戶角度去測試系統。
- 開始點:開始於成功的上一階段的系統集成測試的結束。
- 結束點:執行完全部的這階段的測試用例,結果中沒有嚴重性爲1或2的缺陷。
- 用戶驗收測試的做用:用戶驗證測試使使用者,客戶或者其餘受權體決定是否接受這個系統。成功的UAT有助於確保業務需求獲得知足,爲系統在生產中使用作好高度信任的準備。
6.可操做性測試
- 可操做性測試:驗證應用程序或系統能夠在生產環境中運行。這是一個動態的測試階段,其中系統的全部驗證操做都在真實或者模擬出來很是真實的生產環境中發生。能夠操做性測試考慮的是性能,資源消耗和符合標準等因素
- 開始點:開始於成功的上一階段得用戶驗收測試的結束。
- 結束點:一旦被測試系統符合測試計劃中規定的結束標準,測試便結束。
- 可操做性測試做用:確保軟件產品的正確交付和直到軟件產品的正確部署。避免在生產環境中產生可操做性方面的業務缺陷。
3、功能測試和迴歸測試
1.功能測試
- 功能測試:在每個開發階段,去驗證在每一個業務功能操做上都和設計文件(內部和外部)中規定同樣。
- 開始點:開始於成功完成單元測試後。
- 結束點:結束於執行完全部的計劃的測試用例,結果中沒有嚴重性爲1或2的缺陷。
- 功能測試的做用:驗證了系統執行和設計中規定的功能一致。當功能測試正確後才能進入到系統集成測試。肯定關鍵功能缺陷和修復缺陷,以免在系統集成和用戶驗收測試階段出現缺陷進行昂貴的返工。
2.迴歸測試
- 迴歸測試:當性某部分修改(增長新的功能或者修改bug)後,去驗證這部分是否被成功修改和其餘部分是否會被這部分的修改所影響。
- 開始點:由於增長新功能或者修改缺陷而對代碼進行的修改後開始迴歸測試。
- 結束點:迴歸測試結束於成功的執行相關的迴歸測試用例,而且修改後的程序相關部分尚未解決的缺陷
- 迴歸測試的做用:驗證了系統的行爲是不會受到因爲修改系統而產生的影響。它減小了從新驗證的時間消耗,它給與驗收測試以可信任措施。當時間迴歸測試相關用例的執行是自動化的時候,顯着的好處將被取得。