SlideShare a Scribd company logo
1 of 25
Connected Systems Consulting Ltd

Behavior Driven BizTalk Development
Who am I?
Michael Stephenson
–

UK-Based Freelance Consultant specializing in:
•
•
•

BizTalk
Windows Azure
Integration

–

Was BizTalk MVP now a Microsoft Integration MVP for 5+ years

–

One of organizers of UK Connected Systems User Group

–

Blog: www.geekswithblogs.net/michaelstephenson

–

Twitter: @michael_Stephen

–

Linked In: http://www.linkedin.com/in/michaelstephensonuk1

Connected Systems Consulting Ltd
Agenda
•
•
•
•
•
•

BDD 101
How can BDD help BizTalk projects
Simple Specflow Example
Detailed BizTalk Example
Limitations
Discussion

Connected Systems Consulting Ltd
Setting the scene
•

Small integration team with a number of BizTalk and other integration projects or
varying sizes and flavours

•

Team already has fairly mature development processes

•

Growth in new projects and team size and complexity of projects

•

As a team we wanted to look at bringing in any new practices which we felt will help
us be more effective

•

How people use BDD in the .net world is something we have been looking at

Connected Systems Consulting Ltd
What is BDD
•

Behaviour Driven Development

•

Agile software development technique

•

Extends the idea of test driven development

•

Create a clear understanding of the behaviour of the software

•

Common language with the business

•

Is not a replacement for unit testing

Connected Systems Consulting Ltd
BDD 101
Gherkins & Cucumbers
• Cucumber
– A ruby tool that lets you specify a behaviour in terms of Given/When/Then

• The language/syntax is called Gherkin
• You define your behaviour in a “feature file” using the Gherkin language
• In .net world SpecFlow is a tool that lets us do the same thing (there are a
couple of others)

Connected Systems Consulting Ltd
Example Behaviour
Why is the feature
important

Who cares about
the feature

What are we
trying to do

Prerequisites
The
trigger

What should
happen
Key Points
Key Point

Description

Business Value

Identifying why a feature is needed helps
determine if its important

Scenarios

A feature can have multiple scenarios

Given/When/Then

Gives us an easy way to describe what
will happening a domain language the
business will understand

Development

We write code to implement the
behaviour

Connected Systems Consulting Ltd
HOW CAN BDD HELP BIZTALK PROJECTS?
Common Challenges
Area

Challenges

Requirements

X - Its difficult to capture effective requirements in enough detail
X – Its difficult the manage and communicate change in requirements
X – Its difficult to ensure the requirements that are in a release of code

Documentation

X – Documentation is often out of data
X – Documentation rarely matches what is deployed
X – Documentation is often big

Testing

X – Tests are often too technical to easily correlate to requirements
X – Its difficult to prove the software does what its supposed to

Connected Systems Consulting Ltd
An Example of current tests
• Tests are difficult to explain
to non technical people
• Tests are difficult to
understand if you don’t
understand the business
domain
• Its easy to read the
implementation but
difficult to understand the
intention of parts of a test
Initial thoughts
•

Can Gherkin help us define what we need to do?

•

Can the features describing behaviour become documentation?

•

Can we use the behaviours to help test BizTalk?

Connected Systems Consulting Ltd
Introducing SpecFlow
•

Specflow is a .net BDD framework

•

Define features and scenarios in Visual Studio using the Gherkin language

•

Features defined can become testable using SpecFlow

•

Specflow tests are acceptance tests

Connected Systems Consulting Ltd
What about BizUnit?
•

BizUnit is great at:
– Execution of tests
– Framework of test steps

•

BizUnit struggles often at:
– Helping you understand the intention of the test
– Tests are too techy

•

SpecFlow creates an abstraction between the intention and implementation of a
test

Connected Systems Consulting Ltd
Abstraction in the test

Gherkin

Specflow
Test Definition

BizUnit
Test Implementation
SIMPLE SPECFLOW EXAMPLE
DETAILED BIZTALK EXAMPLE
LIMITATIONS
Challenges
•

BizUnitOM is a little tricky & some test steps need to add implementation of
ITestStepOM.

•

SpecFlow after scenario cant be used to fire the test (use a final Then)

•

At present some BizUnit steps cant be ran without being in a BizUnit test so we
need to build up the BizUnit test then execute it

