BDD in Action, 2/e (中文版)

John Ferguson Smart、Jan Molak 著

  • BDD in Action, 2/e (中文版)-preview-1
  • BDD in Action, 2/e (中文版)-preview-2
  • BDD in Action, 2/e (中文版)-preview-3
  • BDD in Action, 2/e (中文版)-preview-4
  • BDD in Action, 2/e (中文版)-preview-5
  • BDD in Action, 2/e (中文版)-preview-6
  • BDD in Action, 2/e (中文版)-preview-7
  • BDD in Action, 2/e (中文版)-preview-8
  • BDD in Action, 2/e (中文版)-preview-9
  • BDD in Action, 2/e (中文版)-preview-10
  • BDD in Action, 2/e (中文版)-preview-11
  • BDD in Action, 2/e (中文版)-preview-12
  • BDD in Action, 2/e (中文版)-preview-13
  • BDD in Action, 2/e (中文版)-preview-14
  • BDD in Action, 2/e (中文版)-preview-15
  • BDD in Action, 2/e (中文版)-preview-16
BDD in Action, 2/e (中文版)-preview-1

商品描述

[名家名著] 36

 

BDD in Action中文版(第二版)

 

BDD in Action, Second Edition



BDD in Action 》第一版與第二版我都細讀過。書中內容相當完整,但要全面實踐並不容易。我自己的做法是將BDD 套用在Clean Architecture 的核心層:先撰寫使用案例測試(透過ezSpec),再撰寫production code。能在「使用案例層」與「領域層」落實BDD,已經非常有價值;至於介面層與框架層,則仍採傳統的「先寫程式,再寫測試」。

你不必強求看懂本書所有細節,但務必從中學到能改變行為的一些觀點與技巧。理解Christopher Alexander對設計的定義,將幫助你站在更高的視角閱讀本書,避免在術語的迷宮中迷失,更能掌握BDD 的核心價值與精神。

────「搞笑談軟工」板主Teddy Chen 專文推薦



這就是BDD最打動我的地方。它不強調工具,不推銷框架,而是讓你反問:「我們到底有沒有釐清需求?我們是不是做了很多努力,卻在錯的方向上奔跑?」這本書沒有標準答案,但它給你很多值得思考、值得實作的方法。

……程式開發從來就不是「閉門造車」,也不是在白板上畫出一個完美的心智圖就萬事OK了;而是從問題開始,一點一滴趨近需求,一次次讓對話更有力量。這本書給我們的不是標準流程,而是一種態度:我們不是為「開發功能」而開發,而是為了「解決問題」、為了「交付價值」。希望這本書也能帶給你一些啟發,甚至開啟你下一場更有共識、更有價值的專案。

────本書譯者 江玠峰



JohnJan一如往常地,以清晰詳實的筆觸描述了許多實用技巧。我自己讀到新內容時也不禁點頭認同,甚至還有幾次「恍然大悟」的時刻。我很高興將近20年過去了,BDD依然能引發這麼多關注與興趣,也非常感謝JohnJan為這本如此全面的參考書推出新版。

────Daniel Terhorst-North,實務顧問



BDD(Behavior-Driven Development,行為驅動開發)是一種以協作為核心的軟體設計方法,透過具體的範例,它能將應用程式的需求與行為轉換成更清楚、可測試的規格。BDD的流程會納入來自組織內不同角色的觀點,讓軟體更能同時契合終端使用者的需求與業務利害關係人的目標。本書介紹的協作實踐與自動化策略,將幫助你充分發揮BDD的價值,為開發團隊、客戶與企業創造更卓越的成果。

在本書中,你將學會如何自然、不費力地把BDD整合到現有的開發流程。這次完整修訂的第二版,更特別聚焦於BDDDevOps、大規模敏捷系統的結合方式。透過一系列實用範例,你將掌握跨功能團隊的溝通技巧、需求分析的最佳實踐,並建立可持續的自動化驗收標準。

 
【內容亮點】
BDD如何正面影響團隊合作、互動及與利害關係人的協作
協助團隊探索與分析需求、釐清假設並降低風險
強化驗收測試、整合測試與單元測試的效能
自動化報告與動態文件(living documentation),提升開發透明度
適合所有開發團隊閱讀,無需任何BDD經驗
範例以JavaJavaScriptTypeScript為主,可輕鬆轉換為你熟悉的語言

【下載範例程式檔案】
https://github.com/bdd-in-action/second-edition

作者簡介

作者簡介
John Ferguson Smart是Serenity BDD框架的創作者與主要開發者,亦是線上培訓平台Serenity Dojo的創辦人。

Jan Molak是Serenity/JS測試框架、Jenkins Build Monitor及多項持續交付與測試工具的開發者。


譯者簡介
江玠峰,國立交通大學資訊工程博士(2011),同時也是一位PMP國際專案管理師,兼具學術深度與實務歷練。他曾於工研院產業學院擔任研究員,積極投身產業創新推動,也在資策會數位教育研究所擔任組長,帶領團隊探索並開拓數位學習的多元應用。

