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