Date post: | 14-May-2015 |
Category: |
Technology |
Upload: | bozhidar-batsov |
View: | 836 times |
Download: | 2 times |
Behaviour-Driven Development
ft. Ruby, Cucumber & RSpec
Видове тестване
Области за проверка Начини за проверка
Process Doc Reviews
Functional Manual
Security Automated
Performance Sampling
Stress/Load Test Driven
Usability Behavior Driven
Glob/Loc
Tестове
Ръчни Автоматизирани
Квалификация Средна Висока
Удоволствие
Мащаб 0 ∞
Цена $$$$$ $$$
Цена на дефектите
Agile и автоматизацията
Add test
Watch Test Fail
Write Code
Run Tests
Refactor
I love the term diversity.
Di-ver-si-ty.
Doesn’t that sound great?
CucumberRSpec
Test::Minitest Shoulda
Test::UnitSteak
Testing Frameworks за Ruby
CucumberRSpec
Първи идват feature тестовете
features
online_shopping.feature
$ 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
features
step_definitions
shopping_steps.rb
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
$ 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
Gherkin
$ cucumber --i18n help
Над 40 езика
| ar
| bg
| ca
| cs
| cy-GB
| da
| de
| en
| en-Scouse
| en-au
…
| Arabic
Bulgarian
| Catalan
| Czech
| Welsh
| Danish
| German
| English
| Scouse
| Australian
…
|العربية |
| български |
| català |
| Česky |
| Cymraeg |
| dansk |
| Deutsch |
| English |
| Scouse |
| Australian |…
$ rake cucumber
# language: bg
Функционалност: Пазаруване онлайн
За да използват пълните възможности
на нашия онлайн магазин
Потребителите
Трябва да могат да правят поръчки
Сценарий: Купуване на бира # features/online_shopping.feature:10
Дадено е, че има налични 5 бири
Когато Васко купи 2 бири
То трябва да останат 3 бири
1 scenario (1 passed)
3 steps (3 passed)
0m0.003s
Къде са
unit tests?
спецификации
Test
Spec
Test vs. Spec
Test vs. Spec
Test vs. Spec
Test vs. Spec
Feature
Spec
Code
Refactor
Cucumber + RSpec – задвижване на реализацията отвън - навътре
WHO BROKE THE BUILD?
Guard
Bundle updateBundle already up-to-date
Cucumber Results13 passed steps
RSpec results197 examples, 0 failures (15 pending)
in 12.274 seconds
Spork
SporkRspec & Cucumber successfully started
Jenkins
ВЪПРОСИ?
Ресурси
• Десетте най-големи софтуерни грешки: 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
• Guard: https://github.com/guard/guard
• Spork: https://github.com/sporkrb/spork
• Jenkins: http://jenkins-ci.org/
Контакти
• Георги Кременлиев:
– @gssgek
• Цветомила Михайлова:
– @tsvetomila
БЛАГОДАРИМ ВИ!