《軟體生命周期質量保證與測試》是2009年電子工業出版社出版的圖書,由張向宏主編、中國軟體評測中心組編。該書從軟體生命周期的角度著重介紹軟體質量、質量保證和軟體測試的基本概念和技術方法。
基本介紹
內容簡介,編輯推薦,編寫背景,本書特色,問題答案,作者簡介,目 錄,
內容簡介
隨著軟體規模的日益增大,軟體質量問題日顯突出。《軟體生命周期質量保證與測試》首先介紹了軟體生命周期、軟體質量等一般性的概念,針對軟體生命周期的各個階段的質量度量問題,提出相應的質量度量指標和度量方法,然後對軟體質量保證的定義、工作過程、主要任務等進行闡述,並從軟體生命周期的各個階段分別論述了如何進行軟體的質量管理,最後提出軟體測試是保證軟體質量的有效手段。本書除了介紹軟體測試理論及當前前沿測試技術外,還對軟體生命周期的各個階段提供的測試類型進行了詳細論述,並提供了大量的典型測試實例,便於幫助讀者分析掌握軟體質量保證的測試手段。
本書主要面向從事軟體質量保證、軟體開發和軟體測試領域的技術人員和管理人員,以及任何對軟體開發、軟體質量保證和軟體測試等各種實踐感興趣的人員閱讀。同時,還可以作為軟體測試培訓課程的參考教材。
編輯推薦
書名,張向宏主編,中國軟體評測中心組編。電子工業出版社2009年出版。該書從軟體生命周期的角度著重介紹軟體質量、質量保證和軟體測試的基本概念和技術方法。主要面向從事軟體質量保證、軟體開發和軟體測試領域的技術人員和管理人員。
編寫背景
軟體產業作為信息產業的核心和靈魂,在促進國民經濟和社會發展信息化中具有重要的地位和作用,是國家的基礎性、戰略性產業。隨著軟體規模的日益增大,軟體質量問題也日益突出,由於軟體存在質量缺陷而引發的事故頻頻發生,它不僅會造成軟體交付延期、開發成本遞增,甚至會威脅到生命和社會安全。這再一次向我們提出了警告,必須立即重視和認真解決軟體質量問題。
軟體生命周期是軟體的產生直到報廢的生命周期,包括問題的定義及規劃、需求分析、軟體設計、程式編碼、軟體測試和運行維護6個階段。事實上,軟體生命周期的各個階段都會涉及質量問題。通常來說,軟體開發過程中的缺陷發現得越晚,所需付出的代價就越高。必須提前對軟體生命周期的每個階段進行質量管理,通過測試手段實現各個階段的質量保證。
本書既有軟體質量領域的理論與實踐,又有軟體測試領域的理論與實踐,從整個軟體生命周期的角度,把軟體質量保證與軟體測試結合起來,實現軟體質量的提升。本書對於剛進入IT領域的軟體質量保證人員和軟體測試人員具有理論的指導意義和實踐的借鑑意義。對於有一定工作經驗的人士來說,本書知識面廣,也是一本提升境界、擴展思路的寶典。
本書特色
本書邏輯層次清晰、知識面涵蓋廣、理論與實踐結合緊密,使讀者能夠迅速掌握軟體質量保證與測試的相關理論與實踐方法。本書的特色如下。
1.強調對“過程”的軟體質量保證
本書強調“軟體生命周期”,分別從軟體生命周期的各個階段去分析與論述軟體的質量保證與測試,糾正了國內對軟體質量保證“重結果輕過程”的認識。
2.加強理論與實踐的緊密結合
本書對於軟體生命周期質量保證與測試的論述,不僅有深入的理論分析,還有實際項目的實踐經驗分享;不僅介紹了軟體生命周期的質量度量、質量管理、質量保證、測試實施,還詳細介紹了典型測試案例,包括功能測試、性能測試、可靠性測試等多個領域,都是一些實際的項目經驗,具有很大的借鑑意義。
3.詳細解析軟體生命周期的測試實施
本書對於軟體生命周期的測試實施進行了十分詳細的論述,在軟體生命周期的每個階段,對於測試的對象、測試的策略、測試的方法及一些測試的工具都有詳細的闡述。
4.本書的思路地圖
問題答案
需要理解的軟體質量與軟體測試的基礎知識有哪些 軟體質量概述(第1章)
軟體測試(第5章)
如何在軟體生命周期各階段進行質量度量 軟體生命周期的質量度量(第2章)
如何在軟體生命周期各階段進行質量管理 軟體生命周期的質量管理(第3章)
如何在軟體生命周期各階段進行質量保證 軟體質量保證(第4章)
如何在軟體生命周期各階段進行軟體測試 軟體生命周期的測試實施(第6章)
有哪些典型的測試案例可以借鑑 典型測試實例(第7章)
軟體測試技術的發展動態如何 前沿測試技術介紹(第8章)
實際測試實施中會用到哪些測試工具 常用測試工具介紹(第9章)
5.你能從本書得到什麼
提升全局的眼界,從軟體生命周期各個階段去考慮各種問題;
增加知識的積累,圍繞“軟體質量”,豐富各個方面的知識;
了解軟體生命周期各階段的測試工作,加深測試的思想;
……
作者簡介
中國軟體評測中心成立於1990年,作為國內最早開展測試工作的國家級計算機軟體產品質量檢測機構,具有國家級軟體質量保證專家和一支多年從事軟、硬體質量保證的技術隊伍,承擔了多項國家“八五”、“九五”、“863”、“十五”重點攻關課題,近二十年來,一直致力於軟硬體測試、電子政務評估、信息工程諮詢與監理、資質認證等領域的研究與實踐,在軟體測試理論及實踐中積累了深厚的功底和豐富的經驗。
主編張向宏,現任中國軟體評測中心常務副主任。在2002年至2008年期間,受國信辦委託,承擔中國網站調查及“振興軟體產業行動綱要”、“國家電子政務總體框架”、“關於我國電子政務建設指導意見”、“全國電子政務全過程績效評估指標體系和方法研究”等前期研究與規劃工作;負責國家質檢總局政府網站、上海政府網站、青島政府網站、武漢政府網站、常州政府網站的功能設計及內容規劃等;在擔任中國軟體評測中心常務副主任及賽迪監理公司總經理期間大膽改革,創新機制,整合中國軟體評測中心測試理論和經驗,使公司經營業績連續增長,進一步提高了公司在業界的競爭能力。
目 錄
第一篇 整體介紹
第1章 信息化建設及IT項目的面向
第1章 對象開發和管理概述 2
1.1 信息化建設及案例介紹 2
1.1.1 數字圖書館系統 2
1.2.2 電子政務系統 6
1.2 面向對象的開發及管理概述 11
第2章 IT項目開發流程與UML概述 14
2.1 項目開發流程 14
2.1.1 項目生命周期 15
2.1.2 項目開發階段 16
2.2 UML概述 18
2.2.1 UML圖 18
2.2.2 Rational Rose工具及使用 24
第二篇 面向對象的項目開發
第3章 軟體需求分析 32
3.1 軟體需求分析概述 32
3.2 軟體需求分析過程 33
3.2.1 什麼是軟體需求 33
3.2.2 需求過程中的角色 34
3.2.3 需求過程的疊代 34
3.2.4 需求來源 34
3.2.5 需求獲取方法 35
3.2.6 軟體需求表達 35
3.2.7 需求評審 40
3.3 軟體需求文檔 42
第4章 系統分析設計 59
第1章 軟體質量概論 1
1.1 概述 1
1.2 軟體生命周期概述 2
1.2.1 軟體生命周期 2
1.2.2 軟體開發過程模型 3
1.3 軟體缺陷 12
1.3.1 軟體缺陷的定義 12
1.3.2 軟體缺陷的來源 14
1.3.3 軟體缺陷的屬性 16
1.4 軟體質量 19
1.4.1 軟體質量的定義 19
1.4.2 影響軟體質量的
主要因素 21
1.5 軟體質量模型 23
1.5.1 McCall質量模型 23
1.5.2 Boehm質量模型 24
1.5.3 ISO 9126質量模型 25
1.6 軟體質量需求 26
1.7 本章小結 28
第2章 軟體生命周期質量度量 29
2.1 概述 29
2.1.1 度量的原則 30
2.1.2 軟體開發生命周期的度量活動 30
2.1.3 軟體度量的實施過程 32
2.2 需求分析模型的度量 32
2.2.1 基於功能的度量 33
2.2.2 規約質量的度量 34
2.2.3 需求穩定性的度量 35
2.3 設計模型的度量 35
2.3.1 體系結構設計度量 36
2.3.2 構件級設計度量 38
2.3.3 界面設計度量 41
2.4 原始碼度量 42
2.4.1 Halstead度量法 42
2.4.2 McCabe度量法 43
2.5 對測試的度量 45
2.5.1 測試的度量 45
2.5.2 測試過程的度量 45
2.6 對維護的度量 48
2.6.1 軟體維護度量 48
2.6.2 維護過程的度量 50
2.7 本章小結 51
第3章 軟體生命周期質量管理 52
3.1 概述 52
3.2 需求分析階段 54
3.3 概要設計階段 58
3.4 詳細設計階段 60
3.5 代碼開發階段 62
3.6 集成測試階段 65
3.7 確認測試階段 68
3.8 系統聯試階段 71
3.9 本章小結 72
第4章 軟體質量保證 73
4.1 概述 73
4.1.1 軟體質量保證概念 73
4.1.2 質量保證的目標 74
4.2 質量保證內容 74
4.3 質量保證過程 76
4.4 質量保證任務 77
4.5 質量保證中的軟體配置管理 78
4.5.1 軟體配置管理的基本概念 79
4.5.2 軟體配置管理實施的關注點 81
4.5.3 軟體配置管理過程 83
4.5.4 軟體配置管理計畫的編寫 85
4.6 質量保證中的評審和檢查 87
4.6.1 評審和檢查的作用與目標 87
4.6.2 檢查 88
4.6.3 評審 90
4.6.4 軟體生命周期內的
評審實施 94
4.6.5 評審問題清單 98
4.7 本章小結 100
第5章 軟體測試 101
5.1 軟體測試概述 101
5.1.1 軟體測試的定義 101
5.1.2 軟體測試的原則 102
5.1.3 軟體測試的對象 104
5.1.4 軟體測試過程模型 105
5.2 軟體測試的作用 112
5.2.1 軟體測試的目的——確保質量 112
5.2.2 軟體測試與質量保證的關係 114
5.2.3 軟體測試在軟體開發過程中的質量保證工作 115
5.3 白盒測試技術 116
5.3.1 概述 116
5.3.2 基本技術 117
5.3.2.1 詞法分析與語法分析 117
5.3.2.2 靜態錯誤分析 118
5.3.2.3 程式插樁技術 119
5.3.3 靜態白盒測試 124
5.3.3.1 代碼檢查法 124
5.3.3.2 靜態結構分析法 137
5.3.3.3 靜態質量度量法 140
5.3.4 動態白盒測試 145
5.3.4.1 邏輯覆蓋法 145
5.3.4.2 基本路徑測試法 150
5.4 黑盒測試技術 155
5.4.1 概述 155
5.4.1.1 黑盒測試的特點 156
5.4.1.2 黑盒測試的套用 157
5.4.2 黑盒測試用例設計 157
5.4.2.1 等價類劃分法 158
5.4.2.2 邊界值分析法 160
5.4.2.3 場景法 161
5.4.2.4 因果圖法 164
5.4.2.5 正交試驗法 166
5.4.2.6 判定表法 171
5.4.2.7 其他方法 174
5.4.3 編寫黑盒測試用例 174
5.4.3.1 有效的測試用例 175
5.4.3.2 編寫原則 177
5.4.3.3 測試用例構成 179
5.4.3.4 編寫策略 180
5.5 本章小結 181
第6章 軟體生命周期測試實施 182
6.1 概述 182
6.2 需求階段的測試實施 185
6.2.1 概述 185
6.2.1.1 分析測試因素 185
6.2.1.2 執行需求的走讀 188
6.2.1.3 執行需求跟蹤 191
6.2.1.4 確保需求是可測試的 191
6.2.2 需求說明書的評測 192
6.2.2.1 需求說明書的編寫原則 192
6.2.2.2 需求說明書的框架 193
6.2.2.3 需求說明書的評測內容 193
6.2.3 需求建模測試 195
6.2.3.1 統一建模語言 196
6.2.3.2 Use Case測試 197
6.2.3.3 MSC測試 199
6.2.3.4 建模分析工具介紹 201
6.2.4 基於原型的測試 203
6.2.4.1 原型的引入 204
6.2.4.2 原型在軟體過程的地位 205
6.2.4.3 原型法的價值 206
6.2.4.4 原型的測試方法 207
6.2.5 小結 207
6.3 設計階段的測試實施 208
6.3.1 概述 208
6.3.2 有效評分過程 208
6.3.3 設計的測試因素 210
6.3.4 設計評審 212
6.3.4.1 設計評審過程 212
6.3.4.2 檢視設計 214
6.3.5 設計說明書的評測 214
6.3.5.1 設計說明書的框架 214
6.3.5.2 概要設計說明書評測的內容 215
6.3.5.3 詳細設計說明書評測 218
6.3.6 SDL設計的測試 219
6.3.6.1 SDL介紹 219
6.3.6.2 SDL系統測試 226
6.3.7 硬體選型測試 233
6.3.7.1 TPC-C基準測試 235
6.3.7.2 TPC-E基準測試 238
6.3.7.3 TPC-H基準測試 246
6.3.7.4 TPC組織公布的測試報告讀解 250
6.4 單元測試與軟體質量 252
6.4.1 概述 252
6.4.2 測試的內容 254
6.4.3 單元測試過程 256
6.4.4 單元測試的數據要求 257
6.4.5 單元測試的測試技術 258
6.4.6 輸入、輸出 259
6.4.7 設計單元測試用例 259
6.4.7.1 測試用例設計步驟 260
6.4.7.2 用例設計的一般原則 261
6.4.8 單元測試實踐 261
6.4.9 小結 262
6.5 集成測試與軟體質量 263
6.5.1 集成測試的實施過程 263
6.5.2 常用集成測試方法 265
6.5.3 集成測試分析 270
6.5.4 小結 275
6.6 確認測試與軟體質量 275
6.6.1 確認測試的關注點 275
6.6.2 確認測試的指導原則 276
6.6.3 確認測試的主要內容 276
6.6.4 確認測試的實施過程 277
6.6.5 小結 290
6.7 系統測試與軟體質量 291
6.7.1 系統測試的內容 291
6.7.2 系統測試步驟 292
6.7.3 系統測試的方法與技術 293
6.7.3.1 遵循的方法與技術 293
6.7.3.2 系統測試過程 300
6.7.4 系統測試人員 301
6.7.5 小結 301
6.8 驗收測試與軟體質量 302
6.8.1 用戶驗收測試 303
6.8.1.1 用戶驗收測試的方法 303
6.8.1.2 用戶驗收測試的技術 303
6.8.1.3 輸入、輸出 305
6.8.2 操作驗收測試 305
6.8.2.1 操作驗收測試的方法 306
6.8.2.2 操作驗收測試的數據要求 306
6.8.2.3 操作驗收測試的技術 306
6.8.2.4 輸入、輸出 307
6.8.3 小結 307
6.9 本章小結 308
第7章 典型測試實例 309
7.1 功能測試實例 309
7.1.1 “xxx接處警”系統簡介 309
7.1.2 測試需求分析 309
7.1.3 用例設計方法分析 313
7.2 性能測試實例 318
7.2.1 辦公自動化系統的案例分析 318
7.2.2 工作流引擎的案例分析 322
7.2.3 資料庫層套用測試 324
7.2.3.1 性能問題來源 324
7.2.3.2 性能最佳化 326
7.2.3.3 性能調優步驟 326
7.2.3.4 工具和實用程式 328
7.3 可靠性測試實例 329
7.3.1 作業系統可靠性對比測試 329
7.3.1.1 測評內容 329
7.3.1.2 測評模型 329
7.3.1.3 測評策略 334
7.3.2 某信息系統的可靠性測試 335
7.3.2.1 系統邏輯部署圖 335
7.3.2.2 測試場景描述 336
7.3.2.3 測試結果 337
7.4 單元測試實例 339
7.4.1 靜態測試 339
7.4.2 覆蓋率測試 346
7.5 本章小結 358
第8章 前沿測試技術 359
8.1 敏捷測試技術 359
8.1.1 敏捷方法的特徵 359
8.1.2 敏捷方法的質量 360
8.1.3 敏捷測試的引入 361
8.1.4 敏捷測試用例設計 362
8.1.5 敏捷測試的弱點 364
8.2 測試驅動開發 365
8.2.1 TDD的優勢 365
8.2.2 TDD的原理 366
8.2.3 TDD的過程 367
8.2.4 TDD的原則 368
8.2.5 TDD測試技術 369
8.2.6 TDD測試案例 370
8.3 本章小結 371
第9章 常用測試工具 372
9.1 功能測試工具 372
9.2 性能測試工具(系統強度測試工具) 375
9.3 白盒、嵌入式測試工具 378
9.4 軟體開發工具 383
9.5 其他 384
9.6 本章小結 387
附錄A 測試文檔模板 388
附錄B 軟體測試中的常見術語
附錄A 中英文對照 407
參考文獻 418