SlideShare a Scribd company logo
Crm Saturday Madrid  - Test Automation for Dynamics 365
Presenter: Jordi Montaña
Topic: Test Automation for Dynamics 365
Jordi Montaña
• Solution Architect
• +10 yrs experience
• Business Solutions MVP
• @jordimontana
• GitHub: jordimontana82
• Blog:
• https://dynamicsvalue.com/blog
Agenda
• Why Unit Testing?
• Why FakeXrmEasy?
• How it works
• DEMO (VS 2017 + Live Unit Tests)
Why Unit Testing?
Crm Saturday Madrid  - Test Automation for Dynamics 365
1. Cost
€
1. Epic Bugs: Space Bugs
1. Epic Bugs: Space Bugs
In 1996, first ESA’s Ariane-5 mission…
1. Epic Bugs: Space Bugs
In 1996, first ESA’s Ariane-5 mission…
> $370 Million project…
1. Epic Bugs: Space Bugs
In 1996, first ESA’s Ariane-5 mission…
> $370 Million project…
…which blew up in 40 secs due to an
integer overflow
In 1999, NASA’s Mars Climate
Orbiter…
2. Epic Bugs: Space Bugs
$ 320 Million Project…
In 1999, NASA’s Mars Climate
Orbiter…
2. Epic Bugs: Space Bugs
$ 320 Million Project…
… burned up by a unit of
measure conversion issue
Crm Saturday Madrid  - Test Automation for Dynamics 365
3 Epic Bugs: Financial
$440 Million
3 Epic Bugs: Financial
Bankrupt
in
45 mins
Bugs have
consequences…
both external and
internal
2. External implications
Customers not
happy 
3. Internal implications
Pain… or… can you
sleep at night?
“Unit testing gives us
automated regression
testing. ”
“But…. It also drives
development”
Large projects and changes
- 500+ Custom entities
- 80+ Plugins
- 540+ Plugin Steps
- 780+ Workflows
Large projects and changes
- Web portals
- SSIS packages + SSRS Reports
- GIS, MDS, Mobile apps,…
“Unit + integration tests provide
a sustainable approach to
change management.”
Why FakeXrmEasy?
1. Why FakeXrmEasy?
CRM SDK is pretty much “static” composed of:
- CRUD
- Queries
- Other messages
2. Why FakeXrmEasy?
Prior to 2014… started doing unit testing with
FakeItEasy and….
- Found myself doing a lot of repetitive
tasks…
- … and many problems
Problems with existing general
purpose .NET frameworks
- Generic & Complex
- Mocking Queries is REALLY hard
- Multiple CRM messages to mock
Problem #1: Complexity
var mock = new Mock<IOrganizationService>();
mock.Setup(service =>
service.Create(It.IsAny<Entity>()))
.Callback((Entity e) => {
e.Id = id;
entities.Add(e); })
.Returns((Entity e) => id);
Problem #2: Mocks ignore query
filters / joins etc…
Problem #3: A single .Execute()
method with a bunch of different
messages to mock
Unit testing for Dynamics 365
would be amazing if….
… everything was already
mocked for us, by default.
So… FakeXrmEasy was born in
November 2014
“It does so during development,
before deploy, functional
testing, UAT, Staging and, of
course, Production.”
How it Works?
- 1 single ctx.GetOrganizationService() call needed.
- Query Engine: QueryExpression, LINQ, FetchXml,
QueryByAttribute
- Fake Messages: many implemented, but not all of them…
yet (pull requests pls!)
Architecture Overview
FakeItEasy
In-Memory DB (this is actually way more simple than it sounds!)
CRUD Query Engine
Fake Message Executors
IOrganizationService
In-Memory DB
In-Memory DB (this is actually way more simple than it sounds!)
- 2 Levels of Dictionaries
- First level indexes by Entity Name, second level indexes entity
records by Id (Guid) to simulate the different CRM tables.
In-Memory DB
In-Memory DB (this is actually way more simple than it sounds!)
Fast!
Mainly because memory is several orders of magnitude faster than disks or
network.
Also, because even in-memory, dictionaries gives us generally Θ(1) algorithm
complexity: Constant Access Time for CRUD operations. Given O(n) the
worst case.
CRUD
What about the Query Engine…?
In-Memory DB (this is actually way more simple than it sounds!)
Query Engine
QueryExpression
In-Memory DB (Dictionaries here…)
CRM LINQ
CRM LINQ Provider
QueryExpression
In-Memory DB (Dictionaries here…)
CRM LINQ
???
What about the Query Engine…?
QueryExpression
What about the Query Engine…?
In-Memory DB (Dictionaries)
CRM LINQ
LINQ Query Translation Step
QueryExpression
What about the Query Engine…?
In-Memory DB (Dictionaries)
CRM LINQ
LINQ
QueryByAttribute FetchXml
QueryExpression
What about the Query Engine…?
In-Memory DB (Dictionaries)
CRM LINQ
LINQ
QueryByAttribute FetchXml
To recap…
- 1 single ctx.GetOrganizationService() call needed. No mocks!
- Query Engine: QueryExpression, LINQ, FetchXml, QueryByAttribute
- Fake Messages: many implemented, but not all of them… yet (pull
requests pls!)
“FakeXrmEasy provides a
sustainable and cost-effective
approach to facilitate change
management for Dynamics 365”
Applications
“Any .NET app connected to an IOrganizationService”
Applications
- Web portals
- Plugins, CodeActivities, Custom Actions
- Console apps
- Xamarin apps
- Script component in SSIS
- WPF
- …
Crm Saturday Madrid  - Test Automation for Dynamics 365
Crm Saturday Madrid  - Test Automation for Dynamics 365
DEMO TIME!
Thanks to the
Sponsors!
Thanks to the
contributors!
@DigitalFlow @slahn @arjenst @rajyraman
@ccellar @bacon1986 @daryllabar
* Sorted by num of contributions
References
Epic Bugs
http://www.computerworld.com/article/2515483/enterprise-applications/epic-failures--11-
infamous-software-bugs.html
https://en.wikipedia.org/wiki/Cluster_(spacecraft)
https://dougseven.com/2014/04/17/knightmare-a-devops-cautionary-tale/
Testing Pyramid / TDD
https://martinfowler.com/bliki/TestPyramid.html
https://testing.googleblog.com/2015/04/just-say-no-to-more-end-to-end-tests.html
https://www.thoughtworks.com/insights/blog/mockists-are-dead-long-live-classicists

