SlideShare a Scribd company logo
Real-Time Communication
Testing Evolution
with WebRTC
Dr Alex Gouaillard
CoSMo Software Consulting
IMTC, W3C, IETF
RTC Interoperability: Web Apps
Chromecast
• W3C Standardization process (features supported or not)
• Stand-alone tests
• Single browser (one at a time)
(JS API) Compliance and Usual Testing
Test the Web Forward
What about WebRTC 1.0?
Why so low test coverage?
• Some parts of specifications were just written
• Tests not needed early on in standardization process
• Many tests need P2P communication / interop testing
Media devices APIs WebRTC 1.0 APIs
Test coverage as of November 2016 (W3C TPAC)
Ex. of RTC feature not Testable before:
Network and Protocol Testing: ICE
Client A Client B
STUN server
What is my public
IP address?
Your public IP address
is x.x.x.x:y
Compliance and Usual Testing vs.
Interoperability Testing
Compliance & Usual
Testing
Interoperability
Testing
• Interaction automation
• Stand-alone tests
• Single browser
• Interaction automation
• Two synchronized instances
of the same test
• 2+ browsers run in parallel
 New testing tools needed
Browsers Interaction Automation:
WebDriver protocol
ChromeDriver
geckodriver
Microsoft WebDriver
SafariDriver
Browsers as a Service:
hosted selenium nodes
In-Progress: WebDriver needs update
for WebRTC Security & others
• Permission prompt
– Geolocation
– Camera
– Microphone
– Bluetooth
– …
• Fake Media / Mock Capturer
• ICE Candidate Filtering
• Unsecure origin
Wrap-Up: WebDriver for RTC Tests
• Interaction
• Multiple browsers in parallel
• Synchronization of instances
of same test between browsers
Lots of tools out there
addressing a subset of the problem
WebRTC-test
Jitsi-Hammer
Kurento Testing Framework
Jattack
Ok, existing tools are limited but …
How bad can it be, really?
Rough Goal: Test all possible pairs of
[Browser] x [Browser Revision]
x
[OS] x [OS Revision]
WhatweWANTtotest
496
© Dr. Alex Gouaillard @ Citrix Systems, 2016. Document provided under CC BY-NC 4.0
Whatwecouldtesttoday 115
23%
© Dr. Alex Gouaillard @ Citrix Systems, 2016. Document provided under CC BY-NC 4.0
381
77%
1 OS
2 Oses
(Not tested)
© Dr. Alex Gouaillard @ Citrix Systems, 2016. Document provided under CC BY-NC 4.0
6
5%
WhatweACTUALLYtesttoday
21
18%
88
77%
Tested
WIP
Not tested
Ok, it’s REALLY bad …
Get visibility: list and evaluate
Evaluation of Interop Testing Tools
Dimension 1: Tests Triggers and frequency
6 months
Weekly (2d)
Daily / Nightly (4h)
Commit-based and fast (20mn)
Experimental (manually triggered)
Evaluation of Interop Testing Tools
Dimension 2: Type of SE nodes I want to use
Self-Hosted, Pre-configured VM
Hosted, as-a-service (e.g. BrowserStack)
Self-Hosted, Ephemeral VM
Hosted, Ephemeral VM (e.g. Travis)
Local / physical machines
[Apple]
[Only stable browsers]
[Extensions and plug-ins]
[Modified browsers]
[no manual settings]
[Extensions and plug-ins]
[Apple]
[limited OS set]
Evaluation of Interop Testing Tools
Dimension 3: OS I want to support
Evaluation of Interop Testing Tools
Dimension 4: Which Browsers?
Easy, kind of tested already, great WebDriver support
No Apple VM on non-apple Hardware
Webdriver is more recent and less mature than others
WebRTC? What’s your flavor~~ ?
Permission prompt? Fake Media?
36+% of Enterprise market (Windows 7)
which plugin?
Evaluation of Interop Testing Tools
Dimension 5: How early do I want to test?
=> How fast do you want your fix in
Ex: chrome 58  chrome 61
Stable
Windows Insider
Windows Insider
Evaluation of Interop Testing Tools
Own cloud
On-premises
Dimension 6: Freedom, Convenience and Price
Hosted
Trigger
Type of SE node
# OSes
Browsers
Browser channel
Hosted/on-prem
testRTC
Hosted
Trigger
Type of SE node
# OSes
Browsers
Browser channel
Hosted/on-prem
Travis CI
Hosted
Trigger
Type of SE node
# OSes
Browsers
Browser channel
Hosted/on-prem
BrowserStack
Hosted
Trigger
Type of SE node
# OSes
Browsers
Browser channel
Hosted/on-prem
Sauce Labs
Hosted
Ok, I see what’s missing for each.
What’s the right design now?
KITE: Karoshi Interoperability
Testing Engine
Because for most of us, manually testing webrtc
interop felt like “death by overwork”
KITE: Karoshi Interoperability Testing Engine
Automating RTC P2P tests
• Generic (any app, any back-end)
• Reusable (any process, trigger, …)
• Easy to maintain (no death  )
Stable / Beta / Dev / Canary
+
Own cloudOn-premises Hosted
KITE
Trigger
Type of SE node
# OSes
Browsers
Browser channel
Hosted/on-prem
KITE
Hosted
+
On-premises
KITE Design
Easy maintenance by divide and conquer
• Selenium Grid
• Test engine
• Test
• Dashboard
KITE Design
Conductor
Dispatcher
Test Runner Test Runner
Test Runner
Config => BrowserObj
Compute list< N-Tuple< BrowserObj > >
• { Test, Callback }
• list< N-Tuple< BO > >
handle concurrency
if resource: 1 N-tuple => 1 test runner =>1 thread
1 2 … N
• { Test, Callback }
• 1 N-Tuple< BO >
Instruments N BO
Run Test
Callback( results )
BrowserObj available
• Cr/FF - Mac - Rem-BB
• BrX - OSX - Rem-BaaS (SauceLabs)
• BrY - OSY - Rem-VM (AWS)
Result
Dashboard
• { N, Test, Callback }
• list< configs >
Configuration File{
"name": "local selenium example",
"callback": "http://localhost:8080/kiteweb/datacenter",
"remotes": [
{
"type": "local",
"remoteAddress": "http://localhost:4444/wd/hub"
}
],
"tests": [
{
"name": "IceConnectionTest",
"tupleSize": 2,
"testImpl": "org.webrtc.kite.IceConnectionTest"
}
],
"browsers": [
{
"browserName": "firefox"
},
{
"browserName": "chrome"
}
]
}
Configuration File{
"name": "local selenium example",
"callback": "http://localhost:8080/kiteweb/datacenter",
"remotes": [
{
"type": "local",
"remoteAddress": "http://localhost:4444/wd/hub"
}
],
"tests": [
{
"name": "IceConnectionTest",
"tupleSize": 2,
"testImpl": "org.webrtc.kite.IceConnectionTest"
}
],
"browsers": [
{
"browserName": "firefox"
},
{
"browserName": "chrome"
}
]
}
Location of dashboard
to send tests results
"callback": "http://localhost:8080/kiteweb/datacenter",
Configuration File{
"name": "local selenium example",
"callback": "http://localhost:8080/kiteweb/datacenter",
"remotes": [
{
"type": "local",
"remoteAddress": "http://localhost:4444/wd/hub"
}
],
"tests": [
{
"name": "IceConnectionTest",
"tupleSize": 2,
"testImpl": "org.webrtc.kite.IceConnectionTest"
}
],
"browsers": [
{
"browserName": "firefox"
},
{
"browserName": "chrome"
}
]
}
Registration of
Selenium server
"remotes": [
{
"type": "local",
"remoteAddress": "http://localhost:4444/wd/hub"
}
],
Configuration File{
"name": "local selenium example",
"callback": "http://localhost:8080/kiteweb/datacenter",
"remotes": [
{
"type": "local",
"remoteAddress": "http://localhost:4444/wd/hub"
}
],
"tests": [
{
"name": "IceConnectionTest",
"tupleSize": 2,
"testImpl": "org.webrtc.kite.IceConnectionTest"
}
],
"browsers": [
{
"browserName": "firefox"
},
{
"browserName": "chrome"
}
]
}
List of tests
"tests": [
{
"name": "IceConnectionTest",
"tupleSize": 2,
"testImpl": "org.webrtc.kite.IceConnectionTest"
}
],
Configuration File{
"name": "local selenium example",
"callback": "http://localhost:8080/kiteweb/datacenter",
"remotes": [
{
"type": "local",
"remoteAddress": "http://localhost:4444/wd/hub"
}
],
"tests": [
{
"name": "IceConnectionTest",
"tupleSize": 2,
"testImpl": "org.webrtc.kite.IceConnectionTest"
}
],
"browsers": [
{
"browserName": "firefox"
},
{
"browserName": "chrome"
}
]
}
List of browsers to
run the tests
"browsers": [
{
"browserName": "firefox"
},
{
"browserName": "chrome"
}
]
KITE Dashboard
KITE Dashboard
That’s very nice but it feels like
something is missing …
Global RTC Interoperability
Chromecast
Global RTC Interoperability:
MOBILE (Browsers)?
Chromecast
Global RTC Interoperability
Beyond Desktop Browsers
Appium
• Mobile testing framework
• For native, hybrid and mobile web apps
Global RTC Interoperability:
NATIVE, IoT and embedded
Chromecast
IoT
Electron
Global RTC Interoperability
Beyond Desktop Browsers
Electron
• Open source framework
• To build cross platform desktop applications
(HTML, CSS, JS)
• Combines Chromium and node.js into a single
runtime
Global RTC Interoperability:
Beyond 1-1
Jitsi
• Open source multiplatform
• Videoconferencing
• Instant messaging
Global RTC Interoperability:Beyond 1-1
Jitsi
Global RTC Interoperability
Make it easy: Grid Manager
• Set up a grid through a web app
• Set up Selenium hubs and nodes
• Download and set up
– Browsers
– Browsers WebDrivers
• Backup everything for follow-up uses
• Tear-down and clean-up after tests
Thank you!

