SlideShare a Scribd company logo
1 of 30
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

More Related Content

What's hot

Контроль качества верстки или как начать делать Makeup
Контроль качества верстки или как начать делать MakeupКонтроль качества верстки или как начать делать Makeup
Контроль качества верстки или как начать делать MakeupTimophy Chaptykov
 
Continuous Delivery with Jenkins: Lessons Learned
Continuous Delivery with Jenkins: Lessons LearnedContinuous Delivery with Jenkins: Lessons Learned
Continuous Delivery with Jenkins: Lessons LearnedAleksandr Tarasov
 
Евгений Жарков "Как быть хорошим фронтенд-разработчиком"
Евгений Жарков "Как быть хорошим фронтенд-разработчиком"Евгений Жарков "Как быть хорошим фронтенд-разработчиком"
Евгений Жарков "Как быть хорошим фронтенд-разработчиком"Fwdays
 
Никита Галкин "Testing in Node.js World"
Никита Галкин "Testing in Node.js World"Никита Галкин "Testing in Node.js World"
Никита Галкин "Testing in Node.js World"Fwdays
 
Инструментация среды исполнения в арсенале тестировщика
Инструментация среды исполнения в арсенале тестировщикаИнструментация среды исполнения в арсенале тестировщика
Инструментация среды исполнения в арсенале тестировщикаSQALab
 
Артём Ерошенко «Рецепт приготовления облачных тестингов»
Артём Ерошенко «Рецепт приготовления облачных тестингов»Артём Ерошенко «Рецепт приготовления облачных тестингов»
Артём Ерошенко «Рецепт приготовления облачных тестингов»WrikeTechClub
 
Изоморфный JavaScript — будущее уже здесь
Изоморфный JavaScript — будущее уже здесьИзоморфный JavaScript — будущее уже здесь
Изоморфный JavaScript — будущее уже здесьCodeFest
 
Как мы ускоряли WebGL / Мстислав Живодков (2GIS)
Как мы ускоряли WebGL / Мстислав Живодков (2GIS)Как мы ускоряли WebGL / Мстислав Живодков (2GIS)
Как мы ускоряли WebGL / Мстислав Живодков (2GIS)Ontico
 
Автоматизация функционального тестирования REST API
Автоматизация функционального тестирования REST APIАвтоматизация функционального тестирования REST API
Автоматизация функционального тестирования REST APIPavel Asanov
 
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)Ontico
 
Артем Титаренко
Артем ТитаренкоАртем Титаренко
Артем ТитаренкоCodeFest
 
Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)
Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)
Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)Ontico
 
Работаем с API по-взрослому - Максим Кислов (Badoo)
Работаем с API по-взрослому - Максим Кислов (Badoo)Работаем с API по-взрослому - Максим Кислов (Badoo)
Работаем с API по-взрослому - Максим Кислов (Badoo)AvitoTech
 
М. Боднарчук Современное функциональное тестирование с Codeception
М. Боднарчук Современное функциональное тестирование с CodeceptionМ. Боднарчук Современное функциональное тестирование с Codeception
М. Боднарчук Современное функциональное тестирование с CodeceptionAlbina Tiupa
 
Микросервисы для автоматизации тестирования - опыт "Одноклассников"
Микросервисы для автоматизации тестирования - опыт "Одноклассников"Микросервисы для автоматизации тестирования - опыт "Одноклассников"
Микросервисы для автоматизации тестирования - опыт "Одноклассников"SQALab
 
BDD girls Battle: Cucumber VS. JBehave
BDD girls Battle: Cucumber VS. JBehaveBDD girls Battle: Cucumber VS. JBehave
BDD girls Battle: Cucumber VS. JBehaveSQALab
 
Codeception + Docker + Robo и что из этого вышло
Codeception + Docker + Robo и что из этого вышлоCodeception + Docker + Robo и что из этого вышло
Codeception + Docker + Robo и что из этого вышлоCOMAQA.BY
 
Использовании TypeScript для Node.js
Использовании TypeScript для Node.jsИспользовании TypeScript для Node.js
Использовании TypeScript для Node.jsFullStackJS
 
