Cucumber

Post on 05-Dec-2014

586 views 1 download

Tags:

description

nastachku.ru conference

Transcript of Cucumber

Agile with cucumber or BDD with fun

Leonid Dinershtein,april, 2012

План огурец

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 an agile software development technique devised by Dan North as a response to the issues he encountered whilst teaching Test-Driven Development:

● 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

BDD

“Behaviour-driven development is about implementing an application by describing its behaviour from the perspective of its stakeholders”

Хороший менеджер

Хороший менеджер

● Должен обладать способностью понимать людей разного склада ума (от разработчиков, до бизнес-заказчиков) и умение помогать переводить мысли с языка одних на язык других

● Умеет не ссать и не ныть! Даже когда ссыкотно и ныть хочется.

● Знает чем отличается Quality Assurance от тестирования

● Понимает, что разработанный софт это не конец проекта, а всего лишь начало. И знает чего

http://cartmendum.livejournal.com/93084.html

Сколько это стоит?и как все это продать?

Cucumber

● Средство для автоматизированного тестирования

● Позволяет описывать поведение системы на естественном языке

● Является основным инструментом в Behaviour Driven Development (BDD)

План огурец1. Опишите поведение системы на естественном

языке(Напишите сценарий поведения)2. Опишите шаги сценария на языке

программирования3. Запустите тесты и убедитесь, что они не

проходят4. Напишите код, который реализует поведение,

описанное в тестах5. Запустите тесты снова и убедитесь, что

некоторые тесты начали проходить6. Повторите 2-5 шаги, пока все тесты не начнут

проходить7. Повторите 1-6 шаги, пока не закончатся деньги

у заказчика

Feature: Title In order to [Business Value] As a [Role] I want to [Some action] Scenario: Title Given [Context] When [Action] Then [Outcome]

Scenario: Create PostGiven I am a registered UserAnd I have signed inWhen I go to Create Post PageAnd I create a Post and Publish itThen I should see the Post in the Index Page

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 PageAnd I fill up Title as "Best Post"And I fill up Content as "Chuck Norris counted to infinity - twice."And I publish the PostThen I should see message "Post was successfully created."And I should see post in the index page

Scenario: Artist creates an art workGiven I am a registered artistAnd I follow the add new artwork link from the

dashboardWhen I fill the form with the artwork dataAnd I upload a pictureThen I should see a confirmation message telling me

that the artwork was added to my collection

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 was

successfully added to your art collection."

Cucumber styles

● Imperative style● Declarative style● Boring style● Wrong style

Profit

Profit

● Разговор на одном языке● Четкие и понятные требования● Уверенность● Метрика● Вовлеченность в работу● Живая документация● Уверенный рефакторинг

Magic Kingdom

Don’t use Cucumber unless you live in the magic kingdom of non-programmers-writing-tests (and send me a bottle of fairy dust if you’re there!)

http://37signals.com/svn/posts/3159-testing-like-the-tsa

Ошибки● Нет времени● Хлопотно● Требования быстро меняются● Оформление часто меняется● Идеальный сценарий● Cucumber == BDD

Вопросы?

leonid@dinershtein.com

http://dinershtein.com