- 第一章 軟件測試概述
- 第二章 軟件測試基本知識
- 第三章 黑盒測試
- 第四章 白盒測試
- 第五章 軟件測試流程
- 第六章 性能測試
- 第七章 自動化測試
- Android自動化測試技術——Espresso的使用
- 各種測試技術的區(qū)別
軟件測試流程
軟件測試流程如下:
- 測試計劃
- 測試設計
- 測試執(zhí)行
- 單元測試
- 集成測試
- 確認測試
- 系統(tǒng)測試
- 驗收測試
- 回歸測試
- 驗證活動
測試計劃
測試計劃由測試負責人來編寫,用于確定各個測試階段的目標和策略。這個過程將輸出測試計劃,明確要完成的測試活動,評估完成活動所需的額時間和資源,進行活動的安排和資源分配。
測試依據(jù)主要是項目開發(fā)計劃和測試需求分析結果而制定。

測試設計
根據(jù)測試計劃設計測試方案,測試設計過程輸出的是各測試階段使用的測試用例,為每一個測試需求確定測試用例集,并且確定執(zhí)行測試用例的測試過程。
根據(jù)軟件測試計劃、軟件需求、軟件構架設計、軟件詳細設計等文檔內容,設計測試用例具體如下:
- 對每一個測試需求,確定其需要的測試用例。
- 對每一個測試用例,確定其輸入及預期結果。
- 確定測試用例的測試環(huán)境配置、需要的驅動程序。
- 編寫測試用例文檔
- 對測試用例進行同行評審(peer review)
測試執(zhí)行

如圖所示,測試執(zhí)行過程分為以下測試階段:單元測試、集成測試、確認測試、系統(tǒng)測試、驗收測試等。
單元測試
單元測試是在軟件開發(fā)過程中進行的最低級別的測試活動,其測試的對象是軟件設計的最小單位,單元測試又稱為模塊測試
很多人將單元的概念誤解為一個具體函數(shù)或一個類的方法,這種理解并不準確。作為一個最小的單元應該有明確的功能定義、性能定義和接口定義,而且可以清晰地與其他單元區(qū)分開來。一個菜單、一個顯示界面或者能夠獨立完成的具體功能都可以是一個單元。從某種意義上單元的概念已經(jīng)擴展為組件(component)。
單元測試的環(huán)境:
由于每個模塊在整個軟件中并不是孤立的,在對
每個模塊進行單元測試時,需要考慮它和周圍模塊的
相互聯(lián)系。為模擬這一聯(lián)系,在進行單元測試時,必
須設置若干個輔助測試模塊。這些輔助模塊分為兩種:
- 驅動模塊(driver): 用以模擬被測模塊上級模塊,相當于被測模塊的主程序。
- 樁模塊(stub): 用以模擬被測模塊的下級模塊,相當于被測模塊調用的子模塊。
單元測試完成方式
單元測試可以由兩種方式完成:

單元測試的不足:
- 模塊相互調用時引入了新的問題;
- 幾個子功能組合起來不能實現(xiàn)主功能;
- 誤差不斷積累達到不可接受的程度;
- 全局數(shù)據(jù)結構出現(xiàn)錯誤等。
集成測試


確定測試
集成測試完成以后,分散開發(fā)的模塊被聯(lián)接起來,構成一個完整的程序。其中各模塊之間接口存在的種種問題都已消除。于是進入了確認測試階段。
確認測試,是對照軟件需求規(guī)格說明書,對軟件產(chǎn)品進行評估以確定其是否滿足需求規(guī)格的過程。 它決定最后的軟件產(chǎn)品是否正確無誤。
確定測試的策略:
- 基于需求的測試:采用黑盒測試策略,在不知道詳細設計規(guī)格說明或代碼的情況下對用戶需求進行測試?;谛枨蟮臏y試根據(jù)功能設計規(guī)格說明設計測試用例。
- 基于功能的測試:采用黑盒策略,根據(jù)功能設計規(guī)格說明,采用等價類劃分、邊界值分析和故障猜測等方法設計測試用例。
- 基于內部的測試:只能采用白盒測試策略,但可采用功能設計規(guī)格說明制訂測試計劃。一但采用白盒測試,便可通過一系列的技術確保系統(tǒng)的內部各部分獲得充分的測試并且達到足夠的邏輯覆蓋。
系統(tǒng)測試
系統(tǒng)測試實際上是針對系統(tǒng)中各個組成部進行的綜合性檢驗,很接近我們的日常測試實踐。
系統(tǒng)測試的目標不是要找出軟件故障,而是要證明系統(tǒng)的性能。
注意:系統(tǒng)開發(fā)人員和組織不能負責系統(tǒng)測試,系統(tǒng)測試最好由獨立的測試機構完成。
驗收測試
驗收測試是將最終產(chǎn)品與最終用戶的當前需求進行比較的過程,是軟件開發(fā)結束后,軟件產(chǎn)品向用戶交付之前進行的最后一次質量檢驗活動,回答開發(fā)的軟件產(chǎn)品是否符合預期的各項要求,用戶是否接受等問題。
驗收測試不只檢驗軟件某方面的質量,還要進行全面的質量檢驗并決定軟件是否合格。因此驗收測試是一項嚴格的正規(guī)的測試活動,并且應該在生產(chǎn)環(huán)境中而不是開發(fā)環(huán)境中進行。
回歸測試
回歸測試則是對程序進行測試以確定是否因故障修復而引入了新的故障。
回歸測試不是一種新的測試活動,它是為檢查是否因修復故障引入了新的故障而重新執(zhí)行某些或所有測試用例的過程。
驗證活動
驗證活動存在測試生存周期中的每一個階段,包括需求驗證、功能設計驗證、詳細設計驗證和代碼驗證。在每個驗證活動中,測試的目的都是為了發(fā)現(xiàn)盡可能多的故障,測試人員應積極參與軟件審查和走查工作,并開展驗證工作。