SlideShare a Scribd company logo
1 of 38
Bow – BDD for Arrow
   News QE – Ares Huang
           18 June, 2012
Topics of this talk
 Development Evolutions
 What is Bow
 Bow @ GitHub & BDD
     › Node.js Demo
     › Web Integration Demo

 And Next?

Bow – BDD for Arrow       2   6/17/2012
Development Evolutions
 Cowboy Coding (Dirty Hacking)
 Automated Testing + C.I.
 TDD
 BDD



Bow – BDD for Arrow   3      6/17/2012
Bow – BDD for Arrow   4   6/17/2012
Cowboy Style Programming



The Cowboy is Busy




Bow – BDD for Arrow   5    6/17/2012
Bow – BDD for Arrow   6   6/17/2012
Bow – BDD for Arrow   7   6/17/2012
Bow – BDD for Arrow   8   6/17/2012
Bow – BDD for Arrow   9   6/17/2012
Bow – BDD for Arrow   10   6/17/2012
Bow – BDD for Arrow   11   6/17/2012
Bow – BDD for Arrow   12   6/17/2012
Bow – BDD for Arrow   13   6/17/2012
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>

Bow – BDD for Arrow    14                 6/17/2012
BDD – Story or Unit tests?
 What’s the difference between story and unit tests where I
have
  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.




Bow – BDD for Arrow             15                        6/17/2012
Unit Tests                 Stories




Bow – BDD for Arrow   16             6/17/2012
Bow – BDD for Arrow   17   6/17/2012
Bow – BDD for Arrow   18   6/17/2012
Bow – BDD for Arrow   19   6/17/2012
Bow – BDD for Arrow   20   6/17/2012
Bow – BDD for Arrow   21   6/17/2012
Bow – BDD for Arrow   22   6/17/2012
Bow – BDD for Arrow   23   6/17/2012
Bow – BDD for Arrow   24   6/17/2012
What is Bow




Bow – BDD for Arrow   25   6/17/2012
What is Bow


Spec + Arrow
 Scenarios
   = Bow
Bow – BDD for Arrow   26   6/17/2012
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).*$"




Bow – BDD for Arrow                  27                            6/17/2012
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"




Bow – BDD for Arrow                 28                          6/17/2012
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)



Bow – BDD for Arrow                              29                         6/17/2012
Bow @ GitHub
 https://github.com/bowdev/Bow




Bow – BDD for Arrow               30   6/17/2012
Bow – BDD process
                      1: Describe behaviour in plain text




Bow – BDD for Arrow                    31                   6/17/2012
Bow – BDD process
            2: Bow generates step definitions in YUI




Bow – BDD for Arrow             32                6/17/2012
Bow – BDD process
                      3: Run and Watch it fail




Bow – BDD for Arrow                    33        6/17/2012
Bow – BDD process
                      4. Write code to make the step pass




Bow – BDD for Arrow                    34                   6/17/2012
Bow Demo – Node.js




Bow – BDD for Arrow   35   6/17/2012
Bow Demo – Web Integration




Bow – BDD for Arrow   36     6/17/2012
Next? Become a BDD master
 With right tools and practice, everyone can become a BDD master.




Bow – BDD for Arrow              37                         6/17/2012
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 - aresyhoo@yahoo-inc.com

 SlideShare version of this tech talk




Bow – BDD for Arrow                 38       6/17/2012

More Related Content

Viewers also liked

Advanced Social Media Techniques in Higher Education
Advanced Social Media Techniques in Higher EducationAdvanced Social Media Techniques in Higher Education
Advanced Social Media Techniques in Higher EducationChristopher Rice
 
How I Learned to Stop Worrying and Love Email::: The 2007 PEP Talk!!
How I Learned to Stop Worrying and Love Email::: The 2007 PEP Talk!!How I Learned to Stop Worrying and Love Email::: The 2007 PEP Talk!!
How I Learned to Stop Worrying and Love Email::: The 2007 PEP Talk!!Ricardo Signes
 
Amazon Web Services sign-up
Amazon Web Services sign-upAmazon Web Services sign-up
Amazon Web Services sign-upSimone Brunozzi
 
All About Parse Push Notifications
All About Parse Push NotificationsAll About Parse Push Notifications
All About Parse Push NotificationsParseIt
 
UX e Fontes de Tráfego
UX e Fontes de TráfegoUX e Fontes de Tráfego
UX e Fontes de TráfegoNeue Labs
 
Analytics updates viewability, verification, visual analytics
Analytics updates   viewability, verification, visual analyticsAnalytics updates   viewability, verification, visual analytics
Analytics updates viewability, verification, visual analyticsjoeychee
 