Selenium grid on-demand
Selenium grid on-demandSelenium grid on-demand
Selenium grid on-demandSQALab
 
Easy authcache 2 кеширование для pro родионов игорь
Easy authcache 2   кеширование для pro родионов игорьEasy authcache 2   кеширование для pro родионов игорь
Easy authcache 2 кеширование для pro родионов игорьdrupalconf
 

What's hot (20)

Контроль качества верстки или как начать делать Makeup
Контроль качества верстки или как начать делать MakeupКонтроль качества верстки или как начать делать Makeup
Контроль качества верстки или как начать делать Makeup
 
Continuous Delivery with Jenkins: Lessons Learned
Continuous Delivery with Jenkins: Lessons LearnedContinuous Delivery with Jenkins: Lessons Learned
Continuous Delivery with Jenkins: Lessons Learned
 
Евгений Жарков "Как быть хорошим фронтенд-разработчиком"
Евгений Жарков "Как быть хорошим фронтенд-разработчиком"Евгений Жарков "Как быть хорошим фронтенд-разработчиком"
Евгений Жарков "Как быть хорошим фронтенд-разработчиком"
 
Никита Галкин "Testing in Node.js World"
Никита Галкин "Testing in Node.js World"Никита Галкин "Testing in Node.js World"
Никита Галкин "Testing in Node.js World"
 
Инструментация среды исполнения в арсенале тестировщика
Инструментация среды исполнения в арсенале тестировщикаИнструментация среды исполнения в арсенале тестировщика
Инструментация среды исполнения в арсенале тестировщика
 
Артём Ерошенко «Рецепт приготовления облачных тестингов»
Артём Ерошенко «Рецепт приготовления облачных тестингов»Артём Ерошенко «Рецепт приготовления облачных тестингов»
Артём Ерошенко «Рецепт приготовления облачных тестингов»
 
Изоморфный JavaScript — будущее уже здесь
Изоморфный JavaScript — будущее уже здесьИзоморфный JavaScript — будущее уже здесь
Изоморфный JavaScript — будущее уже здесь
 
Как мы ускоряли WebGL / Мстислав Живодков (2GIS)
Как мы ускоряли WebGL / Мстислав Живодков (2GIS)Как мы ускоряли WebGL / Мстислав Живодков (2GIS)
Как мы ускоряли WebGL / Мстислав Живодков (2GIS)
 
Автоматизация функционального тестирования REST API
Автоматизация функционального тестирования REST APIАвтоматизация функционального тестирования REST API
Автоматизация функционального тестирования REST API
 
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
 
Артем Титаренко
Артем ТитаренкоАртем Титаренко
Артем Титаренко
 
Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)
Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)
Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)
 
Работаем с API по-взрослому - Максим Кислов (Badoo)
Работаем с API по-взрослому - Максим Кислов (Badoo)Работаем с API по-взрослому - Максим Кислов (Badoo)
Работаем с API по-взрослому - Максим Кислов (Badoo)
 
М. Боднарчук Современное функциональное тестирование с Codeception
М. Боднарчук Современное функциональное тестирование с CodeceptionМ. Боднарчук Современное функциональное тестирование с Codeception
М. Боднарчук Современное функциональное тестирование с Codeception
 
Микросервисы для автоматизации тестирования - опыт "Одноклассников"
Микросервисы для автоматизации тестирования - опыт "Одноклассников"Микросервисы для автоматизации тестирования - опыт "Одноклассников"
Микросервисы для автоматизации тестирования - опыт "Одноклассников"
 
BDD girls Battle: Cucumber VS. JBehave
BDD girls Battle: Cucumber VS. JBehaveBDD girls Battle: Cucumber VS. JBehave
BDD girls Battle: Cucumber VS. JBehave
 
Codeception + Docker + Robo и что из этого вышло
Codeception + Docker + Robo и что из этого вышлоCodeception + Docker + Robo и что из этого вышло
Codeception + Docker + Robo и что из этого вышло
 
Использовании TypeScript для Node.js
Использовании TypeScript для Node.jsИспользовании TypeScript для Node.js
Использовании TypeScript для Node.js
 
Selenium grid on-demand
Selenium grid on-demandSelenium grid on-demand
Selenium grid on-demand
 
