SlideShare une entreprise Scribd logo
1  sur  13
Télécharger pour lire hors ligne
Robots Testing Robots
@LDNBotFramework
❖ Kristian Brimble / Sam Kavanagh
❖ Bot Team: Dev Lead / Lead QA
❖ @kristianbrimble / @justeat_tech
Just Eat Help Chatbot
What does it do?
3
● Provides customers with support
when they have problems with
their orders
● Can compensate customers with
account credit when something
was missing from their order
● Hands over to a human when it
gets stuck
How does it work?
Microsoft
Directline
Native App Bot Framework LUIS
Junior Flows
Principal Flows
Testing our bot
When, where and how?
Unit Tests
Run on developer machines on demand (NCrunch FTW) and on every check-in & build
Integration Tests
Can be run on developer machines. Mainly run as part of our automated deployment process
System Tests
Can be run on developer machines but only targeting staging environment. Automatically run
when a build is deployed to staging
UI Tests
Run on app developer machines and as part of their CI pipeline
Unit Testing
● Originally started unit tests only on services called as part of a conversation
● Dialogs are hard to test due to difficulty to mock the framework and large amounts of setup
required (very brittle)
● Separated “conversation flow” from dialogs
● Conversation flow classes are very self-contained and do not reference any Bot Framework
features
Integration Testing
● Calls to Just Eat dependencies are proxied by a service that returns pre-recorded responses
● We forked the Bot Framework emulator so that it could be used by automated tests
○ No more dependency on the Bot Framework being contactable!
○ Reduced time to run our test suite by a factor of 10
● We wrote a small BDD-style framework to make testing a conversational interface easier (more
on that later)
System Testing
● Still uses our hacked emulator and BDD-style framework
● No dependencies mocked - “real data” created on our staging environment
● Smaller number of tests that exercise as much of a conversation topic as possible in one test
UI Testing
● Automated iOS and Android UI tests
● Written in each platform’s native language (Swift and Java)
● Run when the native bot client’s change
● All calls to Direct Line are mocked so that only UI functionality is tested
Example of a system test
Any questions?
Thanks to:
@LDNBotFramework
❖ Just Eat
❖ Jamie Dalton @daltskin
[Handing off to a human]
❖ Kristin Brimble @kristianbrimble
❖ Sam Kavanagh @justeat_tech
[Robots Testing Robots]
❖ Robin Osborne @rposbo
[Speaker Recognition API]

Contenu connexe

Tendances

QA - Do Dac Nam
QA - Do Dac NamQA - Do Dac Nam
QA - Do Dac Nam
Nam Dac
 
8 - Javascript unit testing framework
8 - Javascript unit testing framework8 - Javascript unit testing framework
8 - Javascript unit testing framework
Nguyen Duc Phu
 
Zabbix Conference 2011 - Let report bugs and post patches - Takanori suzuki
Zabbix Conference 2011 - Let report bugs and post patches - Takanori suzukiZabbix Conference 2011 - Let report bugs and post patches - Takanori suzuki
Zabbix Conference 2011 - Let report bugs and post patches - Takanori suzuki
takanori suzuki
 
Unit test your *LocalServiceImpl classes
Unit test your *LocalServiceImpl classesUnit test your *LocalServiceImpl classes
Unit test your *LocalServiceImpl classes
Thiago Leão Moreira
 

Tendances (20)

Team Build in TFS - Introduction
Team Build in TFS - IntroductionTeam Build in TFS - Introduction
Team Build in TFS - Introduction
 
Cucumber presenation
Cucumber presenationCucumber presenation
Cucumber presenation
 
Functional testing with behat
Functional testing with behatFunctional testing with behat
Functional testing with behat
 
Code Quality Control in a PHP project. GeekTalks, Cherkassy 2020
Code Quality Control in a PHP project. GeekTalks, Cherkassy 2020Code Quality Control in a PHP project. GeekTalks, Cherkassy 2020
Code Quality Control in a PHP project. GeekTalks, Cherkassy 2020
 
Making cross browser tests beautiful
Making cross browser tests beautifulMaking cross browser tests beautiful
Making cross browser tests beautiful
 
Test Automation Framework with BDD and Cucumber
Test Automation Framework with BDD and CucumberTest Automation Framework with BDD and Cucumber
Test Automation Framework with BDD and Cucumber
 
Acceptance Test Driven Development and Robot Framework
Acceptance Test Driven Development and Robot FrameworkAcceptance Test Driven Development and Robot Framework
Acceptance Test Driven Development and Robot Framework
 
What's Coming in Visual Studio v.Next
What's Coming in Visual Studio v.NextWhat's Coming in Visual Studio v.Next
What's Coming in Visual Studio v.Next
 
Automation test framework with cucumber – BDD
Automation test framework with cucumber – BDDAutomation test framework with cucumber – BDD
Automation test framework with cucumber – BDD
 
Eclipse Testing Day 2010. Xored Q7
Eclipse Testing Day 2010. Xored Q7Eclipse Testing Day 2010. Xored Q7
Eclipse Testing Day 2010. Xored Q7
 
