軟件測試, 2/e (慕課版)

鄭煒 李寧 陳翔 吳瀟雪

  • 出版商: 人民郵電
  • 出版日期: 2022-02-01
  • 售價: $419
  • 貴賓價: 9.5$398
  • 語言: 簡體中文
  • 頁數: 320
  • ISBN: 7115564256
  • ISBN-13: 9787115564252
  • 相關分類: 軟體測試
  • 立即出貨 (庫存 < 4)

  • 軟件測試, 2/e (慕課版)-preview-1
  • 軟件測試, 2/e (慕課版)-preview-2
軟件測試, 2/e (慕課版)-preview-1

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

商品描述

 

本書系統介紹了軟件測試的基本理論、工具的使用,以及前沿的軟件測試理論和技術。

全書共分為11章,內容包括:軟件測試的基礎、軟件測試的策略、黑盒測試與白盒測試、軟件測試過程管理、軟件測試的度量方法、系統測試技術、軟件測試工具及其應用、第三方測試、公有雲測試質量評估與退出方法、企業測試實踐、CMMI與軟件測試、基於搜索的軟件測試。本書所有知識都以結合具體實例的形式進行介紹,力求詳略得當,使讀者可以快速地理解軟件測試的方法。章後附有習題,供讀者實踐練習。同時各章節主要內容配備了以二維碼為載體的微課,並在學堂在線(http://www.xuetangx.com)平臺上提供了在線慕課。

作者簡介

郑炜,西北工业大学软件学院副教授,CCF高级会员,软件工程,系统软件、形式化方法执行委员。在软件工程领域的顶会顶刊上发表论文60余篇,其中包括TOSEM,TSE,TR,ICSE,FSE、KBS、JSS,IST, SANER,ISSRE,软件学报等。主持、参与国家863,973、国家自然重大仪器项目,国家自然重点基金等项目六项,与研究所和企业进行多个项目合作,主要涉及第三方软件测试、软件工具、测试平台研发,形式化验证等,科研经费超千万。主讲的《软件测试》课程在学堂在线、爱课程上选为精品课程。2019年软件测试课程获得陕西省精品在线课程,《软件测试》教材第二版获得工业信息化部十四五推荐教材,并且被五十多所学校指定为教材。指导学生获得多项国家一等奖,包括挑战杯,软件杯,服务外包大赛,数模竞赛,软件测试大赛等。

目錄大綱

第 1章 軟件測試基礎 2

1.1 軟件測試的基本概念 2

1.1.1 軟件測試是什麽 2

1.1.2 軟件測試的目的 3

1.1.3 軟件測試與軟件質量保證 3

1.1.4 軟件測試的必要性 5

1.1.5 軟件測試的基本概念分析 6

1.2 軟件測試的分類 7

1.3 軟件缺陷管理 10

1.3.1 軟件缺陷的概念 10

1.3.2 軟件缺陷的屬性 10

1.3.3 軟件缺陷生命周期 12

1.3.4 常見的軟件缺陷管理工具 13

1.4 軟件質量與軟件測試相關特性 14

1.4.1 軟件質量模型 14

1.4.2 測試的復雜性和經濟性 16

1.5 軟件測試充分性和測試停止

準則 19

1.5.1 軟件的測試充分性問題 19

1.5.2 軟件測試原則 20

1.5.3 測試停止準則 23

1.6 小結 25

1.7 習題 26

第 2章 軟件測試策略 27

2.1 軟件開發過程及模型 27

2.1.1 軟件開發過程 27

2.1.2 軟件開發模型 27

2.2 軟件測試過程 30

2.2.1 測試計劃和控制 31

2.2.2 測試分析和設計 32

2.2.3 測試實現和執行 33

2.2.4 測試出口準則的評估和

報告 33

2.2.5 測試活動結束 34

2.3 軟件測試與軟件開發的關系 35

2.3.1 軟件測試在軟件開發中的

作用 35

2.3.2 軟件測試與軟件開發各

階段的關系 35

2.3.3 常見軟件測試模型 36

2.4 黑盒測試和白盒測試 39

2.4.1 黑盒測試 40

2.4.2 白盒測試 41

2.4.3 黑盒測試與白盒測試的比較 42

2.5 小結 43

2.6 習題 43

第3章 黑盒測試方法 44

3.1 測試用例綜述 44

3.1.1 測試用例設計原則 44

3.1.2 測試用例設計步驟 46

3.1.3 測試用例的構成 47

3.2 等價類設計方法 48

3.2.1 等價類劃分 49

3.2.2 等價類劃分方法 50

3.2.3 等價類劃分的測試運用 52

3.3 邊界值設計方法 57

3.3.1 邊界值分析法原理 57

3.3.2 邊界值分析原則 58

3.3.3 健壯性分析 60

3.3.4 邊界值分析法的測試

運用 60

3.4 因果圖和決策表設計方法 62

3.4.1 因果圖原理 62

3.4.2 因果圖法應用 63

3.4.3 決策表法及其應用 64

3.5 正交試驗設計方法 67

3.5.1 正交試驗設計法原理 67

3.5.2 利用正交試驗法設計測試

用例 69

3.6 組合測試方法 70

3.6.1 基本概念 70

3.6.2 構造方法 72

3.6.3 組合測試工具使用 73

3.7 小結 75

3.7 習題 75

第4章 白盒測試方法 77

4.1 程序控制流圖 77

4.1.1 基本塊 77

4.1.2 流圖的定義與圖形表示 78

4.2 邏輯覆蓋測試 79

4.2.1 測試覆蓋率 79

4.2.2 邏輯覆蓋 79

4.2.3 邏輯覆蓋準則之間的包含

關系 81

4.2.4 測試覆蓋準則 81

4.3 路徑分析與測試 82

4.4 數據流測試分析 84

4.4.1 測試充分性基礎 84

4.4.2 測試充分性準則的度量 84

4.4.3 測試集充分性的度量 86

4.4.4 數據流概念 86

4.4.5 基於數據流的測試充分性

準則 89

4.5 變異測試 90

4.5.1 變異和變體 90

4.5.2 強變異和弱變異 91

4.5.3 用變異技術進行測試

評價 92

4.5.4 變異算子 94

4.5.5 變異算子的設計 95

4.5.6 變異測試的基本原則 95

4.6 小結 96

4.7 習題 96

第5章 軟件測試的過程管理 98

5.1 軟件測試的各個階段 98

5.2 測試需求 99

5.2.1 測試需求的分類 99

5.2.2 測試需求的收集 100

5.2.3 測試需求的分析 101

5.2.4 測試需求的評審 101

5.3 測試計劃 102

5.3.1 測試計劃的目標 102

5.3.2 制訂測試計劃 103

5.3.3 劃分測試用例優先級 103

5.4 測試設計及測試用例 104

5.4.1 測試用例的設計原則 104

5.4.2 測試用例的設計方法 105

5.4.3 測試用例的粒度 107

5.4.4 測試用例的評審 108

5.5 測試的執行 108

5.5.1 測試用例的選擇 108

5.5.2 測試人員分工 109

5.5.3 測試環境的搭建 109

5.5.4 BVT測試與冒煙測試 110

5.5.5 每日構建介紹 110

5.6 軟件缺陷分析 111

5.6.1 軟件缺陷分析的作用 112

5.6.2 軟件缺陷的分類 112

5.6.3 軟件缺陷分析方法 112

5.6.4 軟件缺陷分析的流程 114

5.6.5 軟件缺陷報告 115

5.7 小結 116

5.8 習題 116

第6章 軟件測試的度量 117

6.1 軟件測試度量簡介 117

6.1.1 軟件測試度量的目的 117

6.1.2 軟件測試度量的難度 119

6.1.3 軟件測試人員工作質量的

衡量 120

6.2 軟件測試的度量及其應用 125

6.2.1 度量軟件缺陷的數量 125

6.2.2 軟件測試的度量及其

應用 126

6.2.3 軟件缺陷的定性評估 128

6.2.4 軟件缺陷綜合評價模型 129

6.2.5 測試覆蓋率統計 130

6.3 軟件測試常見的度量類型 133

6.3.1 手工測試度量 134

6.3.2 性能測試度量 139

6.3.3 自動化測試度量 141

6.3.4 通用度量 142

6.4 小結 143

6.5 習題 144

第 2部分 實際應用

第7章 系統測試技術 146

7.1 軟件自動化測試 146

7.1.1 自動化測試的概念 146

7.1.2 自動化測試的優缺點 148

7.1.3 自動化測試工具 149

7.2 兼容性測試 151

7.2.1 兼容性測試的概念 151

7.2.2 兼容性測試的內容 152

7.2.3 兼容性測試的標準和

規範 155

7.2.4 兼容性測試工具 156

7.3 Web測試實踐 156

7.3.1 Web應用體系結構 156

7.3.2 Web測試概述 157

7.3.3 Web測試主要類型 157

7.4 移動終端軟件測試實踐 162

7.4.1 移動終端軟件測試背景 162

7.4.2 移動終端軟件測試要求 163

7.4.3 移動終端軟件測試實例 163

7.5 小結 175

7.6 習題 176

第8章 軟件測試工具及其應用 177

8.1 性能測試工具LoadRunner 177

8.1.1 性能測試簡介 177

8.1.2 LoadRunner的主要

功能 179

8.1.3 性能測試的主要術語 181

8.1.4 LoadRunner的安裝 182

8.1.5 LoadRunner的腳本

錄制 184

8.2 單元測試工具JUnit 188

8.2.1 JUnit簡介 188

8.2.2 安裝與使用 189

8.2.3 JUnit使用原則 193

8.2.4 其他特性 195

8.3 功能測試工具C++test 197

8.3.1 C++test的安裝 199

8.3.2 C++test靜態測試 201

8.3.3 RuleWizard 203

8.3.4 C++test動態測試 210

8.4 開源軟件缺陷管理工具

Bugzilla 217

8.4.1 Bugzilla簡介 217

8.4.2 Bugzilla安裝說明 218

8.4.3 Bugzilla使用說明 221

8.5 測試用例自動生成工具

EvoSuite 224

8.5.1 EvoSuite簡介 224

8.5.2 EvoSuite安裝說明 224

8.5.3 EvoSuite使用說明 228

8.6 變異測試工具Pitest 232

8.6.1 Pitest簡介 232

8.6.2 Pitest安裝說明 232

8.6.3 Pitest使用說明 234

8.7 小結 237

8.8 習題 237

第9章 第三方測試 238

9.1 第三方測試的基本概念與測試

過程 238

9.1.1 第三方測試的應用現狀 238

9.1.2 第三方測試的意義和

模式 239

9.1.3 第三方測試的相關概念 240

9.1.4 第三方測試的測試過程 240

9.2 測試實例實踐 242

9.3 小結 245

9.4 習題 245

第 10章 數據庫測試 246

10.1 數據庫應用軟件測試 246

10.1.1 數據庫設計驗證 246

10.1.2 功能測試 247

10.1.3 性能測試 248

10.1.5 安全性測試 253

10.2 數據庫管理系統基礎測試 254

10.2.1 數據庫管理系統簡介 254

10.2.2 DBMS的SQL功能

測試 254

10.2.3 DBMS的事務特性

測試 256

10.3 數據庫管理系統性能測試 257

10.3.1 DBMS性能測試的目的

與性能指標 257

10.3.2 DBMS的基準性能

測試 257

10.3.3 DBMS的性能測試

工具 258

10.4 數據庫管理系統高可用性

測試 261

10.5 小結 261

10.6 習題 262

第3部分 前沿技術

第 11章 智能軟件測試技術 264

11.1 基於機器學習的軟件缺陷報告

分析 264

11.1.1 基於機器學習的軟件缺陷

報告分析的目的和意義 264

11.1.2 安全缺陷檢測數據集的

構造 266

11.1.3 基於深度學習的安全缺陷

報告檢測 272

11.2 基於軟件度量的軟件缺陷預測

方法 277

11.2.1 基於軟件度量的軟件缺陷

預測的目的和意義 277

11.2.2 軟件缺陷預測模型的

構建 278

11.2.3 軟件缺陷預測模型性能

評估指標 285

11.2.4 軟件缺陷預測常用評測

數據集 287

11.3 基於搜索的軟件測試方法 288

11.3.1 智能搜索算法 288

11.3.2 搜索技術在軟件測試中的

應用 300

11.4 小結 314

11.5 習題 314

第 12章 公有雲測試質量評估 315

12.1 雲測試概念 316

12.1.1 雲計算 316

12.1.2 雲測試 317

12.2 雲可靠性度量 318

12.2.1 軟件可靠性 318

12.2.2 軟件故障分析和診斷 327

12.3 安全測試及安全度量 328

12.3.1 安全性測試方法 329

12.3.2 安全測試方法舉例 332

12.4 小結 335

12.5 習題 335

第 13章 軟件測試的拓展與提高 336

13.1 企業測試實踐 336

13.1.1 測試計劃 336

13.1.2 測試管理 338

13.1.3 企業的測試策略 341

13.1.4 測試人員組織 341

13.1.5 測試小組的職責 342

13.2 CMMI和軟件測試 343

13.2.1 CMMI簡介 343

 

 

 

 

第 1章 軟件測試基礎 2

1.1 軟件測試的基本概念 2

1.1.1 軟件測試是什麽 2

1.1.2 軟件測試的目的 3

1.1.3 軟件測試與軟件質量保證 3

1.1.4 軟件測試的必要性 5

1.1.5 軟件測試的基本概念分析 6

1.2 軟件測試的分類 7

1.3 軟件缺陷管理 10

1.3.1 軟件缺陷的概念 10

1.3.2 軟件缺陷的屬性 10

1.3.3 軟件缺陷生命周期 12

1.3.4 常見的軟件缺陷管理工具 13

1.4 軟件質量與軟件測試相關特性 14

1.4.1 軟件質量模型 14

1.4.2 測試的復雜性和經濟性 16

1.5 軟件測試充分性和測試停止

準則 19

1.5.1 軟件的測試充分性問題 19

1.5.2 軟件測試原則 20

1.5.3 測試停止準則 23

1.6 小結 25

1.7 習題 26

第 2章 軟件測試策略 27

2.1 軟件開發過程及模型 27

2.1.1 軟件開發過程 27

2.1.2 軟件開發模型 27

2.2 軟件測試過程 30

2.2.1 測試計劃和控制 31

2.2.2 測試分析和設計 32

2.2.3 測試實現和執行 33

2.2.4 測試出口準則的評估和

報告 33

2.2.5 測試活動結束 34

2.3 軟件測試與軟件開發的關系 35

2.3.1 軟件測試在軟件開發中的

作用 35

2.3.2 軟件測試與軟件開發各

階段的關系 35

2.3.3 常見軟件測試模型 36

2.4 黑盒測試和白盒測試 39

2.4.1 黑盒測試 40

2.4.2 白盒測試 41

2.4.3 黑盒測試與白盒測試的比較 42

2.5 小結 43

2.6 習題 43

第3章 黑盒測試方法 44

3.1 測試用例綜述 44

3.1.1 測試用例設計原則 44

3.1.2 測試用例設計步驟 46

3.1.3 測試用例的構成 47

3.2 等價類設計方法 48

3.2.1 等價類劃分 49

3.2.2 等價類劃分方法 50

3.2.3 等價類劃分的測試運用 52

3.3 邊界值設計方法 57

3.3.1 邊界值分析法原理 57

3.3.2 邊界值分析原則 58

3.3.3 健壯性分析 60

3.3.4 邊界值分析法的測試

運用 60

3.4 因果圖和決策表設計方法 62

3.4.1 因果圖原理 62

3.4.2 因果圖法應用 63

3.4.3 決策表法及其應用 64

3.5 正交試驗設計方法 67

3.5.1 正交試驗設計法原理 67

3.5.2 利用正交試驗法設計測試

用例 69

3.6 組合測試方法 70

3.6.1 基本概念 70

3.6.2 構造方法 72

3.6.3 組合測試工具使用 73

3.7 小結 75

3.7 習題 75

第4章 白盒測試方法 77

4.1 程序控制流圖 77

4.1.1 基本塊 77

4.1.2 流圖的定義與圖形表示 78

4.2 邏輯覆蓋測試 79

4.2.1 測試覆蓋率 79

4.2.2 邏輯覆蓋 79

4.2.3 邏輯覆蓋準則之間的包含

關系 81

4.2.4 測試覆蓋準則 81

4.3 路徑分析與測試 82

4.4 數據流測試分析 84

4.4.1 測試充分性基礎 84

4.4.2 測試充分性準則的度量 84

4.4.3 測試集充分性的度量 86

4.4.4 數據流概念 86

4.4.5 基於數據流的測試充分性

準則 89

4.5 變異測試 90

4.5.1 變異和變體 90

4.5.2 強變異和弱變異 91

4.5.3 用變異技術進行測試

評價 92

4.5.4 變異算子 94

4.5.5 變異算子的設計 95

4.5.6 變異測試的基本原則 95

4.6 小結 96

4.7 習題 96

第5章 軟件測試的過程管理 98

5.1 軟件測試的各個階段 98

5.2 測試需求 99

5.2.1 測試需求的分類 99

5.2.2 測試需求的收集 100

5.2.3 測試需求的分析 101

5.2.4 測試需求的評審 101

5.3 測試計劃 102

5.3.1 測試計劃的目標 102

5.3.2 制訂測試計劃 103

5.3.3 劃分測試用例優先級 103

5.4 測試設計及測試用例 104

5.4.1 測試用例的設計原則 104

5.4.2 測試用例的設計方法 105

5.4.3 測試用例的粒度 107

5.4.4 測試用例的評審 108

5.5 測試的執行 108

5.5.1 測試用例的選擇 108

5.5.2 測試人員分工 109

5.5.3 測試環境的搭建 109

5.5.4 BVT測試與冒煙測試 110

5.5.5 每日構建介紹 110

5.6 軟件缺陷分析 111

5.6.1 軟件缺陷分析的作用 112

5.6.2 軟件缺陷的分類 112

5.6.3 軟件缺陷分析方法 112

5.6.4 軟件缺陷分析的流程 114

5.6.5 軟件缺陷報告 115

5.7 小結 116

5.8 習題 116

第6章 軟件測試的度量 117

6.1 軟件測試度量簡介 117

6.1.1 軟件測試度量的目的 117

6.1.2 軟件測試度量的難度 119

6.1.3 軟件測試人員工作質量的

衡量 120

6.2 軟件測試的度量及其應用 125

6.2.1 度量軟件缺陷的數量 125

6.2.2 軟件測試的度量及其

應用 126

6.2.3 軟件缺陷的定性評估 128

6.2.4 軟件缺陷綜合評價模型 129

6.2.5 測試覆蓋率統計 130

6.3 軟件測試常見的度量類型 133

6.3.1 手工測試度量 134

6.3.2 性能測試度量 139

6.3.3 自動化測試度量 141

6.3.4 通用度量 142

6.4 小結 143

6.5 習題 144

第 2部分 實際應用

第7章 系統測試技術 146

7.1 軟件自動化測試 146

7.1.1 自動化測試的概念 146

7.1.2 自動化測試的優缺點 148

7.1.3 自動化測試工具 149

7.2 兼容性測試 151

7.2.1 兼容性測試的概念 151

7.2.2 兼容性測試的內容 152

7.2.3 兼容性測試的標準和

規範 155

7.2.4 兼容性測試工具 156

7.3 Web測試實踐 156

7.3.1 Web應用體系結構 156

7.3.2 Web測試概述 157

7.3.3 Web測試主要類型 157

7.4 移動終端軟件測試實踐 162

7.4.1 移動終端軟件測試背景 162

7.4.2 移動終端軟件測試要求 163

7.4.3 移動終端軟件測試實例 163

7.5 小結 175

7.6 習題 176

第8章 軟件測試工具及其應用 177

8.1 性能測試工具LoadRunner 177

8.1.1 性能測試簡介 177

8.1.2 LoadRunner的主要

功能 179

8.1.3 性能測試的主要術語 181

8.1.4 LoadRunner的安裝 182

8.1.5 LoadRunner的腳本

錄制 184

8.2 單元測試工具JUnit 188

8.2.1 JUnit簡介 188

8.2.2 安裝與使用 189

8.2.3 JUnit使用原則 193

8.2.4 其他特性 195

8.3 功能測試工具C++test 197

8.3.1 C++test的安裝 199

8.3.2 C++test靜態測試 201

8.3.3 RuleWizard 203

8.3.4 C++test動態測試 210

8.4 開源軟件缺陷管理工具

Bugzilla 217

8.4.1 Bugzilla簡介 217

8.4.2 Bugzilla安裝說明 218

8.4.3 Bugzilla使用說明 221

8.5 測試用例自動生成工具

EvoSuite 224

8.5.1 EvoSuite簡介 224

8.5.2 EvoSuite安裝說明 224

8.5.3 EvoSuite使用說明 228

8.6 變異測試工具Pitest 232

8.6.1 Pitest簡介 232

8.6.2 Pitest安裝說明 232

8.6.3 Pitest使用說明 234

8.7 小結 237

8.8 習題 237

第9章 第三方測試 238

9.1 第三方測試的基本概念與測試

過程 238

9.1.1 第三方測試的應用現狀 238

9.1.2 第三方測試的意義和

模式 239

9.1.3 第三方測試的相關概念 240

9.1.4 第三方測試的測試過程 240

9.2 測試實例實踐 242

9.3 小結 245

9.4 習題 245

第 10章 數據庫測試 246

10.1 數據庫應用軟件測試 246

10.1.1 數據庫設計驗證 246

10.1.2 功能測試 247

10.1.3 性能測試 248

10.1.5 安全性測試 253

10.2 數據庫管理系統基礎測試 254

10.2.1 數據庫管理系統簡介 254

10.2.2 DBMS的SQL功能

測試 254

10.2.3 DBMS的事務特性

測試 256

10.3 數據庫管理系統性能測試 257

10.3.1 DBMS性能測試的目的

與性能指標 257

10.3.2 DBMS的基準性能

測試 257

10.3.3 DBMS的性能測試

工具 258

10.4 數據庫管理系統高可用性

測試 261

10.5 小結 261

10.6 習題 262

第3部分 前沿技術

第 11章 智能軟件測試技術 264

11.1 基於機器學習的軟件缺陷報告

分析 264

11.1.1 基於機器學習的軟件缺陷

報告分析的目的和意義 264

11.1.2 安全缺陷檢測數據集的

構造 266

11.1.3 基於深度學習的安全缺陷

報告檢測 272

11.2 基於軟件度量的軟件缺陷預測

方法 277

11.2.1 基於軟件度量的軟件缺陷

預測的目的和意義 277

11.2.2 軟件缺陷預測模型的

構建 278

11.2.3 軟件缺陷預測模型性能

評估指標 285

11.2.4 軟件缺陷預測常用評測

數據集 287

11.3 基於搜索的軟件測試方法 288

11.3.1 智能搜索算法 288

11.3.2 搜索技術在軟件測試中的

應用 300

11.4 小結 314

11.5 習題 314

第 12章 公有雲測試質量評估 315

12.1 雲測試概念 316

12.1.1 雲計算 316

12.1.2 雲測試 317

12.2 雲可靠性度量 318

12.2.1 軟件可靠性 318

12.2.2 軟件故障分析和診斷 327

12.3 安全測試及安全度量 328

12.3.1 安全性測試方法 329

12.3.2 安全測試方法舉例 332

12.4 小結 335

12.5 習題 335

第 13章 軟件測試的拓展與提高 336

13.1 企業測試實踐 336

13.1.1 測試計劃 336

13.1.2 測試管理 338

13.1.3 企業的測試策略 341

13.1.4 測試人員組織 341

13.1.5 測試小組的職責 342

13.2 CMMI和軟件測試 343

13.2.1 CMMI簡介 343