軟件測試理論:目的、周期、流程
1、軟件測試的定義
軟件測試就是在軟件投入運行前,對軟件需求分析、設計規格說明和編碼實現的最終審查,它是軟件質量保證的關鍵步驟。通常對軟件測試的定義有兩種描述:
定義1:軟件測試是為了發現錯誤而執行程序的過程。
定義2:軟件測試是根據軟件開發各階段的規格說明和程序的內部結構而精心設計的一批測試用例,并利用這些測試用例運行程序以及發現錯誤的過程,即執行測試步驟。
測試:所謂測試的含義,首先是一項活動,在這項活動中某個系統或組成的部分將在特定的條件下運行,結果將被觀察和記錄,并對系統或組成部分進行評價。測試活動有兩種結果:找出缺陷和故障,或顯示軟件執行正確。測試是一個或多個測試用例的集合。
測試用例:所謂測試用例是為特定的目的而設計的一組測試輸入、執行條件和預期的結果;測試用例是執行測試的最小實體。
測試步驟:測試步驟詳細規定了如何設置、執行、評估特定的測試用例。
軟件測試的基本問題
軟件生命周期:一個軟件生命周期包括制定計劃、需求分析定義、軟件設計、程序編碼、軟件測試、軟件運行、軟件維護、軟件停用等8個階段。
軟件測試的對象:
● 軟件測試不等于程序測試。
● 軟件測試貫串于軟件定義和開發的整個過程。
● 軟件開發過程中所產生的需求規格說明、概要設計規格說明、詳細設計規格說明以及源程序都是軟件測試的對象。
軟件測試在軟件生命周期中橫跨兩個階段:
***個階段:單元測試階段,即在每個模塊編寫出以后所做的必要測試。
第二個階段:綜合測試階段,即在完成單元測試后進行的測試,如集成測試、系統測試、驗收測試。
軟件測試涉及的關鍵問題包括四個方面:
(1)測試由誰來執行。
(2)測試什么。
(3)什么時候進行測試。
(4)怎樣進行測試。
2、軟件測試的基本理論
2.1 軟件測試的目的
(1)測試是程序的執行過程,目的在于發現錯誤;不能證明程序的正確性,除非僅處理有限種情況。
(2)檢查系統是否滿足需求也是測試的期望目標。
(3)一個好的測試用例在于發現了還未曾發現的錯誤;一次成功的測試則是發現了錯誤的測試。
注意:測試無法說明錯誤不存在,只能說明軟件錯誤已出現。
2.2 軟件測試的原則
(1)盡早地和及時地測試;
(2)測試用例應當由測試數據和與之對應的預期結果這兩部分組成;
(3)在程序提交測試后,應當由專門的測試人員進行測試;
(4)測試用例應包括合理的輸入條件和不合理的輸入條件;
(5)嚴格執行測試計劃,排除測試的隨意性;
(6)充分注意測試當中的群體現象;
(7)應對每一個測試結果做全面的檢查;
(8)保存測試計劃、測試用例、出錯統計和最終分析報告,為維護工作提供充分的資料。
2.3 軟件測試的分類
軟件測試按照不同的劃分方法,有不同的分類:
按照軟件測試用例的設計方法而論,軟件測試可以分為白盒測試法和黑盒測試法。
按照軟件測試的策略和過程來分類,軟件測試可分為單元測試、集成測試、系統測試、驗證測試和確認測試。
2.4 測試信息流程
測試信息流程如圖1-2所示。測試過程中需要三類輸入:軟件配置、測試配置和測試工具。
圖-測試信息流程
2.5 軟件測試的周期性
軟件測試的周期性是“測試->改錯->再測試->再改錯”這樣一個循環過程,如下圖所示。
圖-軟件測試的周期性
2.6 測試停止的依據(標準)
***類標準:測試超過了預定時間,則停止測試。
第二類標準:執行了所有的測試用例,但并沒有發現故障,則停止測試。
第三類標準:使用特定的測試用例設計方案作為判斷測試停止的基礎。
第四類標準:正面指出停止測試的具體要求,即停止測試的標準可定義為查出某一預訂數目的故障。
第五類標準:根據單位時間內查出故障的數量決定是否停止測試。
【編輯推薦】