Connected Systems Consulting Ltd
SUMMARY
Common Challenges
Area

Challenges

Requirements

R - Requirements can be easily defined using Given/When/Then
R – Requirements are close to the code so easier to manage as features and scenarios
R – Requirements are defined in domain language

Documentation

R
R
R
R

Testing

R
R

- The

feature files can be used as part of the documentation

- The documentation is
-

accurate to the build of code and can be published with a release

The scenarios are effective to document the scenarios and are not over excessive

- The

scenarios are maintained with the code

- There’s
- The

an abstraction between the intention and implementation of tests making them easier to understand

requirements drive the testing

Connected Systems Consulting Ltd
Summary
“We have a well established integration capability with a mature ALM process, however Behaviour Driven
Development and SpecFlow is very interesting to us because it offers ways to simplify some of our current
pain points in the ALM process and make us more effective”
Would it help you?

Connected Systems Consulting Ltd
More Info

Source/Article

Link

SpecFlow

http://www.specflow.org/

Testing example with CAT
framework webcast

http://www.cloudcasts.net/ViewWebcast.aspx?webcastid=252102814503
7920619
Questions?

More Related Content

What's hot

FiSTB - agile testing
FiSTB - agile testingFiSTB - agile testing
FiSTB - agile testingKari Kakkonen
 
A glance at a scrum team in real software company
A glance at a scrum team in real software companyA glance at a scrum team in real software company
A glance at a scrum team in real software companyPin-Ying Tu
 
Integrating Hardware (Waterfall) and Software (Agile) Development
Integrating Hardware (Waterfall) and Software (Agile) DevelopmentIntegrating Hardware (Waterfall) and Software (Agile) Development
Integrating Hardware (Waterfall) and Software (Agile) DevelopmentIntland Software GmbH
 
The role of the architect in agile
The role of the architect in agileThe role of the architect in agile
The role of the architect in agileDror Helper
 
How To Review The Sprints Efficiently
How To Review The Sprints EfficientlyHow To Review The Sprints Efficiently
How To Review The Sprints EfficientlyLemi Orhan Ergin
 
Agility via Software Engineering Practices - Agile Tour Montreal 2015
Agility via Software Engineering Practices - Agile Tour Montreal 2015Agility via Software Engineering Practices - Agile Tour Montreal 2015
Agility via Software Engineering Practices - Agile Tour Montreal 2015Steve Mercier
 
Agile Testing – Is it for me and how are others doing it?
Agile Testing – Is it for me and how are others doing it?Agile Testing – Is it for me and how are others doing it?
Agile Testing – Is it for me and how are others doing it?Alexander Tarlinder
 
Going the Next Step? Agile Values and Hardware Development by Urs Boehm
Going the Next Step? Agile Values and Hardware Development by Urs BoehmGoing the Next Step? Agile Values and Hardware Development by Urs Boehm
Going the Next Step? Agile Values and Hardware Development by Urs BoehmPeter Stevens
 
Working with software architects - advice to project managers
Working with software architects - advice to project managersWorking with software architects - advice to project managers
Working with software architects - advice to project managersYaniv Pessach
 
Testing and DevOps Culture: Lessons Learned
Testing and DevOps Culture: Lessons LearnedTesting and DevOps Culture: Lessons Learned
Testing and DevOps Culture: Lessons LearnedLB Denker
 
Enter the mind of an Agile Developer
Enter the mind of an Agile DeveloperEnter the mind of an Agile Developer
Enter the mind of an Agile DeveloperBSGAfrica
 
Software Craftsmanship - It's an Imperative
Software Craftsmanship - It's an ImperativeSoftware Craftsmanship - It's an Imperative
Software Craftsmanship - It's an ImperativeFadi Stephan
 
Scrum Plus Extreme Programming (XP) for Hyper Productivity
Scrum Plus Extreme Programming (XP) for Hyper ProductivityScrum Plus Extreme Programming (XP) for Hyper Productivity
Scrum Plus Extreme Programming (XP) for Hyper ProductivityRon Quartel
 
Audrys Kažukauskas - Introduction into Extreme Programming
Audrys Kažukauskas - Introduction into Extreme ProgrammingAudrys Kažukauskas - Introduction into Extreme Programming
Audrys Kažukauskas - Introduction into Extreme ProgrammingAgile Lietuva
 
