現代軟件測試技術權威指南

茹炳晟,陳磊,朱少民 編

  • 出版商: 電子工業
  • 出版日期: 2025-03-01
  • 定價: $1,008
  • 售價: 8.5$857
  • 語言: 簡體中文
  • 頁數: 820
  • 裝訂: 平裝
  • ISBN: 712149499X
  • ISBN-13: 9787121494994
  • 相關分類: 軟體測試
  • 尚未上市,歡迎預購

買這商品的人也買了...

相關主題

商品描述

在過去的十多年中,軟件測試技術的演進突破了曾經的限制,
發生了翻天覆地的變化,在新的領域有了更廣泛的應用場景。

本書從現代軟件測試技術的視角,深入探討近年來湧現和快速發展的測試技術,
以及在快速變化的技術環境中依然保持高度相關性和實踐價值的方法論與技巧。
本書內容主要包括現代軟件測試的工程概念,測試策略、分析和設計,
測試與系統架構的關係,各項測試技術精要,自動化測試框架的設計與實現,
AI產品、大數據產品、區塊鏈、圖形影像相關測試技術,以及大模型賦能下的測試智慧化等。

我們希望這是一本軟件測試技術領域的“百科全書”,
無論你是希望在專業領域不斷精進的技術專家,或是希望打下紮實基礎的入門讀者,都能從本書中汲取寶貴的經驗。

目錄大綱

