Cucumber in Practice(en)

  • 1,623 views
Uploaded 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

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
1,623
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
18
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/