本書(shū)基于軟件測(cè)試過(guò)程模型,構(gòu)建軟件測(cè)試價(jià)值模型、能力模型及基于能力戰(zhàn)略的軟件測(cè)試策略框架,討論軟件測(cè)試終止、測(cè)試預(yù)言、測(cè)試生成問(wèn)題;趫D結(jié)構(gòu)、圖元素及軟件失效行為,介紹邏輯驅(qū)動(dòng)、數(shù)據(jù)驅(qū)動(dòng)、剖面驅(qū)動(dòng)的基礎(chǔ)理論、基礎(chǔ)技術(shù)及實(shí)踐者方法。基于技術(shù)創(chuàng)新及軟件測(cè)試發(fā)展需求,構(gòu)建面向服務(wù)、大數(shù)據(jù)及應(yīng)用、軟硬件一體化測(cè)試的技術(shù)框架,討論基于服務(wù)模型的形式化描述及求解、服務(wù)實(shí)體及基于時(shí)間波動(dòng)的服務(wù)實(shí)時(shí)性測(cè)試、大數(shù)據(jù)算法及應(yīng)用性能測(cè)試、基于環(huán)境剖面及多域任務(wù)場(chǎng)景綜合的一體化測(cè)試技術(shù)的最新研究成果及實(shí)踐者方法;谀芰(zhàn)略的軟件測(cè)試策略,構(gòu)建基于質(zhì)量、效率驅(qū)動(dòng)的軟件測(cè)試框架,結(jié)合實(shí)際案例,討論文檔類(lèi)、代碼類(lèi)、數(shù)據(jù)類(lèi)、功能類(lèi)、性能類(lèi)、接口類(lèi)和專(zhuān)項(xiàng)類(lèi)軟件測(cè)試的技術(shù)要求、測(cè)試策略、環(huán)境構(gòu)建及實(shí)踐者方法。 本書(shū)可供軟件測(cè)試人員、軟件質(zhì)量管理人員、軟件工程管理人員、軟件開(kāi)發(fā)人員及軟件工程專(zhuān)業(yè)本科高年級(jí)學(xué)生、研究生使用和參考。
孫志安,中國(guó)船舶工業(yè)軟件測(cè)試中心研究員,裝備軟件工程標(biāo)準(zhǔn)化技術(shù)委員會(huì)委員,主要從事軟件測(cè)試、軟件可靠性工程研究。李源,某項(xiàng)目管理中心信息系統(tǒng)室副主任,主要從事指揮信息系統(tǒng)、軟件管理控制研究。韓啟龍,哈爾濱工程大學(xué)教授,博士生導(dǎo)師,國(guó)家重點(diǎn)研發(fā)計(jì)劃首席科學(xué)家,CCF杰出會(huì)員,主要從事大數(shù)據(jù)理論、智能軟件工程、數(shù)字孿生、數(shù)據(jù)驅(qū)動(dòng)的AI系統(tǒng)研究。豆康康,中國(guó)船舶工業(yè)軟件測(cè)試中心專(zhuān)業(yè)技術(shù)專(zhuān)家,主要從事軟件測(cè)試技術(shù)研究。費(fèi)琪,中國(guó)船舶工業(yè)軟件測(cè)試中心技術(shù)負(fù)責(zé)人,主要從事軟件測(cè)試、軟件可靠性研究。
第1章 軟件測(cè)試進(jìn)展 1
1.1 軟件賦能、賦值與賦智 1
1.2 軟件質(zhì)量現(xiàn)狀 2
1.3 軟件測(cè)試發(fā)展歷程 5
1.4 軟件測(cè)試發(fā)展展望 7
1.4.1 軟件測(cè)試面臨的挑戰(zhàn) 7
1.4.2 軟件測(cè)試發(fā)展趨勢(shì) 12
第2章 軟件測(cè)試基礎(chǔ) 18
2.1 軟件質(zhì)量 19
2.1.1 軟件質(zhì)量架構(gòu) 19
2.1.2 軟件質(zhì)量模型 20
2.1.3 質(zhì)量模型的GDQA應(yīng)用框架 22
2.2 軟件測(cè)試 23
2.2.1 測(cè)試的充分性 23
2.2.2 測(cè)試的追溯性 23
2.2.3 測(cè)試的時(shí)機(jī) 23
2.2.4 測(cè)試的針對(duì)性 24
2.2.5 測(cè)試與調(diào)試 24
2.3 軟件可測(cè)試性 25
2.3.1 可測(cè)試性生命周期過(guò)程模型 25
2.3.2 可測(cè)試性特征 26
2.3.3 不同級(jí)別的可測(cè)試性問(wèn)題 28
2.4 軟件可靠性 30
2.5 軟件錯(cuò)誤、缺陷、故障及失效 31
2.5.1 軟件錯(cuò)誤、缺陷及故障 31
2.5.2 軟件失效 38
2.6 時(shí)間問(wèn)題 40
2.6.1 基于時(shí)間的可靠性度量 40
2.6.2 Musa執(zhí)行時(shí)間 41
2.6.3 時(shí)間問(wèn)題再思考 41
2.7 運(yùn)行剖面 42
第3章 軟件測(cè)試模型 43
3.1 軟件測(cè)試過(guò)程模型 43
3.1.1 軟件測(cè)試過(guò)程 43
3.1.2 軟件測(cè)試過(guò)程活動(dòng) 44
3.1.3 基于流程的測(cè)試過(guò)程模型 46
3.1.4 基于RUP的測(cè)試過(guò)程模型 47
3.2 軟件測(cè)試成熟度模型 50
3.2.1 模型框架 50
3.2.2 能力成熟度等級(jí) 50
3.2.3 測(cè)試能力評(píng)價(jià)體系 52
3.2.4 評(píng)價(jià)模型 57
3.3 測(cè)試過(guò)程模型選擇 58
第4章 軟件測(cè)試策略 59
4.1 軟件測(cè)試價(jià)值模型及測(cè)試體系 59
4.1.1 軟件測(cè)試價(jià)值模型 59
4.1.2 軟件測(cè)試目標(biāo)體系 60
4.1.3 軟件測(cè)試體系 61
4.2 基于風(fēng)險(xiǎn)、能力的測(cè)試策略 63
4.2.1 基于風(fēng)險(xiǎn)的測(cè)試策略 63
4.2.2 基于能力的測(cè)試策略 64
4.3 基于架構(gòu)的測(cè)試策略 65
4.3.1 分層架構(gòu) 65
4.3.2 事件驅(qū)動(dòng)架構(gòu) 67
4.3.3 微服務(wù)架構(gòu) 67
4.3.4 云架構(gòu) 69
4.4 基于對(duì)象及環(huán)境的測(cè)試策略 70
4.4.1 測(cè)試對(duì)象模型 70
4.4.2 測(cè)試環(huán)境分析 71
4.5 基于流程及組織的測(cè)試策略 72
4.5.1 測(cè)試策略螺旋結(jié)構(gòu)模型 72
4.5.2 測(cè)試流程 73
4.5.3 測(cè)試組織 73
4.6 軟件測(cè)試思維 74
4.6.1 系統(tǒng)思維 74
4.6.2 分析思維 76
4.6.3 結(jié)構(gòu)化思維 77
4.7 不確定性及控制 78
4.8 測(cè)試策劃的實(shí)踐者方法 80
第5章 邏輯驅(qū)動(dòng)測(cè)試 82
5.1 靜態(tài)分析 82
5.1.1 靜態(tài)分析技術(shù)架構(gòu) 83
5.1.2 技術(shù)評(píng)審 83
5.1.3 代碼走查 84
5.1.4 代碼審查 85
5.1.5 動(dòng)態(tài)測(cè)試 89
5.1.6 靜態(tài)分析方法比較 90
5.2 邏輯覆蓋 91
5.2.1 語(yǔ)句覆蓋 91
5.2.2 判定覆蓋 93
5.2.3 條件覆蓋 93
5.2.4 判定?條件覆蓋 93
5.2.5 條件組合覆蓋 94
5.2.6 修正條件判定覆蓋 94
5.3 路徑覆蓋 98
5.3.1 圖結(jié)構(gòu) 99
5.3.2 控制流 99
5.3.3 獨(dú)立路徑 100
5.3.4 圖形矩陣 103
5.3.5 基本路徑覆蓋用例設(shè)計(jì) 104
5.4 循環(huán)結(jié)構(gòu)覆蓋 105
5.4.1 循環(huán)結(jié)構(gòu) 105
5.4.2 循環(huán)結(jié)構(gòu)測(cè)試 106
5.4.3 Z路徑覆蓋下的循環(huán)測(cè)試 108
5.4.4 最少測(cè)試用例數(shù)估算 108
5.5 符號(hào)執(zhí)行 109
5.5.1 符號(hào)執(zhí)行原理 110
5.5.2 符號(hào)執(zhí)行技術(shù) 111
5.5.3 符號(hào)表達(dá)式簡(jiǎn)化 116
5.5.4 約束條件求解 117
5.6 流敏感指針?lè)治?117
5.6.1 流敏感分析背景 118
5.6.2 靜態(tài)單賦值問(wèn)題 118
5.6.3 LLVM的內(nèi)部表示 119
5.6.4 稀疏流敏感指針?lè)治?119
5.6.5 訪問(wèn)等效性 120
5.6.6 算法 121
5.7 面向?qū)ο筌浖倪壿嬺?qū)動(dòng)測(cè)試 122
5.7.1 類(lèi)在UML中的描述 122
5.7.2 錯(cuò)誤表征 123
5.7.3 類(lèi)測(cè)試設(shè)計(jì) 123
5.7.4 類(lèi)測(cè)試數(shù)據(jù) 125
5.7.5 類(lèi)測(cè)試延伸 126
5.7.6 測(cè)試流程及方法 129
5.8 邏輯驅(qū)動(dòng)測(cè)試的邊界值 132
5.8.1 數(shù)據(jù)類(lèi)型的邊界值 132
5.8.2 數(shù)組的邊界值 132
5.8.3 分支判斷語(yǔ)句的邊界值 133
5.9 同源檢測(cè) 134
5.9.1 代碼克隆類(lèi)型 134
5.9.2 同源檢測(cè)技術(shù)原理 135
5.9.3 代碼克隆檢測(cè)原理及流程 136
5.9.4 代碼大數(shù)據(jù)庫(kù)構(gòu)建 137
5.9.5 分析元模型 139
5.9.6 基于代碼大數(shù)據(jù)庫(kù)的克隆檢測(cè) 139
5.10 靜態(tài)分析融合 142
5.10.1 靜態(tài)分析融合框架 142
5.10.2 基于語(yǔ)義的跨語(yǔ)言文本聚類(lèi) 144
5.10.3 基于語(yǔ)義的檢測(cè)結(jié)果與規(guī)則集
聚類(lèi) 146
第6章 數(shù)據(jù)驅(qū)動(dòng)測(cè)試 149
6.1 軟件可用性問(wèn)題 149
6.2 等價(jià)類(lèi)劃分 150
6.2.1 測(cè)試輸入問(wèn)題 150
6.2.2 等價(jià)類(lèi)劃分規(guī)則 152
6.2.3 等價(jià)類(lèi)劃分流程 152
6.2.4 等價(jià)類(lèi)劃分方法 153
6.2.5 基于等價(jià)類(lèi)劃分的加法器測(cè)試 154
6.3 邊界值分析 156
6.3.1 基于不同視角的邊界 156
6.3.2 單缺陷假設(shè)及多缺陷假設(shè) 158
6.3.3 汽車(chē)轉(zhuǎn)速控制邊界值分析 160
6.4 決策表驅(qū)動(dòng) 161
6.4.1 決策表表示 161
6.4.2 決策表結(jié)構(gòu) 162
6.4.3 決策表建立步驟 162
6.4.4 基于決策表驅(qū)動(dòng)的三角形類(lèi)型
判斷測(cè)試 163
6.5 因果圖分析 164
6.5.1 因果圖符號(hào)及關(guān)系 164
6.5.2 基于因果圖分析的測(cè)試設(shè)計(jì)流程 165
6.5.3 基于因果圖分析的自動(dòng)售貨軟件
測(cè)試設(shè)計(jì) 165
6.6 功能圖分析 167
6.6.1 功能圖模型 167
6.6.2 基于功能圖分析的測(cè)試設(shè)計(jì)流程 167
6.6.3 基于功能圖分析的播放器測(cè)試設(shè)計(jì) 167
6.7 場(chǎng)景驅(qū)動(dòng) 169
6.7.1 基于事件觸發(fā)的場(chǎng)景 169
6.7.2 基于場(chǎng)景驅(qū)動(dòng)的測(cè)試設(shè)計(jì)流程 169
6.7.3 基于場(chǎng)景驅(qū)動(dòng)的在線(xiàn)購(gòu)物系統(tǒng)
測(cè)試設(shè)計(jì) 170
6.8 正交試驗(yàn)設(shè)計(jì) 171
6.8.1 正交試驗(yàn)設(shè)計(jì)原理 171
6.8.2 正交試驗(yàn)設(shè)計(jì)流程 175
6.8.3 基于正交試驗(yàn)的某網(wǎng)絡(luò)系統(tǒng)
登錄測(cè)試 177
6.8.4 基于正交試驗(yàn)的某超短波跳頻
分組無(wú)線(xiàn)網(wǎng)傳輸時(shí)延測(cè)試 179
6.9 均勻試驗(yàn)設(shè)計(jì) 180
6.9.1 均勻試驗(yàn)設(shè)計(jì)原理 180
6.9.2 均勻試驗(yàn)設(shè)計(jì)的特點(diǎn) 183
6.9.3 均勻試驗(yàn)設(shè)計(jì)與正交試驗(yàn)設(shè)計(jì)比較 184
6.9.4 基于UDE的信息錄入與信息查詢(xún)
測(cè)試 185
6.10 組合測(cè)試 187
6.10.1 輸入及組合覆蓋問(wèn)題 187
6.10.2 組合測(cè)試分類(lèi)及覆蓋類(lèi)型 190
6.10.3 成對(duì)組合覆蓋 191
6.10.4 可變力度組合模型 204
6.10.5 成對(duì)組合測(cè)試方法比較 206
6.11 被動(dòng)測(cè)試 208
6.11.1 有限狀態(tài)機(jī)測(cè)試 209
6.11.2 EFSM測(cè)試 213
6.11.3 基于不變性的被動(dòng)測(cè)試 219
第7章 面向服務(wù)軟件測(cè)試 221
7.1 面向服務(wù)架構(gòu) 221
7.1.1 架構(gòu) 221
7.1.2 服務(wù) 223
7.1.3 環(huán)境 224
7.1.4 實(shí)現(xiàn) 225
7.2 面向服務(wù)測(cè)試的主要問(wèn)題和框架 227
7.2.1 面向服務(wù)測(cè)試的主要問(wèn)題 227
7.2.2 面向服務(wù)測(cè)試框架 228
7.2.3 面向服務(wù)測(cè)試對(duì)象 229
7.3 服務(wù)模型的形式化描述及求解 230
7.3.1 服務(wù)模型的形式化描述 230
7.3.2 形式化樹(shù)模型 232
7.3.3 領(lǐng)域數(shù)據(jù)約束 234
7.3.4 領(lǐng)域數(shù)據(jù)語(yǔ)義描述 235
7.3.5 數(shù)據(jù)約束模型 236
7.4 服務(wù)實(shí)體測(cè)試 237
7.4.1 軟件行為建模 237
7.4.2 測(cè)試框架 238
7.4.3 靜態(tài)缺陷檢測(cè) 238
7.4.4 測(cè)試設(shè)計(jì)模型 249
7.4.5 測(cè)試數(shù)據(jù)生成 251
7.4.6 單個(gè)操作基本測(cè)試用例生成 257
7.5 有狀態(tài)服務(wù)實(shí)體測(cè)試 261
7.5.1 模型及定義 262
7.5.2 操作序列測(cè)試路徑生成 269
7.5.3 服務(wù)操作序列測(cè)試 274
7.6 基于時(shí)間波動(dòng)的服務(wù)實(shí)時(shí)性測(cè)試 278
7.6.1 基于時(shí)間波動(dòng)的服務(wù)實(shí)時(shí)性
測(cè)試框架 278
7.6.2 基于并發(fā)機(jī)制的單個(gè)服務(wù)訪問(wèn)
頻率預(yù)測(cè) 280
7.6.3 服務(wù)實(shí)體訪問(wèn)場(chǎng)景構(gòu)建 282
7.6.4 服務(wù)響應(yīng)時(shí)間波動(dòng)分析 283
7.6.5 服務(wù)實(shí)時(shí)性測(cè)試 285
7.6.6 性能測(cè)試用例生成與執(zhí)行 285
第8章 剖面驅(qū)動(dòng)測(cè)試 289
8.1 軟件可靠性測(cè)試的基本問(wèn)題 290
8.1.1 基于運(yùn)行周期的軟件可靠性風(fēng)險(xiǎn) 290
8.1.2 與傳統(tǒng)軟件測(cè)試的差異 291
8.1.3 軟件可靠性測(cè)試的必備條件 293
8.1.4 軟件可靠性測(cè)試的空間覆蓋 293
8.1.5 軟件可靠性測(cè)試的不確定性 293
8.2 軟件可靠性測(cè)試策略 295
8.2.1 基于風(fēng)險(xiǎn)的可靠性測(cè)試方案 295
8.2.2 一種理想化情況 295
8.2.3 完全隨機(jī)的測(cè)試策略 296
8.2.4 混合測(cè)試策略 296
8.2.5 非均勻測(cè)試 297
8.2.6 最小測(cè)試集確定 297
8.3 軟件可靠性建模 298
8.3.1 軟件可靠性建模的基本問(wèn)題 299
8.3.2 隨機(jī)過(guò)程類(lèi)模型 302
8.3.3 非隨機(jī)過(guò)程類(lèi)模型 310
8.3.4 基于構(gòu)件的軟件可靠性模型 317
8.3.5 模型評(píng)價(jià)、選擇及合并 320
8.4 軟件可靠性度量 323
8.4.1 度量模型視圖 324
8.4.2 常用可靠性度量 325
8.4.3 復(fù)雜性度量 328
8.5 軟件可靠性增長(zhǎng)測(cè)試 334
8.5.1 軟件可靠性增長(zhǎng)預(yù)計(jì) 334
8.5.2 基于FTA的可靠性增長(zhǎng)測(cè)試 335
8.5.3 充分性準(zhǔn)則 337
8.6 軟件可靠性驗(yàn)證測(cè)試 337
8.6.1 無(wú)失效執(zhí)行時(shí)間驗(yàn)證測(cè)試 337
8.6.2 定時(shí)可靠性驗(yàn)證測(cè)試 338
8.6.3 序貫驗(yàn)證測(cè)試 339
8.6.4 驗(yàn)證測(cè)試方案 341
8.6.5 充分性準(zhǔn)則 341
8.7 基于蒙特卡羅方法的軟件可靠性測(cè)試 342
8.7.1 蒙特卡羅方法 342
8.7.2 測(cè)試過(guò)程模型 343
8.7.3 基于蒙特卡羅方法的測(cè)試應(yīng)用 343
第9章 大數(shù)據(jù)及應(yīng)用測(cè)試 348
9.1 大數(shù)據(jù)架構(gòu) 348
9.1.1 大數(shù)據(jù)架構(gòu)模型 349
9.1.2 大數(shù)據(jù)處理 350
9.2 大數(shù)據(jù)及應(yīng)用測(cè)試體系 355
9.2.1 大數(shù)據(jù)質(zhì)量 355
9.2.2 大數(shù)據(jù)及應(yīng)用測(cè)試的基本問(wèn)題 357
9.2.3 基于大數(shù)據(jù)應(yīng)用架構(gòu)的測(cè)試體系 358
9.3 大數(shù)據(jù)及算法測(cè)試 359
9.3.1 基準(zhǔn)測(cè)試 359
9.3.2 聚類(lèi)分析測(cè)試 360
9.3.3 分類(lèi)算法測(cè)試 367
9.3.4 推薦算法測(cè)試 373
9.4 大數(shù)據(jù)應(yīng)用性能測(cè)試 379
9.4.1 影響大數(shù)據(jù)應(yīng)用性能的因素 380
9.4.2 大數(shù)據(jù)應(yīng)用性能指標(biāo)及監(jiān)控 380
9.4.3 測(cè)試數(shù)據(jù) 381
9.4.4 負(fù)載模型及測(cè)試 383
9.5 大數(shù)據(jù)應(yīng)用安全性測(cè)試 385
9.5.1 大數(shù)據(jù)應(yīng)用安全要素 385
9.5.2 架構(gòu)安全性測(cè)試 387
9.5.3 數(shù)據(jù)安全性測(cè)試 392
9.5.4 應(yīng)用安全等級(jí)保護(hù)測(cè)試 398
第10章 軟硬件一體化測(cè)試 402
10.1 一體化測(cè)試框架 402
10.1.1 基于MBSE的一體化測(cè)試 402
10.1.2 基于能力的一體化測(cè)試 403
10.1.3 多域任務(wù)場(chǎng)景下的一體化測(cè)試 405
10.2 一體化測(cè)試剖面構(gòu)造 408
10.2.1 壽命剖面 408
10.2.2 任務(wù)剖面 408
10.2.3 環(huán)境剖面設(shè)計(jì) 409
10.2.4 面向任務(wù)的一體化測(cè)試剖面設(shè)計(jì) 410
10.2.5 一體化測(cè)試剖面設(shè)計(jì) 413
10.3 基于實(shí)測(cè)應(yīng)力的綜合環(huán)境應(yīng)力剖面生成 414
10.3.1 應(yīng)力測(cè)量 414
10.3.2 振動(dòng)應(yīng)力分析與歸納處理 415
10.3.3 溫度應(yīng)力分析與歸納處理 419
10.3.4 基于實(shí)測(cè)應(yīng)力的綜合環(huán)境剖面
生成 420
10.3.5 基于實(shí)測(cè)應(yīng)力的顯控設(shè)備綜合
環(huán)境試驗(yàn)剖面生成 422
10.4 基于退化模型的一體化測(cè)試 424
10.4.1 在環(huán)系統(tǒng)失效機(jī)理 424
10.4.2 基于特征的功能性能退化模型 429
10.4.3 基于退化模型的系統(tǒng)可靠性評(píng)價(jià) 434
10.5 多域任務(wù)場(chǎng)景驅(qū)動(dòng)的一體化測(cè)試 438
10.5.1 基于任務(wù)剖面的一體化測(cè)試用例
生成 438
10.5.2 測(cè)試用例加載 441
10.5.3 基于場(chǎng)景模式感知的測(cè)試用例
加載 445
10.5.4 測(cè)試用例執(zhí)行 445
第11章 質(zhì)量、效率驅(qū)動(dòng)的測(cè)試實(shí)踐 448
11.1 測(cè)試過(guò)程治理 448
11.1.1 測(cè)試過(guò)程模型 449
11.1.2 測(cè)試過(guò)程控制 451
11.1.3 基于系統(tǒng)特征狀態(tài)的充分性度量 453
11.1.4 測(cè)試評(píng)價(jià)及改進(jìn) 454
11.2 測(cè)試范圍及測(cè)試類(lèi)型 456
11.2.1 測(cè)試范圍 456
11.2.2 測(cè)試類(lèi)型 458
11.3 文檔類(lèi)測(cè)試 459
11.3.1 基于審查單的文檔審查 460
11.3.2 基于問(wèn)題驅(qū)動(dòng)的文檔審查 461
11.3.3 文檔審查問(wèn)題 461
11.3.4 性能指標(biāo)描述審查 462
11.4 代碼類(lèi)測(cè)試 462
11.4.1 代碼審查 462
11.4.2 代碼走查 473
11.4.3 靜態(tài)分析 474
11.4.4 邏輯測(cè)試 480
11.4.5 內(nèi)存使用缺陷測(cè)試 485
11.4.6 軟件成分分析 487
11.5 數(shù)據(jù)類(lèi)測(cè)試 493
11.5.1 數(shù)據(jù)審查 493
11.5.2 數(shù)據(jù)處理測(cè)試 493
11.6 功能類(lèi)測(cè)試 496
11.6.1 功能測(cè)試 497
11.6.2 邊界測(cè)試 500
11.6.3 安裝性測(cè)試 502
11.6.4 恢復(fù)性測(cè)試 503
11.7 性能類(lèi)測(cè)試 505
11.7.1 性能測(cè)試 505
11.7.2 余量測(cè)試 510
11.7.3 容量測(cè)試 514
11.7.4 強(qiáng)度測(cè)試 517
11.8 接口類(lèi)測(cè)試 520
11.8.1 接口測(cè)試 520
11.8.2 人機(jī)交互界面測(cè)試 526
11.9 專(zhuān)項(xiàng)類(lèi)測(cè)試 531
11.9.1 安全性測(cè)試 531
11.9.2 互操作性測(cè)試 542
11.9.3 兼容性測(cè)試 544
參考文獻(xiàn) 547