Agile with cucumber or     BDD with fun     Leonid Dinershtein,         december, 2011
Chapter I
Behaviour Driven Development with elegance and joy
http://projectcartoon.com/
CHAOS Report               http://www.projectsmart.co.uk/docs/chaos-report.pdf
Проблемы?
Сорвем сроки... выйдем из бюджетаРеализуем не то... не такНестабильноНевозможно поддерживать
Решения
Методология разработкиРазвитие программистовРазвитие менеджераРазвитие заказчика
Agile манифестЛюди и взаимодействие важнее процессов и инструментовРаботающий продукт важнее исчерпывающей документацииСот...
BDDBehavior-driven development (or BDD) is anagile software development technique devisedby Dan North as a response to the...
BDD“Behaviour-driven development is aboutimplementing an application by describing itsbehaviour from the perspective of it...
Хороший менеджер
Хороший менеджер● Должен обладать способностью понимать  людей разного склада ума (от  разработчиков, до бизнес-заказчиков...
Сколько это стоит?и как все этопродать?
Скорость разработки    Стоимость поддержки  Стоимость продукта   Квалификация команды
Chapter II
Cucumber
Cucumber● Средство для автоматизированного  тестирования● Позволяет описывать поведение системы  на естественном языке● Яв...
План огурец1. Опишите поведение системы на естественном   языке(Напишите сценарий поведения)2. Опишите шаги сценария на яз...
Feature: Title In order to [Business Value] As a [Role] I want to [Some action]Scenario: Title Given [Context] When [Actio...
# language: ruФункционал: Сложение чиселЧтобы не складывать в умеВсе, у кого с этим тугоХотят автоматическое сложение целы...
Допустим /ввожу число (d+)/ do |число| calc.push число.to_iendЕсли /нажимаю "(.*)"/ do |операция| calc.send операцияEndТо ...
Gherkin"en": name: English native: English feature: Feature background: Background scenario: Scenario scenario_outline: Sc...
Gherkin"ru":  name: Russian  native: русский  feature: Функция|Функционал|Свойство  background: Предыстория|Контекст  scen...
Сценарий 1
Scenario: Create Post  Given I am a registered User  And I have signed in  When I go to Create Post Page  And I create a P...
Scenario: Create a PostGiven I am a registered User with name "Chuck", email"chuck@Norris.com" and password "123456"   And...
Scenario: Artist creates an art work   Given I am a registered artist   And I am on my dashboard   And I follow "Add an ar...
Scenario: Artist creates an art work   Given I am a registered artist   And I follow the add new artwork link from thedash...
Cucumber styles●   Imperative style●   Declarative style●   Boring style●   Wrong style
web_steps.rb
web_steps_warning.txt# This file was generated by Cucumber-Rails and is only here to getyou a head start# These step defin...
Good practices● Don’t use “Background” to set up complicated state    unless that state is actually something the client n...
.NEThttp://specflow.org/
PHPhttp://behat.org/
Profit
Profit●   Разговор на одном языке●   Четкие и понятные требования●   Уверенность●   Метрика●   Вовлеченность в работу●   Ж...
Ошибки●   Нет времени●   Хлопотно●   Требования быстро меняются●   Оформление часто меняется●   Идеальный сценарий●   Cucu...
Chapter III
● SQA Dayshttp://www.slideshare.net/VLDCORP/cucumber● KazanRbhttp://www.slideshare.net/leodg/cucumber-on-kazanrbleonid.din...
Agile with cucumber or BDD with fun
Agile with cucumber or BDD with fun
Agile with cucumber or BDD with fun
Agile with cucumber or BDD with fun
Agile with cucumber or BDD with fun
Agile with cucumber or BDD with fun
Upcoming SlideShare
Loading in …5
×

Agile with cucumber or BDD with fun

1,103 views

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,103
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
8
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Agile with cucumber or BDD with fun

  1. 1. Agile with cucumber or BDD with fun Leonid Dinershtein, december, 2011
  2. 2. Chapter I
  3. 3. Behaviour Driven Development with elegance and joy
  4. 4. http://projectcartoon.com/
  5. 5. CHAOS Report http://www.projectsmart.co.uk/docs/chaos-report.pdf
  6. 6. Проблемы?
  7. 7. Сорвем сроки... выйдем из бюджетаРеализуем не то... не такНестабильноНевозможно поддерживать
  8. 8. Решения
  9. 9. Методология разработкиРазвитие программистовРазвитие менеджераРазвитие заказчика
  10. 10. Agile манифестЛюди и взаимодействие важнее процессов и инструментовРаботающий продукт важнее исчерпывающей документацииСотрудничество с заказчиком важнее согласования условий контрактаГотовность к изменениям важнее следования первоначальному плану
  11. 11. BDDBehavior-driven development (or BDD) is anagile software development technique devisedby Dan North as a response to the issues heencountered whilst teaching Test-DrivenDevelopment:● Where to start● What to test and what not to test● How much to test in one go● What to call the tests● How to understand why a test fails
  12. 12. BDD“Behaviour-driven development is aboutimplementing an application by describing itsbehaviour from the perspective of itsstakeholders”
  13. 13. Хороший менеджер
  14. 14. Хороший менеджер● Должен обладать способностью понимать людей разного склада ума (от разработчиков, до бизнес-заказчиков) и умение помогать переводить мысли с языка одних на язык других● Умеет не ссать и не ныть! Даже когда ссыкотно и ныть хочется.● Знает чем отличается Quality Assurance от тестирования● Понимает, что разработанный софт это не конец проекта, а всего лишь начало. И знает чего http://cartmendum.livejournal.com/93084.html
  15. 15. Сколько это стоит?и как все этопродать?
  16. 16. Скорость разработки Стоимость поддержки Стоимость продукта Квалификация команды
  17. 17. Chapter II
  18. 18. Cucumber
  19. 19. Cucumber● Средство для автоматизированного тестирования● Позволяет описывать поведение системы на естественном языке● Является основным инструментом в Behaviour Driven Development (BDD)
  20. 20. План огурец1. Опишите поведение системы на естественном языке(Напишите сценарий поведения)2. Опишите шаги сценария на языке программирования3. Запустите тесты и убедитесь, что они не проходит4. Напишите код, который реализует поведение, описанное в тестах5. Запустите тесты снова и убедитесь, что некоторые тесты начали проходить6. Повторите 2-5 шаги, пока все тесты не начнут проходить7. Повторите 1-6 шаги, пока не закончатся деньги у заказчика
  21. 21. Feature: Title In order to [Business Value] As a [Role] I want to [Some action]Scenario: Title Given [Context] When [Action] Then [Outcome]
  22. 22. # language: ruФункционал: Сложение чиселЧтобы не складывать в умеВсе, у кого с этим тугоХотят автоматическое сложение целых чисел Сценарий: Сложение двух целых чисел Допустим я ввожу число 50 И затем ввожу число 70 Если я нажимаю "+" То результатом должно быть число 120
  23. 23. Допустим /ввожу число (d+)/ do |число| calc.push число.to_iendЕсли /нажимаю "(.*)"/ do |операция| calc.send операцияEndТо /результатом должно быть число (d+)/ do |результат| calc.result.should == результат.to_fEnd
  24. 24. Gherkin"en": name: English native: English feature: Feature background: Background scenario: Scenario scenario_outline: Scenario Outline|Scenario Template examples: Examples|Scenarios given: "*|Given" when: "*|When" then: "*|Then" and: "*|And" but: "*|But"
  25. 25. Gherkin"ru": name: Russian native: русский feature: Функция|Функционал|Свойство background: Предыстория|Контекст scenario: Сценарий scenario_outline: Структура сценария examples: Примеры given: "*|Допустим|Дано|Пусть" when: "*|Если|Когда" then: "*|То|Тогда" and: "*|И|К тому же" but: "*|Но|А"
  26. 26. Сценарий 1
  27. 27. Scenario: Create Post Given I am a registered User And I have signed in When I go to Create Post Page And I create a Post and Publish it Then I should see the Post in the Index Page
  28. 28. Scenario: Create a PostGiven I am a registered User with name "Chuck", email"chuck@Norris.com" and password "123456" And I sign in as "chuck@Norris.com/123456" When I visit Create Post Page And I fill up Title as "Best Post" And I fill up Content as "Chuck Norris counted to infinity - twice." And I publish the Post Then I should see message "Post was successfully created." And I should see post in the index page
  29. 29. Scenario: Artist creates an art work Given I am a registered artist And I am on my dashboard And I follow "Add an artwork" within "#dashboard" When I fill in "Title" with "The Arnolfini Portrait" And I fill in "Description" with "A nice portrait." And I select "Painting" from "Category" And I attach "arnolfini.jpg" to "Select picture" And I press "Create" Then I should see "The Arnolfini Portrait wassuccessfully added to your art collection."
  30. 30. Scenario: Artist creates an art work Given I am a registered artist And I follow the add new artwork link from thedashboard When I fill the form with the artwork data And I upload a picture Then I should see a confirmation message telling methat the artwork was added to my collection
  31. 31. Cucumber styles● Imperative style● Declarative style● Boring style● Wrong style
  32. 32. web_steps.rb
  33. 33. web_steps_warning.txt# This file was generated by Cucumber-Rails and is only here to getyou a head start# These step definitions are thin wrappers around theCapybara/Webrat API that lets you# visit pages, interact with widgets and make assertions about pagecontent.## If you use these step definitions as basis for your features you willquickly end up# with features that are:## * Hard to maintain# * Verbose to read## A much better approach is to write your own higher level stepdefinitions, following# the advice in the following blog posts:## * http://benmabey.com/2008/05/19/imperative-vs-declarative-
  34. 34. Good practices● Don’t use “Background” to set up complicated state unless that state is actually something the client needs to know.● Keep your scenarios short.● Make your scenarios vivid.● Declare, not implement
  35. 35. .NEThttp://specflow.org/
  36. 36. PHPhttp://behat.org/
  37. 37. Profit
  38. 38. Profit● Разговор на одном языке● Четкие и понятные требования● Уверенность● Метрика● Вовлеченность в работу● Живая документация● Уверенный рефакторинг
  39. 39. Ошибки● Нет времени● Хлопотно● Требования быстро меняются● Оформление часто меняется● Идеальный сценарий● Cucumber == BDD
  40. 40. Chapter III
  41. 41. ● SQA Dayshttp://www.slideshare.net/VLDCORP/cucumber● KazanRbhttp://www.slideshare.net/leodg/cucumber-on-kazanrbleonid.dinershtein@gmail.com

×