Integrating SDLC, DevOps, and ITSM
Integrating SDLC, DevOps, and ITSMIntegrating SDLC, DevOps, and ITSM
Integrating SDLC, DevOps, and ITSMBeyond20
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Developmentnikhil sreeni
 
Automated agile testing using Cucumber
Automated agile testing using CucumberAutomated agile testing using Cucumber
Automated agile testing using CucumberNaveen Kumar Singh
 

What's hot (20)

FiSTB - agile testing
FiSTB - agile testingFiSTB - agile testing
FiSTB - agile testing
 
A glance at a scrum team in real software company
A glance at a scrum team in real software companyA glance at a scrum team in real software company
A glance at a scrum team in real software company
 
Integrating Hardware (Waterfall) and Software (Agile) Development
Integrating Hardware (Waterfall) and Software (Agile) DevelopmentIntegrating Hardware (Waterfall) and Software (Agile) Development
Integrating Hardware (Waterfall) and Software (Agile) Development
 
The role of the architect in agile
The role of the architect in agileThe role of the architect in agile
The role of the architect in agile
 
How To Review The Sprints Efficiently
How To Review The Sprints EfficientlyHow To Review The Sprints Efficiently
How To Review The Sprints Efficiently
 
Agility via Software Engineering Practices - Agile Tour Montreal 2015
Agility via Software Engineering Practices - Agile Tour Montreal 2015Agility via Software Engineering Practices - Agile Tour Montreal 2015
Agility via Software Engineering Practices - Agile Tour Montreal 2015
 
Agile Testing – Is it for me and how are others doing it?
Agile Testing – Is it for me and how are others doing it?Agile Testing – Is it for me and how are others doing it?
Agile Testing – Is it for me and how are others doing it?
 
Going the Next Step? Agile Values and Hardware Development by Urs Boehm
Going the Next Step? Agile Values and Hardware Development by Urs BoehmGoing the Next Step? Agile Values and Hardware Development by Urs Boehm
Going the Next Step? Agile Values and Hardware Development by Urs Boehm
 
Working with software architects - advice to project managers
Working with software architects - advice to project managersWorking with software architects - advice to project managers
Working with software architects - advice to project managers
 
Dev ops
Dev opsDev ops
Dev ops
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
Testing and DevOps Culture: Lessons Learned
Testing and DevOps Culture: Lessons LearnedTesting and DevOps Culture: Lessons Learned
Testing and DevOps Culture: Lessons Learned
 
Enter the mind of an Agile Developer
Enter the mind of an Agile DeveloperEnter the mind of an Agile Developer
Enter the mind of an Agile Developer
 
Agile engineering practices
Agile engineering practicesAgile engineering practices
Agile engineering practices
 
Software Craftsmanship - It's an Imperative
Software Craftsmanship - It's an ImperativeSoftware Craftsmanship - It's an Imperative
Software Craftsmanship - It's an Imperative
 
Scrum Plus Extreme Programming (XP) for Hyper Productivity
Scrum Plus Extreme Programming (XP) for Hyper ProductivityScrum Plus Extreme Programming (XP) for Hyper Productivity
Scrum Plus Extreme Programming (XP) for Hyper Productivity
 
Audrys Kažukauskas - Introduction into Extreme Programming
Audrys Kažukauskas - Introduction into Extreme ProgrammingAudrys Kažukauskas - Introduction into Extreme Programming
Audrys Kažukauskas - Introduction into Extreme Programming
 
Integrating SDLC, DevOps, and ITSM
Integrating SDLC, DevOps, and ITSMIntegrating SDLC, DevOps, and ITSM
Integrating SDLC, DevOps, and ITSM
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Automated agile testing using Cucumber
Automated agile testing using CucumberAutomated agile testing using Cucumber
Automated agile testing using Cucumber
 

Similar to Behaviour Driven BizTalk Development

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
 
Automated Testing for BizTalk HL7 Solutions
Automated Testing for BizTalk HL7 SolutionsAutomated Testing for BizTalk HL7 Solutions
Automated Testing for BizTalk HL7 SolutionsMichael Stephenson
 
Webinar: 5 Clear Steps to Get Your Nonprofit Cloud Ready - 2018-5-31
Webinar: 5 Clear Steps to Get Your Nonprofit Cloud Ready - 2018-5-31Webinar: 5 Clear Steps to Get Your Nonprofit Cloud Ready - 2018-5-31
Webinar: 5 Clear Steps to Get Your Nonprofit Cloud Ready - 2018-5-31TechSoup
 
