Cucumber-行為驅動開發指南 (The Cucumber Book: Behaviour-Driven Development for Testers and Developers) Cucumber:行为驱动开发指南

韋恩 (Matt Wynne), 赫勒索 (Aslak Hellesoy)

  • 出版商: 人民郵電
  • 出版日期: 2013-07-01
  • 定價: $354
  • 售價: 8.5$301
  • 語言: 簡體中文
  • 頁數: 272
  • 裝訂: 平裝
  • ISBN: 7115318859
  • ISBN-13: 9787115318855

已絕版

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

相關主題

商品描述

<內容簡介>

《Cucumber--行為驅動開髮指南》編著者韋恩、(挪)赫勒索。
    《Cucumber:行為驅動開髮指南》的兩位作者是MattWynne和AslakHelles?y,前者是Cucumber最有經驗的用戶和貢獻者之一,後者是Cucumber的創始人,因此,《Cucumber:行為驅動開髮指南》是一本權威指南,它會提供使用Cucumber所需的全部知識,讓你和你的團隊自信地開啟Cucumber之旅。儘管Cucumber誕生於Ruby社區,但你可以用它測試幾乎所有系統,從簡單的shell或Perl腳本,到使用PHP、Java或任何其他平臺編寫的Web應用。
    書中將展示如何用一組清晰、可執行且團隊中任何人都能讀懂的規格說明來表達用戶那些天馬行空的想法。你將學會如何將這些示例提供給Cucumber,並讓它指導你的開發過程。《Cucumber:行為驅動開髮指南》的第一部分會提供Cucumber入門所需的全部知識,引導你從Cucumber的核心特性起步,通過Cucumber的GherkinDSL,使用自然語言來描述客戶想要的系統行為,然後帶你編寫Ruby代碼來解釋這些自然語言描述的規格說明並據此來驗證應用的行為。第二部分將通過一個可以工作的例子來鞏固學到的知識,同時學習一些更高級的Cucumber技術,還將學習如何測試異步系統和使用數據庫的系統。第三部分提供了一些解決問題的方法,針對的都是作者曾幫助其他團隊解決過的最困難、最常見的問題。基於這些模式和技術,你將學習如何使用Capybara和Selenium測試大量使用Ajax的Web應用,測試RESTWeb服務、RubyonRails應用、命令行應用、遺留程序等。
    Cucumber有助於在軟件團隊中的技術人員和非技術人員之間架起溝通的橋樑。《Cucumber:行為驅動開髮指南》的內容既適合開發人員和測試人員閱讀,也適合軟件團隊中的非技術讀者閱讀。

<目錄>

第一部分 Cucumber基礎
第1章 為何使用Cucumber
  1.1 自動化驗收測試
  1.2 行為驅動開發
  1.2.1 通用語言
  1.2.2 實例
  1.3 活的文檔事實來源
  1.4 Cucumber如何工作
  1.5 我們學到了什麼
第2章 Cucumber初體驗
  2.1 理解我們的目標
  2.2 創建一個特性
  2.3 創建步驟定義
  2.4 實現第一個步驟定義
  2.5 運行程序
  2.6 改變格式器
  2.7 添加一個斷言
  2.8 讓測試通過
  2.9 我們學到了什麼
  2.9.1 目錄結構
  2.9.2 小步前進
  2.9.3 Gherkin
  2.9.4 步驟定義
第3章 Gherkin基礎
  3.1 Gherkins是幹什麼的
  3.1.1 具體實例
  3.1.2 可執行的規格說明
  3.2 格式和語法
  3.2.1 關鍵字
  3.2.2 模擬運行
  3.3 Feature
  3.4 場景
  3.4.1 Given、When和Then
  3.4.2 And和But
  3.4.3 使用星號替換Given、When和Then
  3.4.4 無狀態
  3.4.5 名稱和描述
  3.5 註釋
  3.6 語言
  3.7 我們學到了什麼