More Related Content

What's hot

Building great mobile apps: Somethings you might want to know
Building great mobile apps: Somethings you might want to knowBuilding great mobile apps: Somethings you might want to know
Building great mobile apps: Somethings you might want to know
shwetank
 
WebRTC - On Standards, Identity and Telco Strategy
WebRTC - On Standards, Identity and Telco StrategyWebRTC - On Standards, Identity and Telco Strategy
WebRTC - On Standards, Identity and Telco Strategy
Jose de Castro
 
Deploying WebRTC in a low-latency streaming service
Deploying WebRTC in a low-latency streaming serviceDeploying WebRTC in a low-latency streaming service
Deploying WebRTC in a low-latency streaming service
Alexandre Gouaillard
 
WebRTC Reborn SignalConf 2016
WebRTC Reborn SignalConf 2016WebRTC Reborn SignalConf 2016
WebRTC Reborn SignalConf 2016
Dan Jenkins
 
WebRTC Tutorial by Dean Bubley of Disruptive Analysis & Tim Panton of Westhaw...
WebRTC Tutorial by Dean Bubley of Disruptive Analysis & Tim Panton of Westhaw...WebRTC Tutorial by Dean Bubley of Disruptive Analysis & Tim Panton of Westhaw...
WebRTC Tutorial by Dean Bubley of Disruptive Analysis & Tim Panton of Westhaw...
Dean Bubley
 
WEBRTC_SEMINAR_FOR_TEAM_by_daebalprime
WEBRTC_SEMINAR_FOR_TEAM_by_daebalprimeWEBRTC_SEMINAR_FOR_TEAM_by_daebalprime
WEBRTC_SEMINAR_FOR_TEAM_by_daebalprime
Daeyeon Kim
 
Things I wished I knew before building my first WebRTC app - RTE2020
Things I wished I knew before building my first WebRTC app - RTE2020Things I wished I knew before building my first WebRTC app - RTE2020
Things I wished I knew before building my first WebRTC app - RTE2020
Alberto González Trastoy
 
WebRTC と Native とそれから、それから。
WebRTC と Native とそれから、それから。 WebRTC と Native とそれから、それから。
WebRTC と Native とそれから、それから。
tnoho
 
Hackference 2014 - Node.js, the awesome parts
Hackference 2014 - Node.js, the awesome partsHackference 2014 - Node.js, the awesome parts
Hackference 2014 - Node.js, the awesome parts
Dan Jenkins
 
WebRTC overview
WebRTC overviewWebRTC overview
WebRTC overview
Rouyun Pan
 
The New York Times: Sustainable Systems, Powered by Python
The New York Times: Sustainable Systems, Powered by PythonThe New York Times: Sustainable Systems, Powered by Python
The New York Times: Sustainable Systems, Powered by Python
All Things Open
 
PuppetConf 2016: Delivering Premium Quality Modules: Using Beaker and VMpoole...
PuppetConf 2016: Delivering Premium Quality Modules: Using Beaker and VMpoole...PuppetConf 2016: Delivering Premium Quality Modules: Using Beaker and VMpoole...
PuppetConf 2016: Delivering Premium Quality Modules: Using Beaker and VMpoole...
Puppet
 
