軟件全方位缺陷檢測技術
李必信、王璐璐、廖力、孔祥龍、周穎
- 出版商: 清華大學
- 出版日期: 2025-12-01
- 售價: $414
- 語言: 簡體中文
- ISBN: 7302704422
- ISBN-13: 9787302704423
-
相關分類:
Unit Test 單元測試
下單後立即進貨 (約4週~6週)
商品描述
目錄大綱
目錄
第1章引言1
1.1概述1
1.1.1什麼是軟件1
1.1.2軟件的兩種類型1
1.1.3什麼是軟件開發3
1.2軟件工程發展簡史3
1.2.1軟件開發早期階段3
1.2.2軟件工程理論體系形成和發展階段4
1.2.3軟件工程豐富和發展階段5
1.2.4軟件工程智能化自動化階段6
1.3軟件過程8
1.3.1慣例過程模型8
1.3.2敏捷過程模型8
1.3.3DevOps8
1.4軟件工程核心關註點9
1.5本書寫作動機10
1.6推薦閱讀10
1.7思考練習題11
第2章軟件全生命周期質量保障12
2.1概述12
2.2軟件質量12
2.2.1軟件質量的定義12
2.2.2外部質量和內部質量13
2.3典型的軟件質量模型14
2.3.1ISO/IEC 25010質量模型14
2.3.2ISO/IEC 9126質量模型15
2.3.3Boehm質量模型17
2.3.4McCall質量模型172.3.5SQOOSS質量模型18
2.4軟件質量保障問題19
2.4.1軟件開發後期階段軟件質量保障19
2.4.2軟件開發早期階段軟件質量保障20
2.4.3全生命周期軟件質量保障20
2.5軟件質量與軟件缺陷23
2.5.1軟件缺陷對軟件質量的影響23
2.5.2軟件全生命周期缺陷檢測方法24
2.6軟件質量保障方法26
2.6.1先驗方法和後驗方法26
2.6.2定性方法和定量方法26
2.6.3靜態方法和動態方法26
2.7推薦閱讀27
2.8思考練習題27
目錄〖3〗第3章軟件缺陷理解28
3.1概述28
3.2軟件缺陷產生原因30
3.2.1參與者方面的原因30
3.2.2技術方面的原因30
3.2.3管理方面的原因31
3.2.4環境方面的原因31
3.3軟件缺陷類型31
3.3.1從軟件開發過程的角度分類32
3.3.2從軟件產品的角度分類34
3.3.3從用戶需求的角度分類37
3.4軟件缺陷相關的幾個問題38
3.4.1缺陷嚴重性問題38
3.4.2缺陷處理的優先級問題38
3.4.3缺陷修復代價問題39
3.4.4缺陷狀態跟蹤問題39
3.4.5缺陷管理問題40
3.5為什麼需要缺陷檢測40
3.6全方位軟件缺陷檢測技術41
3.6.1全方位內涵41
3.6.2全方位缺陷檢測技術42
3.7推薦閱讀42
3.8思考練習題43
第4章軟件評審44
4.1概述44
4.2軟件評審過程45
4.3軟件評審需求45
4.3.1軟件開發過程評審需求46
4.3.2軟件管理過程評審需求46
4.4典型的軟件評審方法47
4.4.1技術評審48
4.4.2管理評審49
4.4.3同行評審49
4.4.4走查50
4.4.5結構化走查51
4.4.6代碼走查51
4.4.7審查52
4.4.8代碼審查53
4.4.9代碼審計54
4.4.10代碼閱讀56
4.5案例分析57
4.5.1代碼走查案例57
4.5.2代碼審查案例59
4.6軟件評審技術的發展歷程60
4.7推薦閱讀60
4.8思考練習題61
第5章程序分析62
5.1概述62
5.2控制流分析63
5.2.1什麼是控制流分析63
5.2.2控制流圖構造64
5.2.3過程內控制流分析65
5.2.4過程間控制流分析66
5.2.5過程內控制流分析和過程間控制流分析比較68
5.3數據流分析69
5.3.1什麼是數據流分析69
5.3.2數據流圖構造69
5.3.3過程內數據流分析70
5.3.4過程間數據流分析73
5.3.5過程內數據流分析和過程間數據流分析比較74
5.4抽象解釋75
5.5符號執行76
5.6汙點分析77
5.7關系分析78
5.7.1關聯關系78
5.7.2泛化特化關系79
5.7.3聚集關系和組合關系79
5.8依賴分析80
5.8.1控制依賴分析80
5.8.2數據依賴分析80
5.8.3程序依賴圖81
5.8.4程序切片81
5.9因果分析82
5.9.1因果圖82
5.9.2因果圖分析83
5.10修改影響分析84
5.10.1什麼是修改影響分析84
5.10.2靜態修改影響分析84
5.10.3動態修改影響分析85
5.10.4靜態CIA和動態CIA比較86
5.11修改傳播分析88
5.11.1什麼是修改傳播分析88
5.11.2修改傳播分析方法88
5.12程序分析工具及應用89
5.13程序分析技術的發展歷程91
5.14推薦閱讀91
5.15思考練習題92
第6章軟件度量93
6.1概述93
6.2軟件項目度量94
6.2.1軟件規模度量94
6.2.2軟件成本度量97
6.2.3顧客滿意度度量方法100
6.2.4信息熵度量100
6.2.5軟件進度度量102
6.3軟件過程度量104
6.3.1軟件過程度量的定性方法105
6.3.2軟件過程度量的定量方法106
6.4軟件產品度量108
6.4.1軟件產品結構度量108
6.4.2軟件產品質量度量111
6.5軟件團隊度量112
6.5.1效能與產出112
6.5.2協作與溝通112
6.5.3技能與成長112
6.5.4健康與文化112
6.6軟件度量技術的發展歷程113
6.7推薦閱讀114
6.8思考練習題114
第7章軟件測試115
7.1概述115
7.1.1軟件測試定義115
7.1.2開發者測試116
7.1.3用戶測試119
7.1.4第三方測試119
7.2典型軟件測試過程119
7.2.1測試需求分析120
7.2.2測試計劃制訂120
7.2.3測試設計121
7.2.4測試開發121
7.2.5測試執行與測試結果驗證121
7.2.6測試評估122
7.2.7測試報告生成123
7.3常見的軟件測試類型123
7.3.1結構化測試123
7.3.2功能測試125
7.3.3性能測試125
7.3.4安全性測試126
7.3.5可靠性測試127
7.3.6兼容性測試127
7.3.7健壯性測試128
7.3.8標準符合度測試128
7.3.9GUI測試129
7.4軟件測試有效策略129
7.4.1靜態測試與動態測試結合130
7.4.2白盒測試與黑盒測試結合130
7.4.3內部測試與外部測試結合131
7.4.4局部測試與整體測試結合132
7.4.5正面測試與負面測試結合132
7.5幾個典型的軟件測試方法133
7.5.1組合測試133
7.5.2隨機測試133
7.5.3蛻變測試134
7.5.4演化測試134
7.5.5變異測試135
7.6軟件測試的幾個核心問題136
7.6.1測試用例生成問題136
7.6.2測試預言問題136
7.6.3測試充分性問題137
7.7軟件測試技術的發展歷程137
7.8推薦閱讀138
7.9思考練習題139
第8章軟件仿真140
8.1概述140
8.1.1連續系統仿真141
8.1.2離散系統仿真141
8.1.3混合系統仿真141
8.2軟件系統功能性仿真和非功能性仿真142
8.2.1軟件系統功能性仿真142
8.2.2軟件系統非功能性仿真143
8.3典型軟件仿真場景145
8.3.1軟件架構仿真146
8.3.2軟件接口仿真146
8.3.3模塊設計仿真147
8.3.4數據結構仿真148
8.3.5數據庫設計仿真148
8.3.6外部調用仿真149
8.3.7算法設計仿真149
8.4典型的軟件仿真方法150
8.4.1軟件原型仿真150
8.4.2模型仿真151
8.4.3數學仿真153
8.5軟件系統仿真技術的發展歷程155
8.6推薦閱讀156
8.7思考練習題157
第9章軟件缺陷預測158
9.1概述158
9.2軟件缺陷預測的一般過程159
9.2.1數據收集與處理159
9.2.2特征提取與選擇161
9.2.3模型構建與訓練161
9.2.4模型評估與優化161
9.3軟件缺陷預測類型162
9.3.1版本內缺陷預測162
9.3.2跨版本缺陷預測164
9.3.3項目內缺陷預測169
9.3.4跨項目缺陷預測172
9.3.5公司內缺陷預測179
9.3.6跨公司缺陷預測180
9.3.7行業內缺陷預測183
9.3.8跨行業缺陷預測183
9.4缺陷預測的典型應用184
9.4.1出錯傾向性預測184
9.4.2缺陷分布預測185
9.4.3缺陷數量預測187
9.4.4缺陷類型預測188
9.4.5缺陷嚴重性預測189
9.5典型應用案例190
9.5.1項目內缺陷預測案例190
9.5.2跨項目缺陷預測案例192
9.6軟件缺陷預測技術的發展歷程193
9.7推薦閱讀194
9.8思考練習題195
第10章形式化驗證196
10.1概述196
10.2典型的形式化驗證技術197
10.2.1等效性檢驗198
10.2.2定理證明200
10.2.3模型檢驗203
10.3典型應用207
10.4形式化驗證技術的發展歷程208
10.5推薦閱讀209
10.6思考練習題210
第11章軟件監控211
11.1概述211
11.2軟件開發過程監控212
11.2.1項目進度表212
11.2.2需求跟蹤212
11.3軟件運行階段監控216
11.3.1代碼插樁216
11.3.2日誌分析219
11.3.3執行軌跡跟蹤220
11.3.4路徑剖析223
11.3.5觀察者模式224
11.3.6面向方面編程225
11.4軟件監控技術的發展歷程226
11.5推薦閱讀226
11.6思考練習題227
第12章知識驅動軟件缺陷檢測228
12.1概述228
12.2基本術語229
12.2.1數據、信息和知識229
12.2.2知識網絡、知識本體和知識圖譜229
12.2.3知識表示和知識推理232
12.3基於知識圖譜的缺陷檢測233
12.3.1知識圖譜構建和補全233
12.3.2基於模式匹配的缺陷檢測235
12.4典型缺陷檢測分析236
12.4.1遍歷map缺陷檢測236
12.4.2重入漏洞檢測239
12.5知識驅動軟件缺陷檢測技術的發展歷程242
12.6推薦閱讀243
12.7思考練習題244
第13章智能化軟件缺陷檢測245
13.1概述245
13.2智能化軟件缺陷檢測的典型方法246
13.2.1基於傳統機器學習的軟件缺陷檢測246
13.2.2基於深度學習的軟件缺陷檢測247
13.2.3基於大語言模型的軟件缺陷檢測248
13.3應用案例介紹250
13.3.1基於AI的測試用例生成250
13.3.2基於AI的測試用例排序252
13.3.3基於AI的靜態代碼缺陷檢測252
13.3.4基於圖神經網絡的龐氏合約檢測255
13.3.5基於大語言模型的日誌異常檢測260
13.4智能化軟件缺陷檢測技術的發展歷程265
13.5推薦閱讀265
13.6思考練習題266
第14章標準和規範依從性檢查268
14.1概述268
14.1.1常見術語解釋269
14.1.2標準的分類和等級劃分269
14.2軟件工程領域的標準270
14.2.1軟件工程標準體系簡介270
14.2.2軟件質量標準273
14.2.3軟件安全標準和規範277
14.2.4軟件安全保障規範279
14.3標準和規範依從性檢查方法282
14.4典型案例283
14.4.1視頻圖像信息的標準依從性檢查283
14.4.2網站信息無障礙標準依從性檢查284
14.5軟件質量標準化的發展歷程285
14.6推薦閱讀286
14.7思考練習題286
第15章缺陷檢測自動化287
15.1概述287
15.2缺陷檢測自動化的前提條件288
15.3自動化評審288
15.3.1何謂自動化評審288
15.3.2典型的評審工具288
15.4自動化程序分析291
15.4.1何謂自動化程序分析291
15.4.2典型程序分析工具291
15.5自動化軟件度量294
15.5.1何謂自動化軟件度量294
15.5.2典型軟件度量工具294
15.6自動化測試296
15.6.1何謂自動化測試297
15.6.2典型的測試工具297
15.7自動化仿真302
15.7.1何謂自動化仿真302
15.7.2典型的軟件仿真工具302
15.8自動化缺陷預測303
15.8.1何謂自動化缺陷預測303
15.8.2典型的缺陷預測工具304
15.9自動化監控305
15.9.1何謂自動化監控305
15.9.2典型的監控工具305
15.10自動化驗證307
15.10.1何謂自動化驗證307
15.10.2典型的形式化驗證工具307
15.11知識驅動軟件缺陷檢測自動化309
15.11.1何謂知識驅動軟件缺陷檢測自動化309
15.11.2典型的知識驅動軟件缺陷檢測工具310
15.12自動化智能化軟件缺陷檢測311
15.12.1何謂自動化智能化軟件缺陷檢測311
15.12.2典型的智能化缺陷檢測工具312
15.13自動化缺陷管理313
15.13.1何謂自動化缺陷管理313
15.13.2典型的缺陷管理工具314
15.14自動化缺陷報告生成314
15.14.1何謂自動化缺陷報告生成314
15.14.2缺陷報告生成工具315
15.15缺陷檢測自動化的發展歷程316
15.16推薦閱讀317
15.17思考練習題317
結語318