TDD with BizTalk
TDD with BizTalkTDD with BizTalk
TDD with BizTalkBen Carey
 
Microservices
MicroservicesMicroservices
MicroservicesPT.JUG
 
"X" Driven-Development Methodologies
"X" Driven-Development Methodologies"X" Driven-Development Methodologies
"X" Driven-Development MethodologiesDamian T. Gordon
 
Microservices at Scale: How to Reduce Overhead and Increase Developer Product...
Microservices at Scale: How to Reduce Overhead and Increase Developer Product...Microservices at Scale: How to Reduce Overhead and Increase Developer Product...
Microservices at Scale: How to Reduce Overhead and Increase Developer Product...DevOps.com
 
Lessons Learned from Large Scale Adoption of DevOps for IBM z Systems Software
Lessons Learned from Large Scale Adoption of DevOps for IBM z Systems SoftwareLessons Learned from Large Scale Adoption of DevOps for IBM z Systems Software
Lessons Learned from Large Scale Adoption of DevOps for IBM z Systems SoftwareDevOps for Enterprise Systems
 
Technical stories v1.2
Technical stories v1.2Technical stories v1.2
Technical stories v1.2Jim Brisson
 
Acceptance Test Driven Development
Acceptance Test Driven DevelopmentAcceptance Test Driven Development
Acceptance Test Driven DevelopmentMike Douglas
 
iSQI Certification Days DASA – DevOps & ISTQB Frank Frambach
iSQI Certification Days DASA – DevOps & ISTQB Frank FrambachiSQI Certification Days DASA – DevOps & ISTQB Frank Frambach
iSQI Certification Days DASA – DevOps & ISTQB Frank FrambachIevgenii Katsan
 
Measure and Accelerate Your Software Delivery
Measure and Accelerate Your Software DeliveryMeasure and Accelerate Your Software Delivery
Measure and Accelerate Your Software DeliveryAnand Chauhan
 
BA and Beyond 20 - Elke Steegmans and David Vandenbroeck - Behaviour-driven d...
BA and Beyond 20 - Elke Steegmans and David Vandenbroeck - Behaviour-driven d...BA and Beyond 20 - Elke Steegmans and David Vandenbroeck - Behaviour-driven d...
BA and Beyond 20 - Elke Steegmans and David Vandenbroeck - Behaviour-driven d...BA and Beyond
 
Mobile Code Optimisation Services
Mobile Code Optimisation ServicesMobile Code Optimisation Services
Mobile Code Optimisation ServicesRaja Nagendra Kumar
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous IntegrationXPDays
 
Unexpected benefits of .net development outsourcing. 2
Unexpected benefits of .net development outsourcing. 2Unexpected benefits of .net development outsourcing. 2
Unexpected benefits of .net development outsourcing. 2AnupamSingh211
 
Dev0PS online Training in Hyderabad
Dev0PS  online Training  in HyderabadDev0PS  online Training  in Hyderabad
Dev0PS online Training in HyderabadVijayVijji8
 
Best devops training in Hyderabad
Best devops training in HyderabadBest devops training in Hyderabad
Best devops training in HyderabadKumarNaik21
 
Dev ops online training ppt
Dev ops online training pptDev ops online training ppt
Dev ops online training pptSayyedYusufali
 

Similar to Behaviour Driven BizTalk Development (20)

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
 
Automated Testing for BizTalk HL7 Solutions
Automated Testing for BizTalk HL7 SolutionsAutomated Testing for BizTalk HL7 Solutions
Automated Testing for BizTalk HL7 Solutions
 
Webinar: 5 Clear Steps to Get Your Nonprofit Cloud Ready - 2018-5-31
Webinar: 5 Clear Steps to Get Your Nonprofit Cloud Ready - 2018-5-31Webinar: 5 Clear Steps to Get Your Nonprofit Cloud Ready - 2018-5-31
Webinar: 5 Clear Steps to Get Your Nonprofit Cloud Ready - 2018-5-31
 
TDD with BizTalk
TDD with BizTalkTDD with BizTalk
TDD with BizTalk
 
Microservices
MicroservicesMicroservices
Microservices
 