More Related Content

Similar to Crm Saturday Madrid - Test Automation for Dynamics 365

Micro services
Micro servicesMicro services
Micro services
Alex Punnen
 
Tdd is not about testing
Tdd is not about testingTdd is not about testing
Tdd is not about testing
Gianluca Padovani
 
Code Refactoring
Code RefactoringCode Refactoring
Code Refactoring
Milan Vukoje
 
The Proxy Fairy, and The Magic of Spring Framework
The Proxy Fairy, and The Magic of Spring FrameworkThe Proxy Fairy, and The Magic of Spring Framework
The Proxy Fairy, and The Magic of Spring Framework
Victor Rentea
 
Debugging
DebuggingDebugging
Debugging
Olivier Teytaud
 
Incident Management in the Age of DevOps and SRE
Incident Management in the Age of DevOps and SRE Incident Management in the Age of DevOps and SRE
Incident Management in the Age of DevOps and SRE
Rundeck
 
20131028 BTUG.be - BizTalk Deployment
20131028 BTUG.be - BizTalk Deployment20131028 BTUG.be - BizTalk Deployment
20131028 BTUG.be - BizTalk Deployment
BTUGbe
 
Test-Driven Design Insights@DevoxxBE 2023.pptx
Test-Driven Design Insights@DevoxxBE 2023.pptxTest-Driven Design Insights@DevoxxBE 2023.pptx
Test-Driven Design Insights@DevoxxBE 2023.pptx
Victor Rentea
 
Bulletproof Jobs: Patterns for Large-Scale Spark Processing: Spark Summit Eas...
Bulletproof Jobs: Patterns for Large-Scale Spark Processing: Spark Summit Eas...Bulletproof Jobs: Patterns for Large-Scale Spark Processing: Spark Summit Eas...
Bulletproof Jobs: Patterns for Large-Scale Spark Processing: Spark Summit Eas...
Spark Summit
 
EclipseCon 2016 - OCCIware : one Cloud API to rule them all
EclipseCon 2016 - OCCIware : one Cloud API to rule them allEclipseCon 2016 - OCCIware : one Cloud API to rule them all
EclipseCon 2016 - OCCIware : one Cloud API to rule them all
Marc Dutoo
 
