軟件測試:實踐者方法

孫志安 等

  • 出版商: 電子工業
  • 出版日期: 2024-09-01
  • 定價: $1,200
  • 售價: 8.5$1,020
  • 語言: 簡體中文
  • 頁數: 564
  • ISBN: 7121487187
  • ISBN-13: 9787121487187
  • 下單後立即進貨 (約4週~6週)

商品描述

本書基於軟件測試過程模型,構建軟件測試價值模型、能力模型及基於能力戰略的軟件測試策略框架,討論軟件測試終止、測試預言、測試生成問題。基於圖結構、圖元素及軟件失效行為,介紹邏輯驅動、數據驅動、剖面驅動的基礎理論、基礎技術及實踐者方法。基於技術創新及軟件測試發展需求,構建面向服務、大數據及應用、軟硬件一體化測試的技術框架,討論基於服務模型的形式化描述及求解、服務實體及基於時間波動的服務實時性測試、大數據算法及應用性能測試、基於環境剖面及多域任務場景綜合的一體化測試技術的最新研究成果及實踐者方法。基於能力戰略的軟件測試策略,構建基於質量、效率驅動的軟件測試框架,結合實際案例,討論文檔類、代碼類、數據類、功能類、性能類、接口類和專項類軟件測試的技術要求、測試策略、環境構建及實踐者方法。 本書可供軟件測試人員、軟件質量管理人員、軟件工程管理人員、軟件開發人員及軟件工程專業本科高年級學生、研究生使用和參考。

目錄大綱

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

11.6 功能類測試 496
11.6.1 功能測試 497
11.6.2 邊界測試 500
11.6.3 安裝性測試 502
11.6.4 恢復性測試 503
11.7 性能類測試 505
11.7.1 性能測試 505
11.7.2 餘量測試 510
11.7.3 容量測試 514
11.7.4 強度測試 517
11.8 接口類測試 520
11.8.1 接口測試 520
11.8.2 人機交互界面測試 526
11.9 專項類測試 531
11.9.1 安全性測試 531
11.9.2 互操作性測試 542
11.9.3 兼容性測試 544
參考文獻 547