Kernel Recipes 2017 - Linux Kernel Release Model - Greg KH
Kernel Recipes 2017 - Linux Kernel Release Model - Greg KHKernel Recipes 2017 - Linux Kernel Release Model - Greg KH
Kernel Recipes 2017 - Linux Kernel Release Model - Greg KH
Anne Nicolas
 
Lessons Learned in Automating Compliance for Containers
Lessons Learned in Automating Compliance for ContainersLessons Learned in Automating Compliance for Containers
Lessons Learned in Automating Compliance for Containers
All Things Open
 
WbeRTC in IOT presented in KrankyGeek
WbeRTC in IOT presented in KrankyGeekWbeRTC in IOT presented in KrankyGeek
WbeRTC in IOT presented in KrankyGeek
ALTANAI BISHT
 
WHIP and Janus @ IIT-RTC 2021
WHIP and Janus @ IIT-RTC 2021WHIP and Janus @ IIT-RTC 2021
WHIP and Janus @ IIT-RTC 2021
Lorenzo Miniero
 
PuppetConf 2016: Implementing Puppet within a Complex Enterprise – Jerry Caup...
PuppetConf 2016: Implementing Puppet within a Complex Enterprise – Jerry Caup...PuppetConf 2016: Implementing Puppet within a Complex Enterprise – Jerry Caup...
PuppetConf 2016: Implementing Puppet within a Complex Enterprise – Jerry Caup...
Puppet
 
DevOps meetup 16oct docker and jenkins
DevOps meetup 16oct docker and jenkinsDevOps meetup 16oct docker and jenkins
DevOps meetup 16oct docker and jenkins
Benoit Wilcox
 
Testing fácil con Docker: Gestiona dependencias y unifica entornos
Testing fácil con Docker: Gestiona dependencias y unifica entornosTesting fácil con Docker: Gestiona dependencias y unifica entornos
Testing fácil con Docker: Gestiona dependencias y unifica entornos
Micael Gallego
 
Kernel Recipes 2017 - The state of kernel self-protection - Kees Cook
Kernel Recipes 2017 - The state of kernel self-protection - Kees CookKernel Recipes 2017 - The state of kernel self-protection - Kees Cook
Kernel Recipes 2017 - The state of kernel self-protection - Kees Cook
Anne Nicolas
 

What's hot (20)

Building great mobile apps: Somethings you might want to know
Building great mobile apps: Somethings you might want to knowBuilding great mobile apps: Somethings you might want to know
Building great mobile apps: Somethings you might want to know
 
WebRTC - On Standards, Identity and Telco Strategy
WebRTC - On Standards, Identity and Telco StrategyWebRTC - On Standards, Identity and Telco Strategy
WebRTC - On Standards, Identity and Telco Strategy
 
Deploying WebRTC in a low-latency streaming service
Deploying WebRTC in a low-latency streaming serviceDeploying WebRTC in a low-latency streaming service
Deploying WebRTC in a low-latency streaming service
 
WebRTC Reborn SignalConf 2016
WebRTC Reborn SignalConf 2016WebRTC Reborn SignalConf 2016
WebRTC Reborn SignalConf 2016
 
WebRTC Tutorial by Dean Bubley of Disruptive Analysis & Tim Panton of Westhaw...
WebRTC Tutorial by Dean Bubley of Disruptive Analysis & Tim Panton of Westhaw...WebRTC Tutorial by Dean Bubley of Disruptive Analysis & Tim Panton of Westhaw...
WebRTC Tutorial by Dean Bubley of Disruptive Analysis & Tim Panton of Westhaw...
 
WEBRTC_SEMINAR_FOR_TEAM_by_daebalprime
WEBRTC_SEMINAR_FOR_TEAM_by_daebalprimeWEBRTC_SEMINAR_FOR_TEAM_by_daebalprime
WEBRTC_SEMINAR_FOR_TEAM_by_daebalprime
 
Things I wished I knew before building my first WebRTC app - RTE2020
Things I wished I knew before building my first WebRTC app - RTE2020Things I wished I knew before building my first WebRTC app - RTE2020
Things I wished I knew before building my first WebRTC app - RTE2020
 
WebRTC と Native とそれから、それから。
WebRTC と Native とそれから、それから。 WebRTC と Native とそれから、それから。
WebRTC と Native とそれから、それから。
 
Hackference 2014 - Node.js, the awesome parts
Hackference 2014 - Node.js, the awesome partsHackference 2014 - Node.js, the awesome parts
Hackference 2014 - Node.js, the awesome parts
 
WebRTC overview
WebRTC overviewWebRTC overview
WebRTC overview
 
The New York Times: Sustainable Systems, Powered by Python
The New York Times: Sustainable Systems, Powered by PythonThe New York Times: Sustainable Systems, Powered by Python
The New York Times: Sustainable Systems, Powered by Python
 
PuppetConf 2016: Delivering Premium Quality Modules: Using Beaker and VMpoole...
PuppetConf 2016: Delivering Premium Quality Modules: Using Beaker and VMpoole...PuppetConf 2016: Delivering Premium Quality Modules: Using Beaker and VMpoole...
PuppetConf 2016: Delivering Premium Quality Modules: Using Beaker and VMpoole...
 
Kernel Recipes 2017 - Linux Kernel Release Model - Greg KH
Kernel Recipes 2017 - Linux Kernel Release Model - Greg KHKernel Recipes 2017 - Linux Kernel Release Model - Greg KH
Kernel Recipes 2017 - Linux Kernel Release Model - Greg KH
 
Lessons Learned in Automating Compliance for Containers
Lessons Learned in Automating Compliance for ContainersLessons Learned in Automating Compliance for Containers
Lessons Learned in Automating Compliance for Containers
 
WbeRTC in IOT presented in KrankyGeek
WbeRTC in IOT presented in KrankyGeekWbeRTC in IOT presented in KrankyGeek
WbeRTC in IOT presented in KrankyGeek
 
WHIP and Janus @ IIT-RTC 2021
WHIP and Janus @ IIT-RTC 2021WHIP and Janus @ IIT-RTC 2021
WHIP and Janus @ IIT-RTC 2021
 
PuppetConf 2016: Implementing Puppet within a Complex Enterprise – Jerry Caup...
PuppetConf 2016: Implementing Puppet within a Complex Enterprise – Jerry Caup...PuppetConf 2016: Implementing Puppet within a Complex Enterprise – Jerry Caup...
PuppetConf 2016: Implementing Puppet within a Complex Enterprise – Jerry Caup...
 