OCCIware Project at EclipseCon France 2016, by Marc Dutoo, Open Wide
OCCIware Project at EclipseCon France 2016, by Marc Dutoo, Open WideOCCIware Project at EclipseCon France 2016, by Marc Dutoo, Open Wide
OCCIware Project at EclipseCon France 2016, by Marc Dutoo, Open Wide
OCCIware
 
Melbourne crm ug aug 2015 1tip
Melbourne crm ug aug 2015   1tipMelbourne crm ug aug 2015   1tip
Melbourne crm ug aug 2015 1tip
Andre Margono
 
The Last Mile Continued: Incident Management
The Last Mile Continued: Incident Management The Last Mile Continued: Incident Management
The Last Mile Continued: Incident Management
Rundeck
 
Automated Scaling of Microservice Stacks for JavaEE Applications
Automated Scaling of Microservice Stacks for JavaEE ApplicationsAutomated Scaling of Microservice Stacks for JavaEE Applications
Automated Scaling of Microservice Stacks for JavaEE Applications
Jelastic Multi-Cloud PaaS
 
Building a full-stack app with Golang and Google Cloud Platform in one week
Building a full-stack app with Golang and Google Cloud Platform in one weekBuilding a full-stack app with Golang and Google Cloud Platform in one week
Building a full-stack app with Golang and Google Cloud Platform in one week
Dr. Felix Raab
 
Production debugging web applications
Production debugging web applicationsProduction debugging web applications
Production debugging web applications
Ido Flatow
 
What is ATT&CK coverage, anyway? Breadth and depth analysis with Atomic Red Team
What is ATT&CK coverage, anyway? Breadth and depth analysis with Atomic Red TeamWhat is ATT&CK coverage, anyway? Breadth and depth analysis with Atomic Red Team
What is ATT&CK coverage, anyway? Breadth and depth analysis with Atomic Red Team
MITRE ATT&CK
 
Incident Management in the Age of DevOps and SRE
Incident Management in the Age of DevOps and SRE Incident Management in the Age of DevOps and SRE
Incident Management in the Age of DevOps and SRE
Rundeck
 
How do we drive tech changes
How do we drive tech changesHow do we drive tech changes
How do we drive tech changes
Jaewoo Ahn
 
Automatski - How We Reinvented Machine Learning, Solved NP-Complete ML Proble...
Automatski - How We Reinvented Machine Learning, Solved NP-Complete ML Proble...Automatski - How We Reinvented Machine Learning, Solved NP-Complete ML Proble...
Automatski - How We Reinvented Machine Learning, Solved NP-Complete ML Proble...
Aditya Yadav
 

Similar to Crm Saturday Madrid - Test Automation for Dynamics 365 (20)

Micro services
Micro servicesMicro services
Micro services
 
Tdd is not about testing
Tdd is not about testingTdd is not about testing
Tdd is not about testing
 
Code Refactoring
Code RefactoringCode Refactoring
Code Refactoring
 
The Proxy Fairy, and The Magic of Spring Framework
The Proxy Fairy, and The Magic of Spring FrameworkThe Proxy Fairy, and The Magic of Spring Framework
The Proxy Fairy, and The Magic of Spring Framework
 
Debugging
DebuggingDebugging
Debugging
 
Incident Management in the Age of DevOps and SRE
Incident Management in the Age of DevOps and SRE Incident Management in the Age of DevOps and SRE
Incident Management in the Age of DevOps and SRE
 
20131028 BTUG.be - BizTalk Deployment
20131028 BTUG.be - BizTalk Deployment20131028 BTUG.be - BizTalk Deployment
20131028 BTUG.be - BizTalk Deployment
 
Test-Driven Design Insights@DevoxxBE 2023.pptx
Test-Driven Design Insights@DevoxxBE 2023.pptxTest-Driven Design Insights@DevoxxBE 2023.pptx
Test-Driven Design Insights@DevoxxBE 2023.pptx
 
Bulletproof Jobs: Patterns for Large-Scale Spark Processing: Spark Summit Eas...
Bulletproof Jobs: Patterns for Large-Scale Spark Processing: Spark Summit Eas...Bulletproof Jobs: Patterns for Large-Scale Spark Processing: Spark Summit Eas...
Bulletproof Jobs: Patterns for Large-Scale Spark Processing: Spark Summit Eas...
 
EclipseCon 2016 - OCCIware : one Cloud API to rule them all
EclipseCon 2016 - OCCIware : one Cloud API to rule them allEclipseCon 2016 - OCCIware : one Cloud API to rule them all
EclipseCon 2016 - OCCIware : one Cloud API to rule them all
 