第1章 現代軟件測試的工程理念1
1.1 軟件的可測試性1
1.1.1 可測試性的定義1
1.1.2 可測試性引發的問題2
1.1.3 可測試性的三個核心觀點4
1.1.4 可測試性的四個維度5
1.1.5 不同等級的可測試性與工程實務8
1.2 測試左移和開發者自測13
1.2.1 傳統瀑布模型下軟件測試面臨的挑戰13
1.2.2 測試左移的早期實務14
1.2.3 軟件測試工程化面臨的挑戰與機會16
1.2.4 測試左移的進階實踐19
1.2.5 測試左移的深度思考21
1.3 測試右移的工程實務21
1.3.1 生產環境冒煙測試22
1.3.2 全鏈路壓力測試22
1.3.3 混沌工程24
1.3.4 紅藍對抗26
1.3.5 A/B測試27
1.3.6 灰階發布28
1.3.7 監控30
1.3.8 使用者體驗分析31
1.4 DevSecOps:從安全測試到安全工程34
1.4.1 傳統軟件安全開發系統面臨的挑戰34
1.4.2 新技術對軟件安全開發的挑戰35
1.4.3 DevSecOps概念的誕生與內涵36
1.4.4 DevSecOps工具37
1.4.5 典型DevSecOps流程解讀39
1.5 DevPerfOps:從性能測試到性能工程41
1.5.1 DevPerfOps的由來41
1.5.2 全鏈路壓測的限制41
1.5.3 DevPerfOps全流程解讀42
第2章 軟件測試策略46
2.1 什麼是測試策略46
2.1.1 測試策略不等於測試方針47
2.1.2 測試策略不等於測試計畫48
2.1.3 測試策略不等於測試方案48
2.1.4 測試策略本質上是一種選擇49
2.2 常用的測試策略50
2.2.1 基於產品品質的測試策略50
2.2.2 基於產品特性價值的測試策略52
2.2.3 不同產品階段下的測試策略57
2.2.4 以探索為基礎的測驗策略-啟發式測驗策略58
2.2.5 自動化持續測試策略60
2.3 測試策略的製定方法62
2.3.1 四步驟測試策略制定法63
2.3.2 產品品質評估模型65
2.3.3 組合缺陷分析技術69
2.4 測試風險分析81
2.4.1 測試風險識別82
2.4.2 測試風險評估85
2.4.3 測試風險因應86
2.5 不同研發模式下的測試分層88
2.5.1 瀑布模式下的測試分層88
2.5.2 敏捷模式的測試分層89
第3章 測驗分析與測驗設計93
3.1 測試分析與測試設計概述93
3.1.1 好的測試設計的「味道」93
3.1.2 目前測試設計的困頓93
3.1.3 測試分析和測試設計是兩個不同的活動94
3.2 測試分析的方法95
3.2.1 深入理解品質是做好測試分析的基礎95
3.2.2 軟件產品品質模型96
3.2.3 深入理解測試類型103
3.2.4 透過品質屬性來探索測試方法104
3.2.5 透過品質屬性確定測試的深度和廣度105
3.2.6 使用車輪圖進行測試分析105
3.3 測試設計的方法107
3.3.1 基於路徑分析的測試設計方法107
3.3.2 基於輸入-輸出表的測試設計方法118
3.3.3 基於等價類-邊界值的測試設計方法119
3.3.4 基於因子表的測試設計方法123
3.3.5 幾種測試設計方法的比較127
第4章 軟件測試與系統架構129
4.1 典型應用系統架構與測試關鍵指標129
4.1.1 典型應用系統架構129
4.1.2 客戶端請求的網絡通訊131
4.1.3 與測試相關的系統架構關鍵指標132
4.2 快取架構及其對快取測試的影響134
4.2.1 快取架構134
4.2.2 快取對測試的影響136
4.3 異步訊息驅動架構及其對測試的影響137
4.3.1 異步訊息驅動架構137
4.3.2 異步訊息驅動架構對測試的影響138
4.4 負載平衡架構及灰階發布對測試的影響139
4.4.1 負載平衡架構139
4.4.2 灰階發布及其對測試的影響141
4.5 分佈式數據庫架構及高可用性測試142
4.5.1 分佈式數據庫架構142
4.5.2 分佈式資料的高可用性測試144
4.6 微服務架構及其對測試的影響145
4.6.1 微服務架構146
4.6.2 微服務架構對測試的影響147
4.7 大數據架構及機器學習對測試的影響148
4.7.1 大數據架構148
4.7.2 機器學習對測試的影響149
第5章 Web測試技術精要151
5.1 Web測試技術概述151
5.1.1 Web測試技術要點151
5.1.2 Web自動化測試技術155
5.2 以程式語言為基礎的Web測試框架157
5.2.1 Selenium157
5.2.2 Airtest164
5.2.3 Playwright165
5.3 基於程式語言的測試程式碼的組織169
5.3.1 未經組織的測試代碼171
5.3.2 組織後的測試代碼173
5.4 Web自動化測試的痛點180
5.5 高效執行自動化測試181
5.5.1 並行模式181
5.5.2 無頭模式183
5.5.3 模擬登入183
5.6 穩定的自動化測試184
5.6.1 基於頁面或元素狀態的等待184
5.6.2 重試機制186
5.7 視覺驗證測試186
5.7.1 Appilitools Eyes187
5.7.2 Recheck-Web190
5.8 自我修復測驗193
5.8.1 Healenium193
5.8.2 Recheck-Web198
5.9 無程式碼/低程式碼自動化測試201
第6章 行動端測試技術精要204
6.1 行動端測試基礎技能204
6.1.1 透過HTTP Debug Proxy深入瞭解行動端測試204
6.1.2 設計測 例205
6.2 移動端測試進階208
6.2.1 UI自動化測試208
6.2.2 穩定性測試220
6.3 行動端測試的左移和右移224
第7章 接口測試技術精要226
7.1 接口測試概述226
7.2 接口測試關鍵技術227
7.2.1 模擬協定客戶端228
7.2.2 接口邏輯模擬228
7.2.3 數據驅動236
7.2.4 測試斷言239
7.2.5 解耦技術239
7.2.6 關鍵字驅動242
7.2.7 測試報告242
7.3 自動化接口測試關鍵技術243
7.4 接口測試的新技術244
7.4.1 契約測試244
7.4.2 流量錄製245
7.4.3 精準測試246
7.5 接口測試平臺化246
7.6 測試右移下的接口測試249
第8章 程式碼級測試技術精要250
8.1 程式碼級測試技術概述250
8.2 靜態程式碼分析技術251
8.2.1 靜態程式碼分析概述251
8.2.2 靜態程式碼分析的優勢253
8.2.3 靜態程式碼分析方法的型別254
8.2.4 靜態程式碼分析的原理256
8.2.5 常見靜態程式碼分析工具258
8.2.6 靜態程式碼分析工具面臨的挑戰261
8.2.7 靜態程式碼分析工具的選擇262
8.3 代碼評審技術263
8.3.1 代碼評審概述263
8.3.2 代碼評審的價值263
8.3.3 代碼評審的類型264
8.3.4 代碼評審的內容265
8.3.5 代碼評審 實踐266
8.4 契約測試技術274
8.4.1 契約測試概述274
8.4.2 契約測試基本要素277
8.4.3 繼承與契約280
8.4.4 一些說明283
8.5 單元測試技術286
8.5.1 單元測試概述286
8.5.2 設計方法291
8.5.3 測試先行300
8.6 智慧測試技術301
8.6.1 智慧測試技術概述301
8.6.2 智慧測試技術階段劃分302
8.6.3 智慧測試關鍵技術304
第9章 性能測試技術精要312
9.1 性能市場現況312
9.2 RESAR性能工程概述313
9.2.1 RESAR性能工程313
9.2.2 性能容量規劃326
9.2.3 效能工具解析328
9.3 性能測試階段329
9.3.1 需求階段329
9.3.2 準備階段333
9.3.3 執行階段334
9.3.4 報告階段336
9.3.5 環比階段337
9.4 效能監控分析邏輯338
9.4.1 作業系統監控分析邏輯338
9.4.2 開發語言監控分析邏輯353
9.4.3 數據庫監控分析邏輯366
9.5 性能分析案例391
9.5.1 場景運行資料391
9.5.2 分析系統架構391
9.5.3 拆分回應時間392
第10章 可靠度測試技術精要420
10.1 可靠性測試概述420
10.1.1 可靠度測試目的420
10.1.2 可靠性測試設計420
10.1.3 可靠性測試環境422
10.1.4 可靠性測試執行422
10.1.5 可靠性測試工具424
10.1.6 可靠性評估指標424
10.1.7 可靠性測試報告426
10.2 可靠度設計驗證426
10.2.1 可靠性故障管理驗證427
10.2.2 可靠度冗餘設計驗證428
10.2.3 可靠度容災設計驗證428
10.2.4 可靠性過載控制驗證430
10.3 可靠性負向驗證431
10.3.1 故障模式431
10.3.2 故障預案432
10.3.3 混沌工程433
第11章 自動化測試框架設計與實現435
11.1 自動化測試框架概述435
11.1.1 自動化測試框架的定義435
11.1.2 自動化測試框架的目標435
11.1.3 自動化測試框架和測試庫的區別436
11.2 自動化測試框架類型437
11.2.1 簡單測試框架437
11.2.2 x-Driven測試框架439
11.2.3 混合型測試框架442
11.2.4 不同類型測試框架對比443
11.3 自動化測試框架的通用實現原理444
11.3.1 分層架構模型444
11.3.2 gTAA模型446
11.3.3 通用型測試框架447
11.4 自動化測試框架開發設計指南448
11.4.1 測試框架 特徵448
11.4.2 代碼編寫原則449
11.4.3 設計模式的使用455
第12章 測試基礎建設能力建設462
12.1 測試執行環境架構設計基礎462
12.1.1 測試執行環境概述462
12.1.2 測試基礎架構的設計464
12.1.3 早期的測試基礎架構464
12.1.4 經典的測試基礎架構465
12.2 測試執行環境架構設計進階466
12.2.1 基於Docker實作的Selenium Grid測試基礎架構466
12.2.2 引進統一測試執行平臺的測試基礎架構467
12.2 .3 基於Jenkins叢集的測試基礎架構469
12.2.4 測試負載自適應的測試基礎架構470
12.2.5 測試基礎架構的選擇471
12.3 實戰案例:大型 化電商網站的測試基礎架構設計471
第13章 軟件測試新實務與新方法477
13.1 測試驅動開發477
13.1.1 測試驅動開發的基本概念477
13.1.2 UTDD、ATDD與BDD479
13.1.3 測試驅動開發的迷思482
13.2 精準測試483
13.2.1 精準測試的技術實現484
13.2.2 精準測試的前沿探索487
13.3 程式碼註入測試489
13.3.1 灰盒測試面臨的挑戰489
13.3.2 OOP的困境及AOP的解決思路490
13.3.3 AOP基本概念及其啟示493
13.3.4 基於AOP的測試實戰案例498
13.3.5 AOP的限制512
13.4 混沌工程512
13.4.1 混沌工程的起源513
13.4.2 混沌工程的原則513
13.4.3 攻防演練515
13.4.4 混沌工程的相關工具515
13.5 變異測試518
13.5.1 變異測試的基本流程519
13.5.2 變異測試的核心概念520
13.5.3 變異測試的應用案例522
13.5.4 變異測試的工程化實務525
13.6 探索式測試527
13.6.1 探索式測驗的基本理念527
13.6.2 探索式測驗的思考模型528
13.6.3 探索式測驗的方法529
13.6.4 探索式測試的進行533
13.6.5 探索式測驗的迷思534
13.7 微服務測試535
13.7.1 雲端原生和微服務535
13.7.2 微服務測試體系建置541
第14章 智慧化測試技術557
14.1 從測試視角看AI557
14.2 基於數據的智能化測試561
14.3 基於目標的智能化測試564
14.4 智能化測驗的實踐570
第15章 AI產品測試技術574
15.1 AI產品測試技術概述574
15.1.1 AI相關概念574
15.1.2 AI產品對測試提出的挑戰575
15.2 AI產品的功能測試576
15.2.1 AI產品功能測試面臨的挑戰577
15.2.2 蛻變測試578
15.2.3 AI產品的測試評估579
15.3 AI產品的非功能測試583
15.3.1 模型相關的效能衡量指標583
15.3.2 AI產品相關的性能指標586
15.3.3 倫理道德驗證587
第16章 大數據產品測試技術591
16.1 大數據基礎知識591
16.1.1 初識大數據591
16.1.2 什麼是大數據592
16.1.3 主流大數據架構與產品593
16.2 大數據產品測試與傳統軟件測試594
16.2.1 大數據產品測試與傳統軟件測試的聯繫594
16.2.2 大數據產品測試面臨的挑戰595
16.3 測試資料的準備597
16.3.1 測試數據的重要性597
16.3.2 資料準備方式597
16.4 大數據產品的功能性測試602
16.4.1 ETL測試602
16.4.2 數據品質測試607
16.5 大數據產品的非功能性測試610
16.5.1 大數據產品非功能測試面臨的挑戰611
16.5.2 非功能性測試設計612
第17章 區塊鏈測試技術618
17.1 區塊鏈概述618
17.1.1 區塊鏈定義618
17.1.2 區塊鏈特徵618
17.1.3 區塊鏈分類619
17.1.4 區塊鏈的應用場景619
17.2 區塊鏈測試技術總覽620
17.2.1 區塊鏈通用架構體系621
17.2.2 區塊鏈「四橫四縱」測試體系625
17.3 DApp測試626
17.3.1 DApp概述626
17.3.2 專案測試630
17.3.3 異常測試640
17.3.4 安全測試644
17.3.5 穩定性測試648
17.4 分佈式共識測試651
17.4.1 常見共識演算法651
17.4.2 專案測試654
17.4.3 異常測試667
17.4.4 安全測試676
17.4.5 穩定性測試681
17.5 智能合約測驗685
17.5.1 智能合約685
17.5.2 專案測試696
17.5.3 異常測試709
17.5.4 安全測試715
17.5.5 穩定性測試729
17.6 P2P網絡測試731
17.6.1 P2P731
17.6.2 專案測試738
17.6.3 異常測試745
17.6.4 安全測試752
17.6.5 穩定性測試760
第18章 圖形影像相關應用的測試技術實務765
18.1 機器視覺產品的測試概述765
18.1.1 機器視覺概述765
18.1.2 測試機器視覺產品的挑戰與策略765
18.2 AI技術在畫質增強方向的產品767
18.2.1 畫質客觀測驗777
18.2.2 畫質測驗的效能提升實務779
18.3 AI技術在人臉辨識方向的產品780
18.3.1 人臉解鎖概述780
18.3.2 AI技術在人群畫像、人群追蹤客流技術方向綜合應用的產品787
第19章 大模型賦能下的測試智能化790
19.1 大模型和大語言模型790
19.1.1 大語言模型與程式碼生成791
19.1.2 多模態大模型794
19.2 大模型時代的智慧化測驗795
19.2.1 軟件測試本質探討796
19.2.2 聰明的猴子798
19.3 大模型智能化測驗的探索實戰799
19.3.1 智慧型探索型測試799
19.3.2 測 例生成803
19.3.3 測試結果分析與診斷建議805
19.3.4 利用Hydra Lab建置智慧化測試平臺805
第20章 XRunner應用案例809
20.1 資訊系統領域性能保障痛點809
20.1.1 業務挑戰809
20.1.2 技術挑戰810
20.1.3 工具挑戰810
20.2 解決思路812
20.2.1 技術突破812
20.2.2 業務突破814
20.2.3 工具突破815
20.3 案例815
20.3.1 背景簡介815
20.3.2 壓測需求816
20.3.3 壓測目標816
20.3.4 壓測方案816
20.3.5 壓測方法和範圍816
20.4 實踐後的效果比較與總結818
20.4.1 壓測結果818
20.4.2 總結報告820