第4章 步驟定義:外在篇
  4.1 步驟和步驟定義
  4.1.1 匹配步驟
  4.1.2 創建步驟定義
  4.1.3 Given、When和Then是相同的
  4.1.4 使用本國語言
  4.2 捕獲參數
  4.2.1 捕獲組
  4.2.2 多選分支
  4.2.3 點號

  4.2.4 星號修飾符
  4.2.5 字符組
  4.2.6 字符組簡記法
  4.2.7 加號修飾符
  4.3 多重捕獲
  4.4 靈活性
  4.4.1 問號修飾符
  4.4.2 非捕獲組
  4.4.3 錨點
  4.5 返回結果
  4.5.1 未定義的步驟
  4.5.2 待定的步驟
  4.5.3 失敗的步驟
  4.6 我們學到了什麼
第5章 富有表現力的場景
  5.1 背景
  5.2 數據表
  5.2.1 在步驟定義中處理數據表
  5.2.2 將數據表轉換成數組
  5.2.3 使用diff!比較數據表
  5.3 場景輪廓
  5.3.1 更大的佔位符
  5.3.2 多個實例表
  5.3.3 解釋自己
  5.4 嵌套步驟
  5.4.1 嵌套步驟重構
  5.4.2 參數和嵌套步驟
  5.4.3 嵌套步驟的危險
  5.5 文檔字符串
  5.6 使用標籤和子文件夾保持條理性
  5.6.1 子文件夾
  5.6.2 運行子文件夾中的特性
  5.6.3 標籤
  5.7 我們學到了什麼
第6章 Cucumber常見問題及解決之道
  6.1 感受痛苦
  6.1.1 閃爍的場景
  6.1.2 脆弱的特性
  6.1.3 緩慢的特性
  6.1.4 厭倦的利益相關人
  6.2 同心協力
  6.2.1 偶然細節
  6.2.2 命令式步驟
  6.2.3 重複
  6.2.4 語言不通用
  6.2.5 閉門造車式的特性
  6.3 照管好你的測試
  6.3.1 滲露的場景
  6.3.2 競爭條件和打瞌睡的步驟
  6.3.3 共享的環境

  6.3.4 被隔離的測試人員
  6.3.5 固件數據
  6.3.6 大量場景
  6.3.7 大泥球
  6.4 停掉生產線和缺陷預防
  6.5 我們學到了什麼
  
第二部分 可以工作的示例
第7章 步驟定義:內在篇
  7.1 勾勒出領域模型
  7.1.1 準確用詞
  7.1.2 實話實說
  7.1.3 做最簡單的事情
  7.2 使用變形器消除重複
  7.3 為World添加自定義輔助方法
  7.3.1 在World中存儲狀態
  7.3.2 創建自定義輔助方法
  7.3.3 自定義World
  7.3.4 設計抵達終點線的方法
  7.4 組織代碼
  7.4.1 隔離應用程序代碼
  7.4.2 啟動Cucumber環境
  7.4.3 變形器和World模塊
  7.4.4 組織步驟定義
  7.4.5 模擬運行和env.rb
  7.5 我們學到了什麼
第8章 支持代碼
  8.1 修復bug檢查和重構
  8.2 開啟用戶界面安裝gem
  8.3 做出轉換設計用戶界面
  8.4 使用鉤子
  8.4.1 打標籤的鉤子
  8.4.2 觀察場景
  8.4.3 Around鉤子
  8.4.4 在其他時間運行的鉤子
  8.5 構建用戶界面提供現金
  8.6 我們學到了什麼
第9章 處理消息隊列和異步組件
  9.1 我們全新的異步架構
  9.2 如何同步
  9.2.1 通過監聽同步
  9.2.2 通過取樣同步
  9.3 實現新架構
  9.3.1 驅動出接口
  9.3.2 構建交易隊列
  9.3.3 構建BalanceStore
  9.3.4 添加鉤子以重置狀態
  9.3.5 構建Transaction Processor
  9.4 修復閃爍的場景
  9.4.1 安裝及配置Service Manager

  9.4.2 調查閃爍
  9.4.3 使用取樣修復閃爍
  9.4.4 測試什麼都沒有發生
  9.5 我們學到了什麼
