2014年10月24日 星期五

新書推薦-高品質程式:軟體測試原則、實作與模式介紹

 

新書推薦-高品質程式:軟體測試原則、實作與模式介紹

 

詳細介紹(點我)

 

 

 


內容簡介




  測試驅動(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

擠牙膏與測試

擴縮

軟體考古學

回顧



參考書目

索引










沒有留言: