SlideShare une entreprise Scribd logo
1  sur  22
http://elastest.io
A Proposal to
Orchestrate Test Cases
Funded by the
European Union
Boni García
boni.garcia@urjc.es
11th International Conference on the Quality of Information
and Communications Technology (QUATIC 2018)
September 5th 2018 | Coimbra, Portugal
Table of contents
1. Introduction
2. Test orchestration approaches
3. ElasTest: platform for end-to-end testing
4. ElasTest Orchestration Engine
5. Case study: testing WebRTC applications
6. Conclusions and future work
2
1. Introduction
• Large distributed heterogenous systems are more
and more common (e.g. microservices
architectures, cloud native apps, etc.)
• Testing this kind of software is complex, especially
to verify the system as a whole
3
End-to-end testing
happens at system
level with users
impersonated
1. Introduction
• In ElasTest, we hypothesize that test cases can
be organized to create a complex test scenarios
(“divide and conquer” principle)
• We understand the concept of test orchestration
as a novel way to select, order, and execute a
group of tests
• To that aim, different steps are considered:
1. Topology generation: to define a graph of tests
2. Test augmentation: to reproduce custom operational
conditions of the SUT
4
Table of contents
1. Introduction
2. Test orchestration approaches
3. ElasTest: platform for end-to-end testing
4. ElasTest Orchestration Engine
5. Case study: testing WebRTC applications
6. Conclusions and future work
5
2. Test orchestration approaches
• In this stage of the project we have focused in the
topology generation problem
• We propose two different approaches for
orchestrating tests:
1. Verdict-driven orchestration, i.e. connecting testing
jobs (TJobs) using its verdict (i.e., passed or failed)
as boolean condition
2. Data-driven orchestration, i.e. connecting TJobs
using the test data (input) and test outcomes (output)
handled internally by tests
6
2. Test orchestration approaches
1. Verdict-driven orchestration
• TJobs are considered black-boxes,
since we only know its result
(verdict)
• All TJobs are executed without a
given ordering
• Using a topology notation, we can
select and order a group of TJobs
• We can also execute in parallel a
group of TJobs
7
2. Test orchestration approaches
2. Data-driven orchestration
• In addition to the verdict, in this
schema we consider the input
and output data in the TJobs
• This kind of TJobs coexists with
the previous type (black-box)
• We use the same topology
notation to select and order a
group of TJobs
• The output data of TJobs is used
to feed next level in the graph
8
Table of contents
1. Introduction
2. Test orchestration approaches
3. ElasTest: platform for end-to-end testing
4. ElasTest Orchestration Engine
5. Case study: testing WebRTC applications
6. Conclusions and future work
9
3. ElasTest: platform for end-to-end testing
• ElasTest is an open source platform aimed to
ease the end-to-end testing activities for different
types of distributed applications and services
• ElasTest manages the full testing lifecycle,
deploying and monitoring the SUT, executing the
end-to-end tests and exposing the results to
software engineers and testers
10
http://elastest.io/
3. ElasTest: platform for end-to-end testing
• ElasTest architecture:
11
Table of contents
1. Introduction
2. Test orchestration approaches
3. ElasTest: platform for end-to-end testing
4. ElasTest Orchestration Engine
5. Case study: testing WebRTC applications
6. Conclusions and future work
12
4. ElasTest Orchestration Engine
• The ElasTest Orchestration Engine (EOE) is the
component responsible of implementing our
concept of orchestration within ElasTest (i.e.
select, order, and execute a group of tests)
• We use the pipelines Jenkins notation as a
basis for the topology generation
• It has been implemented as a shared library
which exposes a simple API to orchestrate jobs in
Jenkins
• Note that ElasTest’s testing jobs (TJobs) can be
executed also as Jenkins jobs
13
4. ElasTest Orchestration Engine
• The orchestrator library API is summarized in the
following table:
14
Method Description
runJob(String jobId) Method to run a job given its identifier (jobId).This
method returns a boolean value: true if the execution
of the job finishes correctly and false if fails
runJobDependingOn(boolean
verdict, String job1Id, String
job2Id)
Method allows to run one job given a boolean value
(typically a verdict from another job). This boolean
value is passes in the first argument (called verdict in
the method signature). If this value job with identifier
job1Id is executed. Otherwise it is executed job2Id
runJobsInParallel(String...
jobs)
This method allows to run a set of jobs in parallel. The
jobs identifier are passes using a variable number of
arguments (varargs)
4. ElasTest Orchestration Engine
• The exit condition for the orchestrated job can be
configured:
• The verdict of a group of parallel jobs can be also
configured:
15
Method Description
EXIT_AT_END The orchestration finishes at the end (option by default)
EXIT_ON_FAIL The orchestration finishes when any of the TJobs fail
EXIT_ON_PARALLEL_FAILURE The orchestration finishes when any a set of parallel TJobs fail
Method Description
AND The verdict of a set of jobs executed in parallel is true only if all the jobs finish correctly
OR The verdict of parallel jobs is true when at least one of the jobs finishes correctly
4. ElasTest Orchestration Engine
• Example on the orchestration library usage:
16
@Library('OrchestrationLib') _
// Config
orchestrator.setContext(this)
orchestrator.setParallelResultStrategy(ParallelResultStrategy.OR)
orchestrator.setExitCondition(OrchestrationExitCondition.EXIT_ON_PARALLEL_FAILURE)
// Graph
def result1 = orchestrator.runJob('myjob1')
def result2 = orchestrator.runJobDependingOn(result1, 'myjob2', 'myjob3')
def result3 = orchestrator.runJob('myjob4')
def result4 = orchestrator.runJobsInParallel('myjob5', 'myjob6')
if (result4) {
orchestrator.runJob('myjob7')
}
else {
orchestrator.runJob('myjob8')
}
Table of contents
1. Introduction
2. Test orchestration approaches
3. ElasTest: platform for end-to-end testing
4. ElasTest Orchestration Engine
5. Case study: testing WebRTC applications
6. Conclusions and future work
17
5. Case study: testing WebRTC applications
• WebRTC is the umbrella term for a number of
technologies aimed to bring Real Time
Communications to the Web
• W3C (JavaScript APIs): getUserMedia,
PeerConnection, DataChannels
• IETF (protocol stack): ICE, SDP, TURN, STUN, …
18
5. Case study: testing WebRTC applications
• Our case study is based on
OpenVidu, an open source
videoconferencing WebRTC
framework
• Question driving this study:
“Is the orchestration
approach presented in this
paper capable of improving
somehow the testing process
of an existing test suite?”
19
http://openvidu.io/
5. Case study: testing WebRTC applications
20
Relevant reduction of time to be
executed compared to the original suite
Table of contents
1. Introduction
2. Background
3. ElasTest: platform for end-to-end testing
4. ElasTest Orchestration Engine
5. Case study: testing WebRTC applications
6. Conclusions and future work
21
6. Conclusions and future work
• ElasTest is an open source platform aimed to
ease end-to-end tests for heterogenous large
distributed systems
• In ElasTest we are implementing the concept of
test orchestration understood as a novel way to
select, order, and execute a group of tests
• The topology generation for orchestrated test is
based in the Jenkins pipeline notation
• In the near future we plan to extend our approach
in different ways: data-driven orchestration and
test augmentation
22

Contenu connexe

Tendances

Inter threadcommunication.38
Inter threadcommunication.38Inter threadcommunication.38
Inter threadcommunication.38
myrajendra
 
Advanced junit and mockito
Advanced junit and mockitoAdvanced junit and mockito
Advanced junit and mockito
Mathieu Carbou
 

Tendances (20)

Inter thread communication & runnable interface
Inter thread communication & runnable interfaceInter thread communication & runnable interface
Inter thread communication & runnable interface
 
Multithreading in java
Multithreading in javaMultithreading in java
Multithreading in java
 
JUnit & Mockito, first steps
JUnit & Mockito, first stepsJUnit & Mockito, first steps
JUnit & Mockito, first steps
 
Inter threadcommunication.38
Inter threadcommunication.38Inter threadcommunication.38
Inter threadcommunication.38
 
xUnit Style Database Testing
xUnit Style Database TestingxUnit Style Database Testing
xUnit Style Database Testing
 
Test ng
Test ngTest ng
Test ng
 
Unit 4 exceptions and threads
Unit 4 exceptions and threadsUnit 4 exceptions and threads
Unit 4 exceptions and threads
 
Hoisting Nested Functions
Hoisting Nested Functions Hoisting Nested Functions
Hoisting Nested Functions
 
Hoisting Nested Functions
Hoisting Nested FunctionsHoisting Nested Functions
Hoisting Nested Functions
 
On Parameterised Types and Java Generics
On Parameterised Types and Java GenericsOn Parameterised Types and Java Generics
On Parameterised Types and Java Generics
 
Programming in python - Week 4
Programming in python  - Week 4Programming in python  - Week 4
Programming in python - Week 4
 
Programming in python - Week 7,8
Programming in python - Week 7,8Programming in python - Week 7,8
Programming in python - Week 7,8
 
Java Generics Introduction - Syntax Advantages and Pitfalls
Java Generics Introduction - Syntax Advantages and PitfallsJava Generics Introduction - Syntax Advantages and Pitfalls
Java Generics Introduction - Syntax Advantages and Pitfalls
 
A Brief Conceptual Introduction to Functional Java 8 and its API
A Brief Conceptual Introduction to Functional Java 8 and its APIA Brief Conceptual Introduction to Functional Java 8 and its API
A Brief Conceptual Introduction to Functional Java 8 and its API
 
TestNG vs Junit
TestNG vs JunitTestNG vs Junit
TestNG vs Junit
 
TMPA-2015: The Application of Parameterized Hierarchy Templates for Automated...
TMPA-2015: The Application of Parameterized Hierarchy Templates for Automated...TMPA-2015: The Application of Parameterized Hierarchy Templates for Automated...
TMPA-2015: The Application of Parameterized Hierarchy Templates for Automated...
 
Optimization of Test Pattern Using Genetic Algorithm for Testing SRAM
Optimization of Test Pattern Using Genetic Algorithm for Testing SRAMOptimization of Test Pattern Using Genetic Algorithm for Testing SRAM
Optimization of Test Pattern Using Genetic Algorithm for Testing SRAM
 
CORE JAVA-1
CORE JAVA-1CORE JAVA-1
CORE JAVA-1
 
Chapter4
Chapter4Chapter4
Chapter4
 
Advanced junit and mockito
Advanced junit and mockitoAdvanced junit and mockito
Advanced junit and mockito
 

Similaire à A Proposal to Orchestrate Test Cases

----------Evaluator-java---------------- package evaluator- import j.docx
----------Evaluator-java---------------- package evaluator-   import j.docx----------Evaluator-java---------------- package evaluator-   import j.docx
----------Evaluator-java---------------- package evaluator- import j.docx
janettjz6sfehrle
 
COMM 166 Final Research Proposal GuidelinesThe proposal should.docx
COMM 166 Final Research Proposal GuidelinesThe proposal should.docxCOMM 166 Final Research Proposal GuidelinesThe proposal should.docx
COMM 166 Final Research Proposal GuidelinesThe proposal should.docx
monicafrancis71118
 
COMM 166 Final Research Proposal GuidelinesThe proposal should.docx
COMM 166 Final Research Proposal GuidelinesThe proposal should.docxCOMM 166 Final Research Proposal GuidelinesThe proposal should.docx
COMM 166 Final Research Proposal GuidelinesThe proposal should.docx
cargillfilberto
 
COMM 166 Final Research Proposal GuidelinesThe proposal should.docx
COMM 166 Final Research Proposal GuidelinesThe proposal should.docxCOMM 166 Final Research Proposal GuidelinesThe proposal should.docx
COMM 166 Final Research Proposal GuidelinesThe proposal should.docx
drandy1
 

Similaire à A Proposal to Orchestrate Test Cases (20)

Testing with Junit4
Testing with Junit4Testing with Junit4
Testing with Junit4
 
.NET Multithreading/Multitasking
.NET Multithreading/Multitasking.NET Multithreading/Multitasking
.NET Multithreading/Multitasking
 
3 j unit
3 j unit3 j unit
3 j unit
 
Junit 4.0
Junit 4.0Junit 4.0
Junit 4.0
 
Test ng tutorial
Test ng tutorialTest ng tutorial
Test ng tutorial
 
----------Evaluator-java---------------- package evaluator- import j.docx
----------Evaluator-java---------------- package evaluator-   import j.docx----------Evaluator-java---------------- package evaluator-   import j.docx
----------Evaluator-java---------------- package evaluator- import j.docx
 
Introduction to JUnit
Introduction to JUnitIntroduction to JUnit
Introduction to JUnit
 
More topics on Java
More topics on JavaMore topics on Java
More topics on Java
 
Junit_.pptx
Junit_.pptxJunit_.pptx
Junit_.pptx
 
Java For Automation
Java   For AutomationJava   For Automation
Java For Automation
 
Junit and testNG
Junit and testNGJunit and testNG
Junit and testNG
 
JDD 2016 - Grzegorz Rozniecki - Java 8 What Could Possibly Go Wrong
JDD 2016 - Grzegorz Rozniecki - Java 8 What Could Possibly Go WrongJDD 2016 - Grzegorz Rozniecki - Java 8 What Could Possibly Go Wrong
JDD 2016 - Grzegorz Rozniecki - Java 8 What Could Possibly Go Wrong
 
Hadoop cluster performance profiler
Hadoop cluster performance profilerHadoop cluster performance profiler
Hadoop cluster performance profiler
 
COMM 166 Final Research Proposal GuidelinesThe proposal should.docx
COMM 166 Final Research Proposal GuidelinesThe proposal should.docxCOMM 166 Final Research Proposal GuidelinesThe proposal should.docx
COMM 166 Final Research Proposal GuidelinesThe proposal should.docx
 
COMM 166 Final Research Proposal GuidelinesThe proposal should.docx
COMM 166 Final Research Proposal GuidelinesThe proposal should.docxCOMM 166 Final Research Proposal GuidelinesThe proposal should.docx
COMM 166 Final Research Proposal GuidelinesThe proposal should.docx
 
COMM 166 Final Research Proposal GuidelinesThe proposal should.docx
COMM 166 Final Research Proposal GuidelinesThe proposal should.docxCOMM 166 Final Research Proposal GuidelinesThe proposal should.docx
COMM 166 Final Research Proposal GuidelinesThe proposal should.docx
 
TestNG Framework
TestNG Framework TestNG Framework
TestNG Framework
 
모던자바의 역습
모던자바의 역습모던자바의 역습
모던자바의 역습
 
Time and Space Complexity Analysis.pptx
Time and Space Complexity Analysis.pptxTime and Space Complexity Analysis.pptx
Time and Space Complexity Analysis.pptx
 
Apache Storm Tutorial
Apache Storm TutorialApache Storm Tutorial
Apache Storm Tutorial
 

Plus de Boni García

Selenium Manager: Automated Driver & Browser Management for Selenium WebDriver
Selenium Manager: Automated Driver & Browser Management for Selenium WebDriverSelenium Manager: Automated Driver & Browser Management for Selenium WebDriver
Selenium Manager: Automated Driver & Browser Management for Selenium WebDriver
Boni García
 

Plus de Boni García (18)

Selenium Manager: Automated Driver & Browser Management for Selenium WebDriver
Selenium Manager: Automated Driver & Browser Management for Selenium WebDriverSelenium Manager: Automated Driver & Browser Management for Selenium WebDriver
Selenium Manager: Automated Driver & Browser Management for Selenium WebDriver
 
WebDriverManager: the Swiss Army Knife for Selenium WebDriver
WebDriverManager: the Swiss Army Knife for Selenium WebDriverWebDriverManager: the Swiss Army Knife for Selenium WebDriver
WebDriverManager: the Swiss Army Knife for Selenium WebDriver
 
Developing Selenium tests with JUnit 5
Developing Selenium tests with JUnit 5Developing Selenium tests with JUnit 5
Developing Selenium tests with JUnit 5
 
Toolbox for Selenium Tests in Java: WebDriverManager and Selenium-Jupiter
Toolbox for Selenium Tests in Java: WebDriverManager and Selenium-JupiterToolbox for Selenium Tests in Java: WebDriverManager and Selenium-Jupiter
Toolbox for Selenium Tests in Java: WebDriverManager and Selenium-Jupiter
 
Extending WebDriver: A cloud approach
Extending WebDriver: A cloud approachExtending WebDriver: A cloud approach
Extending WebDriver: A cloud approach
 
Introducción y novedades de JUnit 5 (04/07/2018)
Introducción y novedades de JUnit 5 (04/07/2018)Introducción y novedades de JUnit 5 (04/07/2018)
Introducción y novedades de JUnit 5 (04/07/2018)
 
User Impersonation as a Service in End-to-End Testing
User Impersonation as a Service in End-to-End TestingUser Impersonation as a Service in End-to-End Testing
User Impersonation as a Service in End-to-End Testing
 
Introducción y novedades de JUnit 5 (16/01/2018)
Introducción y novedades de JUnit 5 (16/01/2018)Introducción y novedades de JUnit 5 (16/01/2018)
Introducción y novedades de JUnit 5 (16/01/2018)
 
WebRTC Testing: State of the Art
WebRTC Testing: State of the ArtWebRTC Testing: State of the Art
WebRTC Testing: State of the Art
 
ElasTest: an elastic platform for testing complex distributed large software ...
ElasTest: an elastic platform for testing complex distributed large software ...ElasTest: an elastic platform for testing complex distributed large software ...
ElasTest: an elastic platform for testing complex distributed large software ...
 
Analysis of video quality and end-to-end latency in WebRTC
Analysis of video quality and end-to-end latency in WebRTCAnalysis of video quality and end-to-end latency in WebRTC
Analysis of video quality and end-to-end latency in WebRTC
 
NUBOMEDIA: an Elastic PaaS Enabling the Convergence of Real-Time and Big Data...
NUBOMEDIA: an Elastic PaaS Enabling the Convergence of Real-Time and Big Data...NUBOMEDIA: an Elastic PaaS Enabling the Convergence of Real-Time and Big Data...
NUBOMEDIA: an Elastic PaaS Enabling the Convergence of Real-Time and Big Data...
 
NUBOMEDIA Webinar
NUBOMEDIA WebinarNUBOMEDIA Webinar
NUBOMEDIA Webinar
 
WebRTC/Kurento/NUBOMEDIA Hackathon at IETF’96
WebRTC/Kurento/NUBOMEDIA Hackathon at IETF’96WebRTC/Kurento/NUBOMEDIA Hackathon at IETF’96
WebRTC/Kurento/NUBOMEDIA Hackathon at IETF’96
 
Cloud Instances of Kurento v6 on FIWARE Lab
Cloud Instances of Kurento v6 on FIWARE LabCloud Instances of Kurento v6 on FIWARE Lab
Cloud Instances of Kurento v6 on FIWARE Lab
 
Kurento v6 Development Guide
Kurento v6 Development GuideKurento v6 Development Guide
Kurento v6 Development Guide
 
