My Book <Instant Cucumber BDD How-to>

The background

I received an email during November 2012 from Packt, in the email they asked me whether or not consider writing a book for them related with BDD using Cucumber based on Rails platform, the book will only contains 50-70 pages, they named this kind of book "Instant book", usually it is a quick guide for beginners using some kinds of technologies. Well, my first reaction was: "Wow, I even never thought about writing a book, if I am going to write one, hum... can I?", I did suspect myself a little bit, especially, the book will be written in English, I admitted I was not confident enough to reply them.

Actually I could imagine how hard this would be for me, a rookie who would write his first book, and at that period I was about to finish my 6 months business trip in Xi'an and would be back to ThoughtWorks Shanghai office soon, too many things... However, I am kind of person who always expects challenges, and always willing to improve and beyond myself! I decided to give it a try!

The process

As soon as replied their email, the game kicked off, and I soon felt the pressure, Packt asked me to give them a skeleton of the book within three days, whereas 95% of my daily work was pair programming, and the rest 5% was meeting:) I had no choice but utilizing all my spare time, and I need my family's support, especially my son's support:)

I worked out a skeleton and sent to Packt in time, I decided to write this book with not only easy guidance and tutorials, but also with technical explanation in depth!

I decided to use my free Bitbucket git repository to store my book, the drafted skeleton was submitted by me on Dec 07 2012, there had been many changes after the final publish, but this was really the first step!

Writing BDD specifications of what the application should do, and what to think about
Writing the specification you have in the Cucumber/Ruby format
Running the application at this stage, watching it fail and using the results to figure out what needs to be done
Writing the code to make it pass
Running the program again for the tests to pass

Table of Contents
  Recipe 1 The Concept of Behavior Driven Development  Page Count: 3
    What is it?
    Exhaustively describe the basic concept of BDD, its history (how it appears). 
    Borrows the concept of the ubiquitous language from DDD
    Why it matters?
    Explain the benefits of BDD, how it can empower your software development, and thus has positive impact for your business value and MMF (Minimum Marketable Features).
    Iron the gap between developers and business analyst, less misunderstanding.
    YAGNI
    Who use it?
    List the BDD implementation status in many different platforms/languages, and list a number of famous software giants who adopt BDD.
  
  Recipe 2 Cucumber in a nutshell                      Page Count: 2
    Gherkin                                            
    Features/Scenarios/Steps                          
    Programming languages support                    
  Recipe 3 Practice in Action                          Page Count: 5
    Cucumber setup                                  
    Your first feature                             
    The BDD pattern                               
    A concrete example                           
  Recipe 4 Expressive Gherkin                          Page Count: 8
    Define a background for scenarios           
    Outline related attributes in table        
    Using Scenario Outline                    
    Using tags                               
    Doc strings                             
  Recipe 5 How to write good steps                     Page Count: 5
    Use flexible pluralization             
    Step Argument Transforms              
    Use non-capturing groups             
    Define method                       
    Compound steps                     
    Hooks
  Recipe 6 Delve into step implementation              Page Count: 12
    Integration with Rails                           
    DOM manipulation                                
    JavaScript/Ajax                                
    RESTful web services                          
  Recipe 7 Cucumber with 3rd party libraries           Page Count: 10
    RCov                                         
    Pickle                                      
    WebMock                                    
    Capybara                                  
    Chronic                                  
  Recipe 8 Cucumber Best practices                     Page Count: 8                
    Readability                             
        Declarative step over imperative step  
    Maintainable                          
    Don't Repeat Yourself (A.K.A DRY)   
  Recipe 9 A comprehensive example                     Page Count: 15
  Recipe 10 Learning Resources                                  Page Count: 2

  Total pages 60
  

The result

Amazon Kindle page
<Instant Cucumber BDD How-To> was published on Packt web site, as well as on Amazon Kindle
Instant Cucumber BDD How-To got 6 Four star on Amazon
Instant Cucumber BDD How-To got 6 Four star on Amazon

Most recent commits on Bitbucket:)

CBHT Commits history
Cucumber BDD How-To (CBHT) Commits history

Tags:

Categories:

Updated:

Leave a comment