內容簡介
隨著軟體規模的日益增大,軟體質量問題日顯突出。本書從軟體生命周期的角度著重介紹軟體質量、質量保證和軟體測試的基本概念和技術方法。首先介紹了軟體生命周期、軟體質量等一般性的概念,針對軟體生命周期的各個階段的質量度量問題,提出相應的質量度量指標和度量方法,然後對軟體質量保證的定義、工作過程、主要任務等進行闡述,並從軟體生命周期的各個階段分別論述了如何進行軟體的質量管理,最後提出軟體測試是保證軟體質量的有效手段。本書除了介紹軟體測試理論及當前前沿測試技術外,還對軟體生命周期的各個階段提供的測試類型進行了詳細論述,並提供了大量的典型測試實例,便於幫助讀者分析掌握軟體質量保證的測試手段。本書主要面向從事軟體質量保證、軟體開發和軟體測試領域的技術人員和管理人員,以及任何對軟體開發、軟體質量保證和軟體測試等各種實踐感興趣的人員閱讀。同時,還可以作為軟體測試培訓課程的參考教材。
前言
本書編寫背景
軟體產業作為信息產業的核心和靈魂,在促進國民經濟和社會發展信息化中具有重要的地位和作用,是國家的基礎性、戰略性產業。隨著軟體規模的日益增大,軟體質量問題在近年也日益突出,由於軟體存在質量缺陷而引發的事故頻頻發生,它不僅會造成軟體交付延期、開發成本遞增,甚至會威脅到生命和社會安全。這再一次向我們提出了警告,必須立即重視和認真解決軟體質量問題。
軟體生命周期是軟體的產生直到報廢的生命周期,包括問題的定義及規劃、需求分析、軟體設計、程式編碼、軟體測試和運行維護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.2UML概述18
2.2.1UML圖18
2.2.2RationalRose工具及使用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.1McCall質量模型23
1.5.2Boehm質量模型24
1.5.3ISO9126質量模型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.1Halstead度量法42
2.4.2McCabe度量法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.2UseCase測試197
6.2.3.3MSC測試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.6SDL設計的測試219
6.3.6.1SDL介紹219
6.3.6.2SDL系統測試226
6.3.7硬體選型測試233
6.3.7.1TPC-C基準測試235
6.3.7.2TPC-E基準測試238
6.3.7.3TPC-H基準測試246
6.3.7.4TPC組織公布的測試報告讀解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.1TDD的優勢365
8.2.2TDD的原理366
8.2.3TDD的過程367
8.2.4TDD的原則368
8.2.5TDD測試技術369
8.2.6TDD測試案例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