本書全面闡述了軟件測試的基本理論和業(yè)界主流的技術方法,并從軟件生命周期的最新視角展開和分析軟件測試的知識、技術及應用的策略、過程及方法。全書共10章:軟件測試概述、軟件生命周期的測試、軟件靜態(tài)測試技術、軟件動態(tài)測試技術、軟件自動化測試、軟件項目的組件測試、軟件系統(tǒng)性功能測試、軟件系統(tǒng)性能測試、軟件系統(tǒng)安全性測試、軟件測試管理,基本涵蓋了目前軟件測試的知識體系、技術體系和應用體系。本書使讀者能系統(tǒng)、較快地掌握軟件測試的系統(tǒng)知識,獲得解決實際測試問題的思路和基本的工程實踐方法。
第1章 軟件測試概述 1
1.1 軟件測試的產(chǎn)生與發(fā)展 2
1.1.1 軟件可靠性問題 2
1.1.2 軟件缺陷與故障 2
1.1.3 軟件測試的產(chǎn)生與發(fā)展 4
1.1.4 軟件測試的發(fā)展趨勢 7
1.2 軟件測試基礎知識與理論 8
1.2.1 軟件測試的目的與原則 8
1.2.2 軟件測試的基本原理與特性
準則 8
1.2.3 軟件測試的基本策略 9
1.3 軟件開發(fā)模式與軟件測試 11
1.3.1 軟件開發(fā)模式 11
1.3.2 軟件開發(fā)與軟件測試 17
1.3.3 軟件測試模型分析 18
1.4 軟件質(zhì)量及其保證 21
1.4.1 軟件質(zhì)量體系 21
1.4.2 軟件測試成熟度 24
本章小結 28
習題與作業(yè) 28
第2章 軟件生命周期的測試 32
2.1 軟件生命周期中的測試 33
2.1.1 軟件生命周期 33
2.1.2 軟件生命周期中的測試策略 34
2.1.3 軟件測試通用流程 35
2.2 軟件測試技術分析 36
2.2.1 基于動態(tài)測試分析與靜態(tài)
測試分析 36
2.2.2 基于規(guī)格說明的測試技術 37
2.2.3 基于結構的測試技術 38
2.2.4 基于經(jīng)驗的測試技術 39
2.2.5 手工測試與自動化測試 42
2.2.6 基于風險的測試 43
2.2.7 軟件測試的分類 44
2.3 組件測試 46
2.3.1 組件測試的類別及模式 46
2.3.2 組件測試的任務 47
2.3.3 組件測試的過程 49
2.3.4 組件測試管理 49
2.4 集成測試 50
2.4.1 集成測試概念 50
2.4.2 集成測試策略 50
2.5 系統(tǒng)測試 52
2.5.1 系統(tǒng)測試的概念、對象、環(huán)境
與目標 52
2.5.2 系統(tǒng)的功能性測試 52
2.5.3 系統(tǒng)測試的非功能性測試 54
2.6 確認測試 57
2.6.1 確認測試的準則 57
2.6.2 程序修改后的確認測試 58
2.6.3 配置與審查 58
2.7 驗收測試 58
2.7.1 驗收測試的含義 58
2.7.2 驗收測試的任務及內(nèi)容 59
2.7.3 軟件文檔驗收測試 60
2.8 軟件新版本的測試 60
2.8.1 軟件維護測試 60
2.8.2 軟件版本開發(fā)的測試 60
2.8.3 軟件增量開發(fā)中的測試 61
本章小結 63
習題與作業(yè) 64
第3章 軟件靜態(tài)測試技術 72
3.1 軟件靜態(tài)測試 73
3.1.1 靜態(tài)測試技術概要 73
3.1.2 靜態(tài)測試技術 74
3.2 程序數(shù)據(jù)流分析方法 76
3.2.1 數(shù)據(jù)流測試 76
3.2.2 數(shù)據(jù)流測試的應用舉例 77
3.3 程序控制流分析方法 78
3.3.1 程序的控制流圖 78
3.3.2 將程序流程圖轉換為控制流圖 80
3.3.3 控制流圖分析的測試應用 81
3.4 軟件的復雜性度量 82
3.4.1 靜態(tài)檢查與測試對象的規(guī)范、
標準的一致性 82
3.4.2 軟件復雜度的度量 82
3.4.3 Logiscope 靜態(tài)分析測試應用 90
3.5 軟件評審 100
3.5.1 軟件評審的概念 100
3.5.2 評審的組織 101
3.5.3 評審過程 101
3.5.4 評審類型 102
本章小結 103
習題與作業(yè) 104
第4章 軟件動態(tài)測試技術 109
4.1 軟件動態(tài)測試技術 110
4.1.1 動態(tài)測試 110
4.1.2 動態(tài)測試(黑盒技術)的
測試模型 112
4.2 等價類劃分法與邊界值分析法 113
4.2.1 等價類劃分法簡介 113
4.2.2 邊界值測試 117
4.2.3 等價類劃分測試法與邊界值
測試法結合設計測試用例 119
4.3 因果圖/決策表法 121
4.3.1 因果圖法 121
4.3.2 決策表法 123
4.3.3 因果圖/決策表法的測試應用 126
4.4 狀態(tài)轉換法 131
4.4.1 狀態(tài)轉換法原理 131
4.4.2 運用狀態(tài)轉換法設計測試
用例 133
4.5 全配對法 135
4.5.1 全配對法測試原理 135
4.5.2 全配對測試法應用 138
4.6 覆蓋測試法 142
4.6.1 邏輯覆蓋 142
4.6.2 路徑覆蓋 147
4.6.3 循環(huán)的路徑測試 151
本章小結 153
習題與作業(yè) 154
第5章 軟件自動化測試 166
5.1 軟件自動化測試概念 167
5.1.1 自動化測試的原理 167
5.1.2 自動化測試的優(yōu)勢與特點 168
5.2 軟件自動化測試生存周期
方法學及應用 170
5.2.1 自動化測試決策 170
5.2.2 測試工具獲取 170
5.2.3 自動化測試引入 171
5.2.4 測試計劃、設計、開發(fā) 171
5.2.5 測試執(zhí)行與管理 172
5.2.6 測試評審與評估 173
5.3 自動化測試用例與腳本 174
5.3.1 自動化測試用例的生成要求 174
5.3.2 自動化測試腳本 174
5.4 自動化測試工具 176
5.4.1 自動化測試的專項工具 176
5.4.2 自動化測試套件 181
本章小結 190
習題與作業(yè) 191
第6章 軟件項目的組件測試 193
6.1 軟件項目的組件測試介紹 194
6.1.1 組件測試的范圍及內(nèi)容 194
6.1.2 軟件項目的組件測試解決
方案 194
6.2 軟件GUI的測試 197
6.2.1 頁面元素測試 197
6.2.2 對窗體操作的測試 198
6.2.3 對下拉式菜單與鼠標操作
的測試 198
6.2.4 對數(shù)據(jù)項操作的測試 198
6.3 面向?qū)ο筌浖惖臏y試 199
6.3.1 類、對象、消息及接口 199
6.3.2 類的測試設計 202
6.4 Logiscope組件測試應用 208
6.4.1 Logiscope概況 208
6.4.2 Logiscope功能 210
6.4.3 Logiscope的安裝與配置 211
6.4.4 TestChecker測試應用 212
6.5 運用JUnit進行組件測試 220
6.5.1 JUnit的基本概要 220
6.5.2 運用JUnit進行組件測試 224
本章小結 230
習題與作業(yè) 231
第7章 軟件系統(tǒng)性功能測試 233
7.1 軟件系統(tǒng)性功能測試 234
7.1.1 軟件系統(tǒng)性功能測試的內(nèi)容 234
7.1.2 軟件系統(tǒng)性功能測試的
基本要素 235
7.2 軟件功能測試工具及應用 236
7.2.1 RFT的一般概況 236
7.2.2 RFT的基本運用方法 241
7.2.3 RPT的測試應用 254
本章小結 260
習題與作業(yè) 260
第8章 軟件系統(tǒng)性能測試 262
8.1 軟件系統(tǒng)性能測試概述 263
8.1.1 軟件系統(tǒng)性能測試的概念 263
8.1.2 軟件系統(tǒng)性能測試規(guī)劃
與設計 267
8.1.3 軟件系統(tǒng)性能測試管理 270
8.2 Web性能測試 272
8.2.1 Web性能測試模型 272
8.2.2 Web性能測試用例設計 273
8.2.3 Web性能測試過程管理 278
8.3 軟件系統(tǒng)性能測試工具 279
8.3.1 RPT功能簡介 279
8.3.2 RPT的基本測試應用分析 281
8.3.3 RPT性能測試工程應用 286
本章小結 293
專業(yè)術語 293
習題與作業(yè) 294
第9章 軟件系統(tǒng)安全性測試 296
9.1 軟件系統(tǒng)安全性測試的問題 297
9.1.1 軟件系統(tǒng)安全性概述 297
9.1.2 軟件系統(tǒng)安全性測試策略 302
9.1.3 軟件系統(tǒng)安全性測試方法 303
9.2 Web應用系統(tǒng)的安全性測試 305
9.2.1 Web應用安全的背景 305
9.2.2 Web應用安全測試 306
9.3 軟件系統(tǒng)安全測試工具及
測試應用 310
9.3.1 AppScan概要 311
9.3.2 AppScan功能特性 312
9.3.3 AppScan的基本使用 320
9.3.4 AppScan安全性測試應用 328
本章小結 330
習題與作業(yè) 330
第10章 軟件測試管理 332
10.1 軟件測試管理的概念 333
10.1.1 測試管理的基本要素 333
10.1.2 測試組織管理 334
10.2 測試過程管理 337
10.2.1 測試計劃管理 337
10.2.2 測試流程管理 340
10.3 測試事件管理 348
10.3.1 缺陷管理 348
10.3.2 測試用例管理 351
10.4 軟件配置管理 354
10.4.1 軟件配置管理的內(nèi)涵 354
10.4.2 配置管理策略與方法 356
10.4.3 配置管理的應用 359
10.5 測試管理工具及應用 360
10.5.1 TestDirector測試管理工具 360
10.5.2 Rational Test Manager測試
管理工具 366
本章小結 367
專業(yè)術語 367
習題與作業(yè) 368
參考文獻 372
本書此次修訂較第一版、第二版在體系結構上做了較大調(diào)整與變動。全書在內(nèi)容上做了整合與更新,使教材的容量基本保持不變而內(nèi)涵進一步提升,突出軟件測試課程教程的功能,以更加符合學習規(guī)律、認識規(guī)律,全面闡述軟件測試基本理論和業(yè)界主流的技術方法,并從軟件生命周期的最新視角闡述和分析軟件測試的知識、技術及應用,運用于工程中的策略、過程及方法,以期能基本涵蓋目前軟件測試領域的知識體系、技術體系和應用體系。
本書由軟件測試概述、軟件生命周期的測試、軟件靜態(tài)測試技術、軟件動態(tài)測試技術、軟件自動化測試、軟件項目的組件測試、軟件系統(tǒng)性功能測試、軟件系統(tǒng)性能測試、軟件系統(tǒng)安全性測試、軟件測試管理共10章構成。其中,軟件測試概述、軟件生命周期的測試兩章作為軟件測試的基本理論知識加以系統(tǒng)介紹;軟件靜態(tài)測試技術、軟件動態(tài)測試技術、軟件自動化測試三章作為測試方法及技術應用分析的重點;軟件項目的組件測試、軟件系統(tǒng)性功能測試、軟件系統(tǒng)性能測試、軟件系統(tǒng)安全性測試,軟件測試管理五章則從測試工程的角度進行詳細深入的闡述。每章除了正文之外,還增加了有針對性的內(nèi)容提要與學習目標的導學、本章小結等內(nèi)容。為進一步體現(xiàn)和完善教材的功效,全書配備了例題、案例、習題、作業(yè)、應用實踐項目共300多個,并為每章的相關內(nèi)容加入了專業(yè)術語欄目與參考資料的索引。
本書內(nèi)容豐富、層次清晰、闡述簡明,較好地把握了所編選內(nèi)容的深度及廣度,使之不僅反映出軟件測試的發(fā)展脈絡、最新的研究與應用成果,而且更加注重將理論知識、技術基礎與工程實踐進行有機融合,使讀者能系統(tǒng)、較快地學習到軟件測試的系統(tǒng)知識與主流技術,獲得解決實際測試問題的思路,掌握基本的工程方法與運用的策略。
本書是中國大學精品共享資源課程(愛課網(wǎng))軟件測試的配套主教材,以期作為高等學校軟件測試課程的一本專門教程,成為軟件測試工程師的首選讀本,為進一步掌握、提高測試專業(yè)能力和職業(yè)發(fā)展起到奠基的作用。
本書涵蓋了國際軟件測試工程師認證(ISTQB FL/AL)大綱2007版所規(guī)定的許多內(nèi)容,因此可作為準備參加此項專業(yè)認考的參考資料。
本書含有大量的算法語句、程序語句及計算公式,對于其中的變量,為了方便讀者閱讀,避免歧義,不再區(qū)分正、斜體,而是統(tǒng)一采用正體,特此說明。
賀萌、吳曉園、楊艷、夏輝、徐芳、李健、李曉兵、趙琳也參與了本書的編寫與資料整理工作,在此一并感謝。
本書從首版編寫到第3版的出版,始終得到電子工業(yè)出版社的大力、持久的支持和幫助,在此謹表敬意與衷心感謝。
因作者水平所限,書中的錯誤和不妥在所難免,懇請讀者批評指正和提出改進建議。
聯(lián)系電子郵箱:he_ping2002@163.com
編 著 者
2013年12月