DevOps meetup 16oct docker and jenkins
DevOps meetup 16oct docker and jenkinsDevOps meetup 16oct docker and jenkins
DevOps meetup 16oct docker and jenkins
 
Testing fácil con Docker: Gestiona dependencias y unifica entornos
Testing fácil con Docker: Gestiona dependencias y unifica entornosTesting fácil con Docker: Gestiona dependencias y unifica entornos
Testing fácil con Docker: Gestiona dependencias y unifica entornos
 
Kernel Recipes 2017 - The state of kernel self-protection - Kees Cook
Kernel Recipes 2017 - The state of kernel self-protection - Kees CookKernel Recipes 2017 - The state of kernel self-protection - Kees Cook
Kernel Recipes 2017 - The state of kernel self-protection - Kees Cook
 

Similar to Real-Time Communication Testing Evolution with WebRTC

WebRTC Live Q&A Session #5 - JavaScript Promises and WebRTC Interoperability ...
WebRTC Live Q&A Session #5 - JavaScript Promises and WebRTC Interoperability ...WebRTC Live Q&A Session #5 - JavaScript Promises and WebRTC Interoperability ...
WebRTC Live Q&A Session #5 - JavaScript Promises and WebRTC Interoperability ...
Amir Zmora
 
2016 Q1 - WebRTC testing State of The Art
2016 Q1 - WebRTC testing State of The Art2016 Q1 - WebRTC testing State of The Art
2016 Q1 - WebRTC testing State of The Art
Alexandre Gouaillard
 
1,2,3 … Testing : Is this thing on(line)? with Mike Martin
1,2,3 … Testing : Is this thing on(line)? with Mike Martin1,2,3 … Testing : Is this thing on(line)? with Mike Martin
1,2,3 … Testing : Is this thing on(line)? with Mike Martin
NETUserGroupBern
 
DYI - Starting your own webrtc project
DYI - Starting your own webrtc projectDYI - Starting your own webrtc project
DYI - Starting your own webrtc project
Alexandre Gouaillard
 
Real time web
Real time webReal time web
Real time web
Medhat Dawoud
 
OWASP ZAP Workshop for QA Testers
OWASP ZAP Workshop for QA TestersOWASP ZAP Workshop for QA Testers
OWASP ZAP Workshop for QA Testers
Javan Rasokat
 
Cerberus : Framework for Manual and Automated Testing (Web Application)
Cerberus : Framework for Manual and Automated Testing (Web Application)Cerberus : Framework for Manual and Automated Testing (Web Application)
Cerberus : Framework for Manual and Automated Testing (Web Application)
CIVEL Benoit
 
Cerberus_Presentation1
Cerberus_Presentation1Cerberus_Presentation1
Cerberus_Presentation1CIVEL Benoit
 
KrishnaToolComparisionPPT.pdf
KrishnaToolComparisionPPT.pdfKrishnaToolComparisionPPT.pdf
KrishnaToolComparisionPPT.pdf
QA or the Highway
 
AWS Summit Auckland - Application Delivery Patterns for Developers
AWS Summit Auckland - Application Delivery Patterns for DevelopersAWS Summit Auckland - Application Delivery Patterns for Developers
AWS Summit Auckland - Application Delivery Patterns for Developers
Amazon Web Services
 
FEDSPUG April 2014: Visual Studio 2013 for Application Lifecycle Management &...
FEDSPUG April 2014: Visual Studio 2013 for Application Lifecycle Management &...FEDSPUG April 2014: Visual Studio 2013 for Application Lifecycle Management &...
FEDSPUG April 2014: Visual Studio 2013 for Application Lifecycle Management &...WSPDC & FEDSPUG
 
JCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptxJCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptx
Grace Jansen
 
DockerCon Europe 2018 Monitoring & Logging Workshop
DockerCon Europe 2018 Monitoring & Logging WorkshopDockerCon Europe 2018 Monitoring & Logging Workshop
DockerCon Europe 2018 Monitoring & Logging Workshop
Brian Christner
 
Pragmatic Parallels: Java and JavaScript
Pragmatic Parallels: Java and JavaScriptPragmatic Parallels: Java and JavaScript
Pragmatic Parallels: Java and JavaScript
davejohnson
 
automation framework
automation frameworkautomation framework
automation frameworkANSHU GOYAL
 
LDNSE: Testdroid for Mobile App and Web Testing (London Selenium Meetup)
LDNSE: Testdroid for Mobile App and Web Testing (London Selenium Meetup)LDNSE: Testdroid for Mobile App and Web Testing (London Selenium Meetup)
LDNSE: Testdroid for Mobile App and Web Testing (London Selenium Meetup)
Bitbar
 
Structured Functional Automated Web Service Testing
Structured Functional Automated Web Service TestingStructured Functional Automated Web Service Testing
Structured Functional Automated Web Service Testing
rdekleijn
 
The 3 Top Techniques for Web Security Testing Using a Proxy
The 3 Top Techniques for Web Security Testing Using a ProxyThe 3 Top Techniques for Web Security Testing Using a Proxy
The 3 Top Techniques for Web Security Testing Using a Proxy
TEST Huddle
 
Justmeans power point
Justmeans power pointJustmeans power point
Justmeans power point
justmeanscsr
 
Continuous Delivery - Automate & Build Better Software with Travis CI
Continuous Delivery - Automate & Build Better Software with Travis CIContinuous Delivery - Automate & Build Better Software with Travis CI
Continuous Delivery - Automate & Build Better Software with Travis CI
wajrcs
 

Similar to Real-Time Communication Testing Evolution with WebRTC (20)

WebRTC Live Q&A Session #5 - JavaScript Promises and WebRTC Interoperability ...
WebRTC Live Q&A Session #5 - JavaScript Promises and WebRTC Interoperability ...WebRTC Live Q&A Session #5 - JavaScript Promises and WebRTC Interoperability ...
WebRTC Live Q&A Session #5 - JavaScript Promises and WebRTC Interoperability ...
 
2016 Q1 - WebRTC testing State of The Art
2016 Q1 - WebRTC testing State of The Art2016 Q1 - WebRTC testing State of The Art
2016 Q1 - WebRTC testing State of The Art
 
1,2,3 … Testing : Is this thing on(line)? with Mike Martin
1,2,3 … Testing : Is this thing on(line)? with Mike Martin1,2,3 … Testing : Is this thing on(line)? with Mike Martin
1,2,3 … Testing : Is this thing on(line)? with Mike Martin
 
DYI - Starting your own webrtc project
DYI - Starting your own webrtc projectDYI - Starting your own webrtc project
DYI - Starting your own webrtc project
 
Real time web
Real time webReal time web
Real time web
 