Easy authcache 2 кеширование для pro родионов игорь
Easy authcache 2   кеширование для pro родионов игорьEasy authcache 2   кеширование для pro родионов игорь
Easy authcache 2 кеширование для pro родионов игорь
 

Viewers also liked

Разработка через тестирование (TDD и BDD)
Разработка через тестирование (TDD и BDD)Разработка через тестирование (TDD и BDD)
Разработка через тестирование (TDD и BDD)Vyacheslav Lyalkin
 
Behavior Driven Development with Cucumber
Behavior Driven Development with CucumberBehavior Driven Development with Cucumber
Behavior Driven Development with CucumberBrandon Keepers
 
Автоматизация для ленивых тестировщиков. Selenium + Python + Behave (BDD)
Автоматизация для ленивых тестировщиков. Selenium + Python + Behave (BDD)Автоматизация для ленивых тестировщиков. Selenium + Python + Behave (BDD)
Автоматизация для ленивых тестировщиков. Selenium + Python + Behave (BDD)SQALab
 
Qa Automation - отбрасываем лишнее и тестируем суть
Qa Automation - отбрасываем лишнее и тестируем сутьQa Automation - отбрасываем лишнее и тестируем суть
Qa Automation - отбрасываем лишнее и тестируем сутьIgor Khrol
 
Типичные ошибки начинающих писать тесты на WebDriver
Типичные ошибки начинающих писать тесты на WebDriverТипичные ошибки начинающих писать тесты на WebDriver
Типичные ошибки начинающих писать тесты на WebDriverIgor Khrol
 
Behavior Driven Development
Behavior Driven DevelopmentBehavior Driven Development
Behavior Driven DevelopmentAlexey Tigarev
 
BDD testing with cucumber
BDD testing with cucumberBDD testing with cucumber
BDD testing with cucumberDaniel Kummer
 
Провокации автоматического тестирования
Провокации автоматического тестированияПровокации автоматического тестирования
Провокации автоматического тестированияSQALab
 
Автоматизация тестирования WEB API
Автоматизация тестирования WEB APIАвтоматизация тестирования WEB API
Автоматизация тестирования WEB APISQALab
 
Behavior Driven Development and Automation Testing Using Cucumber
Behavior Driven Development and Automation Testing Using CucumberBehavior Driven Development and Automation Testing Using Cucumber
Behavior Driven Development and Automation Testing Using CucumberKMS Technology
 
Когда стоит закончить автоматизировать?
Когда стоит закончить автоматизировать?Когда стоит закончить автоматизировать?
Когда стоит закончить автоматизировать?SQALab
 
Introduction to Selenium and Ruby
Introduction to Selenium and RubyIntroduction to Selenium and Ruby
Introduction to Selenium and RubyYnon Perek
 

Viewers also liked (15)

BDD and Behave
BDD and BehaveBDD and Behave
BDD and Behave
 
Разработка через тестирование (TDD и BDD)
Разработка через тестирование (TDD и BDD)Разработка через тестирование (TDD и BDD)
Разработка через тестирование (TDD и BDD)
 
Behavior Driven Development with Cucumber
Behavior Driven Development with CucumberBehavior Driven Development with Cucumber
Behavior Driven Development with Cucumber
 
Автоматизация для ленивых тестировщиков. Selenium + Python + Behave (BDD)
Автоматизация для ленивых тестировщиков. Selenium + Python + Behave (BDD)Автоматизация для ленивых тестировщиков. Selenium + Python + Behave (BDD)
Автоматизация для ленивых тестировщиков. Selenium + Python + Behave (BDD)
 
Qa Automation - отбрасываем лишнее и тестируем суть
Qa Automation - отбрасываем лишнее и тестируем сутьQa Automation - отбрасываем лишнее и тестируем суть
Qa Automation - отбрасываем лишнее и тестируем суть
 
Типичные ошибки начинающих писать тесты на WebDriver
Типичные ошибки начинающих писать тесты на WebDriverТипичные ошибки начинающих писать тесты на WebDriver
Типичные ошибки начинающих писать тесты на WebDriver
 