OCCIware Project at EclipseCon France 2016, by Marc Dutoo, Open Wide
OCCIware Project at EclipseCon France 2016, by Marc Dutoo, Open WideOCCIware Project at EclipseCon France 2016, by Marc Dutoo, Open Wide
OCCIware Project at EclipseCon France 2016, by Marc Dutoo, Open Wide
 
Melbourne crm ug aug 2015 1tip
Melbourne crm ug aug 2015   1tipMelbourne crm ug aug 2015   1tip
Melbourne crm ug aug 2015 1tip
 
The Last Mile Continued: Incident Management
The Last Mile Continued: Incident Management The Last Mile Continued: Incident Management
The Last Mile Continued: Incident Management
 
Automated Scaling of Microservice Stacks for JavaEE Applications
Automated Scaling of Microservice Stacks for JavaEE ApplicationsAutomated Scaling of Microservice Stacks for JavaEE Applications
Automated Scaling of Microservice Stacks for JavaEE Applications
 
Building a full-stack app with Golang and Google Cloud Platform in one week
Building a full-stack app with Golang and Google Cloud Platform in one weekBuilding a full-stack app with Golang and Google Cloud Platform in one week
Building a full-stack app with Golang and Google Cloud Platform in one week
 
Production debugging web applications
Production debugging web applicationsProduction debugging web applications
Production debugging web applications
 
What is ATT&CK coverage, anyway? Breadth and depth analysis with Atomic Red Team
What is ATT&CK coverage, anyway? Breadth and depth analysis with Atomic Red TeamWhat is ATT&CK coverage, anyway? Breadth and depth analysis with Atomic Red Team
What is ATT&CK coverage, anyway? Breadth and depth analysis with Atomic Red Team
 
Incident Management in the Age of DevOps and SRE
Incident Management in the Age of DevOps and SRE Incident Management in the Age of DevOps and SRE
Incident Management in the Age of DevOps and SRE
 
How do we drive tech changes
How do we drive tech changesHow do we drive tech changes
How do we drive tech changes
 
Automatski - How We Reinvented Machine Learning, Solved NP-Complete ML Proble...
Automatski - How We Reinvented Machine Learning, Solved NP-Complete ML Proble...Automatski - How We Reinvented Machine Learning, Solved NP-Complete ML Proble...
Automatski - How We Reinvented Machine Learning, Solved NP-Complete ML Proble...
 

Recently uploaded

Intel Unveils Core Ultra 200V Lunar chip .pdf
Intel Unveils Core Ultra 200V Lunar chip .pdfIntel Unveils Core Ultra 200V Lunar chip .pdf
Intel Unveils Core Ultra 200V Lunar chip .pdf
Tech Guru
 
FIDO Munich Seminar Blueprint for In-Vehicle Payment Standard.pptx
FIDO Munich Seminar Blueprint for In-Vehicle Payment Standard.pptxFIDO Munich Seminar Blueprint for In-Vehicle Payment Standard.pptx
FIDO Munich Seminar Blueprint for In-Vehicle Payment Standard.pptx
FIDO Alliance
 
Latest Tech Trends Series 2024 By EY India
Latest Tech Trends Series 2024 By EY IndiaLatest Tech Trends Series 2024 By EY India
Latest Tech Trends Series 2024 By EY India
EYIndia1
 
Welcome to Cyberbiosecurity. Because regular cybersecurity wasn't complicated...
Welcome to Cyberbiosecurity. Because regular cybersecurity wasn't complicated...Welcome to Cyberbiosecurity. Because regular cybersecurity wasn't complicated...
Welcome to Cyberbiosecurity. Because regular cybersecurity wasn't complicated...
Snarky Security
 
Finetuning GenAI For Hacking and Defending
Finetuning GenAI For Hacking and DefendingFinetuning GenAI For Hacking and Defending
Finetuning GenAI For Hacking and Defending
Priyanka Aash
 
NVIDIA at Breakthrough Discuss for Space Exploration
NVIDIA at Breakthrough Discuss for Space ExplorationNVIDIA at Breakthrough Discuss for Space Exploration
NVIDIA at Breakthrough Discuss for Space Exploration
Alison B. Lowndes
 
FIDO Munich Seminar Introduction to FIDO.pptx
FIDO Munich Seminar Introduction to FIDO.pptxFIDO Munich Seminar Introduction to FIDO.pptx
FIDO Munich Seminar Introduction to FIDO.pptx
FIDO Alliance
 
