SlideShare una empresa de Scribd logo
1 de 13
Descargar para leer sin conexión
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]

Más contenido relacionado

La actualidad más candente

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
 

La actualidad más candente (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
 

Similar a 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
 

Similar a 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
 

Último

TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 
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
 

Último (20)

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
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
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-...
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
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
 
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
 
%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
 
Pharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodologyPharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodology
 
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
 
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
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
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 Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
ManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide DeckManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide Deck
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 

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]