SlideShare a Scribd company logo
1 of 27
Download to read offline
SpecFlow and
Gherkin by
Example
Дмитрий Миндра
Developer Tools SSP
Microsoft Ukraine
Agile
Изменения – наше все !
Картина мира
Взаимопонимание
?!!!?!?!?!?!?!

Разработчик

QA

Заказчик
Взаимопонимание
Требования
• Они могут быть понятны только
заказчику или только команде.
• Они могут быть запутанными и
сложными, содержать много лишних
вещей.
• Они могут не иметь четко
выраженной бизнес цели
Пользовательские истории
• Содержат только самую
необходимую информацию.
• Являются предпосылкой для
дальнейшего обсуждения.
Пользовательские истории

Как ... , я хочу ... чтобы ...
As a … , I want … so …
Пользовательские истории
Для того, чтобы ... , Как ..., Я хочу ...
In order to …, As a … , I want ...
Попробуем ?
 Пользовательская история к
системе заказа столиков в кафе.
заказать столик
Для того, чтобы _____________________ ,
посетитель кафе
Как (в роли кого) ______________________ ,
Я хочу видеть столики, доступные для заказа .
_____________________________________
Попробуем еще?
купить билет
Для того, чтобы _____________________ ,
человек, собирающийся в поездку
Как _____________________________________ ,
получить список доступных мест
Я хочу ___________________________________ .
Что такое BDD?
• Небольшие и очень четкие
частички поведения, выраженные в
формате пользовательских
историй.

• Примеры, Примеры, Примеры
• Язык, понятный всем членам
команды.
Что такое BDD?
Для того, чтобы ... , Как ..., Я хочу ...
In order to …, As a … , I want ...
Сценарии в BDD
Что вы делаете

Context

Event

Response

Какой это дает результат

Ваше состояние
Сценарии в BDD
Что вы делаете

GIVEN

WHEN

THEN

Какой это дает результат

Ваше состояние

Это называется Gherkin
На что это похоже ?
• Это набр небольших историй,
использующих определенную
грамматическую структуру.
• Понятное описание.
• Приемочные тесты.
Преимущества ?
Мы говорим о поведении системы,
не затрагивая детали реализации.
Мы приводим примеры.
Мы получаем приемочные критерии.
BDD vs TDD
Все равно что выбирать
между вилкой и ложкой.
Две инженерные практики,
которые можно встроить в
ваш процесс.
В чем преимущества?
• В требованиях явно выражены
бизнес цели.
• Описания даются с точки зрения
поведения конкретных лиц.
• Требования записаны на понятном
всем языке (Gherkin)
ATDD, SbE
Практика !
Мне нужен интернет магазин книг
про Гарри Поттера!

Инвестор

QA

Разработчик
Ты кто такой? Давай техзадание!
Фича

In order to _________________________________ ,
As a _________________________________________ ,
I want _____________________________________ .

Сченарий

Given ______________________________________ ,
When _____________________________________ ,
Then _______________________________________ .
U01: Поиск
Для того, чтобы купить книгу(и)
Как потенциальный покупатель,
Я хочу иметь возможность ее найти!

это фича ;)
SpecFlow

BDD инсрумент для .NET
Интегрируется с Visual Studio
Поддерживает Gherkin
Поехали !

Разработчик
Спасибо !

More Related Content

Similar to IT Brunch - SpecFlow and Gherkin by Example

Compilable specifications by Dmytro Mindra
Compilable specifications by Dmytro MindraCompilable specifications by Dmytro Mindra
Compilable specifications by Dmytro MindraSCRUMguides
 
Как написать хороший текст для сайта. 10.09.15
Как написать хороший текст для сайта. 10.09.15Как написать хороший текст для сайта. 10.09.15
Как написать хороший текст для сайта. 10.09.15Катерина Ерошина
 
Вебинар: Гибкое управление требованиями
Вебинар: Гибкое управление требованиямиВебинар: Гибкое управление требованиями
Вебинар: Гибкое управление требованиямиTimofey (Tim) Yevgrashyn
 
