30
Software quality assurance days 18 Международная конференция по вопросам качества ПО sqadays.com Москва. 27–28 ноября 2015 Владислав Романенко Intellectsoft. Минск, Беларусь Behat-trick: как мы внедряли BDD на наших проектах

Behat-trick: как мы внедряли BDD на наших проектах

  • Upload
    sqalab

  • View
    1.148

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Behat-trick: как мы внедряли BDD на наших проектах

Software quality assurance days18 Международная конференция по вопросам качества ПОsqadays.com

Москва. 27–28 ноября 2015

Владислав РоманенкоIntellectsoft. Минск, Беларусь

Behat-trick: как мы внедряли BDD на наших проектах

Page 2: Behat-trick: как мы внедряли BDD на наших проектах

Behat-trick: как мы внедряли BDD на наших проектах

QA-инженер в IntellectsoftВ тестировании 2 года, до этого работал инженером географических информационных систем (ГИС)

Занимаюсь тестированием мобильных и веб приложений

[email protected]

Page 3: Behat-trick: как мы внедряли BDD на наших проектах

Behat-trick: как мы внедряли BDD на наших проектах

BehaviorDrivenDevelopment

Коротко о BDD Коротко о BDD

Page 4: Behat-trick: как мы внедряли BDD на наших проектах

Behat-trick: как мы внедряли BDD на наших проектах

Проблема единого понимания

Page 5: Behat-trick: как мы внедряли BDD на наших проектах

Behat-trick: как мы внедряли BDD на наших проектах

+Gherkin

Page 6: Behat-trick: как мы внедряли BDD на наших проектах

Behat-trick: как мы внедряли BDD на наших проектах

+Gherkin =

Требования описаны понятным языком

Page 7: Behat-trick: как мы внедряли BDD на наших проектах

Behat-trick: как мы внедряли BDD на наших проектах

Behat - фреймворк для функциональных тестов

Page 8: Behat-trick: как мы внедряли BDD на наших проектах

Behat-trick: как мы внедряли BDD на наших проектах

Scenario: User can't add a photo Given I signed in as Mark When I upload photo to Mark's apartment Then the response code should be 403

Функциональные тесты в feature-файлах

Page 9: Behat-trick: как мы внедряли BDD на наших проектах

Behat-trick: как мы внедряли BDD на наших проектах

Тестировщик слишком поздно подключается на проект

Page 10: Behat-trick: как мы внедряли BDD на наших проектах

Behat-trick: как мы внедряли BDD на наших проектах

Тестировщики продумывают максимальное количество сценариев

Page 11: Behat-trick: как мы внедряли BDD на наших проектах

Behat-trick: как мы внедряли BDD на наших проектах

Scenario: Crew admin views the list of roles Given I signed in as admin When I observe the list of available roles Then only Crew roles are in the list

Требования записываются во время обсуждения

Page 12: Behat-trick: как мы внедряли BDD на наших проектах

Behat-trick: как мы внедряли BDD на наших проектах

Различные точки зрения на пользовательские истории

Page 13: Behat-trick: как мы внедряли BDD на наших проектах

Behat-trick: как мы внедряли BDD на наших проектах

Тестировщик остается один на один со сценариями

Page 14: Behat-trick: как мы внедряли BDD на наших проектах

Behat-trick: как мы внедряли BDD на наших проектах

Тестировщик остается один на один с step definitions

Page 15: Behat-trick: как мы внедряли BDD на наших проектах

Behat-trick: как мы внедряли BDD на наших проектах

/** * @Given /^I request the list of faults$/ */ public function iRequestTheListOfFaults() { $this->iSendARequest('GET', 'faults'); }

Step definition от программиста

Page 16: Behat-trick: как мы внедряли BDD на наших проектах

Behat-trick: как мы внедряли BDD на наших проектах

/** * @Given /^I request the list of issues$/ */ public function iRequestTheListOfIssues() { $this->iSendARequest('GET', 'issues'); }

Step definition от тестировщика

Page 17: Behat-trick: как мы внедряли BDD на наших проектах

Behat-trick: как мы внедряли BDD на наших проектах

Заказчику скучно читать сценарии

Page 18: Behat-trick: как мы внедряли BDD на наших проектах

Behat-trick: как мы внедряли BDD на наших проектах

Заказчику скучно читать сценарии

Page 19: Behat-trick: как мы внедряли BDD на наших проектах

Behat-trick: как мы внедряли BDD на наших проектах

Feature: AuctionsBackground: Auction has started

Given Mark sells out an antique vase for $100 And Alice and Mark negotiate Mark's price: | author | price | | Alice | $90 |

Использование секции Background

Page 20: Behat-trick: как мы внедряли BDD на наших проектах

Behat-trick: как мы внедряли BDD на наших проектах

Использование подпапок и тегов

Page 21: Behat-trick: как мы внедряли BDD на наших проектах

Behat-trick: как мы внедряли BDD на наших проектах

When I open the Negotiations listThen I see $90 offer from Alice

And I accept offer from Alice

When I accept Alice's offer of $90vs

Использование описательного стиля в шагах

Page 22: Behat-trick: как мы внедряли BDD на наших проектах

Behat-trick: как мы внедряли BDD на наших проектах

Given I'm signed in as <user>Then I should see <count> negotiations

in the list

Examples: | user | count | | Mark | 2 | | Alice | 1 | | John | 0 |

Использование таблиц

Page 23: Behat-trick: как мы внедряли BDD на наших проектах

Behat-trick: как мы внедряли BDD на наших проектах

Scenario: Admin can create a new Crew memberGiven I’m signed in as "admin" with "qwerty" passwordWhen I create a "Crew member" who has "Username" like "marin_rain" and "Name" like "Marin Rain" and "Email" like "[email protected]" and "Location" like "Berlin"

Устранение побочных шагов

Page 24: Behat-trick: как мы внедряли BDD на наших проектах

Behat-trick: как мы внедряли BDD на наших проектах

Given I’m an authenticated AdminWhen I create "Marin Rain" who is a "Crew member"

Then User is created successfully

Устранение побочных шагов

Page 25: Behat-trick: как мы внедряли BDD на наших проектах

Behat-trick: как мы внедряли BDD на наших проектах

Сценарии могут быть запущены в любой момент

Page 26: Behat-trick: как мы внедряли BDD на наших проектах

Behat-trick: как мы внедряли BDD на наших проектах

Сценарии = “живая документация”

Page 27: Behat-trick: как мы внедряли BDD на наших проектах

Behat-trick: как мы внедряли BDD на наших проектах

КоммуникацияВыводы

общение внутри команды и с заказчиком

Page 28: Behat-trick: как мы внедряли BDD на наших проектах

Behat-trick: как мы внедряли BDD на наших проектах

Коммуникация

Коммуникация

Выводы

обсуждение требований (сценариев) всей командой

Page 29: Behat-trick: как мы внедряли BDD на наших проектах

Behat-trick: как мы внедряли BDD на наших проектах

Коммуникация

Коммуникация

Коммуникация

Выводы

совместная работа над стилем описания сценариев

Page 30: Behat-trick: как мы внедряли BDD на наших проектах

Behat-trick: как мы внедряли BDD на наших проектах

Вопросы?

[email protected]