優質代碼

優質代碼 pdf epub mobi txt 電子書 下載2025

出版者:人民郵電齣版社
作者:[美]Stephen Vance 斯蒂芬•萬斯
出品人:
頁數:216
译者:伍斌
出版時間:2015-1
價格:49
裝幀:平裝
isbn號碼:9787115375582
叢書系列:
圖書標籤:
  • 軟件測試
  • 軟件工程
  • 編程
  • 測試
  • 計算機
  • 提高
  • 自我完善
  • 測試先行
  • 代碼質量
  • 軟件工程
  • 編程實踐
  • 代碼規範
  • 代碼重構
  • 可維護性
  • 可讀性
  • 設計模式
  • 最佳實踐
  • 軟件開發
想要找書就要到 圖書目錄大全
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!

具體描述

本書講述如何對所有的軟件進行輕鬆的例行測試,書中為讀者提供一些工具——一些實現模式,這些工具幾乎可以測試任何代碼。

本書分為三個部分:第一部分(第1~5章)討論瞭測試的一些原則和實踐,包括首次優質、代碼意圖、測試攻略和測試與設計之間的關係等;第二部分(第6~13章)討論瞭有關測試實踐方麵的一些模式,包括測試構造器和getter/setter、處理字符串、封裝與覆寫、調整代碼可見性、測試單例模式、驗證錯誤條件,以及利用各種接縫和測試多綫程等;第三部分(第14~15章)展示瞭兩個實例的編程過程,其中一個是用測試驅動開發方法編寫新的Java應用程序WebRetriever,另一個是為一個未寫測試的JavaScript開源項目jQuery Timepicker Addon添加測試代碼。

本書適閤對測試驅動開發有初步瞭解或實踐並想提升測試代碼編寫技能的程序員和自動化測試工程師閱讀,也適閤想通過本書在GitHub上的微量提交的代碼來學習用測試驅動開發方法編寫Java新項目和用測試來馴服JavaScript遺留代碼的詳細過程的任何讀者閱讀。

專業書評

什麼是優質代碼?除瞭能夠正確實現設計意圖外,優質代碼還應該具備“三好”的特性:好看,好聞(沒有壞味道),好驗證。然而,如何寫齣優質代碼呢?除瞭好看和好聞之外,可測試性是優質代碼的重要指標。盡管開發工程師普遍對提高代碼的可測試性感興趣,但是,想要在復雜的代碼環境下遊刃有餘地解決可測試性問題,非得有閤適的“招式”支撐不可。《優質代碼》這本書提供瞭一整套提升代碼可測試性和測試代碼的招式,書中結閤實例對不同招式進行瞭細緻的講解,並用兩個相對完整的實例演示瞭招式的使用。對於立誌於寫齣優質代碼卻又受可測試性睏擾的開發工程師來說,本書是不可多得的參考資料。

——段念,豆瓣網工程副總裁

在節奏越來越快的IT時代,我們開發軟件産品,究竟是拼快,還是拼質量?雖然快速開發能為我們贏得先機,但歸根結底,質量纔是最終決定産品成功的重要砝碼。遺憾的是,遍觀各種軟件係統,我們仍然看到許許多多靠著編程急就章造就的作品——代碼慘不忍睹,質量馬馬虎虎;測試寥若寒星,維護戰戰兢兢。於是,軟件係統背負著沉甸甸的技術債務蹣跚前行,自然也就不足為奇瞭。問題齣在哪兒?管理層不重視代碼的內部質量固然是其主因,然而,多數開發人員不知道為何要寫測試,不明白該寫什麼測試,不清楚如何寫好測試,恐怕亦是造成此惡果的一大誘因。於是,業界開始提倡編程匠藝,推崇測試先行,強調優質代碼。該如何做,本書給齣瞭答案。它從技術層麵剖解瞭編程匠藝的諸多細節,從測試角度入手,總結瞭諸多原則、實踐與模式,既有理論深度如飲醇酒,香冽而雋永;又有案例小菜,足以佐酒而迴味悠長。一本佳作,要的就是這個味兒。

——張逸,ThoughtWorks公司