"Этот код плохой, его нужно переписать". Слышали? Как обосновать
"Этот код плохой, его нужно переписать". Слышали? Как обосновать"Этот код плохой, его нужно переписать". Слышали? Как обосновать
"Этот код плохой, его нужно переписать". Слышали? Как обосноватьMaksym Bezuglyi
 
Аркадий Рушкевич
Аркадий РушкевичАркадий Рушкевич
Аркадий РушкевичCodeFest
 
ИКТ 03 Проектирование интерфейсов
ИКТ 03 Проектирование интерфейсовИКТ 03 Проектирование интерфейсов
ИКТ 03 Проектирование интерфейсовDenis Korolev
 
Гибкое прототипирование для гибкой разработки (Максим Гапонов)
Гибкое прототипирование для гибкой разработки (Максим Гапонов)Гибкое прототипирование для гибкой разработки (Максим Гапонов)
Гибкое прототипирование для гибкой разработки (Максим Гапонов)Ontico
 
Как ставить задачи [копи]райтеру (Анна Каправчук)
Как ставить задачи [копи]райтеру (Анна Каправчук)Как ставить задачи [копи]райтеру (Анна Каправчук)
Как ставить задачи [копи]райтеру (Анна Каправчук)Асия Дулатова
 
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...Yandex
 
2017-03-26 01 Григорий Косьяненко. Разработка ПО — это про людей, а не про код
2017-03-26 01 Григорий Косьяненко. Разработка ПО — это про людей, а не про код2017-03-26 01 Григорий Косьяненко. Разработка ПО — это про людей, а не про код
2017-03-26 01 Григорий Косьяненко. Разработка ПО — это про людей, а не про кодHappyDev-lite
 
HR-бренд на практике. Определение целевой аудитории
HR-бренд на практике. Определение целевой аудиторииHR-бренд на практике. Определение целевой аудитории
HR-бренд на практике. Определение целевой аудиторииHRedu.ru
 
Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...
Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...
Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...Tech Talks @NSU
 
Вспомните о Пользователях
Вспомните о ПользователяхВспомните о Пользователях
Вспомните о ПользователяхTimofey (Tim) Yevgrashyn
 
Pedalim vacancy IT HR
Pedalim vacancy IT HRPedalim vacancy IT HR
Pedalim vacancy IT HRIT-HR Club
 
Бесплатный вебинар по QA Александра Кузняка от проекта GoIT
Бесплатный вебинар по QA Александра Кузняка от проекта GoITБесплатный вебинар по QA Александра Кузняка от проекта GoIT
Бесплатный вебинар по QA Александра Кузняка от проекта GoITGoIT
 
Почему проект не заканчивается после передачи его клиенту или что надо, чтобы...
Почему проект не заканчивается после передачи его клиенту или что надо, чтобы...Почему проект не заканчивается после передачи его клиенту или что надо, чтобы...
Почему проект не заканчивается после передачи его клиенту или что надо, чтобы...Andrew Sikorskiy
 
Что тендер грядущий нам готовит
Что тендер грядущий нам готовитЧто тендер грядущий нам готовит
Что тендер грядущий нам готовитSQALab
 
Performance engineering stories from #fdminicon Saransk
Performance engineering stories from #fdminicon SaranskPerformance engineering stories from #fdminicon Saransk
Performance engineering stories from #fdminicon SaranskAlex Chistyakov
 

Similar to IT Brunch - SpecFlow and Gherkin by Example (20)

Compilable specifications by Dmytro Mindra
Compilable specifications by Dmytro MindraCompilable specifications by Dmytro Mindra
Compilable specifications by Dmytro Mindra
 
Как написать хороший текст для сайта. 10.09.15
Как написать хороший текст для сайта. 10.09.15Как написать хороший текст для сайта. 10.09.15
Как написать хороший текст для сайта. 10.09.15
 
Вебинар: Гибкое управление требованиями
Вебинар: Гибкое управление требованиямиВебинар: Гибкое управление требованиями
Вебинар: Гибкое управление требованиями
 
