高品質程式 | 軟體測試原則、實作與模式 (Quality Code: Software Testing Principles, Practices, and Patterns)

Stephen Vance 著、莊弘祥 譯

買這商品的人也買了...

商品描述

<內容特色>

測試驅動(test-driven)、測試優先(test-first)與儘早測試開發實作,協助許多軟體開發機構改善開發的軟體,如今,在《高品質程式--軟體測試原則、實作與模式》一書中,Stephen Vance 以測試驅動開發為基礎,幫助讀者將品質提昇到前所未有的境界。

透過實際的程式範例介紹模式、原則以及數十種詳細的測試技術,能夠更完整、有效且輕鬆的測試任何軟體系統。

Vance 介紹集中開發人員精力的概念框架,改善整個軟體生命週期可測試性的設計建議,同時也對各種不同層級程式碼結構提供了簡化測試難度的務實建議。

讀者會看到針對各種情況最適當的測試技巧,包含一般狀況到多緒程式。並透過兩個完整的案例研究將所有內容完整呈現,帶領讀者測試全新開發的 Java 應用程式以及沒有完整測試的「舊有(legacy)」JavaScript JQuery 擴充。

不論是為新創公司開發最尖端的程式碼,或是維護難以控制的舊有系統,本書都能協助讀者完整真正需要的目的:高品質程式碼。

‧簡化單元測試,並改善整合與系統測試
‧描述意圖與實作以獲得更可靠與可擴縮(scalable)的測試
‧克服撰寫測試的困擾與誤解
‧測試「副作用」、行為特徵以及情境的限制
‧了解設計與可測試性間微妙的交互作用,並善用這些特性
‧發現引導關鍵測試決定的核心原則
‧詳細說明測試 getter/setters、字串處理、封裝、過載、可視性、singleton 模式、錯誤條件等情況
‧用確定的方式重現與測試複雜的競爭情況

Stephen Vance 從 1992 年起就是專業軟體開發人員、顧問、經理、導師與講師。自 1997 年以來採用並教導程式層級的自動化測試技巧,曾任職於許多不同的企業,包含新創公司與財富 100 的大企業,也曾於美國與歐洲舉辦的許多軟體開發研討會演講

<章節目錄>

Part I:測試原則與實踐 1
Chapter 1:工程、工藝與初次品質
工程與工藝
初次品質中工藝的角色
支持軟體工藝的實作
測試
程式檢查器限制下的單元測試
針對覆蓋率的單元測試
Chapter 2:程式的意圖
放置意圖的位置
從實作抽離意圖
引人深思的簡單例子
Chapter 3:從何下手?
測試方法
了解範圍
測試的概念框架
狀態與行為測試
測或不測
密訣
Chapter 4:設計與可測試性
可測試性
封裝與可觀測性
耦合與可測試性
Chapter 5:測試原則
用心撰寫測試
避免測試程式碼出現在產品
驗證意圖先於實作
降低耦合
偏好最少、新鮮、暫時fixtures
使用現有設施
完整驗證優於部份驗證
撰寫小測試
分離關注點
使用唯一值
保持簡潔:移除程式碼
不測試框架
有時要測試框架

Part II:測試與可測試性模式
Chapter 6:基礎
啟動建構子
測試簡單的Getter與Setter
共享常數
區域重定義
暫時取代
封裝與覆寫
調整可視範圍
用注入驗證
Chapter 7:處理字串
用包含驗證
用模式驗證
用數值確實驗證
用格式化結果確實驗
Chapter 8:封裝與覆寫變化
資料注入
封裝迴圈條件
錯誤注入
取代輔助者
使用現有無動作類別
Chapter 9:調整可視範圍
測試與程式碼共同打包
分解
改變存取層級
測試專用介面
給予匿名實體名稱
成為 friend
用反射強制存取
宣告式範圍更動
Chapter 10:中場休息:再談意圖
測試 Singleton 模式
Singleton 意圖
測試策略
辨別意圖
Chapter 11:錯誤條件驗證
檢查傳回值
驗證例外型別
驗證例外訊息
驗證例外酬載
驗證例外實體
例外設計的考量
Chapter 12:使用現有接縫
直接呼叫
相依性注入
回呼、Objserver、Listerner 與 Notifier
登錄
Factory
最後考慮 Log 與其他機制
Chapter 13:平行化
執行緒與競爭條件簡述
重現競爭條件的策略
直接測試執行緒工作
用一般鎖同步
用注入同步
使用監管控制
統計式驗證
除錯器 API

Part III:真實範例
Chapter 14:測試驅動 Java
啟動
第一個功能
整理線圈
迎向多重
Ghost Protocol
參數操作
繼續前進
回顧
Chapter 15:舊有 JavaScript
開始動手
DOMination
擠牙膏與測試
擴縮
軟體考古學
回顧

參考書目
索引