Which Wolf will you feed?
Which Wolf will you feed?Which Wolf will you feed?
Which Wolf will you feed?Clive Dickens
 
Keynote Hadoop Summit Dublin 2016: Hadoop Platform Innovations - Pushing The ...
Keynote Hadoop Summit Dublin 2016: Hadoop Platform Innovations - Pushing The ...Keynote Hadoop Summit Dublin 2016: Hadoop Platform Innovations - Pushing The ...
Keynote Hadoop Summit Dublin 2016: Hadoop Platform Innovations - Pushing The ...Sumeet Singh
 
Scott Burke, Yahoo! Keynote at Alphonso Summit on Extending Television to Mo...
Scott Burke, Yahoo!  Keynote at Alphonso Summit on Extending Television to Mo...Scott Burke, Yahoo!  Keynote at Alphonso Summit on Extending Television to Mo...
Scott Burke, Yahoo! Keynote at Alphonso Summit on Extending Television to Mo...Ashish Chordia
 
Mobile Web Speed Bumps
Mobile Web Speed BumpsMobile Web Speed Bumps
Mobile Web Speed BumpsNicholas Zakas
 
Responsive web design new14
Responsive web design new14Responsive web design new14
Responsive web design new14FullSIX Group
 
strangeloop 2012 apache cassandra anti patterns
strangeloop 2012 apache cassandra anti patternsstrangeloop 2012 apache cassandra anti patterns
strangeloop 2012 apache cassandra anti patternsMatthew Dennis
 
Mistral Hong Kong Unconference track
Mistral Hong Kong Unconference trackMistral Hong Kong Unconference track
Mistral Hong Kong Unconference trackRenat Akhmerov
 
Diary Studies in HCI & Psychology
Diary Studies in HCI & PsychologyDiary Studies in HCI & Psychology
Diary Studies in HCI & PsychologyUXPA Boston
 
Netflix API - Separation of Concerns
Netflix API - Separation of ConcernsNetflix API - Separation of Concerns
Netflix API - Separation of ConcernsDaniel Jacobson
 
Sfbay quiz without_audio
Sfbay quiz without_audioSfbay quiz without_audio
Sfbay quiz without_audioArun Simha
 

Viewers also liked (19)

Advanced Social Media Techniques in Higher Education
Advanced Social Media Techniques in Higher EducationAdvanced Social Media Techniques in Higher Education
Advanced Social Media Techniques in Higher Education
 
How I Learned to Stop Worrying and Love Email::: The 2007 PEP Talk!!
How I Learned to Stop Worrying and Love Email::: The 2007 PEP Talk!!How I Learned to Stop Worrying and Love Email::: The 2007 PEP Talk!!
How I Learned to Stop Worrying and Love Email::: The 2007 PEP Talk!!
 
Amazon Web Services sign-up
Amazon Web Services sign-upAmazon Web Services sign-up
Amazon Web Services sign-up
 
All About Parse Push Notifications
All About Parse Push NotificationsAll About Parse Push Notifications
All About Parse Push Notifications
 
UX e Fontes de Tráfego
UX e Fontes de TráfegoUX e Fontes de Tráfego
UX e Fontes de Tráfego
 
Analytics updates viewability, verification, visual analytics
Analytics updates   viewability, verification, visual analyticsAnalytics updates   viewability, verification, visual analytics
Analytics updates viewability, verification, visual analytics
 
Trove Updates - Kilo Edition
Trove Updates - Kilo EditionTrove Updates - Kilo Edition
Trove Updates - Kilo Edition
 
Which Wolf will you feed?
Which Wolf will you feed?Which Wolf will you feed?
Which Wolf will you feed?
 
Keynote Hadoop Summit Dublin 2016: Hadoop Platform Innovations - Pushing The ...
Keynote Hadoop Summit Dublin 2016: Hadoop Platform Innovations - Pushing The ...Keynote Hadoop Summit Dublin 2016: Hadoop Platform Innovations - Pushing The ...
Keynote Hadoop Summit Dublin 2016: Hadoop Platform Innovations - Pushing The ...
 
Scott Burke, Yahoo! Keynote at Alphonso Summit on Extending Television to Mo...
Scott Burke, Yahoo!  Keynote at Alphonso Summit on Extending Television to Mo...Scott Burke, Yahoo!  Keynote at Alphonso Summit on Extending Television to Mo...
Scott Burke, Yahoo! Keynote at Alphonso Summit on Extending Television to Mo...
 
Mobile Web Speed Bumps
Mobile Web Speed BumpsMobile Web Speed Bumps
Mobile Web Speed Bumps
 
Neuroscience and quora
Neuroscience and quora Neuroscience and quora
Neuroscience and quora
 