"Этот код плохой, его нужно переписать". Слышали? Как обосновать
"Этот код плохой, его нужно переписать". Слышали? Как обосновать"Этот код плохой, его нужно переписать". Слышали? Как обосновать
"Этот код плохой, его нужно переписать". Слышали? Как обосновать
 
Аркадий Рушкевич
Аркадий РушкевичАркадий Рушкевич
Аркадий Рушкевич
 
ИКТ 03 Проектирование интерфейсов
ИКТ 03 Проектирование интерфейсовИКТ 03 Проектирование интерфейсов
ИКТ 03 Проектирование интерфейсов
 
Гибкое прототипирование для гибкой разработки (Максим Гапонов)
Гибкое прототипирование для гибкой разработки (Максим Гапонов)Гибкое прототипирование для гибкой разработки (Максим Гапонов)
Гибкое прототипирование для гибкой разработки (Максим Гапонов)
 
Как ставить задачи [копи]райтеру (Анна Каправчук)
Как ставить задачи [копи]райтеру (Анна Каправчук)Как ставить задачи [копи]райтеру (Анна Каправчук)
Как ставить задачи [копи]райтеру (Анна Каправчук)
 
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
 
2017-03-26 01 Григорий Косьяненко. Разработка ПО — это про людей, а не про код
2017-03-26 01 Григорий Косьяненко. Разработка ПО — это про людей, а не про код2017-03-26 01 Григорий Косьяненко. Разработка ПО — это про людей, а не про код
2017-03-26 01 Григорий Косьяненко. Разработка ПО — это про людей, а не про код
 
HR-бренд на практике. Определение целевой аудитории
HR-бренд на практике. Определение целевой аудиторииHR-бренд на практике. Определение целевой аудитории
HR-бренд на практике. Определение целевой аудитории
 
Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...
Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...
Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...
 
User Story Canvas
User Story CanvasUser Story Canvas
User Story Canvas
 
Вспомните о Пользователях
Вспомните о ПользователяхВспомните о Пользователях
Вспомните о Пользователях
 
Pedalim vacancy IT HR
Pedalim vacancy IT HRPedalim vacancy IT HR
Pedalim vacancy IT HR
 
Бесплатный вебинар по QA Александра Кузняка от проекта GoIT
Бесплатный вебинар по QA Александра Кузняка от проекта GoITБесплатный вебинар по QA Александра Кузняка от проекта GoIT
Бесплатный вебинар по QA Александра Кузняка от проекта GoIT
 
Почему проект не заканчивается после передачи его клиенту или что надо, чтобы...
Почему проект не заканчивается после передачи его клиенту или что надо, чтобы...Почему проект не заканчивается после передачи его клиенту или что надо, чтобы...
Почему проект не заканчивается после передачи его клиенту или что надо, чтобы...
 
Что тендер грядущий нам готовит
Что тендер грядущий нам готовитЧто тендер грядущий нам готовит
Что тендер грядущий нам готовит
 
Kupriyanov
KupriyanovKupriyanov
Kupriyanov
 
Performance engineering stories from #fdminicon Saransk
Performance engineering stories from #fdminicon SaranskPerformance engineering stories from #fdminicon Saransk
Performance engineering stories from #fdminicon Saransk
 

More from Dmytro Mindra

Introduction to Value Planning for iHUB
Introduction to Value Planning for iHUBIntroduction to Value Planning for iHUB
Introduction to Value Planning for iHUBDmytro Mindra
 
Mastering public speaking skills
Mastering public speaking skillsMastering public speaking skills
Mastering public speaking skillsDmytro Mindra
 
XP Days Ukraine 2014 - Refactoring legacy code
XP Days Ukraine 2014 - Refactoring legacy codeXP Days Ukraine 2014 - Refactoring legacy code
XP Days Ukraine 2014 - Refactoring legacy codeDmytro Mindra
 
Odessa .NET User Group - Kinect v2
Odessa .NET User Group - Kinect v2Odessa .NET User Group - Kinect v2
Odessa .NET User Group - Kinect v2Dmytro Mindra
 