A sip of elixir
A sip of elixirA sip of elixir
A sip of elixir
 
QA - Do Dac Nam
QA - Do Dac NamQA - Do Dac Nam
QA - Do Dac Nam
 
Create a Bot with Delphi and Telegram - ITDevCon 2016
Create a Bot with Delphi and Telegram - ITDevCon 2016Create a Bot with Delphi and Telegram - ITDevCon 2016
Create a Bot with Delphi and Telegram - ITDevCon 2016
 
Introduction to Bdd and cucumber
Introduction to Bdd and cucumberIntroduction to Bdd and cucumber
Introduction to Bdd and cucumber
 
КОСТЯНТИН НАТАЛУХА «Setup and run automated test framework for Android applic...
КОСТЯНТИН НАТАЛУХА «Setup and run automated test framework for Android applic...КОСТЯНТИН НАТАЛУХА «Setup and run automated test framework for Android applic...
КОСТЯНТИН НАТАЛУХА «Setup and run automated test framework for Android applic...
 
First month with golang - Building Telegram chat bot
First month with golang - Building Telegram chat botFirst month with golang - Building Telegram chat bot
First month with golang - Building Telegram chat bot
 
Android Devops : Master Continuous Integration and Delivery
Android Devops : Master Continuous Integration and DeliveryAndroid Devops : Master Continuous Integration and Delivery
Android Devops : Master Continuous Integration and Delivery
 
8 - Javascript unit testing framework
8 - Javascript unit testing framework8 - Javascript unit testing framework
8 - Javascript unit testing framework
 
Zabbix Conference 2011 - Let report bugs and post patches - Takanori suzuki
Zabbix Conference 2011 - Let report bugs and post patches - Takanori suzukiZabbix Conference 2011 - Let report bugs and post patches - Takanori suzuki
Zabbix Conference 2011 - Let report bugs and post patches - Takanori suzuki
 
Unit test your *LocalServiceImpl classes
Unit test your *LocalServiceImpl classesUnit test your *LocalServiceImpl classes
Unit test your *LocalServiceImpl classes
 

Similaire à LDN BotFramework Meetup #3: Robots Testing Robots

Test Automation Architecture That Works by Bhupesh Dahal
Test Automation Architecture That Works by Bhupesh DahalTest Automation Architecture That Works by Bhupesh Dahal
Test Automation Architecture That Works by Bhupesh Dahal
QA or the Highway
 
Build automation best practices
Build automation best practicesBuild automation best practices
Build automation best practices
Code Mastery
 
Automation Testing on Selenium by Quontra Solutions
Automation Testing on Selenium by Quontra SolutionsAutomation Testing on Selenium by Quontra Solutions
Automation Testing on Selenium by Quontra Solutions
QUONTRASOLUTIONS
 

Similaire à LDN BotFramework Meetup #3: Robots Testing Robots (20)

Conversational AI: What's New?
Conversational AI: What's New?Conversational AI: What's New?
Conversational AI: What's New?
 
Build a Great Conversationalist
Build a Great ConversationalistBuild a Great Conversationalist
Build a Great Conversationalist
 
How ANDROID TESTING changed how we think about Death - Second Edition
How ANDROID TESTING changed how we think about Death - Second EditionHow ANDROID TESTING changed how we think about Death - Second Edition
How ANDROID TESTING changed how we think about Death - Second Edition
 
How ANDROID TESTING changed how we think about Death - Second Edition
How ANDROID TESTING changed how we think about Death - Second EditionHow ANDROID TESTING changed how we think about Death - Second Edition
How ANDROID TESTING changed how we think about Death - Second Edition
 
Bot. You said bot? Let build bot then! - Laurent Ellerbach
Bot. You said bot? Let build bot then! - Laurent EllerbachBot. You said bot? Let build bot then! - Laurent Ellerbach
Bot. You said bot? Let build bot then! - Laurent Ellerbach
 
ITCamp 2017 - Laurent Ellerbach - Bot. You said bot? Let's build a bot then...
ITCamp 2017 - Laurent Ellerbach - Bot. You said bot? Let's build a bot then...ITCamp 2017 - Laurent Ellerbach - Bot. You said bot? Let's build a bot then...
ITCamp 2017 - Laurent Ellerbach - Bot. You said bot? Let's build a bot then...
 
Developing intelligent bots from the beginning
Developing intelligent bots from the beginningDeveloping intelligent bots from the beginning
Developing intelligent bots from the beginning
 
HDC 2010 - Creating Quality Software: A Look at Visual Studio 2010 Testing Tools
HDC 2010 - Creating Quality Software: A Look at Visual Studio 2010 Testing ToolsHDC 2010 - Creating Quality Software: A Look at Visual Studio 2010 Testing Tools
HDC 2010 - Creating Quality Software: A Look at Visual Studio 2010 Testing Tools
 
MockServer-driven testing
MockServer-driven testingMockServer-driven testing
MockServer-driven testing
 