Behavior Driven Development
Behavior Driven DevelopmentBehavior Driven Development
Behavior Driven Development
 
BDD testing with cucumber
BDD testing with cucumberBDD testing with cucumber
BDD testing with cucumber
 
Провокации автоматического тестирования
Провокации автоматического тестированияПровокации автоматического тестирования
Провокации автоматического тестирования
 
Автоматизация тестирования WEB API
Автоматизация тестирования WEB APIАвтоматизация тестирования WEB API
Автоматизация тестирования WEB API
 
Cucumber
CucumberCucumber
Cucumber
 
Cucumber ppt
Cucumber pptCucumber ppt
Cucumber ppt
 
Behavior Driven Development and Automation Testing Using Cucumber
Behavior Driven Development and Automation Testing Using CucumberBehavior Driven Development and Automation Testing Using Cucumber
Behavior Driven Development and Automation Testing Using Cucumber
 
Когда стоит закончить автоматизировать?
Когда стоит закончить автоматизировать?Когда стоит закончить автоматизировать?
Когда стоит закончить автоматизировать?
 
Introduction to Selenium and Ruby
Introduction to Selenium and RubyIntroduction to Selenium and Ruby
Introduction to Selenium and Ruby
 

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

Юлия Викторова; Александр Тарасов. DevOps без булшита.
Юлия Викторова; Александр Тарасов. DevOps без булшита.Юлия Викторова; Александр Тарасов. DevOps без булшита.
Юлия Викторова; Александр Тарасов. DevOps без булшита.ScrumTrek
 
Agile with cucumber or BDD with fun
Agile with cucumber or BDD with funAgile with cucumber or BDD with fun
Agile with cucumber or BDD with funLeonid Dinershtein
 
Путь к чистому и компактному коду исполняемых спецификаций
Путь к чистому и компактному коду исполняемых спецификацийПуть к чистому и компактному коду исполняемых спецификаций
Путь к чистому и компактному коду исполняемых спецификацийVagif Abilov
 
Egor Fedorov "Behavior-driven development in Python"
Egor Fedorov "Behavior-driven development in Python"Egor Fedorov "Behavior-driven development in Python"
Egor Fedorov "Behavior-driven development in Python"Fwdays
 
Эволюционный дизайн. Joker Students Day 2016
Эволюционный дизайн. Joker Students Day 2016Эволюционный дизайн. Joker Students Day 2016
Эволюционный дизайн. Joker Students Day 2016Кирилл Толкачёв
 
GitLab, Prometheus и Grafana с Kubernetes
GitLab, Prometheus и Grafana с KubernetesGitLab, Prometheus и Grafana с Kubernetes
GitLab, Prometheus и Grafana с KubernetesVictor Login
 
Dev & test на windows azure
Dev & test на windows azureDev & test на windows azure
Dev & test на windows azureMicrosoft
 