Kurento v6 Installation Guide
Kurento v6 Installation GuideKurento v6 Installation Guide
Kurento v6 Installation Guide
 
Introduction to the Stream Oriented GE (Kurento v6)
Introduction to the Stream Oriented GE (Kurento v6)Introduction to the Stream Oriented GE (Kurento v6)
Introduction to the Stream Oriented GE (Kurento v6)
 

Dernier

AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
VictorSzoltysek
 
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
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
+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
 

Dernier (20)

Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
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 tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
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
 
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
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
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
 
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
 
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
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
+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...
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
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...
 
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
 

A Proposal to Orchestrate Test Cases

  • 1. http://elastest.io A Proposal to Orchestrate Test Cases Funded by the European Union Boni García boni.garcia@urjc.es 11th International Conference on the Quality of Information and Communications Technology (QUATIC 2018) September 5th 2018 | Coimbra, Portugal
  • 2. Table of contents 1. Introduction 2. Test orchestration approaches 3. ElasTest: platform for end-to-end testing 4. ElasTest Orchestration Engine 5. Case study: testing WebRTC applications 6. Conclusions and future work 2
  • 3. 1. Introduction • Large distributed heterogenous systems are more and more common (e.g. microservices architectures, cloud native apps, etc.) • Testing this kind of software is complex, especially to verify the system as a whole 3 End-to-end testing happens at system level with users impersonated
  • 4. 1. Introduction • In ElasTest, we hypothesize that test cases can be organized to create a complex test scenarios (“divide and conquer” principle) • We understand the concept of test orchestration as a novel way to select, order, and execute a group of tests • To that aim, different steps are considered: 1. Topology generation: to define a graph of tests 2. Test augmentation: to reproduce custom operational conditions of the SUT 4
  • 5. Table of contents 1. Introduction 2. Test orchestration approaches 3. ElasTest: platform for end-to-end testing 4. ElasTest Orchestration Engine 5. Case study: testing WebRTC applications 6. Conclusions and future work 5
  • 6. 2. Test orchestration approaches • In this stage of the project we have focused in the topology generation problem • We propose two different approaches for orchestrating tests: 1. Verdict-driven orchestration, i.e. connecting testing jobs (TJobs) using its verdict (i.e., passed or failed) as boolean condition 2. Data-driven orchestration, i.e. connecting TJobs using the test data (input) and test outcomes (output) handled internally by tests 6
  • 7. 2. Test orchestration approaches 1. Verdict-driven orchestration • TJobs are considered black-boxes, since we only know its result (verdict) • All TJobs are executed without a given ordering • Using a topology notation, we can select and order a group of TJobs • We can also execute in parallel a group of TJobs 7
  • 8. 2. Test orchestration approaches 2. Data-driven orchestration • In addition to the verdict, in this schema we consider the input and output data in the TJobs • This kind of TJobs coexists with the previous type (black-box) • We use the same topology notation to select and order a group of TJobs • The output data of TJobs is used to feed next level in the graph 8
  • 9. Table of contents 1. Introduction 2. Test orchestration approaches 3. ElasTest: platform for end-to-end testing 4. ElasTest Orchestration Engine 5. Case study: testing WebRTC applications 6. Conclusions and future work 9
  • 10. 3. ElasTest: platform for end-to-end testing • ElasTest is an open source platform aimed to ease the end-to-end testing activities for different types of distributed applications and services • ElasTest manages the full testing lifecycle, deploying and monitoring the SUT, executing the end-to-end tests and exposing the results to software engineers and testers 10 http://elastest.io/
  • 11. 3. ElasTest: platform for end-to-end testing • ElasTest architecture: 11
  • 12. Table of contents 1. Introduction 2. Test orchestration approaches 3. ElasTest: platform for end-to-end testing 4. ElasTest Orchestration Engine 5. Case study: testing WebRTC applications 6. Conclusions and future work 12
  • 13. 4. ElasTest Orchestration Engine • The ElasTest Orchestration Engine (EOE) is the component responsible of implementing our concept of orchestration within ElasTest (i.e. select, order, and execute a group of tests) • We use the pipelines Jenkins notation as a basis for the topology generation • It has been implemented as a shared library which exposes a simple API to orchestrate jobs in Jenkins • Note that ElasTest’s testing jobs (TJobs) can be executed also as Jenkins jobs 13
  • 14. 4. ElasTest Orchestration Engine • The orchestrator library API is summarized in the following table: 14 Method Description runJob(String jobId) Method to run a job given its identifier (jobId).This method returns a boolean value: true if the execution of the job finishes correctly and false if fails runJobDependingOn(boolean verdict, String job1Id, String job2Id) Method allows to run one job given a boolean value (typically a verdict from another job). This boolean value is passes in the first argument (called verdict in the method signature). If this value job with identifier job1Id is executed. Otherwise it is executed job2Id runJobsInParallel(String... jobs) This method allows to run a set of jobs in parallel. The jobs identifier are passes using a variable number of arguments (varargs)
  • 15. 4. ElasTest Orchestration Engine • The exit condition for the orchestrated job can be configured: • The verdict of a group of parallel jobs can be also configured: 15 Method Description EXIT_AT_END The orchestration finishes at the end (option by default) EXIT_ON_FAIL The orchestration finishes when any of the TJobs fail EXIT_ON_PARALLEL_FAILURE The orchestration finishes when any a set of parallel TJobs fail Method Description AND The verdict of a set of jobs executed in parallel is true only if all the jobs finish correctly OR The verdict of parallel jobs is true when at least one of the jobs finishes correctly
  • 16. 4. ElasTest Orchestration Engine • Example on the orchestration library usage: 16 @Library('OrchestrationLib') _ // Config orchestrator.setContext(this) orchestrator.setParallelResultStrategy(ParallelResultStrategy.OR) orchestrator.setExitCondition(OrchestrationExitCondition.EXIT_ON_PARALLEL_FAILURE) // Graph def result1 = orchestrator.runJob('myjob1') def result2 = orchestrator.runJobDependingOn(result1, 'myjob2', 'myjob3') def result3 = orchestrator.runJob('myjob4') def result4 = orchestrator.runJobsInParallel('myjob5', 'myjob6') if (result4) { orchestrator.runJob('myjob7') } else { orchestrator.runJob('myjob8') }
  • 17. Table of contents 1. Introduction 2. Test orchestration approaches 3. ElasTest: platform for end-to-end testing 4. ElasTest Orchestration Engine 5. Case study: testing WebRTC applications 6. Conclusions and future work 17
  • 18. 5. Case study: testing WebRTC applications • WebRTC is the umbrella term for a number of technologies aimed to bring Real Time Communications to the Web • W3C (JavaScript APIs): getUserMedia, PeerConnection, DataChannels • IETF (protocol stack): ICE, SDP, TURN, STUN, … 18
  • 19. 5. Case study: testing WebRTC applications • Our case study is based on OpenVidu, an open source videoconferencing WebRTC framework • Question driving this study: “Is the orchestration approach presented in this paper capable of improving somehow the testing process of an existing test suite?” 19 http://openvidu.io/
  • 20. 5. Case study: testing WebRTC applications 20 Relevant reduction of time to be executed compared to the original suite
  • 21. Table of contents 1. Introduction 2. Background 3. ElasTest: platform for end-to-end testing 4. ElasTest Orchestration Engine 5. Case study: testing WebRTC applications 6. Conclusions and future work 21
  • 22. 6. Conclusions and future work • ElasTest is an open source platform aimed to ease end-to-end tests for heterogenous large distributed systems • In ElasTest we are implementing the concept of test orchestration understood as a novel way to select, order, and execute a group of tests • The topology generation for orchestrated test is based in the Jenkins pipeline notation • In the near future we plan to extend our approach in different ways: data-driven orchestration and test augmentation 22