現在多數人都很認同“質量是內建的”,開始關注“測試驅動開發”、“測試在先”等優秀實踐,但真正知道怎麼做的人倒是不多。本書正好填補瞭這方麵空白,專注於有關編程測試和可測試性方麵的多種機製,手把手地教開發人員如何做測試,通過具體實例、典型的微量代碼,對測試框架、測試模式和測試技巧進行瞭淋灕盡緻的展現,不僅幫助我們寫齣“首次優質”的新代碼,而且指導我們如何馴服已有的爛代碼,如何編寫能夠錶達我們意圖的測試來驅動代碼的設計,如何處理一些棘手的問題(如多綫程測試)。之前,我和譯者伍斌也有幾麵之交,他對編程公益社區的熱衷、對代碼的精益求精給我很深的印象,相信他是全身心投入本書的翻譯,從譯文中也得到驗證,本譯作的齣版又是一次對編程操練開放社區的巨大貢獻,讓無數的編程人員受益。

——硃少民,同濟大學軟件學院教授

作者簡介

Stephen Vance從1992年開始,就已經成為專業的軟件開發者、谘詢師、經理、導師和講師,從1997年開始,實踐和講授代碼級彆的自動化測試技術。他曾工作過的公司小到創業公司,大到財富100強企業,行業涉及廣泛。他的演講遍布美國和歐洲的軟件技術大會。

目錄資訊

第一部分 測試的原則和實踐 1
第1章 工程、匠藝和首次優質 2
1.1工程與匠藝 2
1.2 匠藝在首次優質中的作用 3
1.3 支持軟件匠藝的實踐 4
測試 6
1.4 在代碼檢查器的約束下進行單元測試 8
1.5 針對覆蓋率的單元測試 9
第2章 代碼的意圖 14
2.1 意圖都被放到哪裏去瞭? 14
2.2 將意圖與實現分離 15
2.3 一個能引發思考的簡單例子 16
第3章 從哪裏開始 20
3.1 一種測試的方法 20
3.1.1 瞭解範圍 20
3.1.2 測試的概念框架 21
3.1.3 狀態和行為測試 23
3.1.4 測試還是不測試 24
3.2 攻略 24
3.2.1 測試“正常路徑” 25
3.2.2 測試替代路徑 26
3.2.3 測試錯誤路徑 26
3.2.4 測試數據的排列組閤 27
3.2.5 對缺陷進行測試 31
第4章 設計和可測試性 32
4.1 關於設計範型 32
4.2 封裝和可觀察性 32
4.2.1 錶示性的封裝 33
4.2.2 行為的封裝 33
4.2.3 測試的灰度 34
4.2.4 封裝、可觀察性和可測試性 35
4.3 耦閤和可測性 36
第5章 測試的原則 41
5.1 把測試雕琢好 41
5.1.1 將輸入關聯到輸齣 42
5.1.2 使用命名約定 43
5.2 避免在生産代碼內齣現測試代碼 44
5.3 通過實現來驗證意圖 46
5.4 將耦閤最小化 46
5.5 要最小的、新的和瞬態fixture 47
5.6 利用現有設施 48
5.7 要完整的驗證而不要部分的驗證 48
5.8 編寫小測試 49
5.9 分離關注點 49
5.10 使用唯一值 50
5.11 保持簡單:刪除代碼 51
5.12 不要測試框架 51
不要測試生成的代碼 52
5.13 有時測試框架 53
第二部分 測試與可測試性模式 54
第6章 基礎知識 55
6.1 bootstrapping構造器 55
6.2 測試簡單的getter和setter 58
6.3 共享常量 59
6.4 在局部重新定義 62
6.5 暫時替換 63
6.6 封裝和覆寫 64
6.7 調整可見性 68
6.8 通過注入的驗證 70
第7章 字符串處理 73
7.1 通過包含關係來驗證 73
7.2 通過模式來驗證 75
7.3 通過值來精確驗證 77
7.4 使用格式化的結果來精確驗證 80
第8章 封裝和覆寫變化 84
8.1 數據注入 84
8.2 封裝循環條件 87
8.3 錯誤注入 89
8.4 替換協作者 91
8.5 使用現有的無操作類 94
第9章 調整可見性 98
9.1 用包來包裝測試 98
9.2 將其分解 100
9.3 更改訪問級彆 102
9.4 僅用於測試的接口 104
9.5 命名那些尚未命名的 105
9.6 變為friend 106
9.7 通過反射來強製訪問 107
9.8 聲明範圍變更 109
第10章 間奏:重溫意圖 111
10.1 測試單例模式 111
10.2 單例的意圖 113
10.3 測試的策略 113
10.3.1 測試單例的性質 114
10.3.2 對類的目的進行測試 115
10.4 獨具慧眼的意圖 118
第11章 錯誤條件驗證 120
11.1 檢查返迴值 120
11.2 驗證異常類型 120
11.3 驗證異常消息 122
11.4 驗證異常有效載荷 125
11.5 驗證異常實例 128
11.6 有關異常設計的思考 131
第12章 利用現有接縫 136
12.1 直接調用 136
12.1.1 接口 136
12.1.2 實現 137
12.2 依賴注入 137
12.3 迴調、觀察者、監聽者和通告者 141
12.4 注冊錶 146
12.5 工廠 148
12.6 日誌記錄與最後一手的其他設施 150
第13章 並行性 155
13.1 綫程和競態條件的簡介 155
13.1.1 一些曆史 155
13.1.2 競態條件 156
13.1.3 死鎖 158
13.2 一個用於重現競態條件的策略 159
13.3 直接測試綫程的任務 162
13.4 通過常見鎖來進行同步 165
13.5 通過注入來同步 171
例子:通過日誌記錄來注入同步 171
13.6 使用監督控製 174
13.7 統計性的驗證 177
13.8 調試器API 179
第三部分 實例 182
第14章 測試驅動的Java 183
14.1 bootstrapping 184
14.2 首要功能 184
14.3 切斷網絡連接 185
14.4 轉移到處理多個網站的情況 187
14.5 幽靈協議 187
14.5.1 死鬍同 187
14.5.2spy手藝 188
14.6 執行選項 190
14.7 走嚮下遊 191
14.8 迴顧 194
第15章 遺留的JavaScript代碼 196
15.1 準備開始 197
15.2 DOM的統治 198
15.3 在牙膏與測試之上 199
15.4 嚮上擴展 201
15.5 軟件考古學 203
15.6 迴顧 204
· · · · · · (收起)

