behaviour-driven development, ruby style

29

Upload: openfest-team

Post on 12-Nov-2014

1.373 views

Category:

Technology


3 download

DESCRIPTION

Behaviour-Driven Development, Ruby Style Цветомила Михайлова

TRANSCRIPT

Page 1: Behaviour-Driven Development, Ruby Style
Page 2: Behaviour-Driven Development, Ruby Style

Behaviour-Driven Development

ft. Ruby, Cucumber & RSpec

Page 3: Behaviour-Driven Development, Ruby Style

Видове тестване

Области за проверка Начини за проверка

Process Doc Reviews

Functional Manual

Security Automated

Performance Sampling

Stress/Load Test Driven

Usability Behavior Driven

Glob/Loc

Page 4: Behaviour-Driven Development, Ruby Style

Tестове

Ръчни Автоматизирани

Квалификация Средна Висока

Удоволствие

Мащаб 0 ∞

Цена $$$$$ $$$

Page 5: Behaviour-Driven Development, Ruby Style

Кога да тестваме

Page 6: Behaviour-Driven Development, Ruby Style

Agile and automation

Add test

Watch Test Fail

Write Code

Run Tests

Refactor

Page 7: Behaviour-Driven Development, Ruby Style
Page 8: Behaviour-Driven Development, Ruby Style

CucumberRSpec

Test::Minitest Shoulda

Test::UnitSteak

Riot

Test Frameworks за Ruby

Page 9: Behaviour-Driven Development, Ruby Style

CucumberRSpec

Page 10: Behaviour-Driven Development, Ruby Style
Page 11: Behaviour-Driven Development, Ruby Style

Първи идват feature тестовете

Page 12: Behaviour-Driven Development, Ruby Style

features

online_shopping.feature

Page 13: Behaviour-Driven Development, Ruby Style

$ rake cucumber

Feature: Online shopping

In order to use the full capabilities

of our online shop

A user

Should be able to make an order

Scenario: Buying a beer # features/online_shopping.feature:6

Given that there are 5 beers on stock

When Vasko buys 2 beers

Then there should be 3 beers left

1 scenario (1 undefined)

3 steps (3 undefined)

0m0.003s

Page 14: Behaviour-Driven Development, Ruby Style

features

step_definitions

shopping_steps.rb

Page 15: Behaviour-Driven Development, Ruby Style

Feature: Online shopping

In order to use the full capabilities

of our online shop

A user

Should be able to make an order

Scenario: Buying a beer # features/online_shopping.feature:6

Given that there are 5 beers on stock

uninitialized constant Beer (NameError)

./features/step_definitions/online_shopping_steps.rb:5:

in `/^that there are (\d+) beers on stock$/‘

When Vasko buys 2 beers

Then there should be 3 beers left

Failing Scenarios:

cucumber features/online_shopping.feature:6 # Scenario: Buying a beer

1 scenario (1 failed)

3 steps (1 failed, 2 skipped)

0m0.469s

Page 16: Behaviour-Driven Development, Ruby Style

$ rake cucumber

Feature: Online shopping

In order to use the full capabilities

of our online shop

A user

Should be able to make an order

Scenario: Buying a beer # features/online_shopping.feature:6

Given that there are 5 beers on stock

When Vasko buys 2 beers

Then there should be 3 beers left

1 scenario (1 passed)

3 steps (3 passed)

0m0.003s

Page 17: Behaviour-Driven Development, Ruby Style

Gherkin

Over 40 spoken languages

$ cucumber --i18n help

Page 18: Behaviour-Driven Development, Ruby Style

Къде са

unit tests?

specs

Page 19: Behaviour-Driven Development, Ruby Style

Test

Page 20: Behaviour-Driven Development, Ruby Style

Spec

Page 21: Behaviour-Driven Development, Ruby Style

Feature

Spec

Code

Refactor

Cucumber + Rspec – задвижване на реализацията отвън - навътре

Page 22: Behaviour-Driven Development, Ruby Style

Continuous Integration

Page 23: Behaviour-Driven Development, Ruby Style

Guard

Bundle updateBundle already up-to-date

Cucumber Results13 passed steps

RSpec results197 examples, 0 failures (15 pending)

in 12.274 seconds

Page 24: Behaviour-Driven Development, Ruby Style

Spork

SporkRspec & Cucumber successfully started

Page 25: Behaviour-Driven Development, Ruby Style

Jenkins

Page 26: Behaviour-Driven Development, Ruby Style
Page 27: Behaviour-Driven Development, Ruby Style

Ресурси

• Top ten software bugs: http://themanojblog.blogspot.com/2009/05/blog-wars-episode-v-historys-top-ten.html

• Тестване на софтуер: http://en.wikipedia.org/wiki/Software_testing

• Допълнитени ресурси: http://www.softwaretestinghelp.com

• Cucumber: http://cukes.info

• RSpec: http://rspec.info

Page 28: Behaviour-Driven Development, Ruby Style

ВЪПРОСИ?

Page 29: Behaviour-Driven Development, Ruby Style

БЛАГОДАРИМ ВИ!