Bow

38
18 June, 2012 News QE – Ares Huang Bow – BDD for Arrow

Transcript of Bow

Page 1: Bow

18 June, 2012

News QE – Ares Huang

Bow – BDD for Arrow

Page 2: Bow

04/12/20232Bow – BDD for Arrow

Topics of this talk

Development Evolutions What is Bow Bow @ GitHub & BDD› Node.js Demo› Web Integration Demo

And Next?

Page 3: Bow

04/12/20233Bow – BDD for Arrow

Development Evolutions

Cowboy Coding (Dirty Hacking) Automated Testing + C.I. TDD BDD

Page 4: Bow

04/12/20234Bow – BDD for Arrow

Page 5: Bow

04/12/20235Bow – BDD for Arrow

Cowboy Style Programming

The Cowboy is Busy

Page 6: Bow

04/12/20236Bow – BDD for Arrow

Page 7: Bow

04/12/20237Bow – BDD for Arrow

Page 8: Bow

04/12/20238Bow – BDD for Arrow

Page 9: Bow

04/12/20239Bow – BDD for Arrow

Page 10: Bow

04/12/202310Bow – BDD for Arrow

Page 11: Bow

04/12/202311Bow – BDD for Arrow

Page 12: Bow

04/12/202312Bow – BDD for Arrow

Page 13: Bow

04/12/202313Bow – BDD for Arrow

What’s going wrong?

Page 14: Bow

04/12/202314Bow – BDD for Arrow

BDD – Stakeholder Stories

In order to

<achieve some outcome which contributes to the vision, or business value>

As a

<stakeholder>

I want

<some other stakeholder>

<to do, use or be restricted by something>

Page 15: Bow

04/12/202315Bow – BDD for Arrow

BDD – Story or Unit tests? What’s the difference between story and unit tests where Ihave

both?

The difference is that the story checks the whole, but I might wish to confirm a portion of the whole

and that is when I need a unit test.

Page 16: Bow

04/12/202316Bow – BDD for Arrow

Unit Tests Stories

Page 17: Bow

04/12/202317Bow – BDD for Arrow

Page 18: Bow

04/12/202318Bow – BDD for Arrow

Page 19: Bow

04/12/202319Bow – BDD for Arrow

Page 20: Bow

04/12/202320Bow – BDD for Arrow

Page 21: Bow

04/12/202321Bow – BDD for Arrow

Page 22: Bow

04/12/202322Bow – BDD for Arrow

Page 23: Bow

04/12/202323Bow – BDD for Arrow

Page 24: Bow

04/12/202324Bow – BDD for Arrow

Page 25: Bow

04/12/202325Bow – BDD for Arrow

What is Bow

Page 26: Bow

04/12/202326Bow – BDD for Arrow

What is Bow

Spec + Arrow Scenarios = Bow

Page 27: Bow

04/12/202327Bow – BDD for Arrow

What is Bow.sh$ cat ./bow.sh #! /bin/sh ./bin/bow.js $1 "$*" | grep -o -E "(\[BDD\]|Total\ Number\ of|Total\ Test\

Execution\ Time|Report\ Created|Execute).*$"

Page 28: Bow

04/12/202328Bow – BDD for Arrow

What is Bow.js$ ./bin/bow.js

Usage: ./bin/bow.js [file path] "[arrow options]"

Example:

./bin/bow.js features/math.feature "--group smoke --browser=firefox --report"

Page 29: Bow

04/12/202329Bow – BDD for Arrow

How to install Bow? Prerequisites.

1. Assumed Node.js and Arrow frameworks.› Arrow frameworks is not yet open sourced.

2. Required Gherkin for Node.js› npm install Gherkin

Bow is open sourced› https://github.com/bowdev/Bow

Supported platform : Depending on Arrow frameworks.› Currently, Arrow can support Mac & Linux. (Not yet on Windows)

Page 30: Bow

04/12/202330Bow – BDD for Arrow

Bow @ GitHub https://github.com/bowdev/Bow

Page 31: Bow

04/12/202331Bow – BDD for Arrow

Bow – BDD process

1: Describe behaviour in plain text

Page 32: Bow

04/12/202332Bow – BDD for Arrow

Bow – BDD process

2: Bow generates step definitions in YUI

Page 33: Bow

04/12/202333Bow – BDD for Arrow

Bow – BDD process

3: Run and Watch it fail

Page 34: Bow

04/12/202334Bow – BDD for Arrow

Bow – BDD process

4. Write code to make the step pass

Page 35: Bow

04/12/202335Bow – BDD for Arrow

Bow Demo – Node.js

Page 36: Bow

04/12/202336

Bow Demo – Web Integration

Bow – BDD for Arrow

Page 37: Bow

04/12/202337Bow – BDD for Arrow

Next? Become a BDD master With right tools and practice, everyone can become a BDD master.

Page 38: Bow

04/12/202338Bow – BDD for Arrow

Bow – Q&A Further Reading

1. Introduction BDD (Dan North)

2. http://cukes.info/

3. How we do BDD – putting it all together

Contact

Ares Huang - [email protected]

SlideShare version of this tech talk