讀後感

評分

这本书介绍了测试先行、TDD等原则下,如何优化代码、如何提升代码可测试性的方法。其中多数使用Java代码,并运用了面向对象编程语言、脚本语言等的各种特性。第1~5章介绍的测试原则和实践,从总体上介绍了一些优化代码及其可测试性的方法;后面主要是各种技巧。前几章翻译质量...

評分

这本书介绍了测试先行、TDD等原则下,如何优化代码、如何提升代码可测试性的方法。其中多数使用Java代码,并运用了面向对象编程语言、脚本语言等的各种特性。第1~5章介绍的测试原则和实践,从总体上介绍了一些优化代码及其可测试性的方法;后面主要是各种技巧。前几章翻译质量...

評分

这本书介绍了测试先行、TDD等原则下,如何优化代码、如何提升代码可测试性的方法。其中多数使用Java代码,并运用了面向对象编程语言、脚本语言等的各种特性。第1~5章介绍的测试原则和实践,从总体上介绍了一些优化代码及其可测试性的方法;后面主要是各种技巧。前几章翻译质量...

評分

这本书介绍了测试先行、TDD等原则下,如何优化代码、如何提升代码可测试性的方法。其中多数使用Java代码,并运用了面向对象编程语言、脚本语言等的各种特性。第1~5章介绍的测试原则和实践,从总体上介绍了一些优化代码及其可测试性的方法;后面主要是各种技巧。前几章翻译质量...

評分

这本书介绍了测试先行、TDD等原则下,如何优化代码、如何提升代码可测试性的方法。其中多数使用Java代码,并运用了面向对象编程语言、脚本语言等的各种特性。第1~5章介绍的测试原则和实践,从总体上介绍了一些优化代码及其可测试性的方法;后面主要是各种技巧。前几章翻译质量...

用戶評價

评分

還是不錯的,有些不錯的思想和細節。但是解決方案給的還是比較少

评分

還是不錯的,有些不錯的思想和細節。但是解決方案給的還是比較少

评分

還是不錯的,有些不錯的思想和細節。但是解決方案給的還是比較少

评分

有很多測試的東西沒接觸過,還沒讀完

评分

高屋建瓴!對於測試在實際項目中的實踐有很強的指導性。

本站所有內容均為互聯網搜索引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

© 2025 qciss.net All Rights Reserved. 小哈圖書下載中心 版权所有