"X" Driven-Development Methodologies
"X" Driven-Development Methodologies"X" Driven-Development Methodologies
"X" Driven-Development Methodologies
 
Microservices at Scale: How to Reduce Overhead and Increase Developer Product...
Microservices at Scale: How to Reduce Overhead and Increase Developer Product...Microservices at Scale: How to Reduce Overhead and Increase Developer Product...
Microservices at Scale: How to Reduce Overhead and Increase Developer Product...
 
Lessons Learned from Large Scale Adoption of DevOps for IBM z Systems Software
Lessons Learned from Large Scale Adoption of DevOps for IBM z Systems SoftwareLessons Learned from Large Scale Adoption of DevOps for IBM z Systems Software
Lessons Learned from Large Scale Adoption of DevOps for IBM z Systems Software
 
Technical stories v1.2
Technical stories v1.2Technical stories v1.2
Technical stories v1.2
 
Acceptance Test Driven Development
Acceptance Test Driven DevelopmentAcceptance Test Driven Development
Acceptance Test Driven Development
 
iSQI Certification Days DASA – DevOps & ISTQB Frank Frambach
iSQI Certification Days DASA – DevOps & ISTQB Frank FrambachiSQI Certification Days DASA – DevOps & ISTQB Frank Frambach
iSQI Certification Days DASA – DevOps & ISTQB Frank Frambach
 
Measure and Accelerate Your Software Delivery
Measure and Accelerate Your Software DeliveryMeasure and Accelerate Your Software Delivery
Measure and Accelerate Your Software Delivery
 
BA and Beyond 20 - Elke Steegmans and David Vandenbroeck - Behaviour-driven d...
BA and Beyond 20 - Elke Steegmans and David Vandenbroeck - Behaviour-driven d...BA and Beyond 20 - Elke Steegmans and David Vandenbroeck - Behaviour-driven d...
BA and Beyond 20 - Elke Steegmans and David Vandenbroeck - Behaviour-driven d...
 
Mobile Code Optimisation Services
Mobile Code Optimisation ServicesMobile Code Optimisation Services
Mobile Code Optimisation Services
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
Unexpected benefits of .net development outsourcing. 2
Unexpected benefits of .net development outsourcing. 2Unexpected benefits of .net development outsourcing. 2
Unexpected benefits of .net development outsourcing. 2
 
Devops training
Devops trainingDevops training
Devops training
 
Dev0PS online Training in Hyderabad
Dev0PS  online Training  in HyderabadDev0PS  online Training  in Hyderabad
Dev0PS online Training in Hyderabad
 
Best devops training in Hyderabad
Best devops training in HyderabadBest devops training in Hyderabad
Best devops training in Hyderabad
 
Dev ops online training ppt
Dev ops online training pptDev ops online training ppt
Dev ops online training ppt
 

More from Michael Stephenson

LeedsSharp May 2023 - Azure Integration Services
LeedsSharp May 2023 - Azure Integration ServicesLeedsSharp May 2023 - Azure Integration Services
LeedsSharp May 2023 - Azure Integration ServicesMichael Stephenson
 
Azure enterprise integration platform
Azure enterprise integration platformAzure enterprise integration platform
Azure enterprise integration platformMichael Stephenson
 
How to tactically avoid boring work with Power Automate
How to tactically avoid boring work with Power AutomateHow to tactically avoid boring work with Power Automate
How to tactically avoid boring work with Power AutomateMichael Stephenson
 
Tech UG - Newcastle 09-17 - logic apps
Tech UG - Newcastle 09-17 -   logic appsTech UG - Newcastle 09-17 -   logic apps
Tech UG - Newcastle 09-17 - logic appsMichael Stephenson
 
2 speed it powered by microsoft azure
2 speed it powered by microsoft azure2 speed it powered by microsoft azure
2 speed it powered by microsoft azureMichael Stephenson
 
SharePoint User Group - Leeds - 2015-09-02
SharePoint User Group - Leeds - 2015-09-02SharePoint User Group - Leeds - 2015-09-02
SharePoint User Group - Leeds - 2015-09-02Michael Stephenson
 
BTUG - Dec 2014 - Hybrid Connectivity Options
BTUG - Dec 2014 - Hybrid Connectivity OptionsBTUG - Dec 2014 - Hybrid Connectivity Options
BTUG - Dec 2014 - Hybrid Connectivity OptionsMichael Stephenson
 
