SlideShare a Scribd company logo
1 of 24
How it can help your team be more
productive?
BDD
CONTENT
• Introduction
• How we came to BDD?
• What is BDD in general?
• BDD with SpecFlow
• Benefits
• Started as developer in 2006 at Litera
• In 2009 moved to USA
• In 2011 started at Levi9 Ukraine
• Currently
• Head of .Net department
• .Net Architect
• Lead of Agile competence area in Kiev delivery center
• Scrum Master at Exact, running 2 teams
HOW I AM ?
WHAT WE ARE DOING AT EXACT
• Code design
• SOLID
• Clean Code
• XP practices
• UI testing
• Unit Testing
• Integration Testing
• Pair programming
• TDD
RESULT
• Developer really thinking about code design
• Better code (design, coupling, patters,
cleaner…)
• Test coverage increased
• More trust in code
• Better cooperation between SE
• Developer more happier
PROBLEM
Time of releasing a feature has increased!
WHY?
• User story acceptance criteria are well defined
• We did not change requirements during the sprint
• We already have some mockups, flow diagrams
• Team became more experience
• Team produces even more code than before
• Etc
• Looks like nothing has changed …
DEVELOPMENT FLOW
Dev Test PO check Production
Dev
Test
PO
check
SCRUM REFINEMENT
ILLUSTRATED WITH SHARED EXAMPLE
DISCOVERING NEW ASPECTS
SOUNDS LIKE BDD, DOESN`T IT?
• It’s more than just testing, it’s a process.
• Automated tests specifications in human-readable language
• More collaboration between domain experts, product owners,
QA and developers.
Most useful for achieving automated acceptance testing:
Together with a domain expert you define the acceptance criteria in
a specification.
This specification can be executed against the system under test.
WHAT IS BEHAVIOUR-DRIVEN DEVELOPMENT?
• Example
• Expectation
• Should
• Behavior
• Specification
• Given When Then
• Test →
• Assertion →
• assert →
• Unit →
• Verification →
• Arrange Act Assert
• … and so on
BDD IS MORE THAN “TDD DONE RIGHT”
Story: Returns go to stock
As a store owner
I want to add items back to stock when they're returned
In order to keep track of stock
Scenario 1: Refunded items should be returned to stock
Given a customer previously bought a black sweater from me
And I currently have three black sweaters left in stock
When he returns the sweater for a refund
Then I should have four black sweaters in stock
Scenario 2: …
User story
(just scrum)
All scenarios that should
be handled for this user
story to be “Done”
STORY TO BDD SCENARIO
System under testSpecification
Story: Returns go to stock
As a store owner
I want to add items back to stock when they're returned
In order to keep track of stock
Scenario 1: Refunded items should be returned to stock
Given a customer previously bought a black sweater from me
And I currently have three black sweaters left in stock
When he returns the sweater for a refund
Then I should have four black sweaters in stock
Scenario 2: …
Then: validate the system
state
WHAT IS BEHAVIOUR-DRIVEN DEVELOPMENT?
• xBehave – for everyone (SpecFlow, NBehave)
• xSpec – for developers (MSpec, NSpec, )
2 TYPES OF BDD
SPECFLOW
PM> Install-Package SpecFlow.NUnit
FEATURE FILE
Scenario: login a as user
Given I am logged in as CustomerTrade:
When I execute GET /api/Accounts/{id}
Then the status code should be 200
And the result should contain the following:
| Name | AddressLine1 |
| ConnectivityTest | Main street 12 |
[Given(@"I am logged in as (.+)")]
public void GivenIAmLoggedIn(string name)
{
// do something in the system under test
// application.login(name);
}
We create a test language of regular expressions.
We bind recognized sentences to C#/VB.NET commands.
That’s why we call these definitions bindings.
WHAT IS BEHAVIOUR-DRIVEN DEVELOPMENT?
Specification
Story: Returns go to stock
As a store owner
I want to add items back to stock when they're returned
In order to keep track of stock
Scenario 1: Refunded items should be returned to stock
Given a customer previously bought a black sweater from me
And I currently have three black sweaters left in stock
When he returns the sweater for a refund
Then I should have four black sweaters in stock
Scenario 2: …
C# / VB.NET
Test case for
each scenario
Bindings 
definition of a Test
Language
MSTest/nUnit/xinut
Test Runner
PASS/FAIL
per scenario
parse all
steps
WHAT IS BEHAVIOUR-DRIVEN DEVELOPMENT?
Where does BDD fit in?
BDD can actually be applied at many
levels, but is most effective for
automated acceptance tests.
Unit tests are about software
verification
Are we building the software right?
Acceptance tests are about software
validation
Are we building the right software?
WHAT IS BEHAVIOUR-DRIVEN DEVELOPMENT?
BENEFITS
• Speed up feature delivering by decreasing defects
• Helped facilitate a conversations with the business
through a common language
• Developers and non-developers both writing tests
and taking ownership.
• Better understanding what is covered by SE and QE
QUESTIONS

More Related Content

What's hot

Behavior driven development - cucumber, Junit and java
Behavior driven development - cucumber, Junit and javaBehavior driven development - cucumber, Junit and java
Behavior driven development - cucumber, Junit and javaNaveen Kumar Singh
 
Behavior Driven Development with Cucumber
Behavior Driven Development with CucumberBehavior Driven Development with Cucumber
Behavior Driven Development with CucumberAsheesh Mehdiratta
 
Selenium + Specflow
Selenium + SpecflowSelenium + Specflow
Selenium + Specflowcromwellryan
 
CBDW2014 - Behavior Driven Development with TestBox
CBDW2014 - Behavior Driven Development with TestBoxCBDW2014 - Behavior Driven Development with TestBox
CBDW2014 - Behavior Driven Development with TestBoxOrtus Solutions, Corp
 
Shift Remote: Mobile - Efficiently Building Native Frameworks for Multiple Pl...
Shift Remote: Mobile - Efficiently Building Native Frameworks for Multiple Pl...Shift Remote: Mobile - Efficiently Building Native Frameworks for Multiple Pl...
Shift Remote: Mobile - Efficiently Building Native Frameworks for Multiple Pl...Shift Conference
 
Bdd – with cucumber and gherkin
Bdd – with cucumber and gherkinBdd – with cucumber and gherkin
Bdd – with cucumber and gherkinArati Joshi
 
BDD testing with cucumber
BDD testing with cucumberBDD testing with cucumber
BDD testing with cucumberDaniel Kummer
 
Behavior Driven Testing - A paradigm shift
Behavior Driven Testing - A paradigm shiftBehavior Driven Testing - A paradigm shift
Behavior Driven Testing - A paradigm shiftAspire Systems
 

What's hot (9)

Jasmine
JasmineJasmine
Jasmine
 
Behavior driven development - cucumber, Junit and java
Behavior driven development - cucumber, Junit and javaBehavior driven development - cucumber, Junit and java
Behavior driven development - cucumber, Junit and java
 
Behavior Driven Development with Cucumber
Behavior Driven Development with CucumberBehavior Driven Development with Cucumber
Behavior Driven Development with Cucumber
 
Selenium + Specflow
Selenium + SpecflowSelenium + Specflow
Selenium + Specflow
 
CBDW2014 - Behavior Driven Development with TestBox
CBDW2014 - Behavior Driven Development with TestBoxCBDW2014 - Behavior Driven Development with TestBox
CBDW2014 - Behavior Driven Development with TestBox
 
Shift Remote: Mobile - Efficiently Building Native Frameworks for Multiple Pl...
Shift Remote: Mobile - Efficiently Building Native Frameworks for Multiple Pl...Shift Remote: Mobile - Efficiently Building Native Frameworks for Multiple Pl...
Shift Remote: Mobile - Efficiently Building Native Frameworks for Multiple Pl...
 
Bdd – with cucumber and gherkin
Bdd – with cucumber and gherkinBdd – with cucumber and gherkin
Bdd – with cucumber and gherkin
 
BDD testing with cucumber
BDD testing with cucumberBDD testing with cucumber
BDD testing with cucumber
 
Behavior Driven Testing - A paradigm shift
Behavior Driven Testing - A paradigm shiftBehavior Driven Testing - A paradigm shift
Behavior Driven Testing - A paradigm shift
 

Viewers also liked

Moving to tdd bdd
Moving to tdd bddMoving to tdd bdd
Moving to tdd bddKim Carter
 
Bdd - history and myths
Bdd - history and mythsBdd - history and myths
Bdd - history and mythsSeb Rose
 
Behavior Driven Development with AngularJS & Jasmine
Behavior Driven Development with AngularJS & JasmineBehavior Driven Development with AngularJS & Jasmine
Behavior Driven Development with AngularJS & JasmineRemus Langu
 
Agile with Waterfall
Agile with WaterfallAgile with Waterfall
Agile with WaterfallPeter Dye
 
Behavior Driven Development (BDD)
Behavior Driven Development (BDD) Behavior Driven Development (BDD)
Behavior Driven Development (BDD) Scio Consulting
 
Implementing Behavior Driven Development in an Open Source ERP
Implementing Behavior Driven Development in an Open Source ERPImplementing Behavior Driven Development in an Open Source ERP
Implementing Behavior Driven Development in an Open Source ERPCONFENIS 2012
 
Given/When/Then-ready sprint planning (Agile Tour Vienna 2015)
Given/When/Then-ready sprint planning (Agile Tour Vienna 2015)Given/When/Then-ready sprint planning (Agile Tour Vienna 2015)
Given/When/Then-ready sprint planning (Agile Tour Vienna 2015)Gáspár Nagy
 
Coding With Confidence: Adding TDD to Your Toolset
Coding With Confidence: Adding TDD to Your ToolsetCoding With Confidence: Adding TDD to Your Toolset
Coding With Confidence: Adding TDD to Your ToolsetPatrick Reagan
 
Say Hello 2 Bdd
Say Hello 2 BddSay Hello 2 Bdd
Say Hello 2 Bddmh_azad
 
An ATDD Case Study
An ATDD Case StudyAn ATDD Case Study
An ATDD Case StudyJon Kruger
 
Changing Your Mindset: Getting Started with Test-Driven Development
Changing Your Mindset: Getting Started with Test-Driven DevelopmentChanging Your Mindset: Getting Started with Test-Driven Development
Changing Your Mindset: Getting Started with Test-Driven DevelopmentPatrick Reagan
 
How to bdd with concordion
How to bdd with concordionHow to bdd with concordion
How to bdd with concordionAMikitas
 
Td dvs bdd
Td dvs bddTd dvs bdd
Td dvs bddlsajrf
 
Behaviour-Driven Development
Behaviour-Driven DevelopmentBehaviour-Driven Development
Behaviour-Driven DevelopmentKerry Buckley
 

Viewers also liked (20)

bdd behaviour driven development
bdd behaviour driven developmentbdd behaviour driven development
bdd behaviour driven development
 
Moving to tdd bdd
Moving to tdd bddMoving to tdd bdd
Moving to tdd bdd
 
Bdd - history and myths
Bdd - history and mythsBdd - history and myths
Bdd - history and myths
 
MyPresentation2
MyPresentation2MyPresentation2
MyPresentation2
 
Behavior Driven Development with AngularJS & Jasmine
Behavior Driven Development with AngularJS & JasmineBehavior Driven Development with AngularJS & Jasmine
Behavior Driven Development with AngularJS & Jasmine
 
Agile with Waterfall
Agile with WaterfallAgile with Waterfall
Agile with Waterfall
 
Dev Day
Dev DayDev Day
Dev Day
 
Behavior Driven Development (BDD)
Behavior Driven Development (BDD) Behavior Driven Development (BDD)
Behavior Driven Development (BDD)
 
Resume
ResumeResume
Resume
 
Implementing Behavior Driven Development in an Open Source ERP
Implementing Behavior Driven Development in an Open Source ERPImplementing Behavior Driven Development in an Open Source ERP
Implementing Behavior Driven Development in an Open Source ERP
 
Given/When/Then-ready sprint planning (Agile Tour Vienna 2015)
Given/When/Then-ready sprint planning (Agile Tour Vienna 2015)Given/When/Then-ready sprint planning (Agile Tour Vienna 2015)
Given/When/Then-ready sprint planning (Agile Tour Vienna 2015)
 
Coding With Confidence: Adding TDD to Your Toolset
Coding With Confidence: Adding TDD to Your ToolsetCoding With Confidence: Adding TDD to Your Toolset
Coding With Confidence: Adding TDD to Your Toolset
 
Say Hello 2 Bdd
Say Hello 2 BddSay Hello 2 Bdd
Say Hello 2 Bdd
 
An ATDD Case Study
An ATDD Case StudyAn ATDD Case Study
An ATDD Case Study
 
Changing Your Mindset: Getting Started with Test-Driven Development
Changing Your Mindset: Getting Started with Test-Driven DevelopmentChanging Your Mindset: Getting Started with Test-Driven Development
Changing Your Mindset: Getting Started with Test-Driven Development
 
BDD TDD ATDD
BDD TDD ATDDBDD TDD ATDD
BDD TDD ATDD
 
How to bdd with concordion
How to bdd with concordionHow to bdd with concordion
How to bdd with concordion
 
Td dvs bdd
Td dvs bddTd dvs bdd
Td dvs bdd
 
Behaviour-Driven Development
Behaviour-Driven DevelopmentBehaviour-Driven Development
Behaviour-Driven Development
 
(A)TDD The what, why and how
(A)TDD The what, why and how(A)TDD The what, why and how
(A)TDD The what, why and how
 

Similar to Руслан Плахута - Внедрение BDD в распределенные команды

Moving away from legacy code with BDD
Moving away from legacy code with BDDMoving away from legacy code with BDD
Moving away from legacy code with BDDKonstantin Kudryashov
 
Please Behave Yourself: BDD and automating Eclipse RCP applications using JBe...
Please Behave Yourself: BDD and automating Eclipse RCP applications using JBe...Please Behave Yourself: BDD and automating Eclipse RCP applications using JBe...
Please Behave Yourself: BDD and automating Eclipse RCP applications using JBe...Eclipse Day India
 
Business driven development
Business driven developmentBusiness driven development
Business driven developmentBenoy John, CSM
 
What CS Class Didn't Teach About Testing
What CS Class Didn't Teach About TestingWhat CS Class Didn't Teach About Testing
What CS Class Didn't Teach About TestingCamille Bell
 
Introduction to Unit Testing, BDD and Mocking using TestBox & MockBox at Into...
Introduction to Unit Testing, BDD and Mocking using TestBox & MockBox at Into...Introduction to Unit Testing, BDD and Mocking using TestBox & MockBox at Into...
Introduction to Unit Testing, BDD and Mocking using TestBox & MockBox at Into...Ortus Solutions, Corp
 
Introduction to Unit Testing, BDD and Mocking using TestBox & MockBox at Adob...
Introduction to Unit Testing, BDD and Mocking using TestBox & MockBox at Adob...Introduction to Unit Testing, BDD and Mocking using TestBox & MockBox at Adob...
Introduction to Unit Testing, BDD and Mocking using TestBox & MockBox at Adob...Uma Ghotikar
 
Is Your API Misbehaving (workshop)
Is Your API Misbehaving (workshop)Is Your API Misbehaving (workshop)
Is Your API Misbehaving (workshop)Keith Casey
 
Moving away from legacy code with BDD
Moving away from legacy code with BDDMoving away from legacy code with BDD
Moving away from legacy code with BDDKonstantin Kudryashov
 
Software Testing
Software TestingSoftware Testing
Software Testingsuperphly
 
Features, Exportables & You
Features, Exportables & YouFeatures, Exportables & You
Features, Exportables & Youjskulski
 
Setting Up CircleCI Workflows for Your Salesforce Apps
Setting Up CircleCI Workflows for Your Salesforce AppsSetting Up CircleCI Workflows for Your Salesforce Apps
Setting Up CircleCI Workflows for Your Salesforce AppsDaniel Stange
 
Prashant technical practices-tdd for xebia event
Prashant   technical practices-tdd for xebia eventPrashant   technical practices-tdd for xebia event
Prashant technical practices-tdd for xebia eventXebia India
 
BDD Selenium for Agile Teams - User Stories
BDD Selenium for Agile Teams - User StoriesBDD Selenium for Agile Teams - User Stories
BDD Selenium for Agile Teams - User StoriesSauce Labs
 
Integration Testing with Selenium
Integration Testing with SeleniumIntegration Testing with Selenium
Integration Testing with SeleniumAll Things Open
 
Behat for writing tests in a stylized way
Behat for writing tests in a stylized wayBehat for writing tests in a stylized way
Behat for writing tests in a stylized wayRavindra Singh
 
Acceptance Test Driven Development
Acceptance Test Driven DevelopmentAcceptance Test Driven Development
Acceptance Test Driven DevelopmentAmir Barylko
 
Building In Quality: The Beauty Of Behavior Driven Development (BDD)
Building In Quality: The Beauty Of Behavior Driven Development (BDD)Building In Quality: The Beauty Of Behavior Driven Development (BDD)
Building In Quality: The Beauty Of Behavior Driven Development (BDD)Synerzip
 

Similar to Руслан Плахута - Внедрение BDD в распределенные команды (20)

Moving away from legacy code with BDD
Moving away from legacy code with BDDMoving away from legacy code with BDD
Moving away from legacy code with BDD
 
Please Behave Yourself: BDD and automating Eclipse RCP applications using JBe...
Please Behave Yourself: BDD and automating Eclipse RCP applications using JBe...Please Behave Yourself: BDD and automating Eclipse RCP applications using JBe...
Please Behave Yourself: BDD and automating Eclipse RCP applications using JBe...
 
Business driven development
Business driven developmentBusiness driven development
Business driven development
 
What CS Class Didn't Teach About Testing
What CS Class Didn't Teach About TestingWhat CS Class Didn't Teach About Testing
What CS Class Didn't Teach About Testing
 
Design Without Types
Design Without TypesDesign Without Types
Design Without Types
 
Bdd in action
Bdd in actionBdd in action
Bdd in action
 
Introduction to Unit Testing, BDD and Mocking using TestBox & MockBox at Into...
Introduction to Unit Testing, BDD and Mocking using TestBox & MockBox at Into...Introduction to Unit Testing, BDD and Mocking using TestBox & MockBox at Into...
Introduction to Unit Testing, BDD and Mocking using TestBox & MockBox at Into...
 
Introduction to Unit Testing, BDD and Mocking using TestBox & MockBox at Adob...
Introduction to Unit Testing, BDD and Mocking using TestBox & MockBox at Adob...Introduction to Unit Testing, BDD and Mocking using TestBox & MockBox at Adob...
Introduction to Unit Testing, BDD and Mocking using TestBox & MockBox at Adob...
 
Is Your API Misbehaving (workshop)
Is Your API Misbehaving (workshop)Is Your API Misbehaving (workshop)
Is Your API Misbehaving (workshop)
 
Moving away from legacy code with BDD
Moving away from legacy code with BDDMoving away from legacy code with BDD
Moving away from legacy code with BDD
 
Software Testing
Software TestingSoftware Testing
Software Testing
 
Features, Exportables & You
Features, Exportables & YouFeatures, Exportables & You
Features, Exportables & You
 
Setting Up CircleCI Workflows for Your Salesforce Apps
Setting Up CircleCI Workflows for Your Salesforce AppsSetting Up CircleCI Workflows for Your Salesforce Apps
Setting Up CircleCI Workflows for Your Salesforce Apps
 
Prashant technical practices-tdd for xebia event
Prashant   technical practices-tdd for xebia eventPrashant   technical practices-tdd for xebia event
Prashant technical practices-tdd for xebia event
 
BDD Selenium for Agile Teams - User Stories
BDD Selenium for Agile Teams - User StoriesBDD Selenium for Agile Teams - User Stories
BDD Selenium for Agile Teams - User Stories
 
Integration Testing with Selenium
Integration Testing with SeleniumIntegration Testing with Selenium
Integration Testing with Selenium
 
Behat for writing tests in a stylized way
Behat for writing tests in a stylized wayBehat for writing tests in a stylized way
Behat for writing tests in a stylized way
 
A battle tested CI/CD Pipeline
A battle tested CI/CD PipelineA battle tested CI/CD Pipeline
A battle tested CI/CD Pipeline
 
Acceptance Test Driven Development
Acceptance Test Driven DevelopmentAcceptance Test Driven Development
Acceptance Test Driven Development
 
Building In Quality: The Beauty Of Behavior Driven Development (BDD)
Building In Quality: The Beauty Of Behavior Driven Development (BDD)Building In Quality: The Beauty Of Behavior Driven Development (BDD)
Building In Quality: The Beauty Of Behavior Driven Development (BDD)
 

More from ITSpringBY

Юрий Чернявский - Вам с кровью или без? - Проблемы выбора методологии разрабо...
Юрий Чернявский - Вам с кровью или без? - Проблемы выбора методологии разрабо...Юрий Чернявский - Вам с кровью или без? - Проблемы выбора методологии разрабо...
Юрий Чернявский - Вам с кровью или без? - Проблемы выбора методологии разрабо...ITSpringBY
 
Наталья Макаева - Лидерами рождаются или становятся?
Наталья Макаева - Лидерами рождаются или становятся?Наталья Макаева - Лидерами рождаются или становятся?
Наталья Макаева - Лидерами рождаются или становятся?ITSpringBY
 
Дмитрий Kaневский - Люди всегда побеждают
Дмитрий Kaневский - Люди всегда побеждаютДмитрий Kaневский - Люди всегда побеждают
Дмитрий Kaневский - Люди всегда побеждаютITSpringBY
 
Сергей Дерцап - Risks management. Why not?
Сергей Дерцап - Risks management. Why not?Сергей Дерцап - Risks management. Why not?
Сергей Дерцап - Risks management. Why not?ITSpringBY
 
Сергей Бережной - Как пасти… самомотивированные команды
Сергей Бережной - Как пасти… самомотивированные командыСергей Бережной - Как пасти… самомотивированные команды
Сергей Бережной - Как пасти… самомотивированные командыITSpringBY
 
Светлана Мухина - Коучинг на практике: рабочие примеры и техники
Светлана Мухина - Коучинг на практике: рабочие примеры и техникиСветлана Мухина - Коучинг на практике: рабочие примеры и техники
Светлана Мухина - Коучинг на практике: рабочие примеры и техникиITSpringBY
 
Павел Лебедев - Управление взаимоотношениями с инвесторами и привлечение фина...
Павел Лебедев - Управление взаимоотношениями с инвесторами и привлечение фина...Павел Лебедев - Управление взаимоотношениями с инвесторами и привлечение фина...
Павел Лебедев - Управление взаимоотношениями с инвесторами и привлечение фина...ITSpringBY
 
Дмитрий Безуглый - Стратегическое планирование в условиях быстрых изменений
Дмитрий Безуглый - Стратегическое планирование в условиях быстрых измененийДмитрий Безуглый - Стратегическое планирование в условиях быстрых изменений
Дмитрий Безуглый - Стратегическое планирование в условиях быстрых измененийITSpringBY
 
Денис Филеев - Невыносимая легкость бытия - сложность принятия простых решений
Денис Филеев - Невыносимая легкость бытия - сложность принятия простых решенийДенис Филеев - Невыносимая легкость бытия - сложность принятия простых решений
Денис Филеев - Невыносимая легкость бытия - сложность принятия простых решенийITSpringBY
 
Gary Jones - Managing Agile teams
Gary Jones - Managing Agile teamsGary Jones - Managing Agile teams
Gary Jones - Managing Agile teamsITSpringBY
 
Юлия Пучнина - Внедрение TDD на большом-пребольшом проекте
Юлия Пучнина - Внедрение TDD на большом-пребольшом проектеЮлия Пучнина - Внедрение TDD на большом-пребольшом проекте
Юлия Пучнина - Внедрение TDD на большом-пребольшом проектеITSpringBY
 
Степан Данилов - Стартап: как управлять командой которой еще нет
Степан Данилов - Стартап: как управлять командой которой еще нетСтепан Данилов - Стартап: как управлять командой которой еще нет
Степан Данилов - Стартап: как управлять командой которой еще нетITSpringBY
 
Павел Чуняев - State of Continuous Delivery in 2015
Павел Чуняев - State of Continuous Delivery in 2015Павел Чуняев - State of Continuous Delivery in 2015
Павел Чуняев - State of Continuous Delivery in 2015ITSpringBY
 
Богдан Мисюра и Андрей Павленко - Реалии внедрения скрама в аутсорсинговые ко...
Богдан Мисюра и Андрей Павленко - Реалии внедрения скрама в аутсорсинговые ко...Богдан Мисюра и Андрей Павленко - Реалии внедрения скрама в аутсорсинговые ко...
Богдан Мисюра и Андрей Павленко - Реалии внедрения скрама в аутсорсинговые ко...ITSpringBY
 
Ирина Тетерук - Принципы Lean-Agile лидерства
Ирина Тетерук - Принципы Lean-Agile лидерстваИрина Тетерук - Принципы Lean-Agile лидерства
Ирина Тетерук - Принципы Lean-Agile лидерстваITSpringBY
 
Дмитрий Лобасев - Что отличает крутую команду от крутой Agile-команды
Дмитрий Лобасев - Что отличает крутую команду от крутой Agile-командыДмитрий Лобасев - Что отличает крутую команду от крутой Agile-команды
Дмитрий Лобасев - Что отличает крутую команду от крутой Agile-командыITSpringBY
 
Андрей Лепеев - HR Lego Менеджмент компетенций
Андрей Лепеев - HR Lego Менеджмент компетенцийАндрей Лепеев - HR Lego Менеджмент компетенций
Андрей Лепеев - HR Lego Менеджмент компетенцийITSpringBY
 

More from ITSpringBY (17)

Юрий Чернявский - Вам с кровью или без? - Проблемы выбора методологии разрабо...
Юрий Чернявский - Вам с кровью или без? - Проблемы выбора методологии разрабо...Юрий Чернявский - Вам с кровью или без? - Проблемы выбора методологии разрабо...
Юрий Чернявский - Вам с кровью или без? - Проблемы выбора методологии разрабо...
 
Наталья Макаева - Лидерами рождаются или становятся?
Наталья Макаева - Лидерами рождаются или становятся?Наталья Макаева - Лидерами рождаются или становятся?
Наталья Макаева - Лидерами рождаются или становятся?
 
Дмитрий Kaневский - Люди всегда побеждают
Дмитрий Kaневский - Люди всегда побеждаютДмитрий Kaневский - Люди всегда побеждают
Дмитрий Kaневский - Люди всегда побеждают
 
Сергей Дерцап - Risks management. Why not?
Сергей Дерцап - Risks management. Why not?Сергей Дерцап - Risks management. Why not?
Сергей Дерцап - Risks management. Why not?
 
Сергей Бережной - Как пасти… самомотивированные команды
Сергей Бережной - Как пасти… самомотивированные командыСергей Бережной - Как пасти… самомотивированные команды
Сергей Бережной - Как пасти… самомотивированные команды
 
Светлана Мухина - Коучинг на практике: рабочие примеры и техники
Светлана Мухина - Коучинг на практике: рабочие примеры и техникиСветлана Мухина - Коучинг на практике: рабочие примеры и техники
Светлана Мухина - Коучинг на практике: рабочие примеры и техники
 
Павел Лебедев - Управление взаимоотношениями с инвесторами и привлечение фина...
Павел Лебедев - Управление взаимоотношениями с инвесторами и привлечение фина...Павел Лебедев - Управление взаимоотношениями с инвесторами и привлечение фина...
Павел Лебедев - Управление взаимоотношениями с инвесторами и привлечение фина...
 
Дмитрий Безуглый - Стратегическое планирование в условиях быстрых изменений
Дмитрий Безуглый - Стратегическое планирование в условиях быстрых измененийДмитрий Безуглый - Стратегическое планирование в условиях быстрых изменений
Дмитрий Безуглый - Стратегическое планирование в условиях быстрых изменений
 
Денис Филеев - Невыносимая легкость бытия - сложность принятия простых решений
Денис Филеев - Невыносимая легкость бытия - сложность принятия простых решенийДенис Филеев - Невыносимая легкость бытия - сложность принятия простых решений
Денис Филеев - Невыносимая легкость бытия - сложность принятия простых решений
 
Gary Jones - Managing Agile teams
Gary Jones - Managing Agile teamsGary Jones - Managing Agile teams
Gary Jones - Managing Agile teams
 
Юлия Пучнина - Внедрение TDD на большом-пребольшом проекте
Юлия Пучнина - Внедрение TDD на большом-пребольшом проектеЮлия Пучнина - Внедрение TDD на большом-пребольшом проекте
Юлия Пучнина - Внедрение TDD на большом-пребольшом проекте
 
Степан Данилов - Стартап: как управлять командой которой еще нет
Степан Данилов - Стартап: как управлять командой которой еще нетСтепан Данилов - Стартап: как управлять командой которой еще нет
Степан Данилов - Стартап: как управлять командой которой еще нет
 
Павел Чуняев - State of Continuous Delivery in 2015
Павел Чуняев - State of Continuous Delivery in 2015Павел Чуняев - State of Continuous Delivery in 2015
Павел Чуняев - State of Continuous Delivery in 2015
 
Богдан Мисюра и Андрей Павленко - Реалии внедрения скрама в аутсорсинговые ко...
Богдан Мисюра и Андрей Павленко - Реалии внедрения скрама в аутсорсинговые ко...Богдан Мисюра и Андрей Павленко - Реалии внедрения скрама в аутсорсинговые ко...
Богдан Мисюра и Андрей Павленко - Реалии внедрения скрама в аутсорсинговые ко...
 
Ирина Тетерук - Принципы Lean-Agile лидерства
Ирина Тетерук - Принципы Lean-Agile лидерстваИрина Тетерук - Принципы Lean-Agile лидерства
Ирина Тетерук - Принципы Lean-Agile лидерства
 
Дмитрий Лобасев - Что отличает крутую команду от крутой Agile-команды
Дмитрий Лобасев - Что отличает крутую команду от крутой Agile-командыДмитрий Лобасев - Что отличает крутую команду от крутой Agile-команды
Дмитрий Лобасев - Что отличает крутую команду от крутой Agile-команды
 
Андрей Лепеев - HR Lego Менеджмент компетенций
Андрей Лепеев - HR Lego Менеджмент компетенцийАндрей Лепеев - HR Lego Менеджмент компетенций
Андрей Лепеев - HR Lego Менеджмент компетенций
 

Recently uploaded

VIP 7001035870 Find & Meet Hyderabad Call Girls Ameerpet high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls Ameerpet high-profile Call GirlVIP 7001035870 Find & Meet Hyderabad Call Girls Ameerpet high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls Ameerpet high-profile Call Girladitipandeya
 
CALL ON ➥8923113531 🔝Call Girls Charbagh Lucknow best sexual service
CALL ON ➥8923113531 🔝Call Girls Charbagh Lucknow best sexual serviceCALL ON ➥8923113531 🔝Call Girls Charbagh Lucknow best sexual service
CALL ON ➥8923113531 🔝Call Girls Charbagh Lucknow best sexual serviceanilsa9823
 
Call now : 9892124323 Nalasopara Beautiful Call Girls Vasai virar Best Call G...
Call now : 9892124323 Nalasopara Beautiful Call Girls Vasai virar Best Call G...Call now : 9892124323 Nalasopara Beautiful Call Girls Vasai virar Best Call G...
Call now : 9892124323 Nalasopara Beautiful Call Girls Vasai virar Best Call G...Pooja Nehwal
 
{ 9892124323 }} Call Girls & Escorts in Hotel JW Marriott juhu, Mumbai
{ 9892124323 }} Call Girls & Escorts in Hotel JW Marriott juhu, Mumbai{ 9892124323 }} Call Girls & Escorts in Hotel JW Marriott juhu, Mumbai
{ 9892124323 }} Call Girls & Escorts in Hotel JW Marriott juhu, MumbaiPooja Nehwal
 
Day 0- Bootcamp Roadmap for PLC Bootcamp
Day 0- Bootcamp Roadmap for PLC BootcampDay 0- Bootcamp Roadmap for PLC Bootcamp
Day 0- Bootcamp Roadmap for PLC BootcampPLCLeadershipDevelop
 
GENUINE Babe,Call Girls IN Baderpur Delhi | +91-8377087607
GENUINE Babe,Call Girls IN Baderpur  Delhi | +91-8377087607GENUINE Babe,Call Girls IN Baderpur  Delhi | +91-8377087607
GENUINE Babe,Call Girls IN Baderpur Delhi | +91-8377087607dollysharma2066
 
VIP 7001035870 Find & Meet Hyderabad Call Girls Kondapur high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls Kondapur high-profile Call GirlVIP 7001035870 Find & Meet Hyderabad Call Girls Kondapur high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls Kondapur high-profile Call Girladitipandeya
 
CEO of Google, Sunder Pichai's biography
CEO of Google, Sunder Pichai's biographyCEO of Google, Sunder Pichai's biography
CEO of Google, Sunder Pichai's biographyHafizMuhammadAbdulla5
 
VIP Kolkata Call Girl Rajarhat 👉 8250192130 Available With Room
VIP Kolkata Call Girl Rajarhat 👉 8250192130  Available With RoomVIP Kolkata Call Girl Rajarhat 👉 8250192130  Available With Room
VIP Kolkata Call Girl Rajarhat 👉 8250192130 Available With Roomdivyansh0kumar0
 
Pooja Mehta 9167673311, Trusted Call Girls In NAVI MUMBAI Cash On Payment , V...
Pooja Mehta 9167673311, Trusted Call Girls In NAVI MUMBAI Cash On Payment , V...Pooja Mehta 9167673311, Trusted Call Girls In NAVI MUMBAI Cash On Payment , V...
Pooja Mehta 9167673311, Trusted Call Girls In NAVI MUMBAI Cash On Payment , V...Pooja Nehwal
 

Recently uploaded (20)

VIP 7001035870 Find & Meet Hyderabad Call Girls Ameerpet high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls Ameerpet high-profile Call GirlVIP 7001035870 Find & Meet Hyderabad Call Girls Ameerpet high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls Ameerpet high-profile Call Girl
 
CALL ON ➥8923113531 🔝Call Girls Charbagh Lucknow best sexual service
CALL ON ➥8923113531 🔝Call Girls Charbagh Lucknow best sexual serviceCALL ON ➥8923113531 🔝Call Girls Charbagh Lucknow best sexual service
CALL ON ➥8923113531 🔝Call Girls Charbagh Lucknow best sexual service
 
Unlocking the Future - Dr Max Blumberg, Founder of Blumberg Partnership
Unlocking the Future - Dr Max Blumberg, Founder of Blumberg PartnershipUnlocking the Future - Dr Max Blumberg, Founder of Blumberg Partnership
Unlocking the Future - Dr Max Blumberg, Founder of Blumberg Partnership
 
LoveLocalGov - Chris Twigg, Inner Circle
LoveLocalGov - Chris Twigg, Inner CircleLoveLocalGov - Chris Twigg, Inner Circle
LoveLocalGov - Chris Twigg, Inner Circle
 
Call now : 9892124323 Nalasopara Beautiful Call Girls Vasai virar Best Call G...
Call now : 9892124323 Nalasopara Beautiful Call Girls Vasai virar Best Call G...Call now : 9892124323 Nalasopara Beautiful Call Girls Vasai virar Best Call G...
Call now : 9892124323 Nalasopara Beautiful Call Girls Vasai virar Best Call G...
 
{ 9892124323 }} Call Girls & Escorts in Hotel JW Marriott juhu, Mumbai
{ 9892124323 }} Call Girls & Escorts in Hotel JW Marriott juhu, Mumbai{ 9892124323 }} Call Girls & Escorts in Hotel JW Marriott juhu, Mumbai
{ 9892124323 }} Call Girls & Escorts in Hotel JW Marriott juhu, Mumbai
 
Imagine - HR; are handling the 'bad banter' - Stella Chandler.pdf
Imagine - HR; are handling the 'bad banter' - Stella Chandler.pdfImagine - HR; are handling the 'bad banter' - Stella Chandler.pdf
Imagine - HR; are handling the 'bad banter' - Stella Chandler.pdf
 
Day 0- Bootcamp Roadmap for PLC Bootcamp
Day 0- Bootcamp Roadmap for PLC BootcampDay 0- Bootcamp Roadmap for PLC Bootcamp
Day 0- Bootcamp Roadmap for PLC Bootcamp
 
Call Girls Service Tilak Nagar @9999965857 Delhi 🫦 No Advance VVIP 🍎 SERVICE
Call Girls Service Tilak Nagar @9999965857 Delhi 🫦 No Advance  VVIP 🍎 SERVICECall Girls Service Tilak Nagar @9999965857 Delhi 🫦 No Advance  VVIP 🍎 SERVICE
Call Girls Service Tilak Nagar @9999965857 Delhi 🫦 No Advance VVIP 🍎 SERVICE
 
Empowering Local Government Frontline Services - Mo Baines.pdf
Empowering Local Government Frontline Services - Mo Baines.pdfEmpowering Local Government Frontline Services - Mo Baines.pdf
Empowering Local Government Frontline Services - Mo Baines.pdf
 
Rohini Sector 16 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 16 Call Girls Delhi 9999965857 @Sabina Saikh No AdvanceRohini Sector 16 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 16 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
 
GENUINE Babe,Call Girls IN Baderpur Delhi | +91-8377087607
GENUINE Babe,Call Girls IN Baderpur  Delhi | +91-8377087607GENUINE Babe,Call Girls IN Baderpur  Delhi | +91-8377087607
GENUINE Babe,Call Girls IN Baderpur Delhi | +91-8377087607
 
VIP 7001035870 Find & Meet Hyderabad Call Girls Kondapur high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls Kondapur high-profile Call GirlVIP 7001035870 Find & Meet Hyderabad Call Girls Kondapur high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls Kondapur high-profile Call Girl
 
CEO of Google, Sunder Pichai's biography
CEO of Google, Sunder Pichai's biographyCEO of Google, Sunder Pichai's biography
CEO of Google, Sunder Pichai's biography
 
VIP Kolkata Call Girl Rajarhat 👉 8250192130 Available With Room
VIP Kolkata Call Girl Rajarhat 👉 8250192130  Available With RoomVIP Kolkata Call Girl Rajarhat 👉 8250192130  Available With Room
VIP Kolkata Call Girl Rajarhat 👉 8250192130 Available With Room
 
Peak Performance & Resilience - Dr Dorian Dugmore
Peak Performance & Resilience - Dr Dorian DugmorePeak Performance & Resilience - Dr Dorian Dugmore
Peak Performance & Resilience - Dr Dorian Dugmore
 
Imagine - Creating Healthy Workplaces - Anthony Montgomery.pdf
Imagine - Creating Healthy Workplaces - Anthony Montgomery.pdfImagine - Creating Healthy Workplaces - Anthony Montgomery.pdf
Imagine - Creating Healthy Workplaces - Anthony Montgomery.pdf
 
Leadership in Crisis - Helio Vogas, Risk & Leadership Keynote Speaker
Leadership in Crisis - Helio Vogas, Risk & Leadership Keynote SpeakerLeadership in Crisis - Helio Vogas, Risk & Leadership Keynote Speaker
Leadership in Crisis - Helio Vogas, Risk & Leadership Keynote Speaker
 
Discover -CQ Master Class - Rikita Wadhwa.pdf
Discover -CQ Master Class - Rikita Wadhwa.pdfDiscover -CQ Master Class - Rikita Wadhwa.pdf
Discover -CQ Master Class - Rikita Wadhwa.pdf
 
Pooja Mehta 9167673311, Trusted Call Girls In NAVI MUMBAI Cash On Payment , V...
Pooja Mehta 9167673311, Trusted Call Girls In NAVI MUMBAI Cash On Payment , V...Pooja Mehta 9167673311, Trusted Call Girls In NAVI MUMBAI Cash On Payment , V...
Pooja Mehta 9167673311, Trusted Call Girls In NAVI MUMBAI Cash On Payment , V...
 

Руслан Плахута - Внедрение BDD в распределенные команды

  • 1. How it can help your team be more productive? BDD
  • 2. CONTENT • Introduction • How we came to BDD? • What is BDD in general? • BDD with SpecFlow • Benefits
  • 3. • Started as developer in 2006 at Litera • In 2009 moved to USA • In 2011 started at Levi9 Ukraine • Currently • Head of .Net department • .Net Architect • Lead of Agile competence area in Kiev delivery center • Scrum Master at Exact, running 2 teams HOW I AM ?
  • 4. WHAT WE ARE DOING AT EXACT • Code design • SOLID • Clean Code • XP practices • UI testing • Unit Testing • Integration Testing • Pair programming • TDD
  • 5. RESULT • Developer really thinking about code design • Better code (design, coupling, patters, cleaner…) • Test coverage increased • More trust in code • Better cooperation between SE • Developer more happier
  • 6. PROBLEM Time of releasing a feature has increased!
  • 7. WHY? • User story acceptance criteria are well defined • We did not change requirements during the sprint • We already have some mockups, flow diagrams • Team became more experience • Team produces even more code than before • Etc • Looks like nothing has changed …
  • 8. DEVELOPMENT FLOW Dev Test PO check Production Dev Test PO check
  • 12. SOUNDS LIKE BDD, DOESN`T IT?
  • 13. • It’s more than just testing, it’s a process. • Automated tests specifications in human-readable language • More collaboration between domain experts, product owners, QA and developers. Most useful for achieving automated acceptance testing: Together with a domain expert you define the acceptance criteria in a specification. This specification can be executed against the system under test. WHAT IS BEHAVIOUR-DRIVEN DEVELOPMENT?
  • 14. • Example • Expectation • Should • Behavior • Specification • Given When Then • Test → • Assertion → • assert → • Unit → • Verification → • Arrange Act Assert • … and so on BDD IS MORE THAN “TDD DONE RIGHT”
  • 15. Story: Returns go to stock As a store owner I want to add items back to stock when they're returned In order to keep track of stock Scenario 1: Refunded items should be returned to stock Given a customer previously bought a black sweater from me And I currently have three black sweaters left in stock When he returns the sweater for a refund Then I should have four black sweaters in stock Scenario 2: … User story (just scrum) All scenarios that should be handled for this user story to be “Done” STORY TO BDD SCENARIO
  • 16. System under testSpecification Story: Returns go to stock As a store owner I want to add items back to stock when they're returned In order to keep track of stock Scenario 1: Refunded items should be returned to stock Given a customer previously bought a black sweater from me And I currently have three black sweaters left in stock When he returns the sweater for a refund Then I should have four black sweaters in stock Scenario 2: … Then: validate the system state WHAT IS BEHAVIOUR-DRIVEN DEVELOPMENT?
  • 17. • xBehave – for everyone (SpecFlow, NBehave) • xSpec – for developers (MSpec, NSpec, ) 2 TYPES OF BDD
  • 19. FEATURE FILE Scenario: login a as user Given I am logged in as CustomerTrade: When I execute GET /api/Accounts/{id} Then the status code should be 200 And the result should contain the following: | Name | AddressLine1 | | ConnectivityTest | Main street 12 |
  • 20. [Given(@"I am logged in as (.+)")] public void GivenIAmLoggedIn(string name) { // do something in the system under test // application.login(name); } We create a test language of regular expressions. We bind recognized sentences to C#/VB.NET commands. That’s why we call these definitions bindings. WHAT IS BEHAVIOUR-DRIVEN DEVELOPMENT?
  • 21. Specification Story: Returns go to stock As a store owner I want to add items back to stock when they're returned In order to keep track of stock Scenario 1: Refunded items should be returned to stock Given a customer previously bought a black sweater from me And I currently have three black sweaters left in stock When he returns the sweater for a refund Then I should have four black sweaters in stock Scenario 2: … C# / VB.NET Test case for each scenario Bindings  definition of a Test Language MSTest/nUnit/xinut Test Runner PASS/FAIL per scenario parse all steps WHAT IS BEHAVIOUR-DRIVEN DEVELOPMENT?
  • 22. Where does BDD fit in? BDD can actually be applied at many levels, but is most effective for automated acceptance tests. Unit tests are about software verification Are we building the software right? Acceptance tests are about software validation Are we building the right software? WHAT IS BEHAVIOUR-DRIVEN DEVELOPMENT?
  • 23. BENEFITS • Speed up feature delivering by decreasing defects • Helped facilitate a conversations with the business through a common language • Developers and non-developers both writing tests and taking ownership. • Better understanding what is covered by SE and QE

Editor's Notes

  1. Over all we were able to produce more code with better quality but over all time for delivery become slower then faster.
  2. More defects (remarks) after testing and PO check Every body was focus on technical aspects
  3. You may ask: “what why slower”? Good question and I start to think about it. Here is some findings:
  4. Language inform your thoughts Scope
  5. Is it magic? How does this mapping take place?
  6. http://stackoverflow.com/questions/307895/what-is-the-most-mature-bdd-framework-for-net