注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網(wǎng)絡軟件與程序設計程序設計綜合程序調試思想與實踐

程序調試思想與實踐

程序調試思想與實踐

定 價:¥40.00

作 者: (美)Matt Telles,(美)Yuan Hsieh著;鄧勁生等譯;鄧勁生譯
出版社: 中國水利水電出版社
叢編項:
標 簽: 暫缺

購買這本書可以去


ISBN: 9787508410081 出版時間: 2002-03-01 包裝:
開本: 24cm 頁數(shù): 364 字數(shù):  

內(nèi)容簡介

  本書將調試作為一門專業(yè)的學科進行研究和分析,提供大量的代碼實例和問題描述,對調試的各個方面進行細致而深入的闡述和討論。全書以bug為中心,圍繞調試這一主題進行組織。第2章到第5章包括bug的診斷、分類以及它們的癥狀。第6章到第10章討論那些處理bug的策略,包括可以使用的工具以及在不同情況下如何最有效地使用它們。第11章到第16章包括對專業(yè)調試的解釋以及如何成為一個出色的調試員。本書主要面向的讀者群是軟件項目的開發(fā)人員、調試人員、測試人員以及管理人員。

作者簡介

暫缺《程序調試思想與實踐》作者簡介

圖書目錄

譯者序                  
 作者簡介                  
 致謝                  
 第1章  Debug簡介                  
 1. l  本書的內(nèi)容                  
 1. 2  為什么要關注bug                  
 1. 3  什么是bug                  
 1. 4  本書的對象                  
 1. 5  本書的組織                  
 1. 6  調試簡史                  
 1. 7  小結                  
 1. 8  bug問題                  
 第2章  研究著名的(以及不太著名的)bug例子                  
 2. 1  大致情況                  
 2. 1. 1  現(xiàn)實生活中的分布式系統(tǒng)                  
 2. 1. 2  Therac-25                  
 2. 2  bug實例#1                  
 2. 3  bug實例#2                  
 2. 4  bug實例#3                  
 2. 5  bug實例#4                  
 2. 5. 1  AT&T電話中斷                  
 2. 5. 2  緩沖區(qū)溢出                  
 2. 6  小結                  
 2. 7  bug問題                  
 第3章  什么是bug                  
 3. l  什么是bug                  
 3. 1. 1  什么是軟件缺陷                  
 3. 1. 2  調試不是什么                  
 3. 1. 3  什么是調試                  
 3. 2  為什么要考慮bug                  
 3. 2. l  bug的信心代價                  
 3. 2. 2  名聲和形象的代價                  
 3. 2. 3  bug的財產(chǎn)損失                  
 3. 3  bug的本質                  
 3. 3. l  bug的發(fā)生都有原因                  
 3. 3. 2  bug是可以重視的                  
 3. 3. 3  bug通常在有變化時出現(xiàn)                  
 3. 3. 4  bug也會產(chǎn)生bug                  
 3. 3. 5  bug吸引bug                  
 3. 3. 6  證明缺乏理解                  
 3. 3. 7  難的代碼對大家都一樣難                  
 3. 3. 8  在軟件生命周期中不同階段的bug有不同的性質                  
 3. 3. 9  穩(wěn)定的系統(tǒng)中的bug的原因可能比錯誤的系統(tǒng)中的bug的原因更難以識別                  
 3. 4  小結                  
 3. 5 bug問題                  
 第4章  bug的生命周期                  
 4. l  為什么會出現(xiàn)bug                  
 4. 1. 1  復雜性                  
 4. 1. 2  現(xiàn)實                  
 4. 1. 3  人類的弱點                  
 4. 2  bug是如何產(chǎn)生的                  
 4. 2. 1  對軟件做修改                  
 4. 2. 2  拙劣的描述                  
 4. 2. 3  方法的復雜性                  
 4. 2. 4  缺少一致的觀點                  
 4. 2. 5  程序員錯誤                  
 4. 3  bug是如何躲過測試的                  
 4. 3. l  遵循形式過程代價太大                  
 4. 3. 2  政策/市場決策                  
 4. 3. 3  時間不充分                  
 4. 3. 4  缺少重現(xiàn)能力                  
 4. 3. 5  自負                  
 4. 3. 6  差勁的描述/不知道要測試什么                  
 4. 3. 7  缺乏測試環(huán)境                  
 4. 4  小結                  
 4. 5  bug問題                  
 第5章  bug的分類                  
 5. l  bug的種類                  
 5. 1. 1  需求階段的bug                  
 5. 1. 2  設計階段的bug                  
 5. 1. 3  實現(xiàn)階段的bug                  
 5. 1. 4  處理階段的bug                  
 5. 1. 5  編譯的bug                  
 5. 1. 6  配置的bug                  
 5. 1. 7  未來計劃bug                  
 5. 1. 8  文檔bug                  
 5. 2  嚴重性                  
 5. 3  bug分類法                  
 5. 3. l  名字                  
 5. 3. 2  描述                  
 5. 3. 3  最一般的環(huán)境                  
 5. 3. 4  癥狀                  
 5. 3. 5  例子                  
 5. 4  bug的分類                  
 5. 4. l  內(nèi)存或資源泄漏                  
 5. 4. 2  邏輯錯誤                  
 5. 4. 3  編碼錯誤                  
 5. 4. 4  內(nèi)存侵占                  
 5. 4. 5  循環(huán)錯誤                  
 5. 4. 6  條件錯誤                  
 5. 4. 7  指針錯誤                  
 5. 4. 8  分配/釋放錯誤                  
 5. 4. 9  多線程錯誤                  
 5. 4. 10  定時錯誤                  
 5. 4. 11  分布式應用程序錯誤                  
 5. 4. 12  存儲錯誤                  
 5. 4. 13  集成錯誤                  
 5. 4. 14  轉換錯誤                  
 5. 4. 15  硬編碼長度/尺寸                  
 5. 4. 16  版本bug                  
 5. 4. 17  不恰當?shù)刂赜胋ug                  
 5. 4. 18  布爾bug                  
 5. 5  為什么分類重要                  
 5. 6  小結                  
 5. 7  bug問題                  
 第6章  檢測工作                  
 6. 1  整體調試                  
 6. 1. 1  復制和粘貼錯誤                  
 6. l. 2  全局變量                  
 6. 1. 3  副作用                  
 6. 1. 4  觀察意外的消息或結果                  
 6. 1. 5  跟蹤診斷顯示                  
 6. 2  調試方法                  
 6. 2. l  科學方法                  
 6. 2. 2  直覺                  
 6. 2. 3  思維跳躍                  
 6. 2. 4  診斷                  
 6. 3  商業(yè)技巧                  
 6. 3. l  內(nèi)嵌式調試器                  
 6. 3. 2  日志對象                  
 6. 3. 3  跟蹤對象                  
 6. 3. 4  隱藏的診斷屏                  
 6. 3. 5  為以后的程序運行保存bug數(shù)據(jù)                  
 6. 4  可重現(xiàn)實例                  
 6. 4. 1  測試實例                  
 6. 4. 2  數(shù)據(jù)依賴                  
 6. 4. 3  從根本原因中分離癥狀                  
 6. 4. 4  收集觀察結果                  
 6. 4. 5  統(tǒng)計論理                  
 6. 5  小結                  
 6. 6  bug問題                  
 第7章  調試工具及其使用時機                  
 7. l  測試和調試環(huán)境                  
 7. 1. 1  測試組                  
 7. 1. 2  測試套                  
 7. 1. 3  過時的bug組                  
 7. 1. 4  日志                  
 7. l. 5  跟蹤                  
 7. 2  中級調試技術                  
 7. 2. 1  內(nèi)存漏洞檢測工具                  
 7. 2. 2  交叉索弓吸工具用法                  
 7. 2. 3  調試器                  
 7. 2. 4  Heisenberg的不確定原理                  
 7. 2. 5  嵌入式診斷                  
 7. 2. 6  斷言的弊端                  
 7. 2. 7  同用戶一起工作                  
 7. 2. 8  bug跟蹤                  
 7. 2. 9  代碼覆蓋范圍分析                  
 7. 2. 10  編譯器                  
 7. 3  小結                  
 7. 4  bug問題                  
 第8章  調試的一般過程                  
 8. l  識別問題                  
 8. l. l  這是bug嗎                  
 8. 1. 2  為什么它是一個bug                  
 8. 1. 3  程序應該在做什么                  
 8. 1. 4  程序到底在做什么                  
 8. 2  收集信息                  
 8. 2. 1  用戶對問題的描述                  
 8. 2. 2  日志文件                  
 8. 2. 3  新自觀察                  
 8. 2. 4  癥狀                  
 8. 2. 5  失敗的測試實例                  
 8. 2. 6  相似的問題                  
 8. 2. 7  近期變化                  
 8. 2. 8  運行的環(huán)境信息                  
 8. 3  形成假設                  
 8. 4  測試假設                  
 8. 5  崩潰的Web服務器示例                  
 8. 6  重復直到某個假設被證實                  
 8. 7  提出解決方法                  
 8. 8  測試解決方法                  
 8. 9  重復直到某個解決方法被證實                  
 8. 10  回歸測試                  
 8. 11  小結                  
 8. 12  bug問題                  
 第9章  調試技術                  
 9. l  插入式調試和非插入式調試                  
 9. 2  短期調試和長期調試技術                  
 9. 3  成品軟件調試的折衷辦法                  
 9. 4  調試技術介紹                  
 9. 4. 1  面對實際用戶                  
 9. 4. 2  查看觀察日志                  
 9. 4. 3  記錄調試代碼和過程                  
 9. 4. 4  模擬代碼和問題                  
 9. 4. 5  簡化重視性                  
 9. 4. 6  把問題簡化成最簡單的元素                  
 9. 4. 7  代碼消去法                  
 9. 4. 8  簡化法                  
 9. 4. 9  使用調試器                  
 9. 4. 10  跳躍                  
 9. 4. 11  分解法                  
 9. 4. 12  種植錯誤法                  
 9. 4. 13  編譯檢測法                  
 9. 4. 14  整體考慮法                  
 9. 4. 15  使用不同操作系統(tǒng)上的另一個編譯導                  
 9. 4. 16  每次改變一個變量                  
 9. 4. 17  數(shù)字命理學和邊界條件                  
 9. 4. 18  檢查最近的修改                  
 9. 4. 19  清除系統(tǒng)中的"死代碼"                  
 9. 4. 20  問題假設法                  
 9. 4. 21  檢查本測試的代碼                  
 9. 4. 22  不變式法                  
 9. 4. 23  存儲器使用情況                  
 9. 4. 24  互斥                  
 9. 4. 25  顯示系統(tǒng)的運行情況                  
 9. 4. 26  和工作的系統(tǒng)進行代碼比較                  
 9. 4. 27  理解算法                  
 9. 4. 28  檢查連通性                  
 9. 4. 29  核心文件                  
 9. 4. 30  增加跟蹤                  
 9. 4. 31  數(shù)據(jù)關系檢查                  
 9. 4. 32  重放能力(記錄動作)                  
 9. 4. 33  生成系統(tǒng)的副本                  
 9. 5  小結                  
 9. 6  bug問題                  
 第10章  不同應用系統(tǒng)的調試                  
 10. 1  小規(guī)模單機系統(tǒng)                  
 10. 1. l  成為系統(tǒng)的用戶                  
 10. 1. 2  復制環(huán)境                  
 10. 1. 3  提防DLL Hell                  
 10. 1. 4  輸入/輸出錯誤                  
 10. 2  中規(guī)模單機系統(tǒng)                  
 10. 3  中規(guī)模客戶/服務器系統(tǒng)                  
 10. 3. l  生成后端數(shù)據(jù)庫的一個簡單描述                  
 10. 3. 2  保留數(shù)據(jù)的使用情況來發(fā)現(xiàn)哪些數(shù)據(jù)經(jīng)常被使用                  
 10. 4  大規(guī)模系統(tǒng)                  
 10. 4. l  為測試安裝一個"后門"                  
 10. 4. 2  觀察外部條件的改變                  
 10. 5  實時系統(tǒng)                  
 10. 5. l  注意添加調試語句                  
 10. 5. 2  監(jiān)視硬件軟件的沖突                  
 10. 5. 3  時間問題                  
 10. 6  嵌入式系統(tǒng)                  
 10. 6. l  模擬器問題                  
 10. 6. 2  抑制中斷                  
 10. 6. 3  協(xié)議錯誤                  
 10. 6. 4  看門狗時鐘                  
 10. 6. 5  調試嵌入式系統(tǒng)                  
 10. 7  分布式系統(tǒng)                  
 10. 7. l  中間設備錯誤                  
 10. 7. 2  預測錯誤                  
 10. 7. 3  連接錯誤                  
 10. 7. 4  安全錯誤                  
 10. 7. 5  信息數(shù)據(jù)庫                  
 10. 7. 6  記錄的事后調查分析                  
 10. 8  模擬系統(tǒng)                  
 10. 8. l  封裝硬件接口                  
 10. 8. 2  把模擬調用封裝成預測錯誤返回                  
 10. 8. 3  把實際系統(tǒng)模擬器的問題簡化成最簡單的形式                  
 10. 9  小結                  
 10. 10  bug問題                  
 第11章  調試之后                  
 11. l  是不是在其他地方犯同樣的錯誤                  
 11. 2  bug背后隱含了什么                  
 11. 3  怎樣預防同類bug                  
 11. 3. l  理解原因                  
 11. 3. 2  保留測試用例                  
 11. 3. 3  利用bug為將來的設計                  
 11. 4  怎樣更容易發(fā)現(xiàn)類似的 bug                  
 11. 4. 1  創(chuàng)造工具                  
 11. 4. 2  記錄bug                  
 11. 4. 3  預留調試框架                  
 11. 5  我是否有所進步                  
 11. 5. l  bug量度                  
 11. 5. 2  bug跟蹤                  
 11. 5. 3  怎樣處理數(shù)據(jù)                  
 11. 6  小結                  
 11. 7  bug問題                  
 第12章  bug預防                  
 12. 1  什么是bug預防                  
 12. 2  一般技術                  
 12. 2. 1  預防bug的人                  
 12. 2. 2  問題原因分析                  
 12. 2. 3  檢測錯誤                  
 12. 2. 4  重用                  
 12. 2. 5  減小復雜度和管理復雜度                  
 12. 2. 6  現(xiàn)實世界的文檔                  
 12. 2. 7  內(nèi)部基礎結構支持                  
 12. 3  需求中的bug預防                  
 12. 3. l  理解問題                  
 12. 3. 2  正確獲得需求                  
 12. 4  設計中的bug預防                  
 12. 4. 1  不同的設計產(chǎn)生不同的bug類型                  
 12. 4. 2  設計接口                  
 12. 4. 3  設計包含文檔的代碼                  
 12. 5  實現(xiàn)中的bug預防                  
 12. 5. 1  理解開發(fā)工具                  
 12. 5. 2  防御編碼                  
 12. 5. 3  實現(xiàn)選擇                  
 12. 5. 4  逐步測試                  
 12. 6  小結                  
 12. 7 bug問題                  
 第13章  測試                  
 13. 1  單元測試                  
 13. 1. l  測試什么                  
 13. 1. 2  單元測試為什么重要                  
 13. 1. 3  怎樣應用到調試中                  
 13. 1. 4  單元測試有什么重要問題                  
 13. 2  驗證測試                  
 13. 3  質量保證測試                  
 13. 4  測試方法                  
 13. 4. l  路徑測試                  
 13. 4. 2  事務處理測試                  
 13. 4. 3  輸入驗證                  
 13. 4. 4  算法測試                  
 13. 4. 5  決策表                  
 13. 4. 6  狀態(tài)機分析                  
 13. 4. 7  綜合測試                  
 13. 4. 8  自上向下測試和自下向上測試                  
 13. 4. 9  配置調試                  
 13. 4. 10  恢復崩潰和掉電測試                  
 13. 4. 11  安全性測試                  
 13. 4. 12  第三方測試                  
 13. 4. 13  多用戶測試                  
 13. 4. 14  負載和性能測試                  
 13. 4. 15  測量和統(tǒng)計                  
 13. 5  小結                  
 13. 6  bug問題                  
 第14章  維護                  
 14. 1  什么是軟件維護                  
 14. 1. l  維護工作                  
 14. 1. 2  維護的挑戰(zhàn)                  
 14. 1. 3  軟件的退化需要軟件維護                  
 14. 2  創(chuàng)建一個可維護的軟件系統(tǒng)                  
 14. 2. 1  創(chuàng)建可理解的軟件                  
 14. 2. 2  可維護設計                  
 14. 2. 3  提供一個回歸測試環(huán)境                  
 14. 2. 4  創(chuàng)建一個可維護的環(huán)境                  
 14. 3  維護現(xiàn)有的軟件                  
 14. 3. l  修改現(xiàn)有軟件系統(tǒng)                  
 14. 3. 2  圍繞現(xiàn)有的需求和設計bug展開工作                  
 14. 3. 3  徹底的回歸測試                  
 14. 3. 4  保持修改跟蹤                  
 14. 4  什么時候要放棄                  
 14. 5  小結                  
 14. 6  bug問題                  
 第15章  專業(yè)調試                  
 15. 1  學習成為一名調試員                  
 15. 1. l  在軟件維護和改進組中工作                  
 15. 1. 2  學習編寫源代碼的一個好辦法                  
 15. 2  什么地方需要專業(yè)調試員                  
 15. 2. 1  在設計階段                  
 15. 2. 2  在需求階段                  
 15. 2. 3  在代碼審查階段                  
 15. 2. 4  在代碼移交階段                  
 15. 2. 5  項目階段總結                  
 15. 3  優(yōu)秀專業(yè)調試者的特點                  
 15. 3. 1  老練                  
 15. 3. 2  耐性                  
 15. 3. 3  探測技巧                  
 15. 3. 4  處理壓力的能力                  
 15. 3. 5  工程的/科學的方法                  
 15. 3. 6  忘我                  
 15. 3. 7  堅定不移                  
 15. 4  專業(yè)調試者的一天                  
 15. 5  小結                  
 15. 6  bug問題                  
 附錄A  bug問題的答案                  
 附錄B  附加的閱讀資料                  

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) www.shuitoufair.cn 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號