●第1章360度看軟件測試:一覽無餘1
1.1軟件測試基本認知——正反思維2
1.2從狹義測試到廣義測試3
1.3基於質量的認知5
1.4基於風險的認知8
1.5基於社會性的認知8
1.6基於經濟的認知9
1.7基於標準的認知9
1.8基於TestOracle的認知11
1.9基於批判性思維的認知14
1.10基於傳統開發模式的認知16
1.11基於敏捷開發模式的認知17
1.12小結20
第2章全程測試:閃光的思想22
2.1測試左移與右移23
2.2測試驅動開發24
2.3傳統研發模式的測試環28
2.4敏捷研發中的測試環30
2.5DevOps與測試32
2.6小結34
第3章準備:基礎設施與TA框架35
3.1虛擬機與容器技術35
3.2基礎設施即代碼38
3.3持續集成環境39
3.3.1版本管理與構建41
3.3.2CI管理工具的安裝42
3.4自動化測試框架45
3.4.1自動化測試框架的構成與分類45
3.4測試框架48
3.4.3UITA框架51
3.4.4移動應用TA框架57
3.4.5面向API的TA測試框架60
3.4.6驗收測試框架64
3.5DevOps完整工具鏈68
3.6小結72
第4章準備:個體與團隊73
4.1全棧,體現了技術深度74
4.2個人測試能力模型77
4.3軟件測試思維訓練81
4.3.1軟件測試繫統性思維81
4.3.2分析性測試思維86
4.3.3批判性測試思維91
4.3.4創造性、發散性測試思維95
4.4軟件研發團隊測試組織與能力98
4.5軟件研發團隊測試過程改進99
4.6DevOps對軟件測試人員的影響分析102
4.7小結105
第5章項目啟動:知己知彼、百戰不殆107
5.1用戶與質量要求108
5.1.1用戶是誰108
5.1.2對質量有什麼要求109
5.1.3參照哪些質量標準110
5.2項目背景112
5.素113
5.4測試方法和技術115
5.5確定測試規範116
5.6小結122
第6章測試計劃:分析與策略123
6.1軟件測試的目標124
6.1.1分析軟件產品的特定質量要求125
6.1.2測試目標127
6.2項目的測試需求129
6.2.1測試需求分析的基本方法130
6.2.2測試需求的分析技術132
6.2.3功能需求分析133
6.2.4非功能性需求分析137
6.3測試工作量估算140
6.3.1工作量的估計141
6.3.2工作分解結構表方法142
6.3.3工作量估計的實例145
6.4測試資源需求147
6.5測試裡程碑和進度安排148
6.5.1傳統測試149
6.5.2敏捷測試149
6.6測試風險分析150
6.7如何制訂有效的測試策略154
6.8編寫測試計劃書160
6.9小結161
第7章測試設計:架構與用例163
7.1測試框架的設計163
7.1.1從需求到測試用例164
7.1.2基於SUT結構來組織設計166
7.2測試設計要考慮的因素170
7.3如何運用測試設計方法171
7.4非功能性測試也存在設計176
7.5探索式測試之設計177
7.6測試用例規範性與評審181
7.6.1測試用例的構成181
7.6.2測試用例書寫標準182
7.6.3測試用例評審要點183
7.7測試集的創建186
7.8小結189
第8章測試執行:自動與探索190
8.1測試執行概述190
8.2測試執行的準備193
8.2.1測試任務安排193
8.2.2測試環境的建立與配置194
8.2.3測試自動化運行平臺195
8.3如何有效地創建測試集196
8.4敏捷測試的執行198
8.4.1策略與實踐198
8.4.2探索式測試的執行200
8.5用戶體驗和易用性測試202
8.5.1易用性測試的標準202
8.5.2如何進行A/B測試206
8.6回歸測試209
8.7軟件缺陷的報告212
8.7.1缺陷的屬性及其描述212
8.7.2如何有效報告缺陷214
8.8小結215
第9章永不收尾:持續反饋與改進216
9.1驗收測試216
9.2部署驗證220
9.2.1客戶端軟件安裝測試220
9.2.2後臺繫統的部署驗證222
9.3在線測試與日志分析222
9.4後繼版本的測試226
9.5測試過程評審228
9.6團隊反思:持續改進229
9.7小結233
第10章全程靜態測試:
以不變應萬變234
10.1常用的評審方法234
10.2需求評審優秀實踐237
10.2.1如何操作需求評審238
10.2.2需求評審的標準239
10.2.3需求的可測試性241
10.3繫統架構的審查242
10.3.1繫統架構選型的確認243
10.3.2軟件設計評審標準244
10.3.3設計的可測試性248
10.3.4繫統組件設計的審查250
10.4產品設計規格說明書的復審252
10.4.1重視設計規格說明書的審查252
10.4.2設計規格說明書的多層次審查253
10.4.3界面設計的評審254
10.5繫統部署設計的審查255
10.5.1繫統部署邏輯設計的審查256
10.5.2軟件部署物理設計的審查258
10.5.3可用性設計的審查259
10.5.4可伸縮性設計的驗證263
10.5.5安全性設計的驗證264
10.6代碼評審與靜態分析264
10.7小結267
第11章全程性能測試:持續優化268
11.1常見的性能問題268
11.2如何確定繫統的性能需求269
11.2.1明確性能測試的基本目標270
11.2.2關鍵性能指標分析271
11.2.3關鍵業務分析273
11.3如何完成性能測試的設計274
11.3.1如何模擬用戶操作274
11.3.2如何有效地模擬加載過程275
11.3.3如何實時準確地控制加載278
11.4如何執行性能測試279
11.5如何分析和評估測試結果286
11.6小結289
第12章全程安全性:持續加固290
12.1貫穿研發生命周期的安全性測試290
12.2濫用案例與安全性需求293
12.2.1軟件繫統存在哪些安全漏洞293
12.2.2國內外標準中關於繫統安全性的要求295
12.2.3安全性測試需求分析297
12.3安全性風險分析298
12.4安全性靜態測試301
12.5滲透測試302
12.6繫統運維安全性監控與審計306
12.7小結307
第13章全程建模:自動化309
13.1測試過程模型310
13.2基於模型的測試312
13.3基於業務建模的MBT方法314
13.3.1基於業務流程建模314
13.3.2基於事件流、應用場景建模316
13.4基於UML的MBT方法318
13.4.1基於UML的MBT具體實現319
13.4.2基於有限狀態機建模321
13.5小結323
第14章全程可視化:管理無死角326
14.1測試過程的度量體繫326
14.1.1測試管理的全局性與層次性327
14.1.2測試過程度量指標體繫328
14.2測試全過程的度量332
14.2.1測試分析與設計的度量333
14.2.2代碼評審與分析的度量336
14.2.3測試執行的度量338
14.2.4與缺陷相關的度量340
14.2.5測試充分性和上線後的度量345
14.3測試度量管理與工具346
14.4測試用例管理348
14.5測試管理工具的應用350
14.6小結353
第15章測試展望:未來更具挑戰355
15.1雲計算與測試的基礎設施355
15.2微服務、契約測試與自動化測試工具357
15.2.1契約測試工具358
15.2.2智測試工具360
15.2.3前端測試工具362
15.3如何測試人工智能軟件363
15.4如何用AI技術為測試服務365
15.4.1AI技術及其應用365
15.4.2AI技術如何應用於測試367
15.4.3AI測試工具372
15.5小結375
附錄A測試中的記憶符號:測試思維寶庫376
附錄B測試計劃(GB8567-2006)382
B.1引言382
B.1.1標識382
B.1.2繫統概述382
B.1.3文檔概述382
B.1.4與其他計劃的關繫382
B.1.5基線382
B.2引用文件382
B.3軟件測試環境383
B.4計劃384
B.4.1總體設計384
B.4.2計劃執行的測試385
B.4.3測試用例386
B.5測試進度表386
B.6需求的可追蹤性387
B.7評價387
B.7.1評價準則387
B.7.2數據處理387
B.7.3結論387
B.8注解387
B.9附錄388
附錄C代碼審查的示範性列表389
E.1格式389
E.2程序語言的使用389
E.3數據引用錯誤389
E.4數據聲明錯誤390
E.5計算錯誤390
E.6比較錯誤391
E.7入口和出口的連接391
E.8存儲器的使用391
E.9控制流程錯誤391
E.10子程序參數錯誤392
E.11輸入/輸出錯誤392
E.12邏輯和性能392
E.13維護性和可靠性393
附錄DRF庫與工具394
附錄E軟件測試術語中英文對照399
參考文獻404