本書濃墨重彩地描述信息軟件系統的基本概念、開發技術、測試技術和測試工具,詳細介紹測試管理工具HP ALM、功能自動化測試工具HP UFT、性能測試工具HP Loadrunner和安全測試工具IBM AppScan的基本操作方法并列舉實際應用案例。
全書分為基礎、測試管理、功能測試、性能測試和安全測試等5個部分。第I部分系統介紹信息軟件系統的基本概念、開發技術和測試技術;第II部分主要介紹軟件測試管理的基本概念及內容、測試管理工具HP ALM的工作流程及常見操作;第III部分主要介紹功能測試以及自動化測試的基本概念和原理、測試工具HP UFT的常用操作和關鍵技術以及使用HP UFT實施功能自動化測試的過程;第IV部分主要介紹性能測試的基本概念和原理、測試工具HP Loadrunner的常用操作和關鍵技術以及使用HP Loadrunner實施性能測試的過程;第V部分主要介紹安全測試的基本概念和原理、測試工具IBM AppScan的常用操作以及使用IBM AppScan實施安全測試的過程。
本書可作為高等院校軟件工程及計算機相關專業的教材和參考書籍,可作為軟件測試應用型人才的培訓教材,也可供軟件測試、質量保證及項目管理從業人員參考。
21世紀是社會信息化高速發展的時代,信息系統改變著人們的生活、工作和學習方式。隨著信息系統應用領域的擴大以及軟件規模和復雜程度的增加,信息軟件系統產生錯誤的概率大大增加,這給信息軟件系統質量的保障工作帶來了挑戰。軟件測試是保障軟件質量的重要手段,也是發現與排除缺陷最有效的手段之一,可以說,通過軟件測試發現軟件中的缺陷并進行修復是提升軟件產品質量的重要途徑。
《信息軟件系統測試與實踐》是一本綜合性實踐教材。它以信息軟件系統為測試對象,較系統地介紹了軟件測試的基本概念、測試方法、策略、測試管理技術、功能自動化測試技術、性能測試技術和安全測試技術等內容。其中,測試管理、自動化測試、性能測試和安全測試是軟件測試工程師職業進階必備的專業技能。本書設計了大量案例和習題,適于實踐性教學和讀者自學。
隨著軟件測試地位的逐步提高,測試的重要性逐步顯現,測試工具的應用已經成為普遍趨勢。本書選取主流的測試工具——測試管理工具HPALM、功能自動化測試工具HPUFT、性能測試工具HPLoadrunner和安全測試工具IBMAppScan,詳細介紹了它們的基本操作和關鍵技術,并以規范的軟件測試流程為基礎,完整呈現測試過程管理、功能測試、性能測試和安全測試的整個過程。
本書特色
(1)首次全面系統地介紹信息軟件系統的測試技術,重點介紹信息軟件測試中較重要的功能測試、性能測試和安全測試的基本概念、原理、技術以及測試工具的使用。其中,測試工具選取的是當前主流的、較新版本的測試工具,這使讀者將來可以更好地理解和迅速融入企業的軟件測試項目中。
(2)在測試實施過程中,以較規范的測試流程為主線,涵蓋了分析測試需求、制訂測試計劃、設計并編寫測試用例、開發測試腳本、執行測試、管理軟件缺陷、分析測試結果等軟件測試活動的各個環節。通過本書的學習,讀者可以切身體會到測試知識在實際項目中的應用,實現從學校到企業的平滑過渡。
(3)將自動化測試工具與測試管理工具完美融合到測試案例中,使得整個測試過程更規范,便于測試資源、測試腳本以及測試文檔的集中管理,促進項目成員間更好地協同工作,提升了測試活動的效率和智能化程度。其中,HPALM對測試的管理貫穿于軟件測試生命周期的始終,從測試周期的發布、測試需求樹的創建、自動化測試用例的創建與管理、測試腳本的創建與管理,到自動化測試的執行、測試缺陷的管理以及測試報表的分析,使得整個測試活動成為一個有機整體。
(4)重視分析過程,倡導“what-how-why”的學習三部曲。從分析實際問題入手,尋找合理的解決方案,并探究其背后的原因,而不是僅簡單地講述測試工具的使用。本書引入了基于HPUFT和HPALM的功能自動化測試框架,闡述測試思想,并用其指導自動化測試腳本的開發、執行和維護,提升腳本的可讀性、可重用性和可維護性。
(5)采取行之有效的設計方法來編寫測試用例。在測試用例的設計過程中,不僅要結合等價類劃分法、邊界值分析法、錯誤推測法等常用測試方法,還要考慮測試覆蓋率、測試優先級、測試充分性等因素。
本書可作為軟件測試方向應用型人才培養的指定教材,也可作為計算機相關專業的選修教材,建議96學時。
本書的作者均具有企業一線工作經驗,在航天軟件測評中心、航天中認軟件測評科技(北京)有限責任公司、中國軟件測評中心等單位從事軟件測試工作多年,參與過多項重大項目的測試和開發工作。蔡建平教授擔任本書的主審工作,提出了很多寶貴建議;我的學生王大川、豐淑成、張濤、張恒銘參與了本書的審稿工作;同時,航天中認公司的多位工程師在本書編寫過程中給予了大量技術支持,在此一并表示感謝。
本書很多內容來自實際項目的經驗總結,由于筆者水平有限,難免存在錯誤和不足之處,希望能與廣大同行和讀者共同討論研究。謝謝關注本書的所有讀者。
張偉
第Ⅰ部分 信息軟件簡介及技術要點分析
第1章 信息軟件概述 3
1.1 信息系統基礎知識 3
1.1.1 信息系統組成 3
1.1.2 信息系統分類 4
1.2 信息軟件開發 4
1.2.1 軟件的生命周期 5
1.2.2 軟件開發過程模型 6
1.2.3 敏捷開發 9
1.3 信息軟件主流架構及技術 12
1.3.1 客戶端/服務器架構 12
1.3.2 瀏覽器/服務器架構 14
1.3.3 現代互聯網技術 16
1.4 本章小結 19
第2章 軟件測試概述 20
2.1 軟件測試概念 20
2.1.1 軟件測試的定義和對象 20
2.1.2 軟件測試的目的 21
2.2 軟件測試分類 22
2.2.1 按照開發階段分類 22
2.2.2 按測試策略分類 24
2.2.3 按照測試手段分類 25
2.2.4 按照測試執行方式分類 25
2.2.5 基于特定目標的測試分類 25
2.3 信息軟件測試典型應用 28
2.3.1 基于Web應用軟件的測試 28
2.3.2 基于手機應用軟件的測試 32
2.3.3 基于云應用軟件的測試 36
2.4 信息軟件測試策略 38
2.4.1 測試過程的實施策略 38
2.4.2 測試用例的設計策略 40
2.4.3 回歸測試策略 41
2.5 本章小結 42
第Ⅱ部分 軟件測試管理技術
第3章 軟件測試管理概述 45
3.1 軟件測試管理的主要內容 45
3.1.1 測試計劃管理 47
3.1.2 測試組織和人員管理 49
3.1.3 測試文檔管理 51
3.1.4 測試缺陷管理 52
3.2 軟件測試管理工具 55
3.2.1 HP ALM概述 56
3.2.2 TestLink 56
3.3 本章小結 57
第4章 HP ALM工具的使用及關鍵技術 58
4.1 HP ALM簡介 58
4.1.1 HP ALM組織架構 59
4.1.2 HP ALM流程 59
4.2 HP ALM初始化設置 60
4.2.1 啟動站點管理 60
4.2.2 創建域和項目 62
4.2.3 用戶和組的管理 65
4.2.4 缺陷和用例配置 70
4.2.5 用例配置 74
4.3 創建發布樹 76
4.3.1 定義發布樹 76
4.3.2 創建發布 77
4.3.3 創建周期 78
4.4 創建測試需求 78
4.4.1 制訂測試需求樹規范 79
4.4.2 創建功能測試需求樹 80
4.4.3 將需求分配到發布和周期 83
4.4.4 測試需求轉換為測試計劃 84
4.5 管理測試計劃 86
4.5.1 創建測試用例 88
4.5.2 關聯需求與測試用例 90
4.6 執行測試 92
4.6.1 創建測試集 92
4.6.2 執行測試集 94
4.7 缺陷管理 97
4.7.1 創建并提交缺陷 97
4.7.2 關聯缺陷和測試用例 98
4.8 報表生成與分析 99
4.8.1 分析測試執行報表 100
4.8.2 分析缺陷報表 101
4.9 本章小結 103
第Ⅲ部分 信息軟件系統功能測試
第5章 信息軟件系統功能測試概述 107
5.1 功能測試基礎知識 107
5.1.1 功能測試常見的錯誤類型 107
5.1.2 功能測試用例的設計準則 108
5.2 功能測試自動化 109
5.2.1 功能測試自動化優缺點 109
5.2.2 功能自動化測試的主要技術 111
5.3 典型功能測試工具介紹 113
5.3.1 HP UFT 113
5.3.2 Selenium 114
5.3.3 兩種自動化測試工具對比 114
5.4 本章小結 115
第6章 HP UFT工具的使用及關鍵
技術 116
6.1 HP UFT工具簡介 116
6.1.1 HP UFT基本配置 116
6.1.2 HP UFT的視圖 117
6.2 HP UFT的工作流程 118
6.2.1 UFT測試步驟 118
6.2.2 一個簡單的測試項目 119
6.2.3 HP UFT的相關原理 122
6.3 測試對象管理 123
6.3.1 對象識別 123
6.3.2 對象屬性及偵測 125
6.3.3 HP UFT對象庫 126
6.3.4 對象庫管理 128
6.4 錄制模式 130
6.4.1 模擬錄制模式 130
6.4.2 低級錄制模式 131
6.4.3 洞察錄制模式 131
6.5 操作調用 132
6.6 檢查點技術 134
6.6.1 檢查點簡介 134
6.6.2 標準檢查點 135
6.6.3 文本檢查點 137
6.7 參數化技術 138
6.7.1 參數化測試步驟 139
6.7.2 使用外部數據源實現
參數化 142
6.8 描述性編程技術 146
6.8.1 描述性編程概述 146
6.8.2 描述性編程的測試實例 147
6.9 正則表達式 150
6.9.1 正則表達式介紹 150
6.9.2 正則表達式應用 152
6.10 測試場景恢復技術 153
6.10.1 創建場景恢復文件 154
6.10.2 添加場景恢復文件 157
6.11 函數庫管理 158
6.11.1 函數與子過程 158
6.11.2 創建函數庫 159
6.11.3 關聯函數庫并調用函數 160
6.12 VBScript腳本語言 162
6.12.1 選擇和循環操作 163
6.12.2 比較操作 164
6.12.3 算術操作 164
6.12.4 邏輯操作 165
6.12.5 常用函數 166
6.13 腳本的調試與運行 168
6.13.1 腳本調試技術 168
6.13.2 使用ALM運行測試腳本 169
6.13.3 使用Test Batch Runner
運行測試腳本 175
6.13.4 使用QuickTest.Application
對象運行測試腳本 175
6.14 查看測試結果 176
6.14.1 設置結果的存儲位置 176
6.14.2 查看測試運行結果 177
6.15 本章小結 178
第7章 HP UFT功能自動化實踐 180
7.1 測試需求分析 180
7.2 自動化測試框架 180
7.2.1 自動化測試框架簡介 180
7.2.2 自動化測試框架考慮的
要素 181
7.3 設計測試用例 183
7.3.1 登錄業務測試用例 183
7.3.2 訂票業務測試用例 184
7.3.3 傳真訂單業務測試用例 186
7.3.4 退出業務測試用例 187
7.4 開發登錄業務腳本 187
7.4.1 登錄腳本錄制 188
7.4.2 設置Action屬性 188
7.4.3 參數化用戶信息 189
7.4.4 登錄腳本回放 193
7.5 開發訂票腳本 194
7.5.1 錄制訂票腳本 194
7.5.2 登錄操作調用 195
7.5.3 參數化航班日期 196
7.5.4 訂票腳本回放 197
7.6 開發傳真訂單腳本 198
7.6.1 錄制傳真訂單腳本 198
7.6.2 完善傳真訂單腳本 200
7.6.3 回放傳真訂單腳本 202
7.7 退出腳本開發 203
7.8 測試資源管理 203
7.8.1 管理對象庫 203
7.8.2 使用HP ALM管理測試
資源 204
7.9 腳本的運行 207
7.10 本章小結 209
第Ⅳ部分 信息軟件系統性能測試
第8章 信息軟件系統性能測試概述 213
8.1 性能測試基礎知識 213
8.1.1 性能測試的概念 214
8.1.2 性能測試指標 215
8.1.3 性能測試方法 217
8.1.4 性能測試策略 219
8.2 典型性能測試工具介紹 222
8.3 本章小結 224
第9章 HP Loadrunner基礎 225
9.1 Loadrunner簡介 225
9.2 Loadrunner的功能結構及
工作原理 227
9.2.1 Loadrunner功能結構 227
9.2.2 Loadrunner工作過程 229
9.3 Loadrunner的測試步驟 230
9.4 本章小結 232
第10章 HP Loadrunner腳本
錄制與開發 233
10.1 虛擬用戶生成器簡介 233
10.2 腳本錄制 234
10.2.1 選擇協議 234
10.2.2 開始錄制腳本 237
10.2.3 設置錄制選項 240
10.3 運行時設置 246
10.4 腳本開發 250
10.4.1 通用VuGen函數 251
10.4.2 腳本調試 253
10.4.3 腳本注釋 254
10.5 事務技術 254
10.6 集合點技術 256
10.7 檢查點技術 257
10.8 塊技術 260
10.9 參數化技術 262
10.9.1 創建參數 262
10.9.2 不同類型的參數 264
10.9.3 File類型參數屬性設置 265
10.10 關聯技術 270
10.10.1 如何創建關聯 271
10.10.2 關聯函數介紹 278
10.10.3 關聯與參數化的區別 281
10.11 本章小結 281
第11章 HP Loadrunner測試
場景的設計與執行 282
11.1 控制器簡介 282
11.1.1 測試場景類型 283
11.1.2 Controller工作視圖 285
11.2 場景設計 287
11.2.1 配置腳本和運行時設置 287
11.2.2 手動場景計劃配置 288
11.2.3 面向目標場景計劃配置 291
11.2.4 配置負載生成器 294
11.2.5 服務水平協議設置 296
11.2.6 集合點運行設置 299
11.2.7 IP欺騙技術 300
11.3 場景執行 304
11.4 場景監控 307
11.4.1 Vuser運行狀態 308
11.4.2 場景運行的概況 308
11.4.3 錯誤輸出消息 310
11.4.4 數據分析圖 311
11.4.5 資源計數器 313
11.5 本章小結 317
第12章 HP Loadrunner測試
結果分析 318
12.1 分析器簡介 318
12.2 常用設置選項 319
12.3 摘要報告 324
12.4 常見數據分析圖 327
12.5 數據圖分析技術 330
12.5.1 分析圖合并 330
12.5.2 分析圖關聯 332
12.5.3 頁面診斷 334
12.6 Analysis報告 337
12.6.1 HTML報告 337
12.6.2 事務分析報告 337
12.6.3 自定義報告 340
12.6.4 使用報告模板定義報告 342
12.7 本章小結 343
第13章 HP Loadrunner性能測試
實踐 344
13.1 測試需求分析 344
13.1.1 性能指標分析 344
13.1.2 確定業務流程 346
13.2 制訂測試計劃 346
13.2.1 編制測試計劃 346
13.2.2 創建測試場景模型 350
13.3 設計測試用例 350
13.4 執行測試 351
13.4.1 準備測試數據 351
13.4.2 測試腳本開發 353
13.4.3 場景方案設計 355
13.4.4 執行和監控測試場景 356
13.5 結果分析和測試結論 358
13.6 本章小結 366
第Ⅴ部分 信息軟件系統安全測試
第14章 Web應用安全基礎 371
14.1 軟件安全簡介 371
14.1.1 軟件安全要素 371
14.1.2 軟件安全范疇 372
14.1.3 軟件安全開發技術 372
14.2 Web應用技術基礎 373
14.2.1 HTTP簡介 373
14.2.2 HTTPS簡介 374
14.2.3 URI/URL/URN 375
14.2.4 HTTP方法 376
14.2.5 HTTP狀態碼 378
14.2.6 HTTP Cookie 378
14.2.7 HTTP Session 379
14.3 Web應用程序安全 379
14.4 兩大Web應用安全研究
組織 380
14.4.1 WASC 380
14.4.2 OWASP 381
14.5 OWASP十大應用安全攻擊 381
14.5.1 注入 382
14.5.2 被破壞的驗證和會話
管理 385
14.5.3 跨站腳本攻擊 386
14.5.4 不安全的直接對象引用 388
14.5.5 安全配置錯誤 388
14.5.6 暴露敏感數據 389
14.5.7 功能級訪問控制缺失 390
14.5.8 跨站點請求偽造 390
14.5.9 使用含有已知漏洞的
組件 392
14.5.10 未驗證的重定向和轉發 392
14.6 本章小結 393
第15章 Web應用安全測試 394
15.1 Web應用安全測試方法與
技術 394
15.1.1 軟件安全測試 394
15.1.2 滲透測試 396
15.1.3 軟件安全測試過程 398
15.1.4 軟件安全測試組織 399
15.1.5 安全測試主要關注的
問題 400
15.1.6 如何做好Web應用
安全測試 401
15.2 Web安全性測試工具IBM
Rational AppScan簡介 401
15.2.1 IBM Rational AppScan最低
配置要求 402
15.2.2 IBM Rational AppScan
工作過程 402
15.3 IBM Rational AppScan窗口 404
15.4 IBM Rational AppScan
輔助工具 405
15.5 本章小結 407
第16章 Web安全測試實踐 408
16.1 Altoro Mutual安全性需求 408
16.2 啟動IBM Rational AppScan 408
16.3 新建掃描 409
16.4 配置掃描 409
16.5 啟動掃描 413
16.5.1 結果視圖 414
16.5.2 嚴重等級 415
16.6 結果專家 415
16.7 本章小結 416
附錄 HTTP狀態碼簡明釋義表 418
參考文獻 420