Your SlideShare is downloading. ×
Cucumber in Practice(en)
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Cucumber in Practice(en)

1,648
views

Published on

Knowledge of Cucumber, Ruby T/BDD framework. I use it for 2 years and noticed some id

Knowledge of Cucumber, Ruby T/BDD framework. I use it for 2 years and noticed some id

Published in: Technology

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,648
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
19
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. ded reloaCucumber in practice∼2 years with cucumber. 諸橋 恭介 (株)永和システムマネジメント ¦ Rails勉強会@東京 Developers Summit 2010
  • 2. http://cukes.info
  • 3. MOROHASHI Kyosuke http://d.hatena.ne.jp/moro/ http://twitter.com/moro/• Eiwa System Management ...(snip)... Agile Group• Rails (Consultant | Programmer)
  • 4. 1. Ruby x Agile. Ruby x Fragile?2. What’s Cucumber?3. Values for customer.4. Values for developer.5. What’s Cucumber? again ~ a framework for conversation
  • 5. Summary• It’s cool to use Natural Language x Ruby.• Cucumber: • is a tool to execute functional descriptions written in plain-text as automated tests • is a framework to talk with customers. • provides grammer and context to grow vocabularies.
  • 6. 1. Ruby x Agile. Ruby x Fragile?2. What’s Cucumber?3. Values for customer.4. Values for developer.5. What’s Cucumber? again ~ a framework for conversation
  • 7. http://ruby.agile.esm.co.jp/
  • 8. What is “Agile” for you?fkino says: I say:Make client be happy assoon as possible.
  • 9. Ruby x Agile• less lead time.• more “productivity”• demonstrate with software to discuss the project.
  • 10. Ruby x Fragile?• Become positive for the change. But get fear for regression.• TDD is fun. But tests are too many and they upset our rhythm.• Demonstrate with software. But is there anything forgotten?
  • 11. to Keep embracing change• Ruby x Agile give me passion.• want to stand against new fear.• Cucumber may be the key.
  • 12. 1. Ruby x Agile. Ruby x Fragile?2. What’s Cucumber?3. Values for customer.4. Values for developer.5. What’s Cucumber? again. ~ a framework for conversation
  • 13. http://cukes.info
  • 14. Cucumber• a tool that can execute plain-text functional descriptions as automated tests • execute Ruby code associated with a sentence written in natural language .• End-to-end testing. • request from browser, response to browser.
  • 15. Cucumber• cucumber-rails includes basic DSLs for testing webapp.• can define higher level steps.• “table” for data combination.• data transformation macro.
  • 16. Cucumber• demonstrate • 基本的なDSLで出来る範囲で。
  • 17. 1. Ruby x Agile. Ruby x Fragile?2. What’s Cucumber?3. Values for customer.4. Values for developer.5. What’s Cucumber? again. ~ a framework for conversation
  • 18. Customer can read the tests.• User &/| business people can read and understand it. • We, developer write it.• We can talk about it. It helps us to build software for them.
  • 19. Language for communication• the Language both understandable. • reflect domain knowledge and project history. • High-context• Strict and/or verifiable language. . • and executable!!
  • 20. 1. Ruby x Agile. Ruby x Fragile?2. What’s Cucumber?3. Values for customer.4. Values for developer.5. What’s Cucumber? again ~ a framework for conversation
  • 21. Value for developer•“Ruby”.•more Valuable tests.
  • 22. “Ruby”• Step (natural language sentences in scenario) is a label with parameters.• Execute ruby code associated with simple Regexp.
  • 23. the powers of Ruby• We can execute test using the powers of Ruby. • Access a database and setup test data. • Inject configurations. • Start/stop mocked external servers. • and more..
  • 24. Valuable tests• End to end test from “View” layer to “Model” layer. • a kind of integration test integration.• Test the app’s behavior from user layer (browser for webapp). • No concern to app’s internal code.
  • 25. 1. Ruby x Agile. Ruby x Fragile?2. What’s Cucumber?3. Values for customer.4. Values for developer.5. What’s Cucumber? again. ~ a framework for conversation
  • 26. various vocabularies• Learn the vocabularies(steps) within project.• Learn how to combine them
  • 27. demo• TODO: step in stepやTransform を使った高レベルなfeature
  • 28. Constrained vocabularies• Abstract some vocabularies fitting the app from whole natural language. • describe even a new feature using the vocabularies.• Every member in the team know the vocabularies.
  • 29. david says: Constraints are liberating (a straight jacket for your mind) 制約が自由をもたらす (あなたの思考の拘束衣) http://www.scribd.com/doc/26482/-RailsConf-Keynote-David-Heinemeier-Hansson
  • 30. Grow the vocabularies.• A team get the power to grow vocabularies.• Grow the vocabularies to describe the system as grow the system itself.
  • 31. Accelerate communication.• Grow project specific language. • language = grammer(by cuke) + vocabularies(grown by the team)• described feature is testable • Testable spec. drives development.
  • 32. What’s cucumber? again.• the framework to make project specific language for both customer and developer. • provides grammer and context to grow vocabularies.
  • 33. Summary• It’s cool to use Natural Language x Ruby.• Cucumber: • is a tool that can execute plain-text functional descriptions as automated tests • is a framework to talk with customers. • provides grammer and context to grow vocabularies.
  • 34. ご清聴ありがとうございましたthis photo is by Ctd 2005 | http://www.flickr.com/photos/kikisdad/190501758/