質量全面管控——從項目管理到容災測試

質量全面管控——從項目管理到容災測試

《質量全面管控——從項目管理到容災測試》 一書作者葛長芝、魯盈盈、 歐仕強,電子工業出版社2017年2月出版

內容提要

《質量全面管控——從項目管理到容災測試》專門為有志於軟體測試的工程師打開軟體測試的大門,筆者結合案例講解測試實踐技術,主要內容有:項目管理、項目需求管理、代碼質量控制、自動化部署、軟體測試、安全測試與安全管理、自動化測試基礎、自動化測試框架、性能測試、性能分析、監控平台與故障排查、災難恢復與容災測試等。《質量全面管控——從項目管理到容災測試》使用了大量的原創圖表,提供了基礎工具的使用方法和流程。

《質量全面管控——從項目管理到容災測試》圖文並茂,通俗易懂,提供的大量實例可以使讀者邊學習邊實踐,深入理解書中的內容,並將所學到的知識套用於實際項目中,對於國中級軟體測試工程師來說是不可多得的工具書。

目錄

第1 章 項目管理1

1.1 項目管理概述2

1.2 軟體項目管理5

1.3 項目質量管理. 10

1.4 項目管理流程. 11

1.4.1 項目啟動. 11

1.4.2 項目計畫. 13

1.4.3 軟體需求階段14

1.4.4 變更管理. 16

1.4.5 設計階段. 18

1.4.6 構建階段. 19

1.4.7 測試階段. 21

1.4.8 部署與試運行23

1.4.9 項目總結. 25

1.5 項目管理十誡. 26

1.6 項目管理工具對比. 28

1.6.1 Microsoft Project 28

1.6.2 Redmine 29

1.6.3 Feng Office 30

第1 章 項目管理1

1.1 項目管理概述2

1.2 軟體項目管理5

1.3 項目質量管理. 10

1.4 項目管理流程. 11

1.4.1 項目啟動. 11

1.4.2 項目計畫. 13

1.4.3 軟體需求階段14

1.4.4 變更管理. 16

1.4.5 設計階段. 18

1.4.6 構建階段. 19

1.4.7 測試階段. 21

1.4.8 部署與試運行23

1.4.9 項目總結. 25

1.5 項目管理十誡. 26

1.6 項目管理工具對比. 28

1.6.1 Microsoft Project 28

1.6.2 Redmine 29

1.6.3 Feng Office 30

2.5.3 《軟體需求規格說明書》. 72

2.6 測試需求73

2.7 需求管理工具. 74

2.7.1 Rational RequisitePro 75

2.7.2 TelelogicDoors 76

2.8 Plandora 實戰76

2.8.1 搭建Plandora 77

2.8.2 管理員配置78

2.8.3 前端用戶. 82

2.8.4 需求變更實例88

2.9 要點回顧92

第3 章 代碼質量控制93

3.1 靜態代碼分析. 94

3.2 代碼文檔規範. 94

3.2.1 命名規範. 95

3.2.2 編碼規範. 96

3.2.3 注釋規範. 97

3.2.4 異常處理規範102

3.2.5 單元測試規範103

3.2.6 檔案解析規範103

3.3 Sonar 簡介106

3.3.1 Sonar 體系架構. 107

3.3.2 Sonar 代碼規則. 108

3.4 Sonar 服務端. 110

3.4.1 環境要求110

3.4.2 Sonar 伺服器搭建110

3.4.3 Sonar 配置112

3.4.4 Sonar 外掛程式114

3.5 Sonar 客戶端. 116

3.5.1 Sonar-Runner 客戶端. 116

3.5.2 Maven 外掛程式方式117

3.5.3 Ant 外掛程式方式. 118

3.5.4 Eclipse 外掛程式方式119

3.6 最佳實踐121

3.6.1 項目配置122

3.6.2 持續審查123

3.6.3 結果分析125

3.6.4 集成曲線圖. 128

3.7 要點回顧129

第4 章 自動化部署130

4.1 引入自動化部署. 131

4.1.1 複雜的手工部署131

4.1.2 自動化部署方式132

4.1.3 持續集成思想133

4.2 自動化部署的特點134