Uk user group biz talk performance deepdive
Uk user group   biz talk performance deepdiveUk user group   biz talk performance deepdive
Uk user group biz talk performance deepdiveMichael Stephenson
 
AppFx.ServiceBus - Simple Messaging with Windows Azure Service Bus
AppFx.ServiceBus - Simple Messaging with Windows Azure Service BusAppFx.ServiceBus - Simple Messaging with Windows Azure Service Bus
AppFx.ServiceBus - Simple Messaging with Windows Azure Service BusMichael Stephenson
 

More from Michael Stephenson (18)

LeedsSharp May 2023 - Azure Integration Services
LeedsSharp May 2023 - Azure Integration ServicesLeedsSharp May 2023 - Azure Integration Services
LeedsSharp May 2023 - Azure Integration Services
 
2022 02 Integration Bootcamp
2022 02 Integration Bootcamp2022 02 Integration Bootcamp
2022 02 Integration Bootcamp
 
Synapse for mere mortals
Synapse for mere mortalsSynapse for mere mortals
Synapse for mere mortals
 
Azure enterprise integration platform
Azure enterprise integration platformAzure enterprise integration platform
Azure enterprise integration platform
 
How to tactically avoid boring work with Power Automate
How to tactically avoid boring work with Power AutomateHow to tactically avoid boring work with Power Automate
How to tactically avoid boring work with Power Automate
 
Microsoft power platform
Microsoft power platformMicrosoft power platform
Microsoft power platform
 
Tech UG - Newcastle 09-17 - logic apps
Tech UG - Newcastle 09-17 -   logic appsTech UG - Newcastle 09-17 -   logic apps
Tech UG - Newcastle 09-17 - logic apps
 
Modern business intelligence
Modern business intelligenceModern business intelligence
Modern business intelligence
 
2 speed it powered by microsoft azure
2 speed it powered by microsoft azure2 speed it powered by microsoft azure
2 speed it powered by microsoft azure
 
Super charged prototyping
Super charged prototypingSuper charged prototyping
Super charged prototyping
 
SharePoint User Group - Leeds - 2015-09-02
SharePoint User Group - Leeds - 2015-09-02SharePoint User Group - Leeds - 2015-09-02
SharePoint User Group - Leeds - 2015-09-02
 
BTUG - Dec 2014 - Hybrid Connectivity Options
BTUG - Dec 2014 - Hybrid Connectivity OptionsBTUG - Dec 2014 - Hybrid Connectivity Options
BTUG - Dec 2014 - Hybrid Connectivity Options
 
Api management 101
Api management 101Api management 101
Api management 101
 
Finance integration 2
Finance integration 2Finance integration 2
Finance integration 2
 
Hybrid integration in a day 2
Hybrid integration in a day 2Hybrid integration in a day 2
Hybrid integration in a day 2
 
Uk user group biz talk performance deepdive
Uk user group   biz talk performance deepdiveUk user group   biz talk performance deepdive
Uk user group biz talk performance deepdive
 
BizTalk Maturity Assessment
BizTalk Maturity AssessmentBizTalk Maturity Assessment
BizTalk Maturity Assessment
 
AppFx.ServiceBus - Simple Messaging with Windows Azure Service Bus
AppFx.ServiceBus - Simple Messaging with Windows Azure Service BusAppFx.ServiceBus - Simple Messaging with Windows Azure Service Bus
AppFx.ServiceBus - Simple Messaging with Windows Azure Service Bus
 

Recently uploaded

Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 

Recently uploaded (20)

Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 