Responsive web design new14
Responsive web design new14Responsive web design new14
Responsive web design new14
 
strangeloop 2012 apache cassandra anti patterns
strangeloop 2012 apache cassandra anti patternsstrangeloop 2012 apache cassandra anti patterns
strangeloop 2012 apache cassandra anti patterns
 
Mistral Hong Kong Unconference track
Mistral Hong Kong Unconference trackMistral Hong Kong Unconference track
Mistral Hong Kong Unconference track
 
Diary Studies in HCI & Psychology
Diary Studies in HCI & PsychologyDiary Studies in HCI & Psychology
Diary Studies in HCI & Psychology
 
Netflix API - Separation of Concerns
Netflix API - Separation of ConcernsNetflix API - Separation of Concerns
Netflix API - Separation of Concerns
 
Sfbay quiz without_audio
Sfbay quiz without_audioSfbay quiz without_audio
Sfbay quiz without_audio
 
Hack Day EU 2011 YQL
Hack Day EU 2011 YQLHack Day EU 2011 YQL
Hack Day EU 2011 YQL
 

Similar to Bow

Symfony2 and MongoDB
Symfony2 and MongoDBSymfony2 and MongoDB
Symfony2 and MongoDBPablo Godel
 
Behaviour And Model
Behaviour And ModelBehaviour And Model
Behaviour And ModelYukei Wachi
 
Android internals 02 - High-level architecture, version control system (rev_1.1)
Android internals 02 - High-level architecture, version control system (rev_1.1)Android internals 02 - High-level architecture, version control system (rev_1.1)
Android internals 02 - High-level architecture, version control system (rev_1.1)Egor Elizarov
 
Create 3D objects insite Cocos2d-x
Create 3D objects insite Cocos2d-xCreate 3D objects insite Cocos2d-x
Create 3D objects insite Cocos2d-xFramgia Vietnam
 
Android internals 06 - Binder, Typical subsystem (rev_1.1)
Android internals 06 - Binder, Typical subsystem (rev_1.1)Android internals 06 - Binder, Typical subsystem (rev_1.1)
Android internals 06 - Binder, Typical subsystem (rev_1.1)Egor Elizarov
 
Go for Mobile Games
Go for Mobile GamesGo for Mobile Games
Go for Mobile GamesTakuya Ueda
 
次期Internet explorer10とwindows azureで始めるhtml5 api開発
次期Internet explorer10とwindows azureで始めるhtml5 api開発次期Internet explorer10とwindows azureで始めるhtml5 api開発
次期Internet explorer10とwindows azureで始めるhtml5 api開発Microsoft
 
20150317 firefox os_studymtg_engver
20150317 firefox os_studymtg_engver20150317 firefox os_studymtg_engver
20150317 firefox os_studymtg_engverNaoki Sekiguchi
 
Architectural Patterns for the Cloud
Architectural Patterns for the CloudArchitectural Patterns for the Cloud
Architectural Patterns for the CloudMaarten Balliauw
 
Optimización JavaScript y CSS
Optimización JavaScript y CSSOptimización JavaScript y CSS
Optimización JavaScript y CSSlucascepeda
 
How to add fun to development process
How to add fun to development processHow to add fun to development process
How to add fun to development processBoris Modylevsky
 

Similar to Bow (14)

SpecBDD in PHP
SpecBDD in PHPSpecBDD in PHP
SpecBDD in PHP
 
Symfony2 and MongoDB
Symfony2 and MongoDBSymfony2 and MongoDB
Symfony2 and MongoDB
 
Behaviour And Model
Behaviour And ModelBehaviour And Model
Behaviour And Model
 
Android internals 02 - High-level architecture, version control system (rev_1.1)
Android internals 02 - High-level architecture, version control system (rev_1.1)Android internals 02 - High-level architecture, version control system (rev_1.1)
Android internals 02 - High-level architecture, version control system (rev_1.1)
 
Create 3D objects insite Cocos2d-x
Create 3D objects insite Cocos2d-xCreate 3D objects insite Cocos2d-x
Create 3D objects insite Cocos2d-x
 
Android internals 06 - Binder, Typical subsystem (rev_1.1)
Android internals 06 - Binder, Typical subsystem (rev_1.1)Android internals 06 - Binder, Typical subsystem (rev_1.1)
Android internals 06 - Binder, Typical subsystem (rev_1.1)
 
Phpers day 2019
Phpers day 2019Phpers day 2019
Phpers day 2019
 
Go for Mobile Games
Go for Mobile GamesGo for Mobile Games
Go for Mobile Games
 