OWASP ZAP Workshop for QA Testers
OWASP ZAP Workshop for QA TestersOWASP ZAP Workshop for QA Testers
OWASP ZAP Workshop for QA Testers
 
Cerberus : Framework for Manual and Automated Testing (Web Application)
Cerberus : Framework for Manual and Automated Testing (Web Application)Cerberus : Framework for Manual and Automated Testing (Web Application)
Cerberus : Framework for Manual and Automated Testing (Web Application)
 
Cerberus_Presentation1
Cerberus_Presentation1Cerberus_Presentation1
Cerberus_Presentation1
 
KrishnaToolComparisionPPT.pdf
KrishnaToolComparisionPPT.pdfKrishnaToolComparisionPPT.pdf
KrishnaToolComparisionPPT.pdf
 
AWS Summit Auckland - Application Delivery Patterns for Developers
AWS Summit Auckland - Application Delivery Patterns for DevelopersAWS Summit Auckland - Application Delivery Patterns for Developers
AWS Summit Auckland - Application Delivery Patterns for Developers
 
FEDSPUG April 2014: Visual Studio 2013 for Application Lifecycle Management &...
FEDSPUG April 2014: Visual Studio 2013 for Application Lifecycle Management &...FEDSPUG April 2014: Visual Studio 2013 for Application Lifecycle Management &...
FEDSPUG April 2014: Visual Studio 2013 for Application Lifecycle Management &...
 
JCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptxJCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptx
 
DockerCon Europe 2018 Monitoring & Logging Workshop
DockerCon Europe 2018 Monitoring & Logging WorkshopDockerCon Europe 2018 Monitoring & Logging Workshop
DockerCon Europe 2018 Monitoring & Logging Workshop
 
Pragmatic Parallels: Java and JavaScript
Pragmatic Parallels: Java and JavaScriptPragmatic Parallels: Java and JavaScript
Pragmatic Parallels: Java and JavaScript
 
automation framework
automation frameworkautomation framework
automation framework
 
LDNSE: Testdroid for Mobile App and Web Testing (London Selenium Meetup)
LDNSE: Testdroid for Mobile App and Web Testing (London Selenium Meetup)LDNSE: Testdroid for Mobile App and Web Testing (London Selenium Meetup)
LDNSE: Testdroid for Mobile App and Web Testing (London Selenium Meetup)
 
Structured Functional Automated Web Service Testing
Structured Functional Automated Web Service TestingStructured Functional Automated Web Service Testing
Structured Functional Automated Web Service Testing
 
The 3 Top Techniques for Web Security Testing Using a Proxy
The 3 Top Techniques for Web Security Testing Using a ProxyThe 3 Top Techniques for Web Security Testing Using a Proxy
The 3 Top Techniques for Web Security Testing Using a Proxy
 
Justmeans power point
Justmeans power pointJustmeans power point
Justmeans power point
 
Continuous Delivery - Automate & Build Better Software with Travis CI
Continuous Delivery - Automate & Build Better Software with Travis CIContinuous Delivery - Automate & Build Better Software with Travis CI
Continuous Delivery - Automate & Build Better Software with Travis CI
 

More from Alexandre Gouaillard

Streaming Media West: Webrtc the future of low latency streaming
Streaming Media West: Webrtc the future of low latency streamingStreaming Media West: Webrtc the future of low latency streaming
Streaming Media West: Webrtc the future of low latency streaming
Alexandre Gouaillard
 
IIT-RTC 2017 Qt WebRTC Tutorial (Qt Janus Client)
IIT-RTC 2017 Qt WebRTC Tutorial (Qt Janus Client)IIT-RTC 2017 Qt WebRTC Tutorial (Qt Janus Client)
IIT-RTC 2017 Qt WebRTC Tutorial (Qt Janus Client)
Alexandre Gouaillard
 
2014 Webrtc Summit & Cloud Expo, RealTime Interactions for IoT
2014 Webrtc Summit & Cloud Expo, RealTime Interactions for IoT2014 Webrtc Summit & Cloud Expo, RealTime Interactions for IoT
2014 Webrtc Summit & Cloud Expo, RealTime Interactions for IoT
Alexandre Gouaillard
 
2016 February - WebRTC Conference japan - English
2016 February - WebRTC Conference japan - English2016 February - WebRTC Conference japan - English
2016 February - WebRTC Conference japan - English
Alexandre Gouaillard
 
2016 February - WebRTC Conference Japan - 日本語
2016 February - WebRTC Conference Japan - 日本語2016 February - WebRTC Conference Japan - 日本語
2016 February - WebRTC Conference Japan - 日本語
Alexandre Gouaillard
 
WebRTC Object Model API - Transceivers
WebRTC Object Model API - TransceiversWebRTC Object Model API - Transceivers
WebRTC Object Model API - Transceivers
Alexandre Gouaillard
 
2015 Q4 webrtc standards update
2015 Q4 webrtc standards update2015 Q4 webrtc standards update
2015 Q4 webrtc standards update
Alexandre Gouaillard
 
overview-peerconnection-lifetime
overview-peerconnection-lifetimeoverview-peerconnection-lifetime
overview-peerconnection-lifetime
Alexandre Gouaillard
 
Testing and packaging WebRTC Stack
Testing and packaging WebRTC StackTesting and packaging WebRTC Stack
Testing and packaging WebRTC Stack
Alexandre Gouaillard
 
Open Source Options for Building your WebRTC Solution, May 2015 @ WebRTC Conf...
Open Source Options for Building your WebRTC Solution, May 2015 @ WebRTC Conf...Open Source Options for Building your WebRTC Solution, May 2015 @ WebRTC Conf...
Open Source Options for Building your WebRTC Solution, May 2015 @ WebRTC Conf...
Alexandre Gouaillard
 
WebRTC Infrastructure scalability notes - Geek'n Kranky - June 2014 @ Google SF
WebRTC Infrastructure scalability notes - Geek'n Kranky - June 2014 @ Google SFWebRTC Infrastructure scalability notes - Geek'n Kranky - June 2014 @ Google SF
WebRTC Infrastructure scalability notes - Geek'n Kranky - June 2014 @ Google SF
Alexandre Gouaillard
 
WebRTC status and what to expect in 2015
WebRTC status and what to expect in 2015WebRTC status and what to expect in 2015
WebRTC status and what to expect in 2015
Alexandre Gouaillard
 
Plugin for other browsers - webRTC Conference and Expo June 2014 @ atlanta
Plugin for other browsers - webRTC Conference and Expo June 2014 @ atlantaPlugin for other browsers - webRTC Conference and Expo June 2014 @ atlanta
Plugin for other browsers - webRTC Conference and Expo June 2014 @ atlantaAlexandre Gouaillard
 