Unit Testing in JavaScript
Unit Testing in JavaScriptUnit Testing in JavaScript
Unit Testing in JavaScript
 
LINE Developer Day 2019 how to optimize bot development lifecycle with dev ops
LINE Developer Day 2019 how to optimize bot development lifecycle with dev opsLINE Developer Day 2019 how to optimize bot development lifecycle with dev ops
LINE Developer Day 2019 how to optimize bot development lifecycle with dev ops
 
Test Automation Architecture That Works by Bhupesh Dahal
Test Automation Architecture That Works by Bhupesh DahalTest Automation Architecture That Works by Bhupesh Dahal
Test Automation Architecture That Works by Bhupesh Dahal
 
Build automation best practices
Build automation best practicesBuild automation best practices
Build automation best practices
 
SharePoint Fest DC 2019 - Bot Framework and Microsoft Graph - Join The Revolu...
SharePoint Fest DC 2019 - Bot Framework and Microsoft Graph - Join The Revolu...SharePoint Fest DC 2019 - Bot Framework and Microsoft Graph - Join The Revolu...
SharePoint Fest DC 2019 - Bot Framework and Microsoft Graph - Join The Revolu...
 
Azure Bot Services - Malaysia
Azure Bot Services - MalaysiaAzure Bot Services - Malaysia
Azure Bot Services - Malaysia
 
Tokyo azure meetup #13 build bots with azure bot services
Tokyo azure meetup #13   build bots with azure bot servicesTokyo azure meetup #13   build bots with azure bot services
Tokyo azure meetup #13 build bots with azure bot services
 
Automation Testing on Selenium by Quontra Solutions
Automation Testing on Selenium by Quontra SolutionsAutomation Testing on Selenium by Quontra Solutions
Automation Testing on Selenium by Quontra Solutions
 
Melbourne UG Presentation - UI Flow for Power Automate
Melbourne UG Presentation - UI Flow for Power AutomateMelbourne UG Presentation - UI Flow for Power Automate
Melbourne UG Presentation - UI Flow for Power Automate
 
Building a bot with an intent
Building a bot with an intentBuilding a bot with an intent
Building a bot with an intent
 
Continuous delivery @wcap 5-09-2013
Continuous delivery   @wcap 5-09-2013Continuous delivery   @wcap 5-09-2013
Continuous delivery @wcap 5-09-2013
 

Dernier

%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
VishalKumarJha10
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
shinachiaurasa2
 

Dernier (20)

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...
 
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
 
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
 
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
SHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions PresentationSHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions Presentation
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
%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
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfThe Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 

LDN BotFramework Meetup #3: Robots Testing Robots

  • 1. Robots Testing Robots @LDNBotFramework ❖ Kristian Brimble / Sam Kavanagh ❖ Bot Team: Dev Lead / Lead QA ❖ @kristianbrimble / @justeat_tech
  • 2. Just Eat Help Chatbot
  • 3. What does it do? 3 ● Provides customers with support when they have problems with their orders ● Can compensate customers with account credit when something was missing from their order ● Hands over to a human when it gets stuck
  • 4. How does it work? Microsoft Directline Native App Bot Framework LUIS Junior Flows Principal Flows
  • 6. When, where and how? Unit Tests Run on developer machines on demand (NCrunch FTW) and on every check-in & build Integration Tests Can be run on developer machines. Mainly run as part of our automated deployment process System Tests Can be run on developer machines but only targeting staging environment. Automatically run when a build is deployed to staging UI Tests Run on app developer machines and as part of their CI pipeline
  • 7. Unit Testing ● Originally started unit tests only on services called as part of a conversation ● Dialogs are hard to test due to difficulty to mock the framework and large amounts of setup required (very brittle) ● Separated “conversation flow” from dialogs ● Conversation flow classes are very self-contained and do not reference any Bot Framework features
  • 8. Integration Testing ● Calls to Just Eat dependencies are proxied by a service that returns pre-recorded responses ● We forked the Bot Framework emulator so that it could be used by automated tests ○ No more dependency on the Bot Framework being contactable! ○ Reduced time to run our test suite by a factor of 10 ● We wrote a small BDD-style framework to make testing a conversational interface easier (more on that later)
  • 9. System Testing ● Still uses our hacked emulator and BDD-style framework ● No dependencies mocked - “real data” created on our staging environment ● Smaller number of tests that exercise as much of a conversation topic as possible in one test
  • 10. UI Testing ● Automated iOS and Android UI tests ● Written in each platform’s native language (Swift and Java) ● Run when the native bot client’s change ● All calls to Direct Line are mocked so that only UI functionality is tested
  • 11. Example of a system test
  • 13. Thanks to: @LDNBotFramework ❖ Just Eat ❖ Jamie Dalton @daltskin [Handing off to a human] ❖ Kristin Brimble @kristianbrimble ❖ Sam Kavanagh @justeat_tech [Robots Testing Robots] ❖ Robin Osborne @rposbo [Speaker Recognition API]