Building Windows Phone 8 Games With Unity3d
Building Windows Phone 8 Games With Unity3dBuilding Windows Phone 8 Games With Unity3d
Building Windows Phone 8 Games With Unity3dDmytro Mindra
 
Odessa Pluralsight Study Group 28.11.2012
Odessa Pluralsight Study Group 28.11.2012Odessa Pluralsight Study Group 28.11.2012
Odessa Pluralsight Study Group 28.11.2012Dmytro Mindra
 
Тестируем код с Visual Studio 2012 - XP Days Ukraine 2012
Тестируем код с Visual Studio 2012 - XP Days Ukraine 2012Тестируем код с Visual Studio 2012 - XP Days Ukraine 2012
Тестируем код с Visual Studio 2012 - XP Days Ukraine 2012Dmytro Mindra
 
NetworkUA - 2012 - Introduction TypeScript
NetworkUA - 2012 - Introduction TypeScript NetworkUA - 2012 - Introduction TypeScript
NetworkUA - 2012 - Introduction TypeScript Dmytro Mindra
 
Ciklum .NET Saturday - Introduction to TypeScript
Ciklum .NET Saturday - Introduction to TypeScriptCiklum .NET Saturday - Introduction to TypeScript
Ciklum .NET Saturday - Introduction to TypeScriptDmytro Mindra
 
Lean Lego Game for Agileee 2012
Lean Lego Game for Agileee 2012Lean Lego Game for Agileee 2012
Lean Lego Game for Agileee 2012Dmytro Mindra
 
Lohika .Net Day - What's new in Windows Azure
Lohika .Net Day - What's new in Windows AzureLohika .Net Day - What's new in Windows Azure
Lohika .Net Day - What's new in Windows AzureDmytro Mindra
 
Web В РЕАЛЬНОМ ВРЕМЕНИ С Node.js - AgileBaseCamp - 2012
Web В РЕАЛЬНОМ ВРЕМЕНИ С Node.js - AgileBaseCamp - 2012Web В РЕАЛЬНОМ ВРЕМЕНИ С Node.js - AgileBaseCamp - 2012
Web В РЕАЛЬНОМ ВРЕМЕНИ С Node.js - AgileBaseCamp - 2012Dmytro Mindra
 
Windows Azure & NodeJS Microsoft SWIT 2012
Windows Azure & NodeJS Microsoft SWIT 2012 Windows Azure & NodeJS Microsoft SWIT 2012
Windows Azure & NodeJS Microsoft SWIT 2012 Dmytro Mindra
 
Lean Software Development
Lean Software DevelopmentLean Software Development
Lean Software DevelopmentDmytro Mindra
 
Craftsmanship - XP Days 2011
Craftsmanship - XP Days 2011Craftsmanship - XP Days 2011
Craftsmanship - XP Days 2011Dmytro Mindra
 
Odessa .NET User Group - 10.11.2011 - Applied Code Generation
Odessa .NET User Group - 10.11.2011 - Applied Code Generation Odessa .NET User Group - 10.11.2011 - Applied Code Generation
Odessa .NET User Group - 10.11.2011 - Applied Code Generation Dmytro Mindra
 
IT Brunch - 12.11.2011 - Myths about Design
IT Brunch - 12.11.2011 - Myths about DesignIT Brunch - 12.11.2011 - Myths about Design
IT Brunch - 12.11.2011 - Myths about DesignDmytro Mindra
 
NetWork - 15.10.2011 - Applied code generation in .NET
NetWork - 15.10.2011 - Applied code generation in .NET NetWork - 15.10.2011 - Applied code generation in .NET
NetWork - 15.10.2011 - Applied code generation in .NET Dmytro Mindra
 

More from Dmytro Mindra (20)

Introduction to Value Planning for iHUB
Introduction to Value Planning for iHUBIntroduction to Value Planning for iHUB
Introduction to Value Planning for iHUB
 
Mastering public speaking skills
Mastering public speaking skillsMastering public speaking skills
Mastering public speaking skills
 