Practical webRTC - from API to Solution - webRTC Summit 2014 @ NYC
Practical webRTC - from API to Solution - webRTC Summit 2014 @ NYCPractical webRTC - from API to Solution - webRTC Summit 2014 @ NYC
Practical webRTC - from API to Solution - webRTC Summit 2014 @ NYCAlexandre Gouaillard
 

More from Alexandre Gouaillard (14)

Streaming Media West: Webrtc the future of low latency streaming
Streaming Media West: Webrtc the future of low latency streamingStreaming Media West: Webrtc the future of low latency streaming
Streaming Media West: Webrtc the future of low latency streaming
 
IIT-RTC 2017 Qt WebRTC Tutorial (Qt Janus Client)
IIT-RTC 2017 Qt WebRTC Tutorial (Qt Janus Client)IIT-RTC 2017 Qt WebRTC Tutorial (Qt Janus Client)
IIT-RTC 2017 Qt WebRTC Tutorial (Qt Janus Client)
 
2014 Webrtc Summit & Cloud Expo, RealTime Interactions for IoT
2014 Webrtc Summit & Cloud Expo, RealTime Interactions for IoT2014 Webrtc Summit & Cloud Expo, RealTime Interactions for IoT
2014 Webrtc Summit & Cloud Expo, RealTime Interactions for IoT
 
2016 February - WebRTC Conference japan - English
2016 February - WebRTC Conference japan - English2016 February - WebRTC Conference japan - English
2016 February - WebRTC Conference japan - English
 
2016 February - WebRTC Conference Japan - 日本語
2016 February - WebRTC Conference Japan - 日本語2016 February - WebRTC Conference Japan - 日本語
2016 February - WebRTC Conference Japan - 日本語
 
WebRTC Object Model API - Transceivers
WebRTC Object Model API - TransceiversWebRTC Object Model API - Transceivers
WebRTC Object Model API - Transceivers
 
2015 Q4 webrtc standards update
2015 Q4 webrtc standards update2015 Q4 webrtc standards update
2015 Q4 webrtc standards update
 
overview-peerconnection-lifetime
overview-peerconnection-lifetimeoverview-peerconnection-lifetime
overview-peerconnection-lifetime
 
Testing and packaging WebRTC Stack
Testing and packaging WebRTC StackTesting and packaging WebRTC Stack
Testing and packaging WebRTC Stack
 
Open Source Options for Building your WebRTC Solution, May 2015 @ WebRTC Conf...
Open Source Options for Building your WebRTC Solution, May 2015 @ WebRTC Conf...Open Source Options for Building your WebRTC Solution, May 2015 @ WebRTC Conf...
Open Source Options for Building your WebRTC Solution, May 2015 @ WebRTC Conf...
 
WebRTC Infrastructure scalability notes - Geek'n Kranky - June 2014 @ Google SF
WebRTC Infrastructure scalability notes - Geek'n Kranky - June 2014 @ Google SFWebRTC Infrastructure scalability notes - Geek'n Kranky - June 2014 @ Google SF
WebRTC Infrastructure scalability notes - Geek'n Kranky - June 2014 @ Google SF
 
WebRTC status and what to expect in 2015
WebRTC status and what to expect in 2015WebRTC status and what to expect in 2015
WebRTC status and what to expect in 2015
 
Plugin for other browsers - webRTC Conference and Expo June 2014 @ atlanta
Plugin for other browsers - webRTC Conference and Expo June 2014 @ atlantaPlugin for other browsers - webRTC Conference and Expo June 2014 @ atlanta
Plugin for other browsers - webRTC Conference and Expo June 2014 @ atlanta
 
Practical webRTC - from API to Solution - webRTC Summit 2014 @ NYC
Practical webRTC - from API to Solution - webRTC Summit 2014 @ NYCPractical webRTC - from API to Solution - webRTC Summit 2014 @ NYC
Practical webRTC - from API to Solution - webRTC Summit 2014 @ NYC
 

Recently uploaded

一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
ydteq
 
space technology lecture notes on satellite
space technology lecture notes on satellitespace technology lecture notes on satellite
space technology lecture notes on satellite
ongomchris
 
H.Seo, ICLR 2024, MLILAB, KAIST AI.pdf
H.Seo,  ICLR 2024, MLILAB,  KAIST AI.pdfH.Seo,  ICLR 2024, MLILAB,  KAIST AI.pdf
H.Seo, ICLR 2024, MLILAB, KAIST AI.pdf
MLILAB
 
Standard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - NeometrixStandard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - Neometrix
Neometrix_Engineering_Pvt_Ltd
 
Architectural Portfolio Sean Lockwood
Architectural Portfolio Sean LockwoodArchitectural Portfolio Sean Lockwood
Architectural Portfolio Sean Lockwood
seandesed
 
English lab ppt no titlespecENG PPTt.pdf
English lab ppt no titlespecENG PPTt.pdfEnglish lab ppt no titlespecENG PPTt.pdf
English lab ppt no titlespecENG PPTt.pdf
BrazilAccount1
 
Water Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation and Control Monthly - May 2024.pdfWater Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation & Control
 
WATER CRISIS and its solutions-pptx 1234
WATER CRISIS and its solutions-pptx 1234WATER CRISIS and its solutions-pptx 1234
WATER CRISIS and its solutions-pptx 1234
AafreenAbuthahir2
 
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdfAKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
SamSarthak3
 
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
bakpo1
 
ML for identifying fraud using open blockchain data.pptx
ML for identifying fraud using open blockchain data.pptxML for identifying fraud using open blockchain data.pptx
ML for identifying fraud using open blockchain data.pptx
Vijay Dialani, PhD
 
Runway Orientation Based on the Wind Rose Diagram.pptx
Runway Orientation Based on the Wind Rose Diagram.pptxRunway Orientation Based on the Wind Rose Diagram.pptx
Runway Orientation Based on the Wind Rose Diagram.pptx
SupreethSP4
 
DESIGN A COTTON SEED SEPARATION MACHINE.docx
DESIGN A COTTON SEED SEPARATION MACHINE.docxDESIGN A COTTON SEED SEPARATION MACHINE.docx
DESIGN A COTTON SEED SEPARATION MACHINE.docx
FluxPrime1
 
CME397 Surface Engineering- Professional Elective
CME397 Surface Engineering- Professional ElectiveCME397 Surface Engineering- Professional Elective
CME397 Surface Engineering- Professional Elective
karthi keyan
 
HYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generationHYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generation
Robbie Edward Sayers
 
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptxCFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
R&R Consult
 