TDD: когда нужно и, самое главное, когда не нужно / Павел Калашников (SimbirS...
TDD: когда нужно и, самое главное, когда не нужно / Павел Калашников (SimbirS...TDD: когда нужно и, самое главное, когда не нужно / Павел Калашников (SimbirS...
TDD: когда нужно и, самое главное, когда не нужно / Павел Калашников (SimbirS...Ontico
 
State of the Standardized Web
State of the Standardized WebState of the Standardized Web
State of the Standardized WebYandex
 
kranonit S15 Vladimir Melnik - Ruby on Rails, BDD
kranonit S15 Vladimir Melnik - Ruby on Rails, BDDkranonit S15 Vladimir Melnik - Ruby on Rails, BDD
kranonit S15 Vladimir Melnik - Ruby on Rails, BDDKrivoy Rog IT Community
 
State of the Standardized Web. YaC 2014
State of theStandardized Web. YaC 2014State of theStandardized Web. YaC 2014
State of the Standardized Web. YaC 2014Yandex
 
Как мы документируем программные интерфейсы. Алексей Миронов
Как мы документируем программные интерфейсы. Алексей МироновКак мы документируем программные интерфейсы. Алексей Миронов
Как мы документируем программные интерфейсы. Алексей МироновYandex
 
Эволюция к Behavior Driven Development на примере популярного фреймворка JBehave
Эволюция к Behavior Driven Development на примере популярного фреймворка JBehaveЭволюция к Behavior Driven Development на примере популярного фреймворка JBehave
Эволюция к Behavior Driven Development на примере популярного фреймворка JBehaveReturn on Intelligence
 
А. Васильев "Создание интернет-магазина: первые шаги, сложности и подводные к...
А. Васильев "Создание интернет-магазина: первые шаги, сложности и подводные к...А. Васильев "Создание интернет-магазина: первые шаги, сложности и подводные к...
А. Васильев "Создание интернет-магазина: первые шаги, сложности и подводные к...awgua
 
Организация эффективной работы команды при разработке и поддержке сложной инф...
Организация эффективной работы команды при разработке и поддержке сложной инф...Организация эффективной работы команды при разработке и поддержке сложной инф...
Организация эффективной работы команды при разработке и поддержке сложной инф...tabtabus
 
CodeFest 2012. Лихтер К, Таратухин И. — Коктейль «Skydive» или как мы делали ...
CodeFest 2012. Лихтер К, Таратухин И. — Коктейль «Skydive» или как мы делали ...CodeFest 2012. Лихтер К, Таратухин И. — Коктейль «Skydive» или как мы делали ...
CodeFest 2012. Лихтер К, Таратухин И. — Коктейль «Skydive» или как мы делали ...CodeFest
 

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

Юлия Викторова; Александр Тарасов. DevOps без булшита.
Юлия Викторова; Александр Тарасов. DevOps без булшита.Юлия Викторова; Александр Тарасов. DevOps без булшита.
Юлия Викторова; Александр Тарасов. DevOps без булшита.
 
Agile with cucumber or BDD with fun
Agile with cucumber or BDD with funAgile with cucumber or BDD with fun
Agile with cucumber or BDD with fun
 
DevOPS meetup
DevOPS meetupDevOPS meetup
DevOPS meetup
 
Путь к чистому и компактному коду исполняемых спецификаций
Путь к чистому и компактному коду исполняемых спецификацийПуть к чистому и компактному коду исполняемых спецификаций
Путь к чистому и компактному коду исполняемых спецификаций
 
Egor Fedorov "Behavior-driven development in Python"
Egor Fedorov "Behavior-driven development in Python"Egor Fedorov "Behavior-driven development in Python"
Egor Fedorov "Behavior-driven development in Python"
 
Эволюционный дизайн. Joker Students Day 2016
Эволюционный дизайн. Joker Students Day 2016Эволюционный дизайн. Joker Students Day 2016
Эволюционный дизайн. Joker Students Day 2016
 
GitLab, Prometheus и Grafana с Kubernetes
GitLab, Prometheus и Grafana с KubernetesGitLab, Prometheus и Grafana с Kubernetes
GitLab, Prometheus и Grafana с Kubernetes
 
Little Service in 2h
Little Service in 2hLittle Service in 2h
Little Service in 2h
 
Behavior Driven Development
Behavior Driven DevelopmentBehavior Driven Development
Behavior Driven Development
 
Dev & test на windows azure
Dev & test на windows azureDev & test на windows azure
Dev & test на windows azure
 
TDD: когда нужно и, самое главное, когда не нужно / Павел Калашников (SimbirS...
TDD: когда нужно и, самое главное, когда не нужно / Павел Калашников (SimbirS...TDD: когда нужно и, самое главное, когда не нужно / Павел Калашников (SimbirS...
TDD: когда нужно и, самое главное, когда не нужно / Павел Калашников (SimbirS...
 
State of the Standardized Web
State of the Standardized WebState of the Standardized Web
State of the Standardized Web
 
kranonit S15 Vladimir Melnik - Ruby on Rails, BDD
kranonit S15 Vladimir Melnik - Ruby on Rails, BDDkranonit S15 Vladimir Melnik - Ruby on Rails, BDD
kranonit S15 Vladimir Melnik - Ruby on Rails, BDD
 
State of the Standardized Web. YaC 2014
State of theStandardized Web. YaC 2014State of theStandardized Web. YaC 2014
State of the Standardized Web. YaC 2014
 
Как мы документируем программные интерфейсы. Алексей Миронов
Как мы документируем программные интерфейсы. Алексей МироновКак мы документируем программные интерфейсы. Алексей Миронов
Как мы документируем программные интерфейсы. Алексей Миронов
 
Эволюция к Behavior Driven Development на примере популярного фреймворка JBehave
Эволюция к Behavior Driven Development на примере популярного фреймворка JBehaveЭволюция к Behavior Driven Development на примере популярного фреймворка JBehave
Эволюция к Behavior Driven Development на примере популярного фреймворка JBehave
 
Rest api
Rest apiRest api
Rest api
 
А. Васильев "Создание интернет-магазина: первые шаги, сложности и подводные к...
А. Васильев "Создание интернет-магазина: первые шаги, сложности и подводные к...А. Васильев "Создание интернет-магазина: первые шаги, сложности и подводные к...
А. Васильев "Создание интернет-магазина: первые шаги, сложности и подводные к...
 
Организация эффективной работы команды при разработке и поддержке сложной инф...
Организация эффективной работы команды при разработке и поддержке сложной инф...Организация эффективной работы команды при разработке и поддержке сложной инф...
Организация эффективной работы команды при разработке и поддержке сложной инф...
 
CodeFest 2012. Лихтер К, Таратухин И. — Коктейль «Skydive» или как мы делали ...
CodeFest 2012. Лихтер К, Таратухин И. — Коктейль «Skydive» или как мы делали ...CodeFest 2012. Лихтер К, Таратухин И. — Коктейль «Skydive» или как мы делали ...
CodeFest 2012. Лихтер К, Таратухин И. — Коктейль «Skydive» или как мы делали ...
 

More from SQALab

Готовим стажировку
Готовим стажировкуГотовим стажировку
Готовим стажировкуSQALab
 
Куда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаКуда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаSQALab
 
Оптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиОптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиSQALab
 
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияАвтоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияSQALab
 
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...SQALab
 
Continuous performance testing
Continuous performance testingContinuous performance testing
Continuous performance testingSQALab
 
Конфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженКонфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженSQALab
 
Команда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииКоманда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииSQALab
 
API. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовAPI. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовSQALab
 
Добиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовДобиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовSQALab
 
Делаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsДелаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsSQALab
 
Вредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеВредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеSQALab
 
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииМощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииSQALab
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеSQALab
 
Стили лидерства и тестирование
Стили лидерства и тестированиеСтили лидерства и тестирование
Стили лидерства и тестированиеSQALab
 
"Давайте не будем про качество"
"Давайте не будем про качество""Давайте не будем про качество"
"Давайте не будем про качество"SQALab
 
Apache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовApache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовSQALab
 
Тестирование геолокационных систем
Тестирование геолокационных системТестирование геолокационных систем
Тестирование геолокационных системSQALab
 
Лидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросЛидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросSQALab
 
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...SQALab
 

More from SQALab (20)

Готовим стажировку
Готовим стажировкуГотовим стажировку
Готовим стажировку
 
Куда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаКуда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщика
 
Оптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиОптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержки
 
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияАвтоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
 
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
 
Continuous performance testing
Continuous performance testingContinuous performance testing
Continuous performance testing
 
Конфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженКонфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нужен
 
Команда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииКоманда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихии
 
API. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовAPI. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советов
 
Добиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовДобиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестов
 
Делаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsДелаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIs
 
Вредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеВредные привычки в тест-менеджменте
Вредные привычки в тест-менеджменте
 
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииМощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
 
Стили лидерства и тестирование
Стили лидерства и тестированиеСтили лидерства и тестирование
Стили лидерства и тестирование
 
"Давайте не будем про качество"
"Давайте не будем про качество""Давайте не будем про качество"
"Давайте не будем про качество"
 
Apache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовApache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектов
 
Тестирование геолокационных систем
Тестирование геолокационных системТестирование геолокационных систем
Тестирование геолокационных систем
 
Лидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросЛидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопрос
 
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к 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 на наших проектах Проблема единого понимания
  • 5. Behat-trick: как мы внедряли BDD на наших проектах +Gherkin
  • 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