天天看點

《Cucumber:行為驅動開發指南》——導讀

《Cucumber:行為驅動開發指南》——導讀

**

前言

cucumber是一種非常友好的工具。它希望成為團隊的一部分,且不介意做一個吹毛求疵的讨厭鬼。每個小組都需要這麼一個角色,來記住關于系統能處理什麼和不能處理什麼的各種細節。

更為出色的是cucumber會無償做那些重複檢查,以確定系統的運作符合預期。它可以把測試人員解放出來去做有意思、有創意的東西,并且給程式員必要時對代碼做大手術的勇氣。業務幹系人對cucumber這種開放的态度十分贊賞。cucumber可以用他們能夠了解的術語分享開發團隊所做的一切。

cucumber是一種新興工具,但人們已對它有了些許誤會。那些早期就開始接觸cucumber的人已經本能地意識到,cucumber不僅是一種測試工具,更是一種協作工具。通過本書,我們希望自己不僅能為你展示怎樣使用cucumber,還能教會你如何更有效地利用cucumber。

ruby是一種開源程式設計語言,可以在絕大多數作業系統上安裝和運作。cucumber最早的版本就是用ruby寫的,到今天它也是最流行的版本,本書正是關于這個版本的。

這并不是說被測系統必須用ruby來寫。ruby的諸多優點之一是與其他語言和平台的完美互動。我們會向你展示如何利用ruby工具來測試可用任何語言編寫的基于web的系統。

從一個失敗的cucumber測試開始,然後通過這種失敗來驅動應用代碼的開發工作,作為一種由外向内的開發方法的一部分,我們已經用cucumber取得了極大的成功。作為開發人員,這種工作方式能讓我們實事求是,一步一個腳印,避免我們想當然地開發将來也許有需求但目前沒有需求的功能。

cucumber可以完善我們的工作方式,但它并不強制。一些團隊利用cucumber自動測試開發人員已經完成的工作。這是采用由外向内方法的第一步,因為cucumber可讀的測試已經吸引了團隊中非技術幹系人的視線并逐漸使他們參與進來。即使用cucumber編寫針對已有代碼的測試,你從cucumber中的獲得的好處仍然遠遠超出同類軟體,比如qtp和selenium ide。我們相信本書會使你收獲很多。我們并不是鼓吹這個過程,而是想和你分享關于哪些方法對我們行之有效以及為什麼有效的一些感悟。

第一部分 cucumber基礎

**[第1章 為何使用cucumber

<a href="https://yq.aliyun.com/articles/93783">1.2 行為驅動開發</a>

1.2.1 通用語言

1.2.2 執行個體

<a href="https://yq.aliyun.com/articles/93814">1.3 活的文檔</a>

<a href="https://yq.aliyun.com/articles/93826">1.4 cucumber如何工作</a>

<a href="https://yq.aliyun.com/articles/93832">1.5 我們學到了什麼</a>

**[第2章 cucumber初體驗

<a href="https://yq.aliyun.com/articles/93851">2.2 建立一個特性</a>

<a href="https://yq.aliyun.com/articles/93860">2.3 建立步驟定義</a>

<a href="https://yq.aliyun.com/articles/93869">2.4 實作第一個步驟定義</a>

<a href="https://yq.aliyun.com/articles/93874">2.5 運作程式</a>

<a href="https://yq.aliyun.com/articles/93889">2.6 改變格式器</a>

<a href="https://yq.aliyun.com/articles/93899">2.7 添加一個斷言</a>

<a href="https://yq.aliyun.com/articles/93912">2.8 讓測試通過</a>

<a href="https://yq.aliyun.com/articles/93921">2.9 我們學到了什麼</a>

2.9.1 目錄結構

2.9.2 小步前進

2.9.3 gherkin

2.9.4 步驟定義

**[第6章 cucumber常見問題及解決之道

6.1.1 閃爍的場景

6.1.2 脆弱的特性

6.1.3 緩慢的特性

6.1.4 厭倦的利益相關人

<a href="https://yq.aliyun.com/articles/93954">6.2 同心協力</a>

6.2.1 偶然細節

6.2.2 指令式步驟

6.2.3 重複

6.2.4 語言不通用

6.2.5 閉門造車式的特性

<a href="https://yq.aliyun.com/articles/93989">6.3 照管好你的測試</a>

6.3.1 滲露的場景

6.3.2 競争條件和打瞌睡的步驟

6.3.3 共享的環境

6.3.4 被隔離的測試人員

6.3.5 固件資料

6.3.6 大量場景

6.3.7 大泥球

<a href="https://yq.aliyun.com/articles/93993">6.4 停掉生産線和缺陷預防</a>

<a href="https://yq.aliyun.com/articles/94013">6.5 我們學到了什麼</a>