SlideShare a Scribd company logo
1 of 13
10/23/2018 Nelson Johnson Extending D365 with Azure www.broadpoint.net 110/23/2018 Nelson Johnson Behavior Driven Development www.broadpoint.net 1
Behavior Driven
Development
By Nelson Johnson
Solution Architect
BroadPoint Technologies
10/23/2018 Nelson Johnson Extending D365 with Azure www.broadpoint.net 2
Who is Nelson Johnson?
• Started programming 1977…in high school…on a mainframe
• Became full time software consultant in 1982
• BS in MIS and Decision Science from George Mason University
• Worked at DARPA creating web apps in 1996
• Working with CRM since version 3
• Solution Architect for BroadPoint Technologies, LLC
• Email: njohnson@broadpoint.net
10/23/2018 Nelson Johnson Extending D365 with Azure www.broadpoint.net 3
What is Behavior Driven Development (BDD)
• Framework for software testing
• Abstraction layer on top of typical Test Driven Development
• Uses structured English phrases to invoke TDD functions
• Gherkin Language (https://cucumber.io/)
• User defined – very flexible
10/23/2018 Nelson Johnson Extending D365 with Azure www.broadpoint.net 4
Why BDD
• Makes it easier to involve end users to develop tests
• Added transparency between requirement and test
• Separates user behavior from test implementation
• Utilizes dev-ops methodologies for higher business value
• Increases turnaround time
• Build Verification Testing
• CRM Upgrade Testing
• There is a downside
• Can take a long time to run
• Complex logic may be difficult to verify
10/23/2018 Nelson Johnson Extending D365 with Azure www.broadpoint.net 5
How easy is it to learn Gherkin?
Feature: SearchByPhone_PhoneCall
As an end user I need the ability to
search for contacts by phone number
@SearchByPhoneNumber
Scenario: Return Login Only
Given I log into CRM
When I navigate to Sales to get to Activities
When I click on Phone Call
And I set field phonenumber to '2369874125'
Then Check the value of lookup field bpt_callercontact to see if it is 1 Login Only Phone
10/23/2018 Nelson Johnson Extending D365 with Azure www.broadpoint.net 6
Parts needed
• Dynamics 365 CE
• Visual Studio
• Unit test project
• EasyRepro
• Includes Selenium framework
• SpecFlow
• Browser Drivers
• Chromedriver.exe
• Geckodriver.exe
• Project/bin/debug folder
MSTest
Step.cs
SpecFlow Generated Feature.CS
Selenium
Feature Test Script
EasyRepro
Browser Driver
10/23/2018 Nelson Johnson Extending D365 with Azure www.broadpoint.net 7
<packages>
<package id="Dynamics365.UIAutomation.Api" version="9.0.1.4" targetFramework="net47" />
<package id="MSTest.TestAdapter" version="1.2.1" targetFramework="net471" />
<package id="MSTest.TestFramework" version="1.2.1" targetFramework="net471" />
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="net471" />
<package id="Selenium.Chrome.WebDriver" version="2.38" targetFramework="net471" />
<package id="Selenium.Support" version="3.11.2" targetFramework="net471" />
<package id="Selenium.WebDriver" version="3.11.2" targetFramework="net471" />
<package id="SpecFlow" version="2.3.2" targetFramework="net471" />
<package id="SpecFlow.MsTest" version="2.3.2" targetFramework="net471" />
<package id="System.ValueTuple" version="4.3.0" targetFramework="net471" />
</packages>
10/23/2018 Nelson Johnson Extending D365 with Azure www.broadpoint.net 8
Setting it up
• Create new Unit test project
• Rename UnitTest1.cs to AllSteps.cs
• Build the project
• Verify there are no issues
• Set up credentials
• Choose Browser
10/23/2018 Nelson Johnson Extending D365 with Azure www.broadpoint.net 9
Add SpecFlow Feature file
• Add
• New Item
• SpecFlow Feature File
• CreateContact
10/23/2018 Nelson Johnson Extending D365 with Azure www.broadpoint.net 10
Create first test
Feature: CreateContact
In order to make sure we can create a user
@mytag
Scenario: Create regular contact
Given I log into CRM
When I Quick Create Contact
When I set keypress field email to 'njohnsontest@mailinator.com'
When I set keypress field firstname to 'Neil'
When I set keypress field lastname to 'Johnson'
When I click on Save
10/23/2018 Nelson Johnson Extending D365 with Azure www.broadpoint.net 11
Resources
• Wael Hamze Blog:
https://waelhamze.wordpress.com/2018/02/27/bdd-for-dynamics-
365-ce/
• Wael Hamze GitHub: https://github.com/WaelHamze/dyn365-ce-bdd
• EasyRepro: https://github.com/Microsoft/EasyRepro
• SpecFlow: https://specflow.org/getting-started/
10/23/2018 Nelson Johnson Extending D365 with Azure www.broadpoint.net 12www.broadpoint.net
Q&A
Nelson Johnson
njohnson@broadpoint.net
301-634-2442
https://www.linkedin.com/in/nelsonjohnson/
10/23/2018 Nelson Johnson Extending D365 with Azure www.broadpoint.net 13www.broadpoint.net
Thank You!
Nelson Johnson
njohnson@broadpoint.net
301-634-2442
https://www.linkedin.com/in/nelsonjohnson/

More Related Content

What's hot

Java Beginners Meetup February 2017: Testing and TDD
Java Beginners Meetup February 2017: Testing and TDDJava Beginners Meetup February 2017: Testing and TDD
Java Beginners Meetup February 2017: Testing and TDDPatrick Kostjens
 
Automated test: How to increase his power
Automated test: How to increase his powerAutomated test: How to increase his power
Automated test: How to increase his powerDaniel Gordillo
 
8 tips for mastering node.js
8 tips for mastering node.js8 tips for mastering node.js
8 tips for mastering node.jsSolution Analysts
 
All Around Azure: DevOps with GitHub - Managing the Flow of Work
All Around Azure: DevOps with GitHub - Managing the Flow of WorkAll Around Azure: DevOps with GitHub - Managing the Flow of Work
All Around Azure: DevOps with GitHub - Managing the Flow of WorkDavide Benvegnù
 
Three amigos: Bitbucket + Jenkins + Docker
Three amigos: Bitbucket + Jenkins + DockerThree amigos: Bitbucket + Jenkins + Docker
Three amigos: Bitbucket + Jenkins + DockerDaniel Gordillo
 
Test driven development in meteor
Test driven development in meteorTest driven development in meteor
Test driven development in meteorMichael Lazarski
 
Close Encounters: Connecting with Users to Improve Content
Close Encounters: Connecting with Users to Improve ContentClose Encounters: Connecting with Users to Improve Content
Close Encounters: Connecting with Users to Improve Contentpatricia_gale
 
Introduction to Puppet Enterprise 10/03/2018
Introduction to Puppet Enterprise 10/03/2018Introduction to Puppet Enterprise 10/03/2018
Introduction to Puppet Enterprise 10/03/2018Puppet
 
Behavior driven development. Testing drupal using behat
Behavior driven development. Testing drupal using behatBehavior driven development. Testing drupal using behat
Behavior driven development. Testing drupal using behatAndrei Jechiu
 
Continuous Integration (CI) - An effective development practice
Continuous Integration (CI) - An effective development practiceContinuous Integration (CI) - An effective development practice
Continuous Integration (CI) - An effective development practiceDao Ngoc Kien
 
Jenkins - From Continuous Integration to Continuous Delivery
Jenkins - From Continuous Integration to Continuous DeliveryJenkins - From Continuous Integration to Continuous Delivery
Jenkins - From Continuous Integration to Continuous DeliveryVirendra Bhalothia
 
DevOps Days Columbus - Derek Weeks - 2019
DevOps Days Columbus - Derek Weeks - 2019DevOps Days Columbus - Derek Weeks - 2019
DevOps Days Columbus - Derek Weeks - 2019Sonatype
 
TDD in functional testing with WebDriver
TDD in functional testing with WebDriverTDD in functional testing with WebDriver
TDD in functional testing with WebDriverMikalai Alimenkou
 
Behavior Driven Development with SpecFlow
Behavior Driven Development with SpecFlowBehavior Driven Development with SpecFlow
Behavior Driven Development with SpecFlowRachid Kherrazi
 
Get your Hero Groove On - Heroes Reborn
Get your Hero Groove On - Heroes RebornGet your Hero Groove On - Heroes Reborn
Get your Hero Groove On - Heroes RebornCaleb Jenkins
 

What's hot (19)

Java Beginners Meetup February 2017: Testing and TDD
Java Beginners Meetup February 2017: Testing and TDDJava Beginners Meetup February 2017: Testing and TDD
Java Beginners Meetup February 2017: Testing and TDD
 
The Task Model
The Task ModelThe Task Model
The Task Model
 
Automated test: How to increase his power
Automated test: How to increase his powerAutomated test: How to increase his power
Automated test: How to increase his power
 
8 tips for mastering node.js
8 tips for mastering node.js8 tips for mastering node.js
8 tips for mastering node.js
 
All Around Azure: DevOps with GitHub - Managing the Flow of Work
All Around Azure: DevOps with GitHub - Managing the Flow of WorkAll Around Azure: DevOps with GitHub - Managing the Flow of Work
All Around Azure: DevOps with GitHub - Managing the Flow of Work
 
Three amigos: Bitbucket + Jenkins + Docker
Three amigos: Bitbucket + Jenkins + DockerThree amigos: Bitbucket + Jenkins + Docker
Three amigos: Bitbucket + Jenkins + Docker
 
Test driven development in meteor
Test driven development in meteorTest driven development in meteor
Test driven development in meteor
 
10 Myth of DevSecOps
10 Myth of DevSecOps10 Myth of DevSecOps
10 Myth of DevSecOps
 
Close Encounters: Connecting with Users to Improve Content
Close Encounters: Connecting with Users to Improve ContentClose Encounters: Connecting with Users to Improve Content
Close Encounters: Connecting with Users to Improve Content
 
Introduction to Puppet Enterprise 10/03/2018
Introduction to Puppet Enterprise 10/03/2018Introduction to Puppet Enterprise 10/03/2018
Introduction to Puppet Enterprise 10/03/2018
 
DevOps or DevSecOps
DevOps or DevSecOpsDevOps or DevSecOps
DevOps or DevSecOps
 
Behavior driven development. Testing drupal using behat
Behavior driven development. Testing drupal using behatBehavior driven development. Testing drupal using behat
Behavior driven development. Testing drupal using behat
 
Continuous Integration (CI) - An effective development practice
Continuous Integration (CI) - An effective development practiceContinuous Integration (CI) - An effective development practice
Continuous Integration (CI) - An effective development practice
 
Jenkins - From Continuous Integration to Continuous Delivery
Jenkins - From Continuous Integration to Continuous DeliveryJenkins - From Continuous Integration to Continuous Delivery
Jenkins - From Continuous Integration to Continuous Delivery
 
DevOps Days Columbus - Derek Weeks - 2019
DevOps Days Columbus - Derek Weeks - 2019DevOps Days Columbus - Derek Weeks - 2019
DevOps Days Columbus - Derek Weeks - 2019
 
TDD in functional testing with WebDriver
TDD in functional testing with WebDriverTDD in functional testing with WebDriver
TDD in functional testing with WebDriver
 
Continuous integration with Jenkins
Continuous integration with JenkinsContinuous integration with Jenkins
Continuous integration with Jenkins
 
Behavior Driven Development with SpecFlow
Behavior Driven Development with SpecFlowBehavior Driven Development with SpecFlow
Behavior Driven Development with SpecFlow
 
Get your Hero Groove On - Heroes Reborn
Get your Hero Groove On - Heroes RebornGet your Hero Groove On - Heroes Reborn
Get your Hero Groove On - Heroes Reborn
 

Similar to Behavior Driven Development

Prasad cv
Prasad cvPrasad cv
Prasad cvindu452
 
Extending D365 with Azure
Extending D365 with AzureExtending D365 with Azure
Extending D365 with AzureNelson Johnson
 
CucumberSeleniumWD
CucumberSeleniumWDCucumberSeleniumWD
CucumberSeleniumWDVikas Sarin
 
Rakesh_Resume
Rakesh_ResumeRakesh_Resume
Rakesh_ResumeRakesh Br
 
Sasikumar Selvaraj CV- Mainframe
Sasikumar Selvaraj CV- MainframeSasikumar Selvaraj CV- Mainframe
Sasikumar Selvaraj CV- Mainframesasikumar s
 
4 Outcomes of an Advanced Repo Manager Strategy
4 Outcomes of an Advanced Repo Manager Strategy4 Outcomes of an Advanced Repo Manager Strategy
4 Outcomes of an Advanced Repo Manager StrategySonatype
 
DevOps in Practice
DevOps in PracticeDevOps in Practice
DevOps in PracticeDerek Chen
 
What you can learn from an open-source project with 250 million downloads
What you can learn from an open-source project with 250 million downloadsWhat you can learn from an open-source project with 250 million downloads
What you can learn from an open-source project with 250 million downloadsDennis Doomen
 
Priyanka Singh_testing_resume
Priyanka Singh_testing_resumePriyanka Singh_testing_resume
Priyanka Singh_testing_resumePriyanka Singh
 
Developer Night Opticon 2017
Developer Night Opticon 2017Developer Night Opticon 2017
Developer Night Opticon 2017Optimizely
 
TestProject-X-Webinar_June-22.pptx
TestProject-X-Webinar_June-22.pptxTestProject-X-Webinar_June-22.pptx
TestProject-X-Webinar_June-22.pptxVishalPatil105290
 
20220329 Ariel Partners Configuring Jira For Maximum Agility
20220329 Ariel Partners Configuring Jira For Maximum Agility20220329 Ariel Partners Configuring Jira For Maximum Agility
20220329 Ariel Partners Configuring Jira For Maximum AgilityCraeg Strong
 
Continuous Delivery With Selenium Grid And Docker
Continuous Delivery With Selenium Grid And DockerContinuous Delivery With Selenium Grid And Docker
Continuous Delivery With Selenium Grid And DockerBarbara Gonzalez
 
Browserscope oscon 2011
Browserscope oscon 2011Browserscope oscon 2011
Browserscope oscon 2011lsimon
 

Similar to Behavior Driven Development (20)

Prasad cv
Prasad cvPrasad cv
Prasad cv
 
Extending D365 with Azure
Extending D365 with AzureExtending D365 with Azure
Extending D365 with Azure
 
CucumberSeleniumWD
CucumberSeleniumWDCucumberSeleniumWD
CucumberSeleniumWD
 
Rakesh_Resume
Rakesh_ResumeRakesh_Resume
Rakesh_Resume
 
Sasikumar Selvaraj CV- Mainframe
Sasikumar Selvaraj CV- MainframeSasikumar Selvaraj CV- Mainframe
Sasikumar Selvaraj CV- Mainframe
 
4 Outcomes of an Advanced Repo Manager Strategy
4 Outcomes of an Advanced Repo Manager Strategy4 Outcomes of an Advanced Repo Manager Strategy
4 Outcomes of an Advanced Repo Manager Strategy
 
DevOps in Practice
DevOps in PracticeDevOps in Practice
DevOps in Practice
 
Droidcon Paris 2015
Droidcon Paris 2015Droidcon Paris 2015
Droidcon Paris 2015
 
What you can learn from an open-source project with 250 million downloads
What you can learn from an open-source project with 250 million downloadsWhat you can learn from an open-source project with 250 million downloads
What you can learn from an open-source project with 250 million downloads
 
Murali_CV
Murali_CVMurali_CV
Murali_CV
 
Madhu_Resume
Madhu_ResumeMadhu_Resume
Madhu_Resume
 
Priyanka Singh_testing_resume
Priyanka Singh_testing_resumePriyanka Singh_testing_resume
Priyanka Singh_testing_resume
 
Developer Night Opticon 2017
Developer Night Opticon 2017Developer Night Opticon 2017
Developer Night Opticon 2017
 
TestProject-X-Webinar_June-22.pptx
TestProject-X-Webinar_June-22.pptxTestProject-X-Webinar_June-22.pptx
TestProject-X-Webinar_June-22.pptx
 
20220329 Ariel Partners Configuring Jira For Maximum Agility
20220329 Ariel Partners Configuring Jira For Maximum Agility20220329 Ariel Partners Configuring Jira For Maximum Agility
20220329 Ariel Partners Configuring Jira For Maximum Agility
 
Continuous Delivery With Selenium Grid And Docker
Continuous Delivery With Selenium Grid And DockerContinuous Delivery With Selenium Grid And Docker
Continuous Delivery With Selenium Grid And Docker
 
Browserscope oscon 2011
Browserscope oscon 2011Browserscope oscon 2011
Browserscope oscon 2011
 
test_automation_POC
test_automation_POCtest_automation_POC
test_automation_POC
 
VishalBendreQa
VishalBendreQaVishalBendreQa
VishalBendreQa
 
Yogesh_Kadam
Yogesh_KadamYogesh_Kadam
Yogesh_Kadam
 

Recently uploaded

Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024VictoriaMetrics
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...masabamasaba
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech studentsHimanshiGarg82
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...Shane Coughlan
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...Jittipong Loespradit
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxAnnaArtyushina1
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...masabamasaba
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park masabamasaba
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park masabamasaba
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfkalichargn70th171
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in sowetomasabamasaba
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfonteinmasabamasaba
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Hararemasabamasaba
 
tonesoftg
tonesoftgtonesoftg
tonesoftglanshi9
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrandmasabamasaba
 

Recently uploaded (20)

Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 

Behavior Driven Development

  • 1. 10/23/2018 Nelson Johnson Extending D365 with Azure www.broadpoint.net 110/23/2018 Nelson Johnson Behavior Driven Development www.broadpoint.net 1 Behavior Driven Development By Nelson Johnson Solution Architect BroadPoint Technologies
  • 2. 10/23/2018 Nelson Johnson Extending D365 with Azure www.broadpoint.net 2 Who is Nelson Johnson? • Started programming 1977…in high school…on a mainframe • Became full time software consultant in 1982 • BS in MIS and Decision Science from George Mason University • Worked at DARPA creating web apps in 1996 • Working with CRM since version 3 • Solution Architect for BroadPoint Technologies, LLC • Email: njohnson@broadpoint.net
  • 3. 10/23/2018 Nelson Johnson Extending D365 with Azure www.broadpoint.net 3 What is Behavior Driven Development (BDD) • Framework for software testing • Abstraction layer on top of typical Test Driven Development • Uses structured English phrases to invoke TDD functions • Gherkin Language (https://cucumber.io/) • User defined – very flexible
  • 4. 10/23/2018 Nelson Johnson Extending D365 with Azure www.broadpoint.net 4 Why BDD • Makes it easier to involve end users to develop tests • Added transparency between requirement and test • Separates user behavior from test implementation • Utilizes dev-ops methodologies for higher business value • Increases turnaround time • Build Verification Testing • CRM Upgrade Testing • There is a downside • Can take a long time to run • Complex logic may be difficult to verify
  • 5. 10/23/2018 Nelson Johnson Extending D365 with Azure www.broadpoint.net 5 How easy is it to learn Gherkin? Feature: SearchByPhone_PhoneCall As an end user I need the ability to search for contacts by phone number @SearchByPhoneNumber Scenario: Return Login Only Given I log into CRM When I navigate to Sales to get to Activities When I click on Phone Call And I set field phonenumber to '2369874125' Then Check the value of lookup field bpt_callercontact to see if it is 1 Login Only Phone
  • 6. 10/23/2018 Nelson Johnson Extending D365 with Azure www.broadpoint.net 6 Parts needed • Dynamics 365 CE • Visual Studio • Unit test project • EasyRepro • Includes Selenium framework • SpecFlow • Browser Drivers • Chromedriver.exe • Geckodriver.exe • Project/bin/debug folder MSTest Step.cs SpecFlow Generated Feature.CS Selenium Feature Test Script EasyRepro Browser Driver
  • 7. 10/23/2018 Nelson Johnson Extending D365 with Azure www.broadpoint.net 7 <packages> <package id="Dynamics365.UIAutomation.Api" version="9.0.1.4" targetFramework="net47" /> <package id="MSTest.TestAdapter" version="1.2.1" targetFramework="net471" /> <package id="MSTest.TestFramework" version="1.2.1" targetFramework="net471" /> <package id="Newtonsoft.Json" version="9.0.1" targetFramework="net471" /> <package id="Selenium.Chrome.WebDriver" version="2.38" targetFramework="net471" /> <package id="Selenium.Support" version="3.11.2" targetFramework="net471" /> <package id="Selenium.WebDriver" version="3.11.2" targetFramework="net471" /> <package id="SpecFlow" version="2.3.2" targetFramework="net471" /> <package id="SpecFlow.MsTest" version="2.3.2" targetFramework="net471" /> <package id="System.ValueTuple" version="4.3.0" targetFramework="net471" /> </packages>
  • 8. 10/23/2018 Nelson Johnson Extending D365 with Azure www.broadpoint.net 8 Setting it up • Create new Unit test project • Rename UnitTest1.cs to AllSteps.cs • Build the project • Verify there are no issues • Set up credentials • Choose Browser
  • 9. 10/23/2018 Nelson Johnson Extending D365 with Azure www.broadpoint.net 9 Add SpecFlow Feature file • Add • New Item • SpecFlow Feature File • CreateContact
  • 10. 10/23/2018 Nelson Johnson Extending D365 with Azure www.broadpoint.net 10 Create first test Feature: CreateContact In order to make sure we can create a user @mytag Scenario: Create regular contact Given I log into CRM When I Quick Create Contact When I set keypress field email to 'njohnsontest@mailinator.com' When I set keypress field firstname to 'Neil' When I set keypress field lastname to 'Johnson' When I click on Save
  • 11. 10/23/2018 Nelson Johnson Extending D365 with Azure www.broadpoint.net 11 Resources • Wael Hamze Blog: https://waelhamze.wordpress.com/2018/02/27/bdd-for-dynamics- 365-ce/ • Wael Hamze GitHub: https://github.com/WaelHamze/dyn365-ce-bdd • EasyRepro: https://github.com/Microsoft/EasyRepro • SpecFlow: https://specflow.org/getting-started/
  • 12. 10/23/2018 Nelson Johnson Extending D365 with Azure www.broadpoint.net 12www.broadpoint.net Q&A Nelson Johnson njohnson@broadpoint.net 301-634-2442 https://www.linkedin.com/in/nelsonjohnson/
  • 13. 10/23/2018 Nelson Johnson Extending D365 with Azure www.broadpoint.net 13www.broadpoint.net Thank You! Nelson Johnson njohnson@broadpoint.net 301-634-2442 https://www.linkedin.com/in/nelsonjohnson/

Editor's Notes

  1. Credentials are coming from the system environment as class properties in AllSteps.cs Browser options set up in TestSettings class.