軟件測試基礎
陳振宇
相關主題
商品描述
"本書是一本關於軟件測試的教材,旨在為讀者提供軟件測試的理論與方法。本書從測試的可 判定性問題出發,結合概率統計和圖論基礎等建立軟件測試理論。從軟件測試多樣性原則和故障 假設原理出發,重新審視開發者測試、功能測試、性能測試和安全測試等各類方法。書中還穿插 著簡要講解部分智能化軟件測試和智能軟件系統測試的**研究成果。全書共8 章,以軟件測試 理論為主線,講解常用軟件測試方法背後的內在聯系和主要區別,以啟發讀者思考。軟件測試工 具、測試案例和實踐內容請參閱線上資源。 本書適合作為高等學校軟件工程、計算機科學與技術、信息安全等專業的教材,也可供從事 軟件測試工作的工程師、研究人員參考。 "
作者簡介
陳振宇,南京大學教授、博導。慕測平臺創始人、全國大學生軟件測試大賽和IEEE國際軟件測試大賽發起人。任IEEE Transactions on Reliability的Associate Editor。在TOSEM、TSE、ICSE、FSE、ISSTA等發表論文100余篇,申請發明專利50余項,獲2012年江蘇省科學技術獎一等獎、2015年湖北省科技進步獎一等獎和2018年國家級教學成果獎二等獎。
目錄大綱
目 錄
第1 章軟件測試快速入門....................................................................................... 1
1.1 多樣性測試入門......................................................................................... 2
1.1.1 隨機測試........................................................................................ 2
1.1.2 等價類測試..................................................................................... 4
1.1.3 組合測試........................................................................................ 5
1.2 故障假設測試入門..................................................................................... 7
1.2.1 常見軟件故障................................................................................. 8
1.2.2 邊界故障假設............................................................................... 10
1.2.3 變異故障假設............................................................................... 11
1.3 圖分析測試入門....................................................................................... 13
1.3.1 圖生成方法................................................................................... 13
1.3.2 圖結構測試................................................................................... 15
1.3.3 圖元素測試................................................................................... 16
1.4 本章練習................................................................................................. 17
第2 章軟件測試的定義........................................................................................ 18
2.1 測試基礎概念.......................................................................................... 19
2.1.1 常用測試術語............................................................................... 19
2.1.2 常用測試分類............................................................................... 22
2.1.3 測試理論框架............................................................................... 26
2.2 待測程序示例.......................................................................................... 30
2.2.1 三角形程序Triangle ...................................................................... 30
2.2.2 日期程序NextDay ........................................................................ 31
2.2.3 均值方差程序MeanVar .................................................................. 33
2.3 測試基本問題.......................................................................................... 36
2.3.1 測試終止問題............................................................................... 37
2.3.2 測試預言問題............................................................................... 39
2.3.3 測試生成問題............................................................................... 40
2.4 本章練習................................................................................................. 43
軟件測試基礎
第3 章Bug 理論基礎........................................................................................... 44
3.1 認識軟件Bug .......................................................................................... 45
3.1.1 第一個Bug ................................................................................... 45
3.1.2 著名的Bug ................................................................................... 47
3.2 PIE 模型介紹........................................................................................... 49
3.2.1 PIE 模型的相關概念...................................................................... 49
3.2.2 PIE 模型的計算分析...................................................................... 52
3.2.3 PIE 模型與測試調試...................................................................... 54
3.3 Bug 理論分析.......................................................................................... 57
3.3.1 Bug 的反向定義............................................................................ 57
3.3.2 Bug 的不確定性............................................................................ 58
3.3.3 Bug 的非單調性............................................................................ 61
3.3.4 Bug 間的幹涉性............................................................................ 62
3.4 本章練習................................................................................................. 64
第4 章多樣性測試............................................................................................... 65
4.1 隨機測試理論.......................................................................................... 66
4.1.1 均勻隨機測試............................................................................... 66
4.1.2 非均勻隨機測試............................................................................ 68
4.1.3 自適應隨機測試............................................................................ 69
4.1.4 引導性隨機測試............................................................................ 73
4.2 等價類理論............................................................................................. 76
4.2.1 軟件等價類假設............................................................................ 77
4.2.2 軟件等價類劃分............................................................................ 81
4.2.3 劃分隨機測試方法......................................................................... 85
4.2.4 劃分隨機測試分析......................................................................... 87
4.3 組合理論................................................................................................. 95
4.3.1 組合測試初步............................................................................... 95
4.3.2 組合測試準則............................................................................... 98
4.3.3 組合測試生成.............................................................................. 103
4.4 本章練習................................................................................................ 106
第5 章故障假設測試.......................................................................................... 107
5.1 邊界故障假設......................................................................................... 108
5.1.1 輸入邊界值分析........................................................................... 108
5.1.2 計算邊界值分析........................................................................... 114
VIII
目 錄
5.1.3 輸出邊界值分析........................................................................... 117
5.2 變異故障假設......................................................................................... 120
5.2.1 變異分析基本概念........................................................................ 120
5.2.2 變異測試優化技術........................................................................ 123
5.2.3 變異分析理論框架........................................................................ 126
5.3 邏輯故障假設......................................................................................... 132
5.3.1 邏輯測試基礎.............................................................................. 132
5.3.2 邏輯故障結構.............................................................................. 135
5.3.3 邏輯約束求解.............................................................................. 140
5.4 本章練習................................................................................................ 143
第6 章圖分析測試.............................................................................................. 144
6.1 圖測試基礎............................................................................................ 145
6.1.1 圖論基礎..................................................................................... 145
6.1.2 控制流圖..................................................................................... 147
6.1.3 數據流圖..................................................................................... 149
6.1.4 事件流圖..................................................................................... 151
6.2 圖結構測試方法...................................................................................... 154
6.2.1 L-路徑測試................................................................................. 155
6.2.2 主路徑測試.................................................................................. 156
6.2.3 基本路徑測試.............................................................................. 158
6.3 圖元素測試方法...................................................................................... 162
6.3.1 數據流測試.................................................................................. 162
6.3.2 邏輯測試..................................................................................... 166
6.4 本章練習................................................................................................ 173
第7 章開發者測試.............................................................................................. 174
7.1 開發者多樣性測試.................................................................................. 175
7.1.1 代碼多樣性策略........................................................................... 175
7.1.2 組合多樣性策略........................................................................... 179
7.1.3 行為多樣性策略........................................................................... 183
7.2 開發者故障假設測試............................................................................... 187
7.2.1 邊界故障假設.............................................................................. 187
7.2.2 變異故障假設.............................................................................. 190
7.2.3 邏輯故障假設.............................................................................. 193
7.3 開發者測試進階...................................................................................... 198
7.3.1 mock 測試對象............................................................................. 198
IX
軟件測試基礎
7.3.2 從單元到集成.............................................................................. 200
7.3.3 開發者測試評估........................................................................... 203
7.4 本章練習................................................................................................ 206
第8 章專項測試................................................................................................. 207
8.1 功能測試................................................................................................ 208
8.1.1 功能測試簡介.............................................................................. 208
8.1.2 多樣性功能測試........................................................................... 210
8.1.3 故障假設功能測試........................................................................ 216
8.2 性能測試................................................................................................ 221
8.2.1 性能測試簡介.............................................................................. 222
8.2.2 多樣性性能測試........................................................................... 225
8.2.3 故障假設性能測試........................................................................ 230
8.3 安全測試................................................................................................ 235
8.3.1 安全測試簡介.............................................................................. 235
8.3.2 多樣性安全測試........................................................................... 238
8.3.3 故障假設安全測試........................................................................ 242
8.4 本章練習................................................................................................ 247
參考文獻.............................................................................................................. 248