基於程式分析的軟體測試與錯誤定位技術是北京郵電大學出版社出版書籍,作者是易秋萍。
基本介紹
- 中文名:基於程式分析的軟體測試與錯誤定位技術
- 作者:易秋萍
- 出版時間:2023年8月18日
- 出版社:北京郵電大學出版社
- ISBN:9787563569854
- 定價:49 元
內容簡介,圖書目錄,
內容簡介
如今,軟體在人們的社會生活中占據越來越重要的地位,軟體的正確性也受到人們越來越多的重視。軟體測試是保證軟體正確性以及安全性的重要手段,它的主要任務是發現軟體設計缺陷,進而要求開發人員分析、定位錯誤並修復缺陷。
本書共9章,其主要內容包括程式分析技術、符號執行技術、軟體測試與錯誤定位技術、基於執行路徑的最弱前置條件計算、基於後綴路徑摘要的符號執行加速、基於反饋驅動的增量符號執行、級聯式錯誤定位方法、演化軟體錯誤定位方法和符號執行指導的並行程式分析。
本書是程式分析領域的專業書籍,可供軟體測試、程式分析與驗證領域的學生及研究人員學習和參考。
圖書目錄
第1章程式分析技術1
1.1程式的正確性及其分析1
1.2控制流分析2
1.2.1控制流圖2
1.2.2程式依賴圖4
1.2.3系統依賴圖5
1.3數據流分析6
1.3.1數據流分析概述6
1.3.2可達定義分析8
1.3.3活性變數分析8
本章小結9
第2章符號執行技術10
2.1符號執行概述10
2.2傳統符號執行10
2.3混合符號執行13
2.4符號執行技術面臨的挑戰14
2.4.1記憶體相關問題15
2.4.2環境相關問題15
2.4.3路徑爆炸問題16
2.4.4約束求解問題16
2.5符號執行工具17
2.5.1KLEE17
2.5.2SPF18
2.5.3SAGE19
2.5.4SymCC20
本章小結21
基於程式分析的軟體測試與錯誤定位技術
|目錄|
第3章軟體測試與錯誤定位技術22
3.1軟體測試與錯誤定位的研究背景23
3.1.1軟體測試23
3.1.2軟體錯誤定位24
3.2基於符號執行的軟體測試25
3.2.1摘要計算26
3.2.2路徑包含與等價分析27
3.2.3約束不充分的符號執行29
3.2.4前置條件與輸入特徵利用30
3.2.5符號執行狀態合併31
3.2.6程式分析及最佳化技術32
3.2.7目標導向與啟發式策略33
3.2.8增量符號執行34
3.2.9並行符號執行36
3.3軟體錯誤定位方法36
3.3.1基於切片的錯誤定位36
3.3.2基於程式狀態的錯誤定位37
3.3.3基於統計分析的錯誤定位39
3.3.4基於人工智慧的錯誤定位40
3.3.5演化軟體錯誤定位42
本章小結43
第4章基於執行路徑的最弱前置條件計算44
4.1最弱前置條件概述44
4.2最弱前置條件計算45
4.2.1轉換實例47
4.2.2關鍵謂詞47
4.3框架設計與實現48
本章小結48
第5章基於後綴路徑摘要的符號執行加速49
5.1方法概述49
5.2預備知識50
5.3冗餘後綴路徑消除52
5.3.1示例程式分析52
5.3.2頂層算法描述56
5.3.3路徑後綴描述57
5.3.4冗餘路徑後綴裁剪58
5.3.5可靠性分析59
5.3.6搜尋策略設定61
5.4最佳化策略61
5.4.1摘要化簡62
5.4.2避免冗餘最弱前置條件計算64
5.4.3設定冗餘路徑檢測點65
5.4.4控制摘要大小66
5.5方法評估66
5.5.1實驗對象及方法67
5.5.2路徑裁剪的有效性67
5.5.3路徑裁剪的代價71
5.5.4最佳化策略有效性評估72
本章小結75
第6章基於反饋驅動的增量符號執行76
6.1方法簡介76
6.2相關定義77
6.3增量符號執行與反饋驅動分析78
6.3.1總體算法79
6.3.2正向符號執行81
6.3.3後向符號執行81
6.3.4基於ΠΔ的顯式路徑裁剪83
6.3.5帶有路徑收縮的隱式路徑修剪84
6.3.6例子闡述86
6.3.7討論88
6.4實驗評估89
6.4.1原型工具實現89
6.4.2實驗對象和實驗設定90
6.4.3SIR實驗90
6.4.4GNU Coreutils實驗91
6.4.5有效性威脅94
本章小結94
第7章級聯式錯誤定位方法96
7.1方法簡介96
7.2級聯式錯誤定位101
7.2.1錯誤原因的標識102
7.2.2更多可能錯誤原因的標識104
7.2.3頂層算法的描述106
7.3最佳化策略107
7.3.1切片處理錯誤執行路徑107
7.3.2指定正確實現函式108
7.3.3簡化SMT求解器查詢109
7.3.4處理循環與遞歸109
7.4方法評估111
7.4.1西門子測試程式集評估111
7.4.2Busybox與Coreutils評估115
本章小結121
第8章演化軟體錯誤定位方法122
8.1演化軟體錯誤定位方法概述122
8.2協同分析方法126
8.2.1頂層算法描述126
8.2.2動態分析128
8.2.3計算輔助代碼改變塊129
8.3示例闡述131
8.3.1演化軟體錯誤定位方法的套用132
8.3.2與相關方法的比較134
8.4實驗分析135
8.4.1錯誤解釋的精確性137
8.4.2運行性能的比較138
8.4.3協同分析的有效性139
本章小結141
第9章符號執行指導的並行程式分析142
9.1方法介紹142
9.2方法概述144
9.2.1示例闡述144
9.2.2最大因果關係規約145
9.2.3最大路徑因果關係概述147
9.3最大路徑因果關係方法150
9.3.1基本定義150
9.3.2最大路徑因果關係151
9.3.3基本算法152
9.3.4路徑遍歷154
9.3.5並行的MPC算法157
9.4方法評估158
9.4.1檢測並行程式錯誤158
9.4.2並發庫的評估160
9.4.3與工具Con2Colic的比較161
本章小結163
參 考文獻164