XP Days Ukraine 2014 - Refactoring legacy code
XP Days Ukraine 2014 - Refactoring legacy codeXP Days Ukraine 2014 - Refactoring legacy code
XP Days Ukraine 2014 - Refactoring legacy code
 
Odessa .NET User Group - Kinect v2
Odessa .NET User Group - Kinect v2Odessa .NET User Group - Kinect v2
Odessa .NET User Group - Kinect v2
 
Building Windows Phone 8 Games With Unity3d
Building Windows Phone 8 Games With Unity3dBuilding Windows Phone 8 Games With Unity3d
Building Windows Phone 8 Games With Unity3d
 
Odessa Pluralsight Study Group 28.11.2012
Odessa Pluralsight Study Group 28.11.2012Odessa Pluralsight Study Group 28.11.2012
Odessa Pluralsight Study Group 28.11.2012
 
Тестируем код с Visual Studio 2012 - XP Days Ukraine 2012
Тестируем код с Visual Studio 2012 - XP Days Ukraine 2012Тестируем код с Visual Studio 2012 - XP Days Ukraine 2012
Тестируем код с Visual Studio 2012 - XP Days Ukraine 2012
 
NetworkUA - 2012 - Introduction TypeScript
NetworkUA - 2012 - Introduction TypeScript NetworkUA - 2012 - Introduction TypeScript
NetworkUA - 2012 - Introduction TypeScript
 
Ciklum .NET Saturday - Introduction to TypeScript
Ciklum .NET Saturday - Introduction to TypeScriptCiklum .NET Saturday - Introduction to TypeScript
Ciklum .NET Saturday - Introduction to TypeScript
 
Lean Lego Game for Agileee 2012
Lean Lego Game for Agileee 2012Lean Lego Game for Agileee 2012
Lean Lego Game for Agileee 2012
 
Lohika .Net Day - What's new in Windows Azure
Lohika .Net Day - What's new in Windows AzureLohika .Net Day - What's new in Windows Azure
Lohika .Net Day - What's new in Windows Azure
 
Web В РЕАЛЬНОМ ВРЕМЕНИ С Node.js - AgileBaseCamp - 2012
Web В РЕАЛЬНОМ ВРЕМЕНИ С Node.js - AgileBaseCamp - 2012Web В РЕАЛЬНОМ ВРЕМЕНИ С Node.js - AgileBaseCamp - 2012
Web В РЕАЛЬНОМ ВРЕМЕНИ С Node.js - AgileBaseCamp - 2012
 
Windows Azure & NodeJS Microsoft SWIT 2012
Windows Azure & NodeJS Microsoft SWIT 2012 Windows Azure & NodeJS Microsoft SWIT 2012
Windows Azure & NodeJS Microsoft SWIT 2012
 
Lean Software Development
Lean Software DevelopmentLean Software Development
Lean Software Development
 
Craftsmanship - XP Days 2011
Craftsmanship - XP Days 2011Craftsmanship - XP Days 2011
Craftsmanship - XP Days 2011
 
Agile architecture
Agile architectureAgile architecture
Agile architecture
 
DCI
DCIDCI
DCI
 
Odessa .NET User Group - 10.11.2011 - Applied Code Generation
Odessa .NET User Group - 10.11.2011 - Applied Code Generation Odessa .NET User Group - 10.11.2011 - Applied Code Generation
Odessa .NET User Group - 10.11.2011 - Applied Code Generation
 
IT Brunch - 12.11.2011 - Myths about Design
IT Brunch - 12.11.2011 - Myths about DesignIT Brunch - 12.11.2011 - Myths about Design
IT Brunch - 12.11.2011 - Myths about Design
 
NetWork - 15.10.2011 - Applied code generation in .NET
NetWork - 15.10.2011 - Applied code generation in .NET NetWork - 15.10.2011 - Applied code generation in .NET
NetWork - 15.10.2011 - Applied code generation in .NET
 

IT Brunch - SpecFlow and Gherkin by Example