1 測試目的
程序員
(1)驗證軟件是否知足軟件開發合同或者項目開發計劃、系統/子系統設計文檔,軟件需求規格說明、軟件設計說明和軟件產品說明等規定的軟件質量要求。數據庫
(2)經過測試、發現軟件缺陷安全
(3)爲軟件產品的質量測量和評價提供依據
網絡
2 測試類型併發
(1)單元測試
ide
(2)集成測試
工具
(3)配置項測試(軟件合格性測試或確認測試)
性能
(4)系統測試
單元測試
(5)驗收測試
測試
可根據軟件規模、類型、完整性級別選擇執行測試類別
迴歸測試可出現如今上述的每一個類別中。
3 測試過程
(1)測試策劃
主要是進行測試需求分析,即肯定須要測試的內容或質量特性;肯定測試的充分性要求;提出測試的基本方法;肯定測試的字眼和技術需求;進行風險分析與評估;制定測試計劃(喊資源計劃和進度計劃)
(2)測試設計
依據測試需求,分析並選用已有的測試用例或設計新的測試用例;獲取並驗證測試數據;根據測試資源、風險等約束條件,肯定測試用例執行順序;獲取測試資源,開發測試軟件;創建並校準測試環境;進行測試就學評審、主要評審測試計劃的合理性和測試用例的正確性、有效性和覆蓋充分性,評審測試組織,環境和設備工具是否齊備並符合要求,在進入下一階段工做以前,應經過測試就緒評審。
(3)測試執行
執行測試用例,獲取測試結果;分析並斷定測試結果。同時,根據不一樣的斷定結果採起相應措施,對測試過程的正常或異常終止進行覈對,並根據覈對結果,對未達到測試終止條件的測試用例,決定是中止測試,仍是須要修改過或補充測試用例集,並進一步測試。
(4)測試總結
整理和分析測試數據,評價測試效果和被測試軟件相,描述測試狀態。如,實際測試與測試計劃和測試說明的差別,測試充分性分析、未能解決的測試事件等;描述被測試軟件項的狀態,如被測試軟件與需求的差別,並發現的軟件差錯等;最後,完成軟件測試報告,並經過測試評審。
4 測試方法
(1)靜態測試方法
靜態測試方法包括檢查單和靜態分析方法,對文檔的靜態測試方法主要以檢查單的形式進行,而對於代碼的靜態測試方法通常採用代碼審查、代碼走查和靜態分析,靜態分析通常包括控制流分析、數據流分析、接口分析和表達式分析。
應用軟件代碼進行審查、走查或靜態分析;對於規模較小、安全性要求很高的代碼也能夠進行形式化證實。
(2)動態測試方法
動態測試方法-般採用白盒測試方法和黑盒測試方法。黑盒測試方法-般包括功能分解、邊界值分析、斷定表、因果圖、狀態圖、隨機測試、猜錯法和正交實驗法等;白盒測試方法通常包括控制流測試(語句覆蓋測試、分支覆蓋測試、條件覆蓋測試、條件組合覆蓋測試、路徑覆蓋測試)、數據流測試、程序變異、程序插樁、域測試和符號值等。
在軟件動態測試過程當中,應採用適用當的測試方法,實現測試目標。配置項測試盒系統測試通常採用黑盒測試方法;集成測試通常主要採用黑盒測試方法,輔助以白盒測試方法;單元測試通常採用白盒測試方法,輔助以黑盒測試方法。
5 測試用例
(1)測試用例設計原則
基於測試需求的原則。應按照測試類別的不一樣要求,設計測試用例。如,單元測試依據詳細設計說明,集成測試依據概要設計說明,配置項測試依據軟件需求規格說明,系統測試依據用戶需求(系統/系統設計說明,軟件開發計劃等)
基於測試方法的原則。應明確所採用的測試用例設計方法。爲達到不一樣的測試充分性要求,應採用相應的測試方法,如等價類劃分、邊界值分析、猜錯法、因果圖等方法。
兼顧測試充分性和效率的原則。測試用例集應兼顧測試的充分性和測試的效率;每一個測試用例的內容也應完整,具備可操做性。
測試執行的可在現性原則。應保證測試用例執行的可再現性。
(2)測試用例要素
名稱和標識。每一個用例用例應有惟一的名稱和標識符
測試追蹤。說明測試所依據的內容來源,如系統測試依據的是用戶需求,配置項測試依據的是軟件需求,集成測試盒單元測試依據的軟件設計。
用例說明。簡要描述測試的對象、目的和所採用的測試方法。
測試的初始化要求,應考慮下初始化要求:
硬件配置:被測系統的硬件配置狀況,包括硬件條件或者電氣狀態。
軟件配置:測試的初始條件。
測試配置:測試系統的配置狀況,如用於測試的模擬系統和測試工具等的配置。
參數設置。測試開始前的設置,如標記、第一斷點、指針、控制參數和初始化數據等的設置。
其餘對於測試用例的特殊說明。
測試的輸入。在測試用例執行中發送給被測對象的全部測試命令、數據和信號等。
每一個測試輸入的具體內容(如肯定的數量、狀態或信號等)及其性質(若有效值、無效值、邊界值等)
測試輸入的來源(例如,測試程序產生、磁盤文件、經過網絡接收、人工鍵盤輸入等),以及選擇輸入所使用的方法(例如,等價類劃分、邊界值分析、差錯推測、因果圖、功能圖方法)
測試輸入時真實的仍是模擬的。
測試輸入的時間順序或事件順序。
指望的測試結果。說明測試用例執行中由被測試軟件所產生指望的測試結果,即通過驗證,認爲正確的結果。必要時,應提供中間的指望結果。指望測試結果應該具備內容。如肯定的數值、狀態或信號等,不該是不肯定的概念或籠統額描述。
評價測試結果的準則。判斷測試用例執行中產生的中間和最後結果是否正確的準則。對於每一個結果,應根據不一樣狀況提供以下信息。
操做過程,實施測試用例的執行步驟,把測試的操做過程定義爲一系列按照執行順序排列的相對獨立的步驟,對於每一個操做應提供:
每一步所需的測試操做動做、測試程序的輸入、設備操做等。
每一步指望的測試結果。
每一步的評價準則
程序終止伴隨的動做或差錯指示
獲取和分析實際結果過程
前提和約束。在測試用例說明中施加的全部前提提交和約束條件,若是有特別限制、參數誤差測試
終止條件。說明測試正常終止和異常終止的條件。
6 測試管理
(1)過程管理。對測試過程當中的測試活動和測試資源進行管理。
測試項目負責人:管理監督測試項目,提供技術指導,獲取適當的資源,制定基線,負責項目的安全保密和質量管理。
測試分析員:肯定測試計劃、測試內容、測試方法、測試數據生成方法、測試(軟、硬件)環境、測試工具、評價測試工做的有效性。
測試設計員:設計測試用例、肯定測試用例的優先級、創建測試環境。
測試程序員:編寫測試負責軟件
測試員:執行測試、記錄測試結果
測試系統管理員:對測試環境和資產管理和維護。
配置管理員:設置、管理和維護測試配置管理數據庫。
測試的准入準出條件:
准入條件:
具備測試合同(或項目計劃)
具備軟件測試所需的各類文檔
提交的被測試軟件是受控
軟件源代碼正確經過編譯彙報
準出條件:
已完成合同(項目計劃)所規定的軟件測試任務
實際測試過程當中遵循了原定的軟件測試計劃和軟件測試說明
客觀、詳細記錄了軟件測試過程和軟件測試中發現的全部問題
軟件測試文檔齊全、符合規定
軟件測試的全過程自始至終在控制下進行
軟件測試中的問題或異常有合理解釋或正確有效的處理。
軟件測試工做經過了測試評審。
所有測試軟件、被測試軟件、測試支持軟件和評審結果已歸入配置管理。
(2)配置管理
(3)評審
測試就緒評審:評審測試文檔內容的完整性、正確性和規範性
測試評審:
7 測試文檔
測試計劃、測試方案、測試報告
8 測試工具
(1)測試工具分類
靜態測試工具:對軟件需求、結構設計、詳細設計和代碼進行評審、走查和審查工具;複雜度分析、數據流分析、控制流分析、接口分析、句法和語義分析等工具。
動態測試工具:支持執行測試用例和評價測試結果的工具,包括支持選擇測試用例、設置環境、運行所選擇測試、記錄執行活動、故障分析和測試工做有效性評價;覆蓋分析、捕獲和回放、存儲器測試、變異測試、仿真器及性能分析、測試用例管理等工具
支持測試過程活動的其餘工具
(2)測試工具選擇
軟件測試工具需求及確認
成本和收益分析
測試工具的總體質量因素
9 軟件完整性級別與測試的關係