Railway Signalling Principles Edition 3.pdf
Railway Signalling Principles Edition 3.pdfRailway Signalling Principles Edition 3.pdf
Railway Signalling Principles Edition 3.pdf
TeeVichai
 
Nuclear Power Economics and Structuring 2024
Nuclear Power Economics and Structuring 2024Nuclear Power Economics and Structuring 2024
Nuclear Power Economics and Structuring 2024
Massimo Talia
 
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdf
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdfGoverning Equations for Fundamental Aerodynamics_Anderson2010.pdf
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdf
WENKENLI1
 
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
obonagu
 

Recently uploaded (20)

一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
 
space technology lecture notes on satellite
space technology lecture notes on satellitespace technology lecture notes on satellite
space technology lecture notes on satellite
 
H.Seo, ICLR 2024, MLILAB, KAIST AI.pdf
H.Seo,  ICLR 2024, MLILAB,  KAIST AI.pdfH.Seo,  ICLR 2024, MLILAB,  KAIST AI.pdf
H.Seo, ICLR 2024, MLILAB, KAIST AI.pdf
 
Standard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - NeometrixStandard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - Neometrix
 
Architectural Portfolio Sean Lockwood
Architectural Portfolio Sean LockwoodArchitectural Portfolio Sean Lockwood
Architectural Portfolio Sean Lockwood
 
English lab ppt no titlespecENG PPTt.pdf
English lab ppt no titlespecENG PPTt.pdfEnglish lab ppt no titlespecENG PPTt.pdf
English lab ppt no titlespecENG PPTt.pdf
 
Water Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation and Control Monthly - May 2024.pdfWater Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation and Control Monthly - May 2024.pdf
 
WATER CRISIS and its solutions-pptx 1234
WATER CRISIS and its solutions-pptx 1234WATER CRISIS and its solutions-pptx 1234
WATER CRISIS and its solutions-pptx 1234
 
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdfAKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
 
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
 
ML for identifying fraud using open blockchain data.pptx
ML for identifying fraud using open blockchain data.pptxML for identifying fraud using open blockchain data.pptx
ML for identifying fraud using open blockchain data.pptx
 
Runway Orientation Based on the Wind Rose Diagram.pptx
Runway Orientation Based on the Wind Rose Diagram.pptxRunway Orientation Based on the Wind Rose Diagram.pptx
Runway Orientation Based on the Wind Rose Diagram.pptx
 
DESIGN A COTTON SEED SEPARATION MACHINE.docx
DESIGN A COTTON SEED SEPARATION MACHINE.docxDESIGN A COTTON SEED SEPARATION MACHINE.docx
DESIGN A COTTON SEED SEPARATION MACHINE.docx
 
CME397 Surface Engineering- Professional Elective
CME397 Surface Engineering- Professional ElectiveCME397 Surface Engineering- Professional Elective
CME397 Surface Engineering- Professional Elective
 
HYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generationHYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generation
 
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptxCFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
 
Railway Signalling Principles Edition 3.pdf
Railway Signalling Principles Edition 3.pdfRailway Signalling Principles Edition 3.pdf
Railway Signalling Principles Edition 3.pdf
 
Nuclear Power Economics and Structuring 2024
Nuclear Power Economics and Structuring 2024Nuclear Power Economics and Structuring 2024
Nuclear Power Economics and Structuring 2024
 
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdf
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdfGoverning Equations for Fundamental Aerodynamics_Anderson2010.pdf
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdf
 
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
 