第10章 數據庫
  10.1 ActiveRecord介紹使用遷移管理模式變更
  10.2 重構至使用數據庫
  10.3 讀取及寫入數據庫
  10.4 用事務清理數據庫
  10.5 使用截斷清理數據庫
  10.6 我們學到了什麼
  
第三部分 應用Cucumber
第11章 Cucumber命令行界面
  11.1 Cucumber命令行選項
  11.2 運行一個場景子集
  11.2.1 使用標籤表達式過濾
  11.2.2 基於行號過濾
  11.2.3 基於名稱過濾
  11.3 改變Cucumber的輸出
  11.3.1 特殊的格式器
  11.3.2 格式化至文件及使用多種格式器
  11.3.3 顯示完整回溯
  11.4 指定步驟定義的位置
  11.5 管理進行中的工作
  11.6 使用profile
  11.7 從Rake運行Cucumber
  11.8 在持續集成中運行Cucumber
  11.8.1 嚴格要求
  11.8.2 共享報告
  11.9 我們學到了什麼
第12章 測試REST Web服務
  12.1 進程內測試基於Rack的REST API
  12.1.1 建立應用的骨架——然後存儲一些水果
  12.1.2 使用Rack-Test測一測我們的應用
  12.1.3 比較JSON
  12.2 進程外測試任意REST API
  12.3 我們學到了什麼
第13章 為遺留應用添加測試
  13.1 特性描述測試
  13.2 消滅bug
  13.3 添加新的行為
  13.4 代碼覆蓋率
  13.5 我們學到了什麼
第14章 引導Rails
  14.1 運行生成器
  14.2 創建用戶
  14.3 發布消息
  14.4 關聯消息與用戶
  14.5 手工創建控制器

  14.6 實現視圖
  14.7 我們學到了什麼
第15章 使用Capybara測試Ajax Web應用
  15.1 實現不用Ajax的簡單搜索
  15.1.1 準備內容以供搜索
  15.1.2 導航、填寫輸入域和點擊按鈕
  15.1.3 修復控制器代碼
  15.1.4 讓Capybara做點事情
  15.1.5 驗證頁面內容
  15.1.6 從頁面中提取數據
  15.1.7 使用表格比較
  15.2 基於Ajax的搜索
  15.2.1 使用Selenium
  15.2.2 活動搜索的設計
  15.2.3 讓Web應用返回JSON
  15.2.4 處理Ajax的異步特性
  15.3 Capybara API
  15.3.1 導航
  15.3.2 鏈接與按鈕點擊
  15.3.3 表單交互
  15.3.4 查詢
  15.3.5 查找
  15.3.6 範圍限定
  15.4 抓取屏幕截圖
  15.5 我們學到了什麼
第16章 使用Aruba測試命令行應用
  16.1 簡單界面
  16.2 我們的第一個Aruba特性
  16.2.1 流和退出狀態
  16.2.2 安裝Aruba
  16.2.3 考察Aruba的步驟定義
  16.3 使用文件與可執行程序
  16.3.1 使用@announce查看Aruba見到的內容
  16.3.2 隔離場景
  16.3.3 告知Aruba勿刪文件
  16.3.4 設置Aruba的工作目錄
  16.3.5 設置$PATH
  16.4 與用戶輸入交互
  16.5 使用Aruba的Ruby DSL
  16.6 我們學到了什麼
  
  附錄A 在其他平臺上使用Cucumber
  附錄B 安裝Cucumber
  B.1 安裝Ruby
  B.1.1 OS X和Linux
  B.1.2 Windows
  B.2 HTTP代理設置
  B.3 安裝Bundler
  B.4 安裝Cucumber(及RSpec)
  B.5 安裝其他gem

  B.6 選擇一款文本編輯器
  附錄C Ruby gem版本
  附錄D 參考文獻