在企業界,他曾任敦陽科技系統規劃開發處技術經理,深入專案實務,累積跨領域協作經驗。在學術領域,江玠峰曾任中國醫藥大學人文與科技學院助理教授,致力於培育結合科技與人文的跨域人才,亦曾以訪問學者身分赴美國IBM Almaden研究中心進行研究交流。

他的專業涵蓋科技教育、專案管理、數位學習與計算理論,無論在理論探索還是實務應用,都展現深厚的影響力與持續投入的熱忱。

目錄大綱

齊聲讚譽
《刻意探索》:一首十四行詩
推薦序1:Teddy Chen
推薦序2:Daniel Terhorst-North
譯者序:江玠峰
前言
致謝
關於本書
關於作者
關於譯者
關於封面插圖

Part 1:第一步
Chapter 01:建置能帶來改變的軟體
1.1 從50,000英尺高空俯看BDD
1.2 你想解決什麼問題?
1.3 BDD適合你的專案嗎?
1.4 你將在本書中學到什麼?

Chapter 02:初探行為驅動開發
2.1 BDD最初是為了讓TDD教學變得更容易而設計的
2.2 BDD也適用於需求分析
2.3 BDD的原則與實踐
2.4 BDD的好處
2.5 BDD的缺點與潛在挑戰

Chapter 03:行為驅動開發:旋風之旅
3.1 BDD流程
3.2 推測:辨識業務價值與功能
3.3 說明:透過範例探索功能
3.4 制定:從範例到可執行規格
3.5 自動化:從可執行規格到自動化測試
3.6 展示:測試作為動態文件
3.7 BDD降低維護成本

Part 2:我想要什麼?用BDD定義需求
Chapter 04:推測:從業務目標到優先功能
4.1 推測階段
4.2 描述業務願景與目標
4.3 影響映射
4.4 海盜畫布

Chapter 05:對功能進行描述與優先排序
5.1 BDD與產品待辦清單精煉
5.2 什麼是「功能」?
5.3 實際選擇:在必要之前,不要過早承諾
5.4 刻意探索
5.5 透過BDD進行版本發布與Sprint規劃

Chapter 06:用範例說明功能
6.1 「三人小組會議」與其他的需求探索工作坊
6.2 透過範例來說明功能
6.3 使用表格來描述更複雜的需求
6.4 範例映射
6.5 功能映射
6.6 OOPSI

Chapter 07:從範例到可執行規格
7.1 將具體範例轉換成可執行場景
7.2 撰寫可執行場景
7.3 在場景中使用表格
7.4 使用功能檔案與標籤來組織場景
7.5 規則與範例
7.6 表達力強的場景:模式與反模式
7.7 那麼,所有的細節去哪了呢?

Part 3:要怎麼實作?用BDD寫程式碼
Chapter 08:從可執行規格到自動化驗收測試
8.1 自動化場景簡介
8.2 設定你的專案環境
8.3 執行Cucumber 場景
8.4 撰寫glue code
8.5 使用「背景」與「掛鉤」來進行設定與清除
8.6 使用掛鉤來準備測試環境
8.7 使用虛擬測試環境

Chapter 09:撰寫穩固的自動化驗收測試
9.1 撰寫產業級強度的驗收測試
9.2 使用「人物設定」與「已知實體」
9.3 抽象層次

Chapter 10:自動化使用者介面層的驗收標準
10.1 何時及如何測試UI?
10.2 UI測試在整體測試自動化策略中扮演什麼角色?
10.3 適合測試的Web應用程式
10.4 下一步

 
Chapter 11:UI層的測試自動化設計模式
11.1 未結構化測試腳本的限制
11.2 將定位邏輯與測試邏輯分離
11.3 介紹「頁面物件」模式
11.4 超越頁面物件的做法

Chapter 12:可擴充的測試自動化與「演員劇本模式」
12.1 什麼是「演員劇本模式」,為什麼我們需要它?
12.2 演員劇本的基礎概念
12.3 「演員」是什麼?
12.4 演員執行任務
12.5 「互動」用來建模演員如何與系統互動
12.6 「能力」是演員與系統互動的方式
12.7 撰寫我們自己的互動類別
12.8 「問題」讓演員可以查詢系統的狀態
12.9 「任務」用來建模較高層級的業務動作
12.10 「演員劇本」與Cucumber 的結合

Chapter 13:微服務和API的BDD與可執行規格
13.1 API與如何測試
13.2 使用網頁UI與微服務定義一個功能
13.3 為微服務自動化驗收測試
13.4 正在測試的微服務架構
13.5 自動化更細緻的場景以及與外部服務的互動
13.6 測試API本身,還是透過API進行測試

Chapter 14:既有系統的可執行規格,透過Serenity/JS實作
14.1 透過「旅程映射」探索未知領域
14.2 設計可擴充的測試自動化系統
14.3 在「規格層」中捕捉業務脈絡

Chapter 15:可攜式測試自動化,透過Serenity/JS實作
15.1 設計測試自動化系統的「領域層」
15.2 設計可攜式的整合層

Chapter 16:動態文件與釋出版本的證據
16.1 動態文件:高階視角
16.2 功能就緒度與功能涵蓋率報告
16.3 整合數位產品待辦清單
16.4 善用產品待辦清單工具以提升協作效率
16.5 組織動態文件
16.6 舊有應用程式的動態文件