《軟件調(diào)試修煉之道》電子書[PDF]
本文關(guān)鍵詞:軟件調(diào)試修煉之道,由筆耕文化傳播整理發(fā)布。
簡介:
目錄:
第一部分 問題的核心
第1章 山重水復(fù)疑無路 2
1.1 調(diào)試不僅是排除缺陷 2
1.2 實(shí)證方法 4
1.3 核心調(diào)試過程 5
1.4 做最先要做的事 6
1.4.1 你知道要找的是什么嗎 6
1.4.2 一次一個問題 7
1.4.3 先檢查簡單的事情 7
1.5 付諸行動 8
第2章 重現(xiàn)問題 9
2.1 重現(xiàn)第一,提問第二 9
2.1.1 明確開始要做的事 10
2.1.2 抓住重點(diǎn) 10
2.2 控制軟件 11
2.3 控制環(huán)境 11
2.4 控制輸入 13
2.4.1 推測可能的輸入 13
2.4.2 記錄輸入值 15
.2.4.3 負(fù)載和壓力 19
2.5 改進(jìn)問題重現(xiàn) 20
2.5.1 最小化反饋周期 20
2.5.2 將不確定的缺陷變?yōu)榇_定的 22
2.5.3 自動化 25
2.5.4 迭代 26
2.6 如果真的不能重現(xiàn)問題該怎么辦 27
2.6.1 缺陷真的存在嗎 27
2.6.2 在相同的區(qū)域解決不同的問題 27
2.6.3 讓其他人參與其中 27
2.6.4 充分利用用戶群體 28
2.6.5 推測法 28
2.7 付諸行動 29
第3章 診斷 30
3.1 不要急于動手——試試科學(xué)的方法 30
3.2 相關(guān)策略 35
3.2.1 插樁 36
3.2.2 分而治之 37
3.2.3 利用源代碼控制工具 38
3.2.4 聚焦差異 39
3.2.5 向他人學(xué)習(xí) 39
3.2.6 奧卡姆的剃刀 40
3.3 調(diào)試器 40
3.4 陷阱 41
3.4.1 你做的修改是正確的嗎 41
3.4.2 驗(yàn)證假設(shè) 42
3.4.3 多重原因 43
3.4.4 流沙 44
3.5 思維游戲 45
3.5.1 旁觀調(diào)試法 45
3.5.2 角色扮演 46
3.5.3 換換腦筋 47
3.5.4 做些改變,什么改變都行 47
3.5.5 歇洛克福爾摩斯原則 48
3.5.6 堅持 49
3.6 驗(yàn)證診斷 49
3.7 付諸行動 50
第4章 修復(fù)缺陷 51
4.1 清除障礙 51
4.2 測試 52
4.3 修復(fù)問題產(chǎn)生的原因,而非修復(fù)現(xiàn)象 54
4.4 重構(gòu) 56
4.5 簽入 57
4.6 審查代碼 58
4.7 付諸行動 59
第5章 反思 60
5.1 這到底是怎么搞的 60
5.2 哪里出了問題 61
5.2.1 我們已經(jīng)做到了嗎 62
5.2.2 根本原因分析 62
5.3 它不會再發(fā)生了 63
5.3.1 自動驗(yàn)證 63
5.3.2 重構(gòu) 64
5.3.3 過程 65
5.4 關(guān)閉循環(huán) 65
5.5 付諸行動 66
第二部分 從大局看調(diào)試
第6章 發(fā)現(xiàn)代碼存在問題 68
6.1 追蹤缺陷 68
6.1.1 缺陷追蹤系統(tǒng) 68
6.1.2 怎樣才能寫出一份出色的缺陷
報告 69
6.1.3 環(huán)境和配置報告 70
6.2 與用戶合作 72
6.2.1 簡化流程 72
6.2.2 有效的溝通 73
6.3 與支持人員協(xié)同工作 77
6.4 付諸行動 78
第7章 務(wù)實(shí)的零容忍策略 79
7.1 缺陷優(yōu)先 79
7.1.1 早期缺陷修復(fù)可以大大降低軟件
運(yùn)行的不確定性 79
7.1.2 沒有破窗戶 80
7.2 調(diào)試的思維模式 81
7.3 自己來解決質(zhì)量問題 83
7.3.1 這里沒有“靈丹妙藥” 83
7.3.2 停止開發(fā)那些有缺陷的程序 84
7.3.3 從“不干凈”的代碼中將“干凈”
的代碼分離出來 84
7.3.4 錯誤分類 85
7.3.5 缺陷閃電戰(zhàn) 86
7.3.6 專項(xiàng)小組 87
7.4 付諸行動 87
第三部分 深入調(diào)試技術(shù)
第8章 特殊案例 90
8.1 修補(bǔ)已經(jīng)發(fā)布的軟件 90
8.2 向后兼容 91
8.2.1 確定你的代碼有問題 92
8.2.2 解決兼容性問題 93
8.3 并發(fā) 95
8.3.1 簡單與控制 95
8.3.2 修復(fù)并發(fā)缺陷 96
8.4 海森堡缺陷 97
8.5 性能缺陷 98
8.5.1 尋找瓶頸 99
8.5.2 準(zhǔn)確的性能分析 99
8.6 嵌入式軟件 100
8.6.1 嵌入式調(diào)試工具 100
8.6.2 提取信息的痛苦路程 102
8.7 第三方軟件的缺陷 102
8.7.1 不要太快去指責(zé) 103
8.7.2 處理第三方代碼的缺陷 103
8.7.3 開源代碼 104
8.8 付諸行動 106
第9章 理想的調(diào)試環(huán)境 107
9.1 自動化測試 107
9.1.1 有效的自動化測試 107
9.1.2 自動化測試可以作為調(diào)試的
輔助 108
9.1.3 模擬測試、樁測試以及其他
的代替測試技術(shù) 109
9.2 源程序控制 110
9.2.1 穩(wěn)定性 110
9.2.2 可維護(hù)性 111
9.2.3 與分支相關(guān)的問題 111
9.2.4 控制分支 112
9.3 自動構(gòu)建 113
9.3.1 一鍵構(gòu)建 114
9.3.2 構(gòu)建機(jī)器 115
9.3.3 持續(xù)集成 115
9.3.4 創(chuàng)建版本 116
9.3.5 靜態(tài)分析 117
9.3.6 使用靜態(tài)分析 119
9.4 付諸行動 120
第10章 讓軟件學(xué)會自己尋找缺陷 121
10.1 假設(shè)和斷言 121
10.1.1 一個例子 122
10.1.2 等一下——剛才發(fā)生了什么 124
10.1.3 例子,,第二幕 124
10.1.4 契約,先決條件,后置條件
和不變量 125
10.1.5 開啟或關(guān)閉斷言 125
10.1.6 防錯性程序設(shè)計 126
10.1.7 斷言濫用 128
10.2 調(diào)試版本 129
10.2.1 編譯器選項(xiàng) 130
10.2.2 調(diào)試子系統(tǒng) 130
10.2.3 內(nèi)置控制 132
10.3 資源泄漏和異常處理 133
10.3.1 在測試中自動拋出異常 133
10.3.2 一個例子 134
10.3.3 測試框架 136
10.4 付諸行動 139
第11章 反模式 140
11.1 夸大優(yōu)先級 140
11.2 超級巨星 141
11.3 維護(hù)團(tuán)隊(duì) 142
11.4 救火模式 144
11.5 重寫 145
11.6 沒有代碼所有權(quán) 146
11.7 魔法 146
11.8 付諸行動 147
附錄a 資源 148
附錄b 參考書目 157
電子書鏈接
內(nèi)容介紹:
《軟件調(diào)試修煉之道》主要講述如何運(yùn)用方法和調(diào)試工具在客戶投訴之前自動檢測程序中的bug,緊緊圍繞問題重現(xiàn)、問題診斷、缺陷修復(fù)、反思四個中心環(huán)節(jié),并將調(diào)試置于軟件開發(fā)與運(yùn)行的大環(huán)境中,為我們道出了軟件調(diào)試修煉之道。
《軟件調(diào)試修煉之道》適用軟件開發(fā)、調(diào)試一線人員及一切熱愛軟件調(diào)試之道的有志者。
內(nèi)容截圖:
本文關(guān)鍵詞:軟件調(diào)試修煉之道,由筆耕文化傳播整理發(fā)布。
本文編號:304550
本文鏈接:http://sikaile.net/wenshubaike/mishujinen/304550.html