次期Internet explorer10とwindows azureで始めるhtml5 api開発
次期Internet explorer10とwindows azureで始めるhtml5 api開発次期Internet explorer10とwindows azureで始めるhtml5 api開発
次期Internet explorer10とwindows azureで始めるhtml5 api開発
 
20150317 firefox os_studymtg_engver
20150317 firefox os_studymtg_engver20150317 firefox os_studymtg_engver
20150317 firefox os_studymtg_engver
 
Complete Dojo
Complete DojoComplete Dojo
Complete Dojo
 
Architectural Patterns for the Cloud
Architectural Patterns for the CloudArchitectural Patterns for the Cloud
Architectural Patterns for the Cloud
 
Optimización JavaScript y CSS
Optimización JavaScript y CSSOptimización JavaScript y CSS
Optimización JavaScript y CSS
 
How to add fun to development process
How to add fun to development processHow to add fun to development process
How to add fun to development process
 

Recently uploaded

Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard37
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...apidays
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxRemote DBA Services
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 

Recently uploaded (20)

Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptx
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 

Bow

  • 1. Bow – BDD for Arrow News QE – Ares Huang 18 June, 2012
  • 2. Topics of this talk  Development Evolutions  What is Bow  Bow @ GitHub & BDD › Node.js Demo › Web Integration Demo  And Next? Bow – BDD for Arrow 2 6/17/2012
  • 3. Development Evolutions  Cowboy Coding (Dirty Hacking)  Automated Testing + C.I.  TDD  BDD Bow – BDD for Arrow 3 6/17/2012
  • 4. Bow – BDD for Arrow 4 6/17/2012
  • 5. Cowboy Style Programming The Cowboy is Busy Bow – BDD for Arrow 5 6/17/2012
  • 6. Bow – BDD for Arrow 6 6/17/2012
  • 7. Bow – BDD for Arrow 7 6/17/2012
  • 8. Bow – BDD for Arrow 8 6/17/2012
  • 9. Bow – BDD for Arrow 9 6/17/2012
  • 10. Bow – BDD for Arrow 10 6/17/2012
  • 11. Bow – BDD for Arrow 11 6/17/2012
  • 12. Bow – BDD for Arrow 12 6/17/2012
  • 13. Bow – BDD for Arrow 13 6/17/2012
  • 14. 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> Bow – BDD for Arrow 14 6/17/2012
  • 15. BDD – Story or Unit tests?  What’s the difference between story and unit tests where I
have 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. Bow – BDD for Arrow 15 6/17/2012
  • 16. Unit Tests Stories Bow – BDD for Arrow 16 6/17/2012
  • 17. Bow – BDD for Arrow 17 6/17/2012
  • 18. Bow – BDD for Arrow 18 6/17/2012
  • 19. Bow – BDD for Arrow 19 6/17/2012
  • 20. Bow – BDD for Arrow 20 6/17/2012
  • 21. Bow – BDD for Arrow 21 6/17/2012
  • 22. Bow – BDD for Arrow 22 6/17/2012
  • 23. Bow – BDD for Arrow 23 6/17/2012
  • 24. Bow – BDD for Arrow 24 6/17/2012
  • 25. What is Bow Bow – BDD for Arrow 25 6/17/2012
  • 26. What is Bow Spec + Arrow Scenarios = Bow Bow – BDD for Arrow 26 6/17/2012
  • 27. 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).*$" Bow – BDD for Arrow 27 6/17/2012
  • 28. 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" Bow – BDD for Arrow 28 6/17/2012
  • 29. 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) Bow – BDD for Arrow 29 6/17/2012
  • 30. Bow @ GitHub  https://github.com/bowdev/Bow Bow – BDD for Arrow 30 6/17/2012
  • 31. Bow – BDD process 1: Describe behaviour in plain text Bow – BDD for Arrow 31 6/17/2012
  • 32. Bow – BDD process 2: Bow generates step definitions in YUI Bow – BDD for Arrow 32 6/17/2012
  • 33. Bow – BDD process 3: Run and Watch it fail Bow – BDD for Arrow 33 6/17/2012
  • 34. Bow – BDD process 4. Write code to make the step pass Bow – BDD for Arrow 34 6/17/2012
  • 35. Bow Demo – Node.js Bow – BDD for Arrow 35 6/17/2012
  • 36. Bow Demo – Web Integration Bow – BDD for Arrow 36 6/17/2012
  • 37. Next? Become a BDD master  With right tools and practice, everyone can become a BDD master. Bow – BDD for Arrow 37 6/17/2012
  • 38. 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 - aresyhoo@yahoo-inc.com  SlideShare version of this tech talk Bow – BDD for Arrow 38 6/17/2012