It's your unstructured data: How to get your GenAI app to production (and spe...
It's your unstructured data: How to get your GenAI app to production (and spe...It's your unstructured data: How to get your GenAI app to production (and spe...
It's your unstructured data: How to get your GenAI app to production (and spe...
Zilliz
 
Improving Learning Content Efficiency with Reusable Learning Content
Improving Learning Content Efficiency with Reusable Learning ContentImproving Learning Content Efficiency with Reusable Learning Content
Improving Learning Content Efficiency with Reusable Learning Content
Enterprise Knowledge
 
What's New in Teams Calling, Meetings, Devices June 2024
What's New in Teams Calling, Meetings, Devices June 2024What's New in Teams Calling, Meetings, Devices June 2024
What's New in Teams Calling, Meetings, Devices June 2024
Stephanie Beckett
 
UX Webinar Series: Aligning Authentication Experiences with Business Goals
UX Webinar Series: Aligning Authentication Experiences with Business GoalsUX Webinar Series: Aligning Authentication Experiences with Business Goals
UX Webinar Series: Aligning Authentication Experiences with Business Goals
FIDO Alliance
 
How UiPath Discovery Suite supports identification of Agentic Process Automat...
How UiPath Discovery Suite supports identification of Agentic Process Automat...How UiPath Discovery Suite supports identification of Agentic Process Automat...
How UiPath Discovery Suite supports identification of Agentic Process Automat...
DianaGray10
 
FIDO Munich Seminar In-Vehicle Payment Trends.pptx
FIDO Munich Seminar In-Vehicle Payment Trends.pptxFIDO Munich Seminar In-Vehicle Payment Trends.pptx
FIDO Munich Seminar In-Vehicle Payment Trends.pptx
FIDO Alliance
 
The History of Embeddings & Multimodal Embeddings
The History of Embeddings & Multimodal EmbeddingsThe History of Embeddings & Multimodal Embeddings
The History of Embeddings & Multimodal Embeddings
Zilliz
 
Redefining Cybersecurity with AI Capabilities
Redefining Cybersecurity with AI CapabilitiesRedefining Cybersecurity with AI Capabilities
Redefining Cybersecurity with AI Capabilities
Priyanka Aash
 
Keynote : Presentation on SASE Technology
Keynote : Presentation on SASE TechnologyKeynote : Presentation on SASE Technology
Keynote : Presentation on SASE Technology
Priyanka Aash
 
Generative AI Reasoning Tech Talk - July 2024
Generative AI Reasoning Tech Talk - July 2024Generative AI Reasoning Tech Talk - July 2024
Generative AI Reasoning Tech Talk - July 2024
siddu769252
 
Connector Corner: Leveraging Snowflake Integration for Smarter Decision Making
Connector Corner: Leveraging Snowflake Integration for Smarter Decision MakingConnector Corner: Leveraging Snowflake Integration for Smarter Decision Making
Connector Corner: Leveraging Snowflake Integration for Smarter Decision Making
DianaGray10
 
Self-Healing Test Automation Framework - Healenium
Self-Healing Test Automation Framework - HealeniumSelf-Healing Test Automation Framework - Healenium
Self-Healing Test Automation Framework - Healenium
Knoldus Inc.
 
FIDO Munich Seminar Workforce Authentication Case Study.pptx
FIDO Munich Seminar Workforce Authentication Case Study.pptxFIDO Munich Seminar Workforce Authentication Case Study.pptx
FIDO Munich Seminar Workforce Authentication Case Study.pptx
FIDO Alliance
 

Recently uploaded (20)

Intel Unveils Core Ultra 200V Lunar chip .pdf
Intel Unveils Core Ultra 200V Lunar chip .pdfIntel Unveils Core Ultra 200V Lunar chip .pdf
Intel Unveils Core Ultra 200V Lunar chip .pdf
 
FIDO Munich Seminar Blueprint for In-Vehicle Payment Standard.pptx
FIDO Munich Seminar Blueprint for In-Vehicle Payment Standard.pptxFIDO Munich Seminar Blueprint for In-Vehicle Payment Standard.pptx
FIDO Munich Seminar Blueprint for In-Vehicle Payment Standard.pptx
 
Latest Tech Trends Series 2024 By EY India
Latest Tech Trends Series 2024 By EY IndiaLatest Tech Trends Series 2024 By EY India
Latest Tech Trends Series 2024 By EY India
 
Welcome to Cyberbiosecurity. Because regular cybersecurity wasn't complicated...
Welcome to Cyberbiosecurity. Because regular cybersecurity wasn't complicated...Welcome to Cyberbiosecurity. Because regular cybersecurity wasn't complicated...
Welcome to Cyberbiosecurity. Because regular cybersecurity wasn't complicated...
 
Finetuning GenAI For Hacking and Defending
Finetuning GenAI For Hacking and DefendingFinetuning GenAI For Hacking and Defending
Finetuning GenAI For Hacking and Defending
 
NVIDIA at Breakthrough Discuss for Space Exploration
NVIDIA at Breakthrough Discuss for Space ExplorationNVIDIA at Breakthrough Discuss for Space Exploration
NVIDIA at Breakthrough Discuss for Space Exploration
 
FIDO Munich Seminar Introduction to FIDO.pptx
FIDO Munich Seminar Introduction to FIDO.pptxFIDO Munich Seminar Introduction to FIDO.pptx
FIDO Munich Seminar Introduction to FIDO.pptx
 
It's your unstructured data: How to get your GenAI app to production (and spe...
It's your unstructured data: How to get your GenAI app to production (and spe...It's your unstructured data: How to get your GenAI app to production (and spe...
It's your unstructured data: How to get your GenAI app to production (and spe...
 
Improving Learning Content Efficiency with Reusable Learning Content
Improving Learning Content Efficiency with Reusable Learning ContentImproving Learning Content Efficiency with Reusable Learning Content
Improving Learning Content Efficiency with Reusable Learning Content
 
What's New in Teams Calling, Meetings, Devices June 2024
What's New in Teams Calling, Meetings, Devices June 2024What's New in Teams Calling, Meetings, Devices June 2024
What's New in Teams Calling, Meetings, Devices June 2024
 
UX Webinar Series: Aligning Authentication Experiences with Business Goals
UX Webinar Series: Aligning Authentication Experiences with Business GoalsUX Webinar Series: Aligning Authentication Experiences with Business Goals
UX Webinar Series: Aligning Authentication Experiences with Business Goals
 
How UiPath Discovery Suite supports identification of Agentic Process Automat...
How UiPath Discovery Suite supports identification of Agentic Process Automat...How UiPath Discovery Suite supports identification of Agentic Process Automat...
How UiPath Discovery Suite supports identification of Agentic Process Automat...
 
FIDO Munich Seminar In-Vehicle Payment Trends.pptx
FIDO Munich Seminar In-Vehicle Payment Trends.pptxFIDO Munich Seminar In-Vehicle Payment Trends.pptx
FIDO Munich Seminar In-Vehicle Payment Trends.pptx
 
The History of Embeddings & Multimodal Embeddings
The History of Embeddings & Multimodal EmbeddingsThe History of Embeddings & Multimodal Embeddings
The History of Embeddings & Multimodal Embeddings
 
Redefining Cybersecurity with AI Capabilities
Redefining Cybersecurity with AI CapabilitiesRedefining Cybersecurity with AI Capabilities
Redefining Cybersecurity with AI Capabilities
 
Keynote : Presentation on SASE Technology
Keynote : Presentation on SASE TechnologyKeynote : Presentation on SASE Technology
Keynote : Presentation on SASE Technology
 
Generative AI Reasoning Tech Talk - July 2024
Generative AI Reasoning Tech Talk - July 2024Generative AI Reasoning Tech Talk - July 2024
Generative AI Reasoning Tech Talk - July 2024
 
Connector Corner: Leveraging Snowflake Integration for Smarter Decision Making
Connector Corner: Leveraging Snowflake Integration for Smarter Decision MakingConnector Corner: Leveraging Snowflake Integration for Smarter Decision Making
Connector Corner: Leveraging Snowflake Integration for Smarter Decision Making
 
Self-Healing Test Automation Framework - Healenium
Self-Healing Test Automation Framework - HealeniumSelf-Healing Test Automation Framework - Healenium
Self-Healing Test Automation Framework - Healenium
 
FIDO Munich Seminar Workforce Authentication Case Study.pptx
FIDO Munich Seminar Workforce Authentication Case Study.pptxFIDO Munich Seminar Workforce Authentication Case Study.pptx
FIDO Munich Seminar Workforce Authentication Case Study.pptx
 

Crm Saturday Madrid - Test Automation for Dynamics 365