軟件測試基礎(一)

什麼是軟件測試?編程

  經典定義:在規定的條件下對程序進行操做,以發現程序錯誤,衡量軟件質量,並對其是否能知足涉及要求進行評估的過程。安全

軟件測試的方法有哪些?工具

  軟件測試方法能夠依據測試過程當中程序執行狀態分爲靜態測試動態測試,也能夠依據測試過程當中對程序內部實現細節的可見程度分爲黑盒測試白盒測試灰盒測試,還能夠依據執行測試過程的方式分爲人工測試自動化測試性能

1. 靜態測試單元測試

  定義:靜態測試是指不運行被測程序自己,僅經過分析或檢查源程序的語法、結構、過程、接口等來檢查程序的正確性。測試

  方法:代碼檢查、靜態結構分析、代碼質量度量等。代碼檢查包括代碼走差、桌面檢查、代碼審查等方式。主要檢查代碼和設計的一致性,代碼對標準的遵循、可讀性,代碼邏輯表達的正確性,代碼結構的合理性等方面。能夠發現違背程序編寫標準的問題,程序中不安全、不明確的部分,找出程序中不可移植部分、違背程序編程風格的問題,包括變量檢查、命名和類型審查、程序邏輯審查、程序語法檢查和程序結構檢查等內容。優化

  優勢:發現缺陷早、下降返工成本、覆蓋重點和發現缺陷的機率高。編碼

  缺點:耗時長、技術要求較高。spa

2. 動態測試設計

  定義:經過運行被測程序,檢查運行結果與預期結果的差別,並分析運行效率、正確性和健壯性等性能。

  步驟:構造測試實例、運行程序、分析結果。

  階段:單元測試、集成測試、系統測試、驗收測試。

3. 黑盒測試

  定義:功能測試、數據驅動測試,徹底不考慮程序內部實現,主要對軟件界面和軟件功能進行測試。

  方法:等價類劃分、邊界值分析、錯誤推測法、因果圖法、斷定表組成等。

  缺點:若是需求規格自己有誤或外部特性設計有誤,用黑盒測試方法是發現不了的。

4. 白盒測試

  定義:結構測試、邏輯驅動測試,根據程序內部的邏輯實現,設計相應的測試用例,對程序全部邏輯路徑進行測試。

  方法:邏輯覆蓋、循環覆蓋、基本路徑測試等。其中邏輯覆蓋包括語句覆蓋、斷定覆蓋、條件覆蓋、斷定條件覆蓋、條件組合覆蓋和路徑覆蓋。

  缺點:貫穿程序的獨立路徑數是天文數字,但即便每條路徑都測試了仍然可能有錯誤。第一,窮舉路徑測試不能查出程序違反了設計規範,即程序自己是個錯誤的程序;第二,窮舉路徑測試不可能查出程序因遺漏路徑而出錯;第三,窮舉路徑測試可能發現不了一些與數據相關的錯誤。

5. 灰盒測試

  定義:介於黑盒測試和白盒測試之間對一種測試方式。多用於集成測試階段,不只關注輸出、輸入的正確性,同時也關注程序內部的狀況。灰盒測試不像白盒那樣詳細、完整,但又比黑盒測試更關注程序的內部邏輯,經常是經過一些表徵性的現象、事件、標誌來判斷內部的運行狀態。

6. 人工測試

  定義:由測試人員手工逐步執行全部的活動,並觀察每一步是否成功完成。

7. 自動化測試

  定義:把以人爲驅動的測試行爲轉化爲機器執行的一種過程。

軟件生命週期是什麼?

  軟件生命週期是指軟件的產生直到報廢或中止使用的整個過程,包括定義及規劃、需求分析、軟件設計、編碼實現、軟件測試、運行維護6個階段。

軟件測試的生命週期是什麼?

  測試計劃——測試設計——測試實現——測試執行——測試評估

Bug的生命週期是什麼?

  新建——提交——指派——確認——處理——驗證——關閉

一個完整的軟件測試流程是什麼樣的?

1. 測試計劃

  需求評審,編寫測試計劃明確測試範圍、測試資源準備(硬件、測試工具等)、團隊工做安排和進度、交付物。

2. 測試設計

  根據需求文檔、設計文檔,從功能、性能、接口等多維度分析測試項、測試子項。

  編寫測試方案,經過此文檔明確測試環境、測試方法、測試重點、測試維度等測試策略。

3. 測試實現

  根據合適的用例設計方法,進行測試用例的設計和編寫工做,完成全部被測試系統的測試用例設計工做。

  搭建測試環境、準備測試數據、開發測試工具或編寫測試腳本。

4. 測試執行

  執行本身負責模塊的測試用例,記錄測試結果,提交測試缺陷。

  跟蹤缺陷解決狀況,進行迴歸測試。

  優化測試用例。

5. 測試總結

  測試報告主要包含:實際測試環境、測試過程數據的總結和分析、測試遺留缺陷處理、軟件版本質量的評估、後續測試建議、測試結論。

相關文章
相關標籤/搜索