4.2.1 環境一致性. 134

4.2.2 部署系統化. 134

4.2.3 配置集中化. 135

4.3 版本控制137

4.3.1 Git 簡介. 137

4.3.2 Git 部署. 138

4.3.3 Git 客戶端使用. 141

4.3.4 Git 相關操作144

4.3.5 代碼管理147

4.4 JDeploy 平台. 151

4.4.1 認識JDeploy 151

4.4.2 JDeploy 部署配置151

4.4.3 一鍵部署項目152

4.5 要點回顧155

第5 章 軟體測試. 156

5.1 軟體測試156

5.1.1 軟體測試發展史157

5.1.2 軟體測試的未來160

5.1.3 測試部門組織架構161

5.1.4 軟體測試的基本類型. 163

5.2 測試模型164

5.2.1 瀑布模型164

5.2.2 敏捷模型165

5.2.3 敏捷測試與傳統測試的區別. 166

5.3 系統測試流程167

5.4 根據需求原型設計測試用例171

5.4.1 需求原型規範樣式171

5.4.2 設計測試用例173

5.5 缺陷描述175

5.5.1 缺陷屬性175

5.5.2 缺陷描述示例176

5.6 測試的策略. 178

5.7 測試過程的經驗總結. 179

5.8 質量保證180

5.9 要點回顧181

第6 章 安全測試與安全管理182

6.1 安全測試182

6.1.1 安全測試概述183

6.1.2 安全測試的基本過程. 184

6.1.3 安全測試與安全運維. 186

6.1.4 安全測試工具186

6.1.5 安全測試用例187

6.2 開發安全規範189

6.2.1 跨站腳本安全規範189

6.2.2 SQL 注入安全規範. 191

6.2.3 頁面組件和敏感數據的安全規範193

6.2.4 Java 安全規範196

6.2.5 套用集成安全規範197

6.3 代碼安全審核工具Checkmarx. 197

6.3.1 SQL 注入198

6.3.2 反射型跨站腳本攻擊. 199

6.3.3 儲存型XSS. 201

6.3.4 HTTP 回響頭分裂(Http_ Response_Splitting)201

6.4 安全漏洞202

6.4.1 信息收集202

6.4.2 口令入侵204

6.4.3 心臟滴血漏洞207

6.5 OSSIM 安全管理平台209

6.5.1 OSSIM 架構210

6.5.2 安裝與部署. 211

6.5.3 OSSIM 控制台. 211

6.5.4 Web 界面配置212

6.5.5 OSSIM 使用實戰. 214

6.6 要點回顧219

第7 章 自動化測試基礎220

7.1 自動化基礎. 221

7.1.1 自動化測試流程222

7.1.2 自動化測試特點225

7.1.3 自動化測試工具226

7.1.4 標記語言介紹228

7.2 Web 自動化測試. 233

7.2.1 元素定位234

7.2.2 Selenium IDE 238

7.2.3 Selenium 使用241

7.3 接口自動化測試. 247

7.3.1 接口測試類型248

7.3.2 接口測試工具249

7.3.3 Mock 測試250

7.3.4 HTTP 協定測試254

7.4 TestNG 框架258

7.4.1 TestNG 配置258

7.4.2 TestNG 註解260

7.4.3 測試套件260

7.4.4 數據驅動265

7.4.5 執行測試結果267

7.4.6 測試集成268

7.5 要點回顧270

第8 章 自動化測試框架271

8.1 框架分析272

8.1.1 框架設計目標272

8.1.2 業務流程層次分析272

8.1.3 業務流程測試自動化. 273

8.1.4 手工用例自動化274

8.2 框架設計274

8.2.1 框架設計思想274

8.2.2 框架物理架構276

8.2.3 框架邏輯架構277

8.2.4 框架工作流程278

8.3 框架開發278

8.3.1 創建測試用例279

8.3.2 創建測試數據280

8.3.3 創建測試項目281

8.3.4 開發框架運行類285

8.3.5 開發公共接口288

8.3.6 添加日誌報告292

8.4 腳本開發292

8.4.1 編寫測試腳本292

8.4.2 調試運行腳本293

8.4.3 上傳腳本294

8.5 持續集成296

