От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
Behat-trick: как мы внедряли BDD на наших проектах
1. Software quality assurance days
18 Международная конференция
по вопросам качества ПО
sqadays.com
Москва. 27–28 ноября 2015
Владислав Романенко
Intellectsoft. Минск, Беларусь
Behat-trick: как мы внедряли BDD на наших проектах
2. Behat-trick: как мы внедряли BDD на наших проектах
QA-инженер в Intellectsoft
В тестировании 2 года,
до этого работал инженером географических
информационных систем (ГИС)
Занимаюсь тестированием мобильных и веб
приложений
v.romanenko_
laechoppe@gmail.com
3. Behat-trick: как мы внедряли BDD на наших проектах
Behavior
Driven
Development
Коротко о BDD Коротко о BDD
4. Behat-trick: как мы внедряли BDD на наших проектах
Проблема единого понимания
6. Behat-trick: как мы внедряли BDD на наших проектах
+ Gherkin =
Требования описаны понятным языком
7. Behat-trick: как мы внедряли BDD на наших проектах
Behat - фреймворк для функциональных тестов
8. 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-файлах
9. Behat-trick: как мы внедряли BDD на наших проектах
Тестировщик слишком поздно подключается на проект
10. Behat-trick: как мы внедряли BDD на наших проектах
Тестировщики продумывают максимальное количество
сценариев
11. 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
Требования записываются во время обсуждения
12. Behat-trick: как мы внедряли BDD на наших проектах
Различные точки зрения на пользовательские истории
13. Behat-trick: как мы внедряли BDD на наших проектах
Тестировщик остается один на один со сценариями
14. Behat-trick: как мы внедряли BDD на наших проектах
Тестировщик остается один на один с step definitions
15. Behat-trick: как мы внедряли BDD на наших проектах
/**
* @Given /^I request the list of faults$/
*/
public function iRequestTheListOfFaults()
{
$this->iSendARequest('GET', 'faults');
}
Step definition от программиста
16. Behat-trick: как мы внедряли BDD на наших проектах
/**
* @Given /^I request the list of issues$/
*/
public function iRequestTheListOfIssues()
{
$this->iSendARequest('GET', 'issues');
}
Step definition от тестировщика
17. Behat-trick: как мы внедряли BDD на наших проектах
Заказчику скучно читать сценарии
18. Behat-trick: как мы внедряли BDD на наших проектах
Заказчику скучно читать сценарии
19. Behat-trick: как мы внедряли BDD на наших проектах
Feature: Auctions
Background: 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
20. Behat-trick: как мы внедряли BDD на наших проектах
Использование подпапок и тегов
21. Behat-trick: как мы внедряли BDD на наших проектах
When I open the Negotiations list
Then I see $90 offer from Alice
And I accept offer from Alice
When I accept Alice's offer of $90
vs
Использование описательного стиля в шагах
22. 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 |
Использование таблиц
23. Behat-trick: как мы внедряли BDD на наших проектах
Scenario: Admin can create a new Crew member
Given I’m signed in as "admin" with "qwerty"
password
When I create a "Crew member" who has
"Username" like "marin_rain" and
"Name" like "Marin Rain" and
"Email" like "marin_rain@test.com" and
"Location" like "Berlin"
Устранение побочных шагов
24. Behat-trick: как мы внедряли BDD на наших проектах
Given I’m an authenticated Admin
When I create "Marin Rain" who is a "Crew member"
Then User is created successfully
Устранение побочных шагов
25. Behat-trick: как мы внедряли BDD на наших проектах
Сценарии могут быть запущены в любой момент
26. Behat-trick: как мы внедряли BDD на наших проектах
Сценарии = “живая документация”
27. Behat-trick: как мы внедряли BDD на наших проектах
Коммуникация
Выводы
общение внутри команды и с заказчиком
28. Behat-trick: как мы внедряли BDD на наших проектах
Коммуникация
Коммуникация
Выводы
обсуждение требований (сценариев) всей командой
29. Behat-trick: как мы внедряли BDD на наших проектах
Коммуникация
Коммуникация
Коммуникация
Выводы
совместная работа над стилем описания сценариев
30. Behat-trick: как мы внедряли BDD на наших проектах
Вопросы?
v.romanenko_
laechoppe@gmail.com