Behaviour Driven BizTalk Development

  • 1. Connected Systems Consulting Ltd Behavior Driven BizTalk Development
  • 2. Who am I? Michael Stephenson – UK-Based Freelance Consultant specializing in: • • • BizTalk Windows Azure Integration – Was BizTalk MVP now a Microsoft Integration MVP for 5+ years – One of organizers of UK Connected Systems User Group – Blog: www.geekswithblogs.net/michaelstephenson – Twitter: @michael_Stephen – Linked In: http://www.linkedin.com/in/michaelstephensonuk1 Connected Systems Consulting Ltd
  • 3. Agenda • • • • • • BDD 101 How can BDD help BizTalk projects Simple Specflow Example Detailed BizTalk Example Limitations Discussion Connected Systems Consulting Ltd
  • 4. Setting the scene • Small integration team with a number of BizTalk and other integration projects or varying sizes and flavours • Team already has fairly mature development processes • Growth in new projects and team size and complexity of projects • As a team we wanted to look at bringing in any new practices which we felt will help us be more effective • How people use BDD in the .net world is something we have been looking at Connected Systems Consulting Ltd
  • 5. What is BDD • Behaviour Driven Development • Agile software development technique • Extends the idea of test driven development • Create a clear understanding of the behaviour of the software • Common language with the business • Is not a replacement for unit testing Connected Systems Consulting Ltd
  • 7. Gherkins & Cucumbers • Cucumber – A ruby tool that lets you specify a behaviour in terms of Given/When/Then • The language/syntax is called Gherkin • You define your behaviour in a “feature file” using the Gherkin language • In .net world SpecFlow is a tool that lets us do the same thing (there are a couple of others) Connected Systems Consulting Ltd
  • 8. Example Behaviour Why is the feature important Who cares about the feature What are we trying to do Prerequisites The trigger What should happen
  • 9. Key Points Key Point Description Business Value Identifying why a feature is needed helps determine if its important Scenarios A feature can have multiple scenarios Given/When/Then Gives us an easy way to describe what will happening a domain language the business will understand Development We write code to implement the behaviour Connected Systems Consulting Ltd
  • 10. HOW CAN BDD HELP BIZTALK PROJECTS?
  • 11. Common Challenges Area Challenges Requirements X - Its difficult to capture effective requirements in enough detail X – Its difficult the manage and communicate change in requirements X – Its difficult to ensure the requirements that are in a release of code Documentation X – Documentation is often out of data X – Documentation rarely matches what is deployed X – Documentation is often big Testing X – Tests are often too technical to easily correlate to requirements X – Its difficult to prove the software does what its supposed to Connected Systems Consulting Ltd
  • 12. An Example of current tests • Tests are difficult to explain to non technical people • Tests are difficult to understand if you don’t understand the business domain • Its easy to read the implementation but difficult to understand the intention of parts of a test
  • 13. Initial thoughts • Can Gherkin help us define what we need to do? • Can the features describing behaviour become documentation? • Can we use the behaviours to help test BizTalk? Connected Systems Consulting Ltd
  • 14. Introducing SpecFlow • Specflow is a .net BDD framework • Define features and scenarios in Visual Studio using the Gherkin language • Features defined can become testable using SpecFlow • Specflow tests are acceptance tests Connected Systems Consulting Ltd
  • 15. What about BizUnit? • BizUnit is great at: – Execution of tests – Framework of test steps • BizUnit struggles often at: – Helping you understand the intention of the test – Tests are too techy • SpecFlow creates an abstraction between the intention and implementation of a test Connected Systems Consulting Ltd
  • 16. Abstraction in the test Gherkin Specflow Test Definition BizUnit Test Implementation
  • 20. Challenges • BizUnitOM is a little tricky & some test steps need to add implementation of ITestStepOM. • SpecFlow after scenario cant be used to fire the test (use a final Then) • At present some BizUnit steps cant be ran without being in a BizUnit test so we need to build up the BizUnit test then execute it Connected Systems Consulting Ltd
  • 22. Common Challenges Area Challenges Requirements R - Requirements can be easily defined using Given/When/Then R – Requirements are close to the code so easier to manage as features and scenarios R – Requirements are defined in domain language Documentation R R R R Testing R R - The feature files can be used as part of the documentation - The documentation is - accurate to the build of code and can be published with a release The scenarios are effective to document the scenarios and are not over excessive - The scenarios are maintained with the code - There’s - The an abstraction between the intention and implementation of tests making them easier to understand requirements drive the testing Connected Systems Consulting Ltd
  • 23. Summary “We have a well established integration capability with a mature ALM process, however Behaviour Driven Development and SpecFlow is very interesting to us because it offers ways to simplify some of our current pain points in the ALM process and make us more effective” Would it help you? Connected Systems Consulting Ltd
  • 24. More Info Source/Article Link SpecFlow http://www.specflow.org/ Testing example with CAT framework webcast http://www.cloudcasts.net/ViewWebcast.aspx?webcastid=252102814503 7920619