Real-Time Communication Testing Evolution with WebRTC

  • 1. Real-Time Communication Testing Evolution with WebRTC Dr Alex Gouaillard CoSMo Software Consulting IMTC, W3C, IETF
  • 2. RTC Interoperability: Web Apps Chromecast
  • 3. • W3C Standardization process (features supported or not) • Stand-alone tests • Single browser (one at a time) (JS API) Compliance and Usual Testing Test the Web Forward
  • 4. What about WebRTC 1.0? Why so low test coverage? • Some parts of specifications were just written • Tests not needed early on in standardization process • Many tests need P2P communication / interop testing Media devices APIs WebRTC 1.0 APIs Test coverage as of November 2016 (W3C TPAC)
  • 5. Ex. of RTC feature not Testable before: Network and Protocol Testing: ICE Client A Client B STUN server What is my public IP address? Your public IP address is x.x.x.x:y
  • 6. Compliance and Usual Testing vs. Interoperability Testing Compliance & Usual Testing Interoperability Testing • Interaction automation • Stand-alone tests • Single browser • Interaction automation • Two synchronized instances of the same test • 2+ browsers run in parallel  New testing tools needed
  • 7. Browsers Interaction Automation: WebDriver protocol ChromeDriver geckodriver Microsoft WebDriver SafariDriver
  • 8. Browsers as a Service: hosted selenium nodes
  • 9. In-Progress: WebDriver needs update for WebRTC Security & others • Permission prompt – Geolocation – Camera – Microphone – Bluetooth – … • Fake Media / Mock Capturer • ICE Candidate Filtering • Unsecure origin
  • 10. Wrap-Up: WebDriver for RTC Tests • Interaction • Multiple browsers in parallel • Synchronization of instances of same test between browsers
  • 11. Lots of tools out there addressing a subset of the problem WebRTC-test Jitsi-Hammer Kurento Testing Framework Jattack
  • 12. Ok, existing tools are limited but … How bad can it be, really? Rough Goal: Test all possible pairs of [Browser] x [Browser Revision] x [OS] x [OS Revision]
  • 13. WhatweWANTtotest 496 © Dr. Alex Gouaillard @ Citrix Systems, 2016. Document provided under CC BY-NC 4.0
  • 14. Whatwecouldtesttoday 115 23% © Dr. Alex Gouaillard @ Citrix Systems, 2016. Document provided under CC BY-NC 4.0 381 77% 1 OS 2 Oses (Not tested)
  • 15. © Dr. Alex Gouaillard @ Citrix Systems, 2016. Document provided under CC BY-NC 4.0 6 5% WhatweACTUALLYtesttoday 21 18% 88 77% Tested WIP Not tested
  • 16. Ok, it’s REALLY bad … Get visibility: list and evaluate
  • 17. Evaluation of Interop Testing Tools Dimension 1: Tests Triggers and frequency 6 months Weekly (2d) Daily / Nightly (4h) Commit-based and fast (20mn) Experimental (manually triggered)
  • 18. Evaluation of Interop Testing Tools Dimension 2: Type of SE nodes I want to use Self-Hosted, Pre-configured VM Hosted, as-a-service (e.g. BrowserStack) Self-Hosted, Ephemeral VM Hosted, Ephemeral VM (e.g. Travis) Local / physical machines [Apple] [Only stable browsers] [Extensions and plug-ins] [Modified browsers] [no manual settings] [Extensions and plug-ins] [Apple] [limited OS set]
  • 19. Evaluation of Interop Testing Tools Dimension 3: OS I want to support
  • 20. Evaluation of Interop Testing Tools Dimension 4: Which Browsers? Easy, kind of tested already, great WebDriver support No Apple VM on non-apple Hardware Webdriver is more recent and less mature than others WebRTC? What’s your flavor~~ ? Permission prompt? Fake Media? 36+% of Enterprise market (Windows 7) which plugin?
  • 21. Evaluation of Interop Testing Tools Dimension 5: How early do I want to test? => How fast do you want your fix in Ex: chrome 58  chrome 61 Stable Windows Insider Windows Insider
  • 22. Evaluation of Interop Testing Tools Own cloud On-premises Dimension 6: Freedom, Convenience and Price Hosted
  • 23. Trigger Type of SE node # OSes Browsers Browser channel Hosted/on-prem testRTC Hosted
  • 24. Trigger Type of SE node # OSes Browsers Browser channel Hosted/on-prem Travis CI Hosted
  • 25. Trigger Type of SE node # OSes Browsers Browser channel Hosted/on-prem BrowserStack Hosted
  • 26. Trigger Type of SE node # OSes Browsers Browser channel Hosted/on-prem Sauce Labs Hosted
  • 27. Ok, I see what’s missing for each. What’s the right design now?
  • 28. KITE: Karoshi Interoperability Testing Engine Because for most of us, manually testing webrtc interop felt like “death by overwork”
  • 29. KITE: Karoshi Interoperability Testing Engine Automating RTC P2P tests • Generic (any app, any back-end) • Reusable (any process, trigger, …) • Easy to maintain (no death  ) Stable / Beta / Dev / Canary + Own cloudOn-premises Hosted
  • 30. KITE Trigger Type of SE node # OSes Browsers Browser channel Hosted/on-prem KITE Hosted + On-premises
  • 31. KITE Design Easy maintenance by divide and conquer • Selenium Grid • Test engine • Test • Dashboard
  • 32. KITE Design Conductor Dispatcher Test Runner Test Runner Test Runner Config => BrowserObj Compute list< N-Tuple< BrowserObj > > • { Test, Callback } • list< N-Tuple< BO > > handle concurrency if resource: 1 N-tuple => 1 test runner =>1 thread 1 2 … N • { Test, Callback } • 1 N-Tuple< BO > Instruments N BO Run Test Callback( results ) BrowserObj available • Cr/FF - Mac - Rem-BB • BrX - OSX - Rem-BaaS (SauceLabs) • BrY - OSY - Rem-VM (AWS) Result Dashboard • { N, Test, Callback } • list< configs >
  • 33. Configuration File{ "name": "local selenium example", "callback": "http://localhost:8080/kiteweb/datacenter", "remotes": [ { "type": "local", "remoteAddress": "http://localhost:4444/wd/hub" } ], "tests": [ { "name": "IceConnectionTest", "tupleSize": 2, "testImpl": "org.webrtc.kite.IceConnectionTest" } ], "browsers": [ { "browserName": "firefox" }, { "browserName": "chrome" } ] }
  • 34. Configuration File{ "name": "local selenium example", "callback": "http://localhost:8080/kiteweb/datacenter", "remotes": [ { "type": "local", "remoteAddress": "http://localhost:4444/wd/hub" } ], "tests": [ { "name": "IceConnectionTest", "tupleSize": 2, "testImpl": "org.webrtc.kite.IceConnectionTest" } ], "browsers": [ { "browserName": "firefox" }, { "browserName": "chrome" } ] } Location of dashboard to send tests results "callback": "http://localhost:8080/kiteweb/datacenter",
  • 35. Configuration File{ "name": "local selenium example", "callback": "http://localhost:8080/kiteweb/datacenter", "remotes": [ { "type": "local", "remoteAddress": "http://localhost:4444/wd/hub" } ], "tests": [ { "name": "IceConnectionTest", "tupleSize": 2, "testImpl": "org.webrtc.kite.IceConnectionTest" } ], "browsers": [ { "browserName": "firefox" }, { "browserName": "chrome" } ] } Registration of Selenium server "remotes": [ { "type": "local", "remoteAddress": "http://localhost:4444/wd/hub" } ],
  • 36. Configuration File{ "name": "local selenium example", "callback": "http://localhost:8080/kiteweb/datacenter", "remotes": [ { "type": "local", "remoteAddress": "http://localhost:4444/wd/hub" } ], "tests": [ { "name": "IceConnectionTest", "tupleSize": 2, "testImpl": "org.webrtc.kite.IceConnectionTest" } ], "browsers": [ { "browserName": "firefox" }, { "browserName": "chrome" } ] } List of tests "tests": [ { "name": "IceConnectionTest", "tupleSize": 2, "testImpl": "org.webrtc.kite.IceConnectionTest" } ],
  • 37. Configuration File{ "name": "local selenium example", "callback": "http://localhost:8080/kiteweb/datacenter", "remotes": [ { "type": "local", "remoteAddress": "http://localhost:4444/wd/hub" } ], "tests": [ { "name": "IceConnectionTest", "tupleSize": 2, "testImpl": "org.webrtc.kite.IceConnectionTest" } ], "browsers": [ { "browserName": "firefox" }, { "browserName": "chrome" } ] } List of browsers to run the tests "browsers": [ { "browserName": "firefox" }, { "browserName": "chrome" } ]
  • 38.
  • 39.
  • 40.
  • 43. That’s very nice but it feels like something is missing …
  • 45. Global RTC Interoperability: MOBILE (Browsers)? Chromecast
  • 46. Global RTC Interoperability Beyond Desktop Browsers Appium • Mobile testing framework • For native, hybrid and mobile web apps
  • 47. Global RTC Interoperability: NATIVE, IoT and embedded Chromecast IoT Electron
  • 48. Global RTC Interoperability Beyond Desktop Browsers Electron • Open source framework • To build cross platform desktop applications (HTML, CSS, JS) • Combines Chromium and node.js into a single runtime
  • 49. Global RTC Interoperability: Beyond 1-1 Jitsi • Open source multiplatform • Videoconferencing • Instant messaging
  • 51. Global RTC Interoperability Make it easy: Grid Manager • Set up a grid through a web app • Set up Selenium hubs and nodes • Download and set up – Browsers – Browsers WebDrivers • Backup everything for follow-up uses • Tear-down and clean-up after tests