8.5.1 Jenkins 伺服器搭建. 296

8.5.2 Jenkins 相關外掛程式298

8.5.3 部署測試執行機299

8.5.4 分散式測試. 300

8.5.5 配置測試任務303

8.5.6 查看運行結果310

8.6 要點回顧312

第9 章 性能測試. 313

9.1 性能測試基礎313

9.1.1 性能術語314

9.1.2 需求分析與策略317

9.2 測試利器之LoadRunner. 321

9.2.1 LoadRunner 安裝貼士321

9.2.2 腳本與最佳化. 322

9.2.3 設定場景339

9.2.4 運行場景340

9.2.5 收集和分析結果341

9.3 測試利器之JMeter 343

9.3.1 JMeter 介紹. 343

9.3.2 JMeter 腳本與最佳化. 344

9.3.3 收集監控數據353

9.3.4 運行測試353

9.3.5 JMeter 使用小結354

9.4 性能測試框架搭建355

9.4.1 JMeter 配置監聽器. 355

9.4.2 InfluxDB 資料庫配置356

9.4.3 InfluxDB Graphite Listener 配置. 357

9.4.4 查看InfluxDB 結果357

9.4.5 Grafana 配置358

9.5 性能測試實戰359

9.5.1 明確測試需求359

9.5.2 選取測試方法和策略. 361

9.5.3 準備測試腳本362

9.5.4 執行與分析測試結果. 362

9.5.5 提出調優建議364

9.5.6 交付測試報告364

9.6 性能調優364

9.6.1 CPU 使用率過高364

9.6.2 I/O 使用率過高. 365

9.6.3 進程數調整. 367

9.6.4 執行緒不安全. 367

9.6.5 資料庫連線數過少368

9.6.6 數據導入慢. 369

9.7 要點回顧369

第10 章 性能分析. 371

10.1 系統硬體資源監控 372

10.1.1 nmon 工具. 373

10.1.2 Linux 系統監控命令378

10.2 JVM 監控與分析386

10.2.1 JVM 基礎386

10.2.2 JVM 垃圾回收388

10.2.3 常見JVM 命令390

10.2.4 堆分析工具MAT 402

10.2.5 JConsole 403

10.2.6 JProfiler 406

10.3 資料庫性能分析415

10.3.1 軟解析和硬解析. 415

10.3.2 SQL 執行計畫分析417

10.3.3 資料庫連線數監控418

10.3.4 Oracle 資料庫性能診斷報告AWR. 419

10.4 要點回顧427

第11 章 監控平台與故障排查428

11.1 監控系統428

11.1.1 日誌監控平台. 429

11.1.2 硬體和套用監控平台429

11.2 Zabbix 簡介430

11.2.1 系統架構430

11.2.2 配置Zabbix 432

11.2.3 常見的配置問題. 436

11.2.4 監控主機438

11.3 美化界面Grafana 441

11.3.1 部署Grafana. 441

11.3.2 使用Grafana. 442

11.4 伺服器故障排查447

11.4.1 清楚故障的前因後果447

11.4.2 搜尋蛛絲馬跡. 447

11.4.3 列出當前運行的進程449

11.4.4 監聽網路服務. 451

11.4.5 查看硬體狀態. 451

11.4.6 列出掛載點和檔案系統. 457

11.4.7 過濾核心和中斷信息459

11.4.8 定時任務460

11.4.9 分析系統日誌. 461

11.5 要點回顧461

第12 章 災難恢復與容災測試462

12.1 災難恢復463

12.1.1 災難恢復的規範. 463

12.1.2 災難恢復能力等級466

12.1.3 災難恢復的關鍵指標468

12.2 容災測試471

12.2.1 容災的起源471

12.2.2 容災的定義472

12.2.3 容災的區別474

12.3 詳解容災測試475

12.3.1 容災測試的目標. 475

12.3.2 職責的劃分476

12.3.3 容災測試的流程. 477

12.4 容災測試實戰478

12.4.1 容災測試計畫. 479

12.4.2 容災用例與Bug. 480

12.4.3 容災線上演習. 484

12.4.4 容災長期規劃. 485

參考文獻. 486

熱門詞條

聯絡我們