-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

C++程序設計實踐與技巧 測試驅動開發

( 簡體 字)
作者:【美】杰夫蘭格 ( Jeff Langr ) 類別:1. -> 程式設計 -> C++ -> C++
譯者:
出版社:人民郵電出版社C++程序設計實踐與技巧 測試驅動開發 3dWoo書號: 45732
詢問書籍請說出此書號!

缺書
NT售價: 295

出版日:11/1/2016
頁數:283
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787115438959
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

內容簡介:

  本書是一本關于設計原則、編程實踐、測試驅動開發的指南,旨在幫助C++ 程序員用測試驅動開發方法構建高性能解決方案。全書共11 章,涵蓋測試驅動開發的基本工作方式、潛在好處、怎樣利用測試驅動開發解決設計缺陷、測試驅動開發的難點和成本、怎樣利用測試驅動開發減少甚至免除調試工作,以及如何長時間維持測試驅動開發。
本書適合所有技術層次的C++ 程序員閱讀。
目錄:

第1 章 環境設置 1
1.1 開場白 1
1.2 示例程序 1
1.3 C++編譯器 2
1.3.1 Ubuntu 2
1.3.2 OS X 2
1.3.3 Windows 3
1.4 CMake 4
1.5 Google Mock 5
1.5.1 安裝Google Mock 5
1.5.2 創建main 函數運行Google Mock 測試 7
1.6 CppUTest 7
1.6.1 安裝CppUTest 7
1.6.2 創建main 函數以運行CppUTest 測試 8
1.7 libcurl 8
1.8 JsonCpp 8
1.9 rlog 9
1.10 Boost 10
1.11 構建示例并運行測試 10
1.12 結束語 11
第2 章 測試驅動開發:第一個示例 12
2.1 開場白 12
2.2 Soundex 類 12
2.3 開始吧 13
2.4 去掉不干凈的代碼 19
2.5 增量性 21
2.6 fixture 與設置 23
2.7 思索與測試驅動開發 25
2.8 測試驅動與測試 28
2.9 如果出現別的情況呢 30
2.10 一次只做一件事 31
2.11 限制長度 32
2.12 丟掉元音 34
2.13 讓測試自我澄清 34
2.14 跳出條條框框來測試 36
2.15 言歸正傳 38
2.16 重構至單一責任的函數 39
2.17 收尾工作 40
2.18 漏了什么測試嗎 41
2.19 解決方案 42
2.20 Soundex 類 43
2.21 結束語 46
第3 章 測試驅動開發基礎 47
3.1 開場白 47
3.2 單元測試和測試驅動開發基礎知識 47
3.2.1 單元測試的組織和執行 47
3.2.2 測試驅動單元 48
3.3 測試驅動開發周期:紅—綠—重構 49
3.4 測試驅動開發的三條準則 50
3.5 表里不一 51
3.5.1 運行了錯誤的測試 52
3.5.2 測試了錯誤的代碼 52
3.5.3 不當的測試規范 53
3.5.4 對系統的無效假設 53
3.5.5 不佳的測試順序 53
3.5.6 相關聯的產品代碼 56
3.5.7 過度編碼 58
3.5.8 確定性測試 59
3.5.9 停下來想一下 59
3.6 成功運用測試驅動開發的思維 59
3.6.1 增量性 59
3.6.2 測試行為而非方法 60
3.6.3 使用測試來描述行為 60
3.6.4 保持簡單 61
3.6.5 恪守測試驅動開發周期 62
3.7 成功運用測試驅動開發的方法 62
3.7.1 下一個測試是什么 62
3.7.2 十分鐘限制 64
3.7.3 代碼缺陷 64
3.7.4 禁用測試 65
3.8 結束語 66
第4 章 測試結構 67
4.1 開場白 67
4.2 組織方式 67
4.2.1 文件組織 67
4.2.2 fixture 68
4.2.3 Setup 與Teardown 69
4.2.4 Arrange-Act-Assert/Given-When-Then 72
4.3 快速測試、慢速測試、過濾器和測試集 73
4.4 斷言 75
4.4.1 經典的斷言形式 76
4.4.2 Hamcrest 斷言 76
4.4.3 選擇正確的斷言 78
4.4.4 浮點數比較 78
4.4.5 基于異常的測試 79
4.5 探查私有成員 81
4.5.1 私有數據 81
4.5.2 私有行為 82
4.6 測試和測試驅動:參數化的測試及其他方法 85
4.6.1 參數化測試 85
4.6.2 測試中的注釋 87
4.7 結束語 87
第5 章 測試替身 88
5.1 開場白 88
5.2 依賴問題 88
5.3 測試替身 89
5.4 手動打造的測試替身 90
5.5 在使用測試替身時提升測試的抽象程度 94
5.6 使用模擬對象工具 96
5.6.1 定義一個派生類 96
5.6.2 設立期望 97
5.6.3 松模擬和嚴模擬 100
5.6.4 模擬對象中的順序 101
5.6.5 巧妙的模擬工具特性 102
5.6.6 排除模擬失敗 104
5.6.7 一個還是兩個測試 104
5.7 讓測試替身各就各位 105
5.7.1 覆寫工廠方法和覆寫Getter 105
5.7.2 使用工廠 107
5.7.3 通過模板參數 109
5.7.4 注入工具 110
5.8 設計會變化 110
5.8.1 內聚與耦合 110
5.8.2 轉嫁私有依賴 112
5.9 使用測試替身的策略 113
5.9.1 探索設計 113
5.9.2 mock 流派 114
5.9.3 明智地使用測試替身 115
5.10 其他關于測試替身的主題 115
5.10.1 怎么稱呼它們 116
5.10.2 測試替身該放在哪 116
5.10.3 虛函數表和性能 117
5.10.4 模擬具體的類 117
5.11 結束語 118
第6 章 增量設計 119
6.1 開場白 119
6.2 簡單設計 119
6.2.1 重復代碼的代價 120
6.2.2 投資管理器 120
6.2.3 投資管理器中的簡單重復 122
6.2.4 我們真的能堅持增量方法嗎 124
6.2.5 更多的重復 129
6.2.6 小方法的好處 132
6.2.7 完成功能 134
6.2.8 增量設計讓事情變得簡單 138
6.3 預先設計在哪 141
6.3.1 哪里才會討論真正的設計呢 142
6.3.2 簡單設計原則和經典設計
理念會在哪起沖突 143
6.4 阻礙重構的因素 143
6.5 結束語 145
第7 章 高質量測試 146
7.1 開場白 146
7.2 測試先行 146
7.2.1 快速 146
7.2.2 獨立 148
7.2.3 可重復 149
7.2.4 自我驗證 150
7.2.5 及時 150
7.3 一個測試一個斷言 150
7.4 測試抽象 153
7.4.1 臃腫的初始化 153
7.4.2 不相關的細節 154
7.4.3 缺失的抽象 156
7.4.4 多重斷言 157
7.4.5 不相關的數據 157
7.4.6 不必要的測試代碼 158
7.5 結束語 164
第8 章 遺留代碼的挑戰 165
8.1 開場白 165
8.2 遺留代碼 165
8.3 法則 166
8.4 遺留應用程序 167
8.5 保持測試驅動開發的心態 170
8.6 支持測試的安全重構 171
8.7 添加測試刻畫已有行為 174
8.8 被遺留代碼轉移注意力 175
8.9 為rlog 創建測試替身 175
8.10 測試驅動開發改動 179
8.11 新的場景 181
8.12 尋求更快測試的簡要探索 182
8.13 立竿見影的提煉 183
8.14 用成員變量查看狀態 186
8.15 用mock 查看狀態 187
8.16 其他注入技巧 191
8.17 用Mikado 方法大規模改動代碼 192
8.18 Mikado 方法概覽 192
8.19 用Mikado 移動一個方法 193
8.20 有關Mikado 方法的更多思考 202
8.21 這樣做值得嗎 203
8.22 結束語 203
第9 章 測試驅動開發與多線程 204
9.1 開場白 204
9.2 測試驅動開發多線程應用的核心概念 204
9.3 示例程序GeoServer 205
9.4 性能要求 211
9.5 設計異步方案 213
9.6 依然簡單的測試驅動 216
9.7 為多線程做好準備 218
9.8 暴露并發性問題 220
9.9 在測試中創建客戶端線程 222
9.10 在ThreadPool 中創建多個線程 224
9.11 回到GeoServer 226
9.12 結束語 230
第10 章 測試驅動開發的其他概念和討論 231
10.1 開場白 231
10.2 測試驅動開發與性能 231
10.2.1 性能優化測試的策略 232
10.2.2 相關單元級性能測試 233
10.2.3 嘗試優化GeoServer 代碼 234
10.2.4 TestTimer 類 235
10.2.5 性能和小函數 236
10.2.6 推薦 237
10.3 單元測試、集成測試和驗收測試 238
10.3.1 測試驅動開發如何與驗收測試建立聯系 239
10.3.2 程序員定義的集成測試 239
10.3.3 測試驅動開發和驗收測試驅動開發的重合部分 240
10.4 變換優先級假設 241
10.4.1 了解變換 241
10.4.2 三角法 242
10.4.3 瀏覽測試列表 243
10.5 編寫斷言 252
10.5.1 斷言—行為—排列 253
10.5.2 示例程序優先,或至少第二 253
10.6 結束語 255
第11 章 發展和維持測試驅動開發 256
11.1 開場白 256
11.2 向非技術人員解釋測試驅動開發 256
11.2.1 測試驅動什么 257
11.2.2 關于TDD 的研究 259
11.3 不良測試的死亡漩渦(亦稱為SCUMmy 周期) 260
11.4 結對編程 261
11.4.1 結對原則 262
11.4.2 結對編程與測試驅動開發 262
11.4.3 角色切換 263
11.5 Kata 和Dojo 264
11.5.1 在測試驅動開發中應用Kata 264
11.5.2 Dojo 265
11.6 有效地使用代碼覆蓋率統計 266
11.7 持續集成 267
11.8 為團隊制定測試驅動開發標準 268
11.9 保持與社區同步 268
11.9.1 閱讀測試 268
11.9.2 博客與論壇 269
11.10 結束語 269
附錄A 比較單元測試工具 270
附錄B 代碼Kata:羅馬數字轉換器 273
附錄C 參考文獻 282
序: