Software quality assurance days
18 Международная конференция
по вопросам качества ПО
sqadays.com
Москва. 27–28 ноября 2015
Владислав Романенко
Intellectsoft. Минск, Беларусь
Behat-trick: как мы внедряли BDD на наших проектах
Behat-trick: как мы внедряли BDD на наших проектах
QA-инженер в Intellectsoft
В тестировании 2 года,
до этого работал инженером географических
информационных систем (ГИС)
Занимаюсь тестированием мобильных и веб
приложений
v.romanenko_
laechoppe@gmail.com
Behat-trick: как мы внедряли BDD на наших проектах
Behavior
Driven
Development
Коротко о
BDD
Коротко о BDD
Behat-trick: как мы внедряли BDD на наших проектах
Проблема единого понимания
Behat-trick: как мы внедряли BDD на наших проектах
+
Gherkin
Behat-trick: как мы внедряли BDD на наших проектах
+
Gherkin =
Требования описаны понятным языком
Behat-trick: как мы внедряли BDD на наших проектах
Behat - фреймворк для функциональных тестов
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-файлах
Behat-trick: как мы внедряли BDD на наших проектах
Тестировщик слишком поздно подключается на проект
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
Требования записываются во время обсуждения
Behat-trick: как мы внедряли BDD на наших проектах
Различные точки зрения на пользовательские истории
Behat-trick: как мы внедряли BDD на наших проектах
Тестировщик остается один на один со сценариями
Behat-trick: как мы внедряли BDD на наших проектах
Тестировщик остается один на один с step definitions
Behat-trick: как мы внедряли BDD на наших проектах
/**
* @Given /^I request the list of faults$/
*/
public
function
iRequestTheListOfFaults
()
{
$this
->
iSendARequest
(
'GET'
,
'faults'
);
}
Step definition от программиста
Behat-trick: как мы внедряли BDD на наших проектах
/**
* @Given /^I request the list of issues$/
*/
public
function
iRequestTheListOfIssues
()
{
$this
->
iSendARequest
(
'GET'
,
'issues'
);
}
Step definition от тестировщика
Behat-trick: как мы внедряли BDD на наших проектах
Заказчику скучно читать сценарии
Behat-trick: как мы внедряли BDD на наших проектах
Заказчику скучно читать сценарии
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
Behat-trick: как мы внедряли BDD на наших проектах
Использование подпапок и тегов
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
Использование описательного стиля в шагах
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
|
Использование таблиц
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
"
Устранение побочных шагов
Behat-trick: как мы внедряли BDD на наших проектах
Given
I’m an authenticated
Admin
When
I create
"
Marin Rain
"
who is a
"
Crew member
"
Then
User is created successfully
Устранение побочных шагов
Behat-trick: как мы внедряли BDD на наших проектах
Сценарии могут быть запущены в любой момент
Behat-trick: как мы внедряли BDD на наших проектах
Сценарии = “живая документация”
Behat-trick: как мы внедряли BDD на наших проектах
Коммуникация
Выводы
общение внутри команды и с заказчиком
Behat-trick: как мы внедряли BDD на наших проектах
Коммуникация
Коммуникация
Выводы
обсуждение требований (сценариев) всей командой
Behat-trick: как мы внедряли BDD на наших проектах
Коммуникация
Коммуникация
Коммуникация
Выводы
совместная работа над стилем описания сценариев
Behat-trick: как мы внедряли BDD на наших проектах
Вопросы?
v.romanenko_
laechoppe@gmail.com
Behat-trick: как мы внедряли BDD на наших проектах