SlideShare a Scribd company logo
1 of 25
OPTIMICA TESTING TOOLKIT
Anders Tilly Victor Johnsson Jon Sten
Alexander Perlman Johan Åkesson
2015-09-29 © Modelon 1
MOTIVATION
• Why do we need software testing?
 Ensure consistent functionality over time
 Software without tests can not be updated safely
 Safe migration between platforms and tool
versions
 Quality software development requires testing
• Modelica code is just like any other software, it
needs testing
2015-09-29 © Modelon 2
BACKGROUND
• Test specification formats
 Experiment annotation
 TestCase
2015-09-29 © Modelon 3
BACKGROUND
• Additional requirements on test specification
 Specification of reference variables
 Model structure
• Equation system structure
• Analytic Jacobians
 Tool specific options
 Setup and teardown scripts
 Ability to override reference results for specific
tools
2015-09-29 © Modelon 4
BACKGROUND – CSV COMPARE
• Compares and displays deviation between two
result files
• Calculates an tube around the reference curve
• The checked result should inside the tube
2015-09-29 © Modelon 5
PREVIOUS WORK
• UnitTesting
 Modelica based library
• MoUnit
 Used in OneModelica
 Support for multiple Modelica and FMI tools
• RegressionTest
 For Dymola testing
2015-09-29 © Modelon 6
OPTIMICA TESTING TOOLKIT
• Key features
 Modelica and FMI cross testing platform
 Flexible test authoring
 Automated test execution and reporting
• Architecture
 Core
• Command line tool for running tests
• Uses OPTIMICA compiler toolkit for test retrieval
 GUI
• Tool for creating, updating and running tests
• Reviewing and updating results
2015-09-29 © Modelon 7
CORE DESIGN
• Design goals
 Modularized and Plugin based
 Support multiple Modelica and FMI tools
 Defining high-level API for common operations
 Oriented around testing cycle:
 Canonical form between steps
2015-09-29 © Modelon 8
Sieve Execute Report
CORE OVERVIEW
2015-09-29 © Modelon 9
.mo.mo
Test
spec.
.m
o
.m
o
Reports
Modelica / FMI
Tools
Sieve Execute Report
.mo.mo
Library
RUN CONFIGURATION
• From command line
• From file
2015-09-29 © Modelon 10
.
m
o
.
m
o
Test
spec.
.
m
o
.
m
o
Reports
Modelica / FMI
Tools
Sieve Execute Report
.
m
o
.
m
o
Library
OutputsToolsType
Test
Specification
Library
Resources
SEIVES
• Find models to test
• Extracts test settings (start-, stop-time,
tolerance, signals, etc.)
• Translate to canonical form
• Examples of sieves:
 Experiment annotations
 All models
 TestCase annotations
2015-09-29 © Modelon 11
SIEVE CORE
1. Based on provided tests, different sieves can be
used
2. The sieve implementation will the provide a list
of tests. If needed the OCT compiler will be used
to extract information from Modelica models
2015-09-29 © Modelon 12
Sieve Core
Sieve
Implementation
OCT Frontend
.mo.mo
1 2
SIEVE EXAMPLE
• Experiment annotation Sieve:
1. Forward Modelica packages to OCT. OCT returns tree
representation of packages
2. Recursively for each package:
3. Retrieve sub classes, if it is:
a) Sub-package, then go to 2
b) If class, check for experiment annotation, if found add as test
4. Return list of tests
2015-09-29 © Modelon 13
OCT Frontend
.mo.mo.mo 1
2
3
Sieve Core 4
TEST EXECUTION
• Testers can be divided into two main categories:
 Static
• Testing is controlled by OTT
• Each test (model) is tested though a preselected sequence
 Scripted
• Each test is programmatically defined
• OTT provides high level API
2015-09-29 © Modelon 14
STATIC TESTING
• Modes:
 Check
 Compile
 Simulate
 Verify
 Testcase
2015-09-29 © Modelon 15
Core
Check Compile Simulate Verify
Compare
Tools
Translation Interfaces
Simulation
Interfaces
Modelica
Tools
FMI
Tools
STATIC TESTING EXAMPLE
1. A list of tests is provided by the sieve
2. The OCT compiler is used to compile FMUs
3. The FMUs are simulated using OCT
4. The simulation results are compared using CSV Compare
5. Each step records results which are passed along to the
report step
2015-09-29 © Modelon 16
Core
Check Compile Simulate Verify
CSV
Compare
OCT
51
2 3 4
SCRIPTED TESTING
• Each test can be unique, custom sequence of
commands
• Written in Python
• OTT provides high level API to supported Modelica
and FMI tools
• OTT also provides support for generating reports
2015-09-29 © Modelon 17
Core
Compare
Tools
Modelica
Tools
FMI
Tools
.py
Tests
.py
Test
REPORTERS
• Each test step produces artefacts
• Artefacts are then processed by the reporters
• Available reporters:
 HTML
 JUnit
 Pickle
2015-09-29 © Modelon 18
.html.html.html
.xml
Core
HTML JUnit Pickle
CONTINUOUS INTEGRATION SUPPORT
• CI integration using command line and JUnit XML
results
• Hudson, Jenkins, TeamCity
2015-09-29 © Modelon 19
.m
o
.m
o
Test
spec.
.
m
o
.
m
o
JUnit
Modelica / FMI Tools
Sieve Execute Report
.m
o
.m
o
Library
Job configuration Record JUnit results
RESULT
2015-09-29 © Modelon 20
GUI
• Test authoring
• Test execution
• Test run configuration
• Test result reviewing
• Still work in progress!
2015-09-29 © Modelon 21
GUI
• Developed with usability in mind
 Easy to specify modifications and variables to
compare
 Easy to review and update result differences
 Inheritance between test cases
2015-09-29 © Modelon 22
GUI
2015-09-29 © Modelon 23
BACKLOG
• New test specification format
 Possibility to specify compare variables
 Tool specific options
 Comparing test model structure
 …
• Run configuration
• Traceability and reproducibility support
• Extend GUI functionality
• Additional Modelica and FMI tools
2015-09-29 © Modelon 24
jon.sten@modelon.com
2015-09-29 © Modelon 25

More Related Content

What's hot

Modelon FMI Tutorial NAMUG 2016
Modelon FMI Tutorial NAMUG 2016Modelon FMI Tutorial NAMUG 2016
Modelon FMI Tutorial NAMUG 2016Modelon
 
FMI Composer Overview
FMI Composer OverviewFMI Composer Overview
FMI Composer OverviewModelon
 
Ford Modelon Vehicle Thermal Management 2014
Ford Modelon Vehicle Thermal Management 2014Ford Modelon Vehicle Thermal Management 2014
Ford Modelon Vehicle Thermal Management 2014Modelon
 
Model-Based Integration for FMI Co-Simulation and Heterogeneous Simulations o...
Model-Based Integration for FMI Co-Simulation and Heterogeneous Simulations o...Model-Based Integration for FMI Co-Simulation and Heterogeneous Simulations o...
Model-Based Integration for FMI Co-Simulation and Heterogeneous Simulations o...Modelon
 
Multi-core Real-time Simulation of High-Fidelity Vehicle Models using Open St...
Multi-core Real-time Simulation of High-Fidelity Vehicle Models using Open St...Multi-core Real-time Simulation of High-Fidelity Vehicle Models using Open St...
Multi-core Real-time Simulation of High-Fidelity Vehicle Models using Open St...Modelon
 
A framework for nonlinear model predictive control
A framework for nonlinear model predictive controlA framework for nonlinear model predictive control
A framework for nonlinear model predictive controlModelon
 
Multi phase mixture media
Multi phase mixture mediaMulti phase mixture media
Multi phase mixture mediaModelon
 
Automotive engineering design - Model Based Design
Automotive engineering design - Model Based DesignAutomotive engineering design - Model Based Design
Automotive engineering design - Model Based DesignVinayagam Mariappan
 
Model-Based Design For Motor Control Development
Model-Based Design For Motor Control DevelopmentModel-Based Design For Motor Control Development
Model-Based Design For Motor Control DevelopmentThe Hartford
 
Results of model-based testing in automotive
Results of model-based testing in automotiveResults of model-based testing in automotive
Results of model-based testing in automotiveAnthony Faucogney
 
Maximizing Efficiency Using Simulation
Maximizing Efficiency Using SimulationMaximizing Efficiency Using Simulation
Maximizing Efficiency Using Simulationjason_cov
 
Innovative Test Automation Solution
Innovative Test Automation SolutionInnovative Test Automation Solution
Innovative Test Automation SolutionAlan Lee White
 
How to leverage the Functional Mock-up Interface (FMI) for Model Based System...
How to leverage the Functional Mock-up Interface (FMI) for Model Based System...How to leverage the Functional Mock-up Interface (FMI) for Model Based System...
How to leverage the Functional Mock-up Interface (FMI) for Model Based System...Siemens PLM Software
 
SysML for embedded system engineering - Academy Camp 2015
SysML for embedded system engineering - Academy Camp 2015SysML for embedded system engineering - Academy Camp 2015
SysML for embedded system engineering - Academy Camp 2015Régis Castéran
 
Rit 8.5.0 virtualization training slides
Rit 8.5.0 virtualization training slidesRit 8.5.0 virtualization training slides
Rit 8.5.0 virtualization training slidesDarrel Rader
 
Matthew Hause Building Bridges between Systems and Software with SysML and UML
Matthew Hause Building Bridges between Systems and Software with SysML and UMLMatthew Hause Building Bridges between Systems and Software with SysML and UML
Matthew Hause Building Bridges between Systems and Software with SysML and UMLINCOSE Colorado Front Range Chapter
 
Model Based Design of Hybrid and Electric Powertrains
Model Based Design of Hybrid and Electric PowertrainsModel Based Design of Hybrid and Electric Powertrains
Model Based Design of Hybrid and Electric PowertrainsSandeep Sovani, Ph.D.
 
Rit 8.5.0 platform training slides
Rit 8.5.0 platform training slidesRit 8.5.0 platform training slides
Rit 8.5.0 platform training slidesDarrel Rader
 
Rit 8.5.0 training release notes
Rit 8.5.0 training release notesRit 8.5.0 training release notes
Rit 8.5.0 training release notesDarrel Rader
 

What's hot (20)

Modelon FMI Tutorial NAMUG 2016
Modelon FMI Tutorial NAMUG 2016Modelon FMI Tutorial NAMUG 2016
Modelon FMI Tutorial NAMUG 2016
 
FMI Composer Overview
FMI Composer OverviewFMI Composer Overview
FMI Composer Overview
 
Ford Modelon Vehicle Thermal Management 2014
Ford Modelon Vehicle Thermal Management 2014Ford Modelon Vehicle Thermal Management 2014
Ford Modelon Vehicle Thermal Management 2014
 
Model-Based Integration for FMI Co-Simulation and Heterogeneous Simulations o...
Model-Based Integration for FMI Co-Simulation and Heterogeneous Simulations o...Model-Based Integration for FMI Co-Simulation and Heterogeneous Simulations o...
Model-Based Integration for FMI Co-Simulation and Heterogeneous Simulations o...
 
Multi-core Real-time Simulation of High-Fidelity Vehicle Models using Open St...
Multi-core Real-time Simulation of High-Fidelity Vehicle Models using Open St...Multi-core Real-time Simulation of High-Fidelity Vehicle Models using Open St...
Multi-core Real-time Simulation of High-Fidelity Vehicle Models using Open St...
 
A framework for nonlinear model predictive control
A framework for nonlinear model predictive controlA framework for nonlinear model predictive control
A framework for nonlinear model predictive control
 
Multi phase mixture media
Multi phase mixture mediaMulti phase mixture media
Multi phase mixture media
 
Automotive engineering design - Model Based Design
Automotive engineering design - Model Based DesignAutomotive engineering design - Model Based Design
Automotive engineering design - Model Based Design
 
Model-Based Design For Motor Control Development
Model-Based Design For Motor Control DevelopmentModel-Based Design For Motor Control Development
Model-Based Design For Motor Control Development
 
Model based development(MBD)
Model based development(MBD) Model based development(MBD)
Model based development(MBD)
 
Results of model-based testing in automotive
Results of model-based testing in automotiveResults of model-based testing in automotive
Results of model-based testing in automotive
 
Maximizing Efficiency Using Simulation
Maximizing Efficiency Using SimulationMaximizing Efficiency Using Simulation
Maximizing Efficiency Using Simulation
 
Innovative Test Automation Solution
Innovative Test Automation SolutionInnovative Test Automation Solution
Innovative Test Automation Solution
 
How to leverage the Functional Mock-up Interface (FMI) for Model Based System...
How to leverage the Functional Mock-up Interface (FMI) for Model Based System...How to leverage the Functional Mock-up Interface (FMI) for Model Based System...
How to leverage the Functional Mock-up Interface (FMI) for Model Based System...
 
SysML for embedded system engineering - Academy Camp 2015
SysML for embedded system engineering - Academy Camp 2015SysML for embedded system engineering - Academy Camp 2015
SysML for embedded system engineering - Academy Camp 2015
 
Rit 8.5.0 virtualization training slides
Rit 8.5.0 virtualization training slidesRit 8.5.0 virtualization training slides
Rit 8.5.0 virtualization training slides
 
Matthew Hause Building Bridges between Systems and Software with SysML and UML
Matthew Hause Building Bridges between Systems and Software with SysML and UMLMatthew Hause Building Bridges between Systems and Software with SysML and UML
Matthew Hause Building Bridges between Systems and Software with SysML and UML
 
Model Based Design of Hybrid and Electric Powertrains
Model Based Design of Hybrid and Electric PowertrainsModel Based Design of Hybrid and Electric Powertrains
Model Based Design of Hybrid and Electric Powertrains
 
Rit 8.5.0 platform training slides
Rit 8.5.0 platform training slidesRit 8.5.0 platform training slides
Rit 8.5.0 platform training slides
 
Rit 8.5.0 training release notes
Rit 8.5.0 training release notesRit 8.5.0 training release notes
Rit 8.5.0 training release notes
 

Viewers also liked

Modelon JSME 2016 - Model Based Design for Fuel Cell Systems
Modelon JSME 2016 - Model Based Design for Fuel Cell SystemsModelon JSME 2016 - Model Based Design for Fuel Cell Systems
Modelon JSME 2016 - Model Based Design for Fuel Cell SystemsModelon
 
Dynamic modeling of a central receiver CSP powerplant
Dynamic modeling of a central receiver CSP powerplantDynamic modeling of a central receiver CSP powerplant
Dynamic modeling of a central receiver CSP powerplantModelon
 
Automated Deployment of Modelica Models in Excel via Functional Mockup Interf...
Automated Deployment of Modelica Models in Excel via Functional Mockup Interf...Automated Deployment of Modelica Models in Excel via Functional Mockup Interf...
Automated Deployment of Modelica Models in Excel via Functional Mockup Interf...Modelon
 
Environmental Control Library - Overview
Environmental Control Library - OverviewEnvironmental Control Library - Overview
Environmental Control Library - OverviewModelon
 
Modelon - Fuel System Modeling & Simulation Solution
Modelon - Fuel System Modeling & Simulation SolutionModelon - Fuel System Modeling & Simulation Solution
Modelon - Fuel System Modeling & Simulation SolutionModelon
 
Separation techniques for ninth grade
Separation techniques for ninth gradeSeparation techniques for ninth grade
Separation techniques for ninth gradeNinth Grade
 
Separating mixtures
Separating mixturesSeparating mixtures
Separating mixturesneeraj44
 

Viewers also liked (7)

Modelon JSME 2016 - Model Based Design for Fuel Cell Systems
Modelon JSME 2016 - Model Based Design for Fuel Cell SystemsModelon JSME 2016 - Model Based Design for Fuel Cell Systems
Modelon JSME 2016 - Model Based Design for Fuel Cell Systems
 
Dynamic modeling of a central receiver CSP powerplant
Dynamic modeling of a central receiver CSP powerplantDynamic modeling of a central receiver CSP powerplant
Dynamic modeling of a central receiver CSP powerplant
 
Automated Deployment of Modelica Models in Excel via Functional Mockup Interf...
Automated Deployment of Modelica Models in Excel via Functional Mockup Interf...Automated Deployment of Modelica Models in Excel via Functional Mockup Interf...
Automated Deployment of Modelica Models in Excel via Functional Mockup Interf...
 
Environmental Control Library - Overview
Environmental Control Library - OverviewEnvironmental Control Library - Overview
Environmental Control Library - Overview
 
Modelon - Fuel System Modeling & Simulation Solution
Modelon - Fuel System Modeling & Simulation SolutionModelon - Fuel System Modeling & Simulation Solution
Modelon - Fuel System Modeling & Simulation Solution
 
Separation techniques for ninth grade
Separation techniques for ninth gradeSeparation techniques for ninth grade
Separation techniques for ninth grade
 
Separating mixtures
Separating mixturesSeparating mixtures
Separating mixtures
 

Similar to Optimica Testing Toolkit

Mumbai MuleSoft Meetup 13
Mumbai MuleSoft Meetup 13Mumbai MuleSoft Meetup 13
Mumbai MuleSoft Meetup 13Akshata Sawant
 
Mule soft meetup__adelaide_october_2020_final (2)
Mule soft meetup__adelaide_october_2020_final (2)Mule soft meetup__adelaide_october_2020_final (2)
Mule soft meetup__adelaide_october_2020_final (2)Nicholas Bowman
 
UVM_Full_Print_n.pptx
UVM_Full_Print_n.pptxUVM_Full_Print_n.pptx
UVM_Full_Print_n.pptxnikitha992646
 
Past Experiences and Future Challenges using Automatic Performance Modelling ...
Past Experiences and Future Challenges using Automatic Performance Modelling ...Past Experiences and Future Challenges using Automatic Performance Modelling ...
Past Experiences and Future Challenges using Automatic Performance Modelling ...Paul Brebner
 
Perforce on Tour 2015 - Optimising the Developer Pipeline at U-Blox
Perforce on Tour 2015 - Optimising the Developer Pipeline at U-BloxPerforce on Tour 2015 - Optimising the Developer Pipeline at U-Blox
Perforce on Tour 2015 - Optimising the Developer Pipeline at U-BloxPerforce
 
Testing Frameworks
Testing FrameworksTesting Frameworks
Testing FrameworksMoataz Nabil
 
Mule Testing in Mulesfoft 4.X
Mule Testing in Mulesfoft 4.XMule Testing in Mulesfoft 4.X
Mule Testing in Mulesfoft 4.XAmit Singh
 
Quality Assurance of FME Scripts
Quality Assurance of FME ScriptsQuality Assurance of FME Scripts
Quality Assurance of FME ScriptsSafe Software
 
How_to_create_modular_microservice_test_projects.pdf
How_to_create_modular_microservice_test_projects.pdfHow_to_create_modular_microservice_test_projects.pdf
How_to_create_modular_microservice_test_projects.pdfskimorod
 
CM7_Op_Simplicity_Boston-Chromeleon CDS-Instrumentos, Inteligencia, Informaci...
CM7_Op_Simplicity_Boston-Chromeleon CDS-Instrumentos, Inteligencia, Informaci...CM7_Op_Simplicity_Boston-Chromeleon CDS-Instrumentos, Inteligencia, Informaci...
CM7_Op_Simplicity_Boston-Chromeleon CDS-Instrumentos, Inteligencia, Informaci...WalterJaramillo7
 
Scriptless Automation Testing: A Unique Framework To Accelerate Delivery
Scriptless Automation Testing: A Unique Framework To Accelerate DeliveryScriptless Automation Testing: A Unique Framework To Accelerate Delivery
Scriptless Automation Testing: A Unique Framework To Accelerate DeliveryNet Solutions
 
Unit 7 verification & validation
Unit 7 verification & validationUnit 7 verification & validation
Unit 7 verification & validationraksharao
 
Surrogate Model-Based Reliability Analysis of Composite UAV Wing facilitation...
Surrogate Model-Based Reliability Analysis of Composite UAV Wing facilitation...Surrogate Model-Based Reliability Analysis of Composite UAV Wing facilitation...
Surrogate Model-Based Reliability Analysis of Composite UAV Wing facilitation...Altair
 
Continuous Integration Testing for SAP
Continuous Integration Testing for SAPContinuous Integration Testing for SAP
Continuous Integration Testing for SAPWorksoft
 
Manila MuleSoft Meetup - August 2020
Manila MuleSoft Meetup - August 2020Manila MuleSoft Meetup - August 2020
Manila MuleSoft Meetup - August 2020Ryan Anthony Andal
 
Cloud-based Test Microservices JavaOne 2014
Cloud-based Test Microservices JavaOne 2014Cloud-based Test Microservices JavaOne 2014
Cloud-based Test Microservices JavaOne 2014Shelley Lambert
 
Model Based Software Testing
Model Based Software TestingModel Based Software Testing
Model Based Software TestingEsin Karaman
 

Similar to Optimica Testing Toolkit (20)

Mumbai MuleSoft Meetup 13
Mumbai MuleSoft Meetup 13Mumbai MuleSoft Meetup 13
Mumbai MuleSoft Meetup 13
 
Mule soft meetup__adelaide_october_2020_final (2)
Mule soft meetup__adelaide_october_2020_final (2)Mule soft meetup__adelaide_october_2020_final (2)
Mule soft meetup__adelaide_october_2020_final (2)
 
UVM_Full_Print_n.pptx
UVM_Full_Print_n.pptxUVM_Full_Print_n.pptx
UVM_Full_Print_n.pptx
 
Past Experiences and Future Challenges using Automatic Performance Modelling ...
Past Experiences and Future Challenges using Automatic Performance Modelling ...Past Experiences and Future Challenges using Automatic Performance Modelling ...
Past Experiences and Future Challenges using Automatic Performance Modelling ...
 
Perforce on Tour 2015 - Optimising the Developer Pipeline at U-Blox
Perforce on Tour 2015 - Optimising the Developer Pipeline at U-BloxPerforce on Tour 2015 - Optimising the Developer Pipeline at U-Blox
Perforce on Tour 2015 - Optimising the Developer Pipeline at U-Blox
 
Testing Frameworks
Testing FrameworksTesting Frameworks
Testing Frameworks
 
Mule Testing in Mulesfoft 4.X
Mule Testing in Mulesfoft 4.XMule Testing in Mulesfoft 4.X
Mule Testing in Mulesfoft 4.X
 
Quality Assurance of FME Scripts
Quality Assurance of FME ScriptsQuality Assurance of FME Scripts
Quality Assurance of FME Scripts
 
How_to_create_modular_microservice_test_projects.pdf
How_to_create_modular_microservice_test_projects.pdfHow_to_create_modular_microservice_test_projects.pdf
How_to_create_modular_microservice_test_projects.pdf
 
How To Build Auto-Adaptive Machine Learning Models with Kubernetes
How To Build Auto-Adaptive Machine Learning Models with KubernetesHow To Build Auto-Adaptive Machine Learning Models with Kubernetes
How To Build Auto-Adaptive Machine Learning Models with Kubernetes
 
CM7_Op_Simplicity_Boston-Chromeleon CDS-Instrumentos, Inteligencia, Informaci...
CM7_Op_Simplicity_Boston-Chromeleon CDS-Instrumentos, Inteligencia, Informaci...CM7_Op_Simplicity_Boston-Chromeleon CDS-Instrumentos, Inteligencia, Informaci...
CM7_Op_Simplicity_Boston-Chromeleon CDS-Instrumentos, Inteligencia, Informaci...
 
Unit v
Unit vUnit v
Unit v
 
Key Factors To Ensure Test Automation Framework Success
Key Factors To Ensure Test Automation Framework SuccessKey Factors To Ensure Test Automation Framework Success
Key Factors To Ensure Test Automation Framework Success
 
Scriptless Automation Testing: A Unique Framework To Accelerate Delivery
Scriptless Automation Testing: A Unique Framework To Accelerate DeliveryScriptless Automation Testing: A Unique Framework To Accelerate Delivery
Scriptless Automation Testing: A Unique Framework To Accelerate Delivery
 
Unit 7 verification & validation
Unit 7 verification & validationUnit 7 verification & validation
Unit 7 verification & validation
 
Surrogate Model-Based Reliability Analysis of Composite UAV Wing facilitation...
Surrogate Model-Based Reliability Analysis of Composite UAV Wing facilitation...Surrogate Model-Based Reliability Analysis of Composite UAV Wing facilitation...
Surrogate Model-Based Reliability Analysis of Composite UAV Wing facilitation...
 
Continuous Integration Testing for SAP
Continuous Integration Testing for SAPContinuous Integration Testing for SAP
Continuous Integration Testing for SAP
 
Manila MuleSoft Meetup - August 2020
Manila MuleSoft Meetup - August 2020Manila MuleSoft Meetup - August 2020
Manila MuleSoft Meetup - August 2020
 
Cloud-based Test Microservices JavaOne 2014
Cloud-based Test Microservices JavaOne 2014Cloud-based Test Microservices JavaOne 2014
Cloud-based Test Microservices JavaOne 2014
 
Model Based Software Testing
Model Based Software TestingModel Based Software Testing
Model Based Software Testing
 

More from Modelon

Vehicle Dynamics Library - Overview
Vehicle Dynamics Library - OverviewVehicle Dynamics Library - Overview
Vehicle Dynamics Library - OverviewModelon
 
Vapor Cycle Library - Overview
Vapor Cycle Library - OverviewVapor Cycle Library - Overview
Vapor Cycle Library - OverviewModelon
 
Thermal Power Library - Overview
Thermal Power Library - OverviewThermal Power Library - Overview
Thermal Power Library - OverviewModelon
 
Pneumatics Library - Overview
Pneumatics Library - OverviewPneumatics Library - Overview
Pneumatics Library - OverviewModelon
 
Liquid Cooling Library - Overview
Liquid Cooling Library - OverviewLiquid Cooling Library - Overview
Liquid Cooling Library - OverviewModelon
 
Jet Propulsion Library - Overview
Jet Propulsion Library - OverviewJet Propulsion Library - Overview
Jet Propulsion Library - OverviewModelon
 
Heat Exchanger Library - Overview
Heat Exchanger Library - OverviewHeat Exchanger Library - Overview
Heat Exchanger Library - OverviewModelon
 
Hydro Power Library - Overview
Hydro Power Library - OverviewHydro Power Library - Overview
Hydro Power Library - OverviewModelon
 
Hydraulics Library - Overview
Hydraulics Library - OverviewHydraulics Library - Overview
Hydraulics Library - OverviewModelon
 
Fuel System Library Overview
Fuel System Library OverviewFuel System Library Overview
Fuel System Library OverviewModelon
 
Fuel Cell Library - Overview
Fuel Cell Library - OverviewFuel Cell Library - Overview
Fuel Cell Library - OverviewModelon
 
Electric Power Library - Overview
Electric Power Library - OverviewElectric Power Library - Overview
Electric Power Library - OverviewModelon
 
Electrification Library - Overview
Electrification Library - OverviewElectrification Library - Overview
Electrification Library - OverviewModelon
 
Engine Dynamics Library - Overview
Engine Dynamics Library - OverviewEngine Dynamics Library - Overview
Engine Dynamics Library - OverviewModelon
 
Environmental Control Library - Overview
Environmental Control Library - OverviewEnvironmental Control Library - Overview
Environmental Control Library - OverviewModelon
 
Aircraft Dynamics Library - Overview
Aircraft Dynamics Library - OverviewAircraft Dynamics Library - Overview
Aircraft Dynamics Library - OverviewModelon
 
Air Conditioning Library - Overview
Air Conditioning Library - OverviewAir Conditioning Library - Overview
Air Conditioning Library - OverviewModelon
 
Fuel System Library - Overview
Fuel System Library - OverviewFuel System Library - Overview
Fuel System Library - OverviewModelon
 

More from Modelon (18)

Vehicle Dynamics Library - Overview
Vehicle Dynamics Library - OverviewVehicle Dynamics Library - Overview
Vehicle Dynamics Library - Overview
 
Vapor Cycle Library - Overview
Vapor Cycle Library - OverviewVapor Cycle Library - Overview
Vapor Cycle Library - Overview
 
Thermal Power Library - Overview
Thermal Power Library - OverviewThermal Power Library - Overview
Thermal Power Library - Overview
 
Pneumatics Library - Overview
Pneumatics Library - OverviewPneumatics Library - Overview
Pneumatics Library - Overview
 
Liquid Cooling Library - Overview
Liquid Cooling Library - OverviewLiquid Cooling Library - Overview
Liquid Cooling Library - Overview
 
Jet Propulsion Library - Overview
Jet Propulsion Library - OverviewJet Propulsion Library - Overview
Jet Propulsion Library - Overview
 
Heat Exchanger Library - Overview
Heat Exchanger Library - OverviewHeat Exchanger Library - Overview
Heat Exchanger Library - Overview
 
Hydro Power Library - Overview
Hydro Power Library - OverviewHydro Power Library - Overview
Hydro Power Library - Overview
 
Hydraulics Library - Overview
Hydraulics Library - OverviewHydraulics Library - Overview
Hydraulics Library - Overview
 
Fuel System Library Overview
Fuel System Library OverviewFuel System Library Overview
Fuel System Library Overview
 
Fuel Cell Library - Overview
Fuel Cell Library - OverviewFuel Cell Library - Overview
Fuel Cell Library - Overview
 
Electric Power Library - Overview
Electric Power Library - OverviewElectric Power Library - Overview
Electric Power Library - Overview
 
Electrification Library - Overview
Electrification Library - OverviewElectrification Library - Overview
Electrification Library - Overview
 
Engine Dynamics Library - Overview
Engine Dynamics Library - OverviewEngine Dynamics Library - Overview
Engine Dynamics Library - Overview
 
Environmental Control Library - Overview
Environmental Control Library - OverviewEnvironmental Control Library - Overview
Environmental Control Library - Overview
 
Aircraft Dynamics Library - Overview
Aircraft Dynamics Library - OverviewAircraft Dynamics Library - Overview
Aircraft Dynamics Library - Overview
 
Air Conditioning Library - Overview
Air Conditioning Library - OverviewAir Conditioning Library - Overview
Air Conditioning Library - Overview
 
Fuel System Library - Overview
Fuel System Library - OverviewFuel System Library - Overview
Fuel System Library - Overview
 

Recently uploaded

SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 

Recently uploaded (20)

SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 

Optimica Testing Toolkit

  • 1. OPTIMICA TESTING TOOLKIT Anders Tilly Victor Johnsson Jon Sten Alexander Perlman Johan Åkesson 2015-09-29 © Modelon 1
  • 2. MOTIVATION • Why do we need software testing?  Ensure consistent functionality over time  Software without tests can not be updated safely  Safe migration between platforms and tool versions  Quality software development requires testing • Modelica code is just like any other software, it needs testing 2015-09-29 © Modelon 2
  • 3. BACKGROUND • Test specification formats  Experiment annotation  TestCase 2015-09-29 © Modelon 3
  • 4. BACKGROUND • Additional requirements on test specification  Specification of reference variables  Model structure • Equation system structure • Analytic Jacobians  Tool specific options  Setup and teardown scripts  Ability to override reference results for specific tools 2015-09-29 © Modelon 4
  • 5. BACKGROUND – CSV COMPARE • Compares and displays deviation between two result files • Calculates an tube around the reference curve • The checked result should inside the tube 2015-09-29 © Modelon 5
  • 6. PREVIOUS WORK • UnitTesting  Modelica based library • MoUnit  Used in OneModelica  Support for multiple Modelica and FMI tools • RegressionTest  For Dymola testing 2015-09-29 © Modelon 6
  • 7. OPTIMICA TESTING TOOLKIT • Key features  Modelica and FMI cross testing platform  Flexible test authoring  Automated test execution and reporting • Architecture  Core • Command line tool for running tests • Uses OPTIMICA compiler toolkit for test retrieval  GUI • Tool for creating, updating and running tests • Reviewing and updating results 2015-09-29 © Modelon 7
  • 8. CORE DESIGN • Design goals  Modularized and Plugin based  Support multiple Modelica and FMI tools  Defining high-level API for common operations  Oriented around testing cycle:  Canonical form between steps 2015-09-29 © Modelon 8 Sieve Execute Report
  • 9. CORE OVERVIEW 2015-09-29 © Modelon 9 .mo.mo Test spec. .m o .m o Reports Modelica / FMI Tools Sieve Execute Report .mo.mo Library
  • 10. RUN CONFIGURATION • From command line • From file 2015-09-29 © Modelon 10 . m o . m o Test spec. . m o . m o Reports Modelica / FMI Tools Sieve Execute Report . m o . m o Library OutputsToolsType Test Specification Library Resources
  • 11. SEIVES • Find models to test • Extracts test settings (start-, stop-time, tolerance, signals, etc.) • Translate to canonical form • Examples of sieves:  Experiment annotations  All models  TestCase annotations 2015-09-29 © Modelon 11
  • 12. SIEVE CORE 1. Based on provided tests, different sieves can be used 2. The sieve implementation will the provide a list of tests. If needed the OCT compiler will be used to extract information from Modelica models 2015-09-29 © Modelon 12 Sieve Core Sieve Implementation OCT Frontend .mo.mo 1 2
  • 13. SIEVE EXAMPLE • Experiment annotation Sieve: 1. Forward Modelica packages to OCT. OCT returns tree representation of packages 2. Recursively for each package: 3. Retrieve sub classes, if it is: a) Sub-package, then go to 2 b) If class, check for experiment annotation, if found add as test 4. Return list of tests 2015-09-29 © Modelon 13 OCT Frontend .mo.mo.mo 1 2 3 Sieve Core 4
  • 14. TEST EXECUTION • Testers can be divided into two main categories:  Static • Testing is controlled by OTT • Each test (model) is tested though a preselected sequence  Scripted • Each test is programmatically defined • OTT provides high level API 2015-09-29 © Modelon 14
  • 15. STATIC TESTING • Modes:  Check  Compile  Simulate  Verify  Testcase 2015-09-29 © Modelon 15 Core Check Compile Simulate Verify Compare Tools Translation Interfaces Simulation Interfaces Modelica Tools FMI Tools
  • 16. STATIC TESTING EXAMPLE 1. A list of tests is provided by the sieve 2. The OCT compiler is used to compile FMUs 3. The FMUs are simulated using OCT 4. The simulation results are compared using CSV Compare 5. Each step records results which are passed along to the report step 2015-09-29 © Modelon 16 Core Check Compile Simulate Verify CSV Compare OCT 51 2 3 4
  • 17. SCRIPTED TESTING • Each test can be unique, custom sequence of commands • Written in Python • OTT provides high level API to supported Modelica and FMI tools • OTT also provides support for generating reports 2015-09-29 © Modelon 17 Core Compare Tools Modelica Tools FMI Tools .py Tests .py Test
  • 18. REPORTERS • Each test step produces artefacts • Artefacts are then processed by the reporters • Available reporters:  HTML  JUnit  Pickle 2015-09-29 © Modelon 18 .html.html.html .xml Core HTML JUnit Pickle
  • 19. CONTINUOUS INTEGRATION SUPPORT • CI integration using command line and JUnit XML results • Hudson, Jenkins, TeamCity 2015-09-29 © Modelon 19 .m o .m o Test spec. . m o . m o JUnit Modelica / FMI Tools Sieve Execute Report .m o .m o Library Job configuration Record JUnit results
  • 21. GUI • Test authoring • Test execution • Test run configuration • Test result reviewing • Still work in progress! 2015-09-29 © Modelon 21
  • 22. GUI • Developed with usability in mind  Easy to specify modifications and variables to compare  Easy to review and update result differences  Inheritance between test cases 2015-09-29 © Modelon 22
  • 24. BACKLOG • New test specification format  Possibility to specify compare variables  Tool specific options  Comparing test model structure  … • Run configuration • Traceability and reproducibility support • Extend GUI functionality • Additional Modelica and FMI tools 2015-09-29 © Modelon 24

Editor's Notes

  1. Welcome Jon sten, software engineer at Modelon Today I’m going to give an introduction and insight into Optimica testing toolkit
  2. Why do we need testing Functionality over time Able to update software Ensure compliance between platforms and tools Quality Modelica code is the same
  3. Look for experiment annotation, TestCase annotations used in ModelicaCompliance library ways for retrieving and specify good tests, especially for tool testing, find simulateable models….
  4. Additional requirements needed by Modelon library- and tool-testing Specification of variables Check structure of model, equation system, jacobians Set tool options for compilation or simulation Tool specific scripts for setup and teardown between tests steps Have tool specific references results for problematic tests
  5. One tool used by OTT is CSV Compare, open source, provided by ITI GmbH, financed by Modelica Association Used for comparing two result files, reference and actual curve Works by, constructing a tube around reference Checks if actual is inside tube
  6. UnitTesting Modelica based Looking for models which extends models from test library Provides component-, condition-, and static-coverage MoUnit Used in OneModelica Plugin based Supports multiple tools RegressionTest * Tool for testing in dymola
  7. Initial goal OTT – replace and unify inhouse tools for testing There for identified key features… Cross platform testing Flexible test authoring, allowing for different senarios Automated test execution and reporting, and ability to integrate into continuous integration systems Two parts
  8. Modularized, Plugin Multiple tools High-level API for common operations Testing cycle: Sieve Execute Report Canonical form
  9. With that in mind we have a rough overview of OTT, will go in to details over next slides Color coded Blue is core in blue box Red, is plugin, input, built in or user provided As mentioned Three parts Sieve Execute report. Input: is test spec and libraries, might be the same Output: reports Connection to Modelica and FMI tools
  10. Run configuration is the “input” to test run Configuration can come from command line or a conf. file Input is everything needed for completing a run, we have the: Test spec. Libraries, might be same as test spec. Type of the tests Tools to use, compiler, simulator Output processors to use
  11. Slide solver, compare variables,
  12. Internals of sieve Different sieves for different test types Goal, extract tests and test information In case of Modelica library - OCT front end used, package structure and annotations
  13. Detailed example: A Modelica library is provided The sieve will forward to oct fronted Oct returns representation of lib Recurse through lib and Is sub package, recurse Is class with experiment annotation, create test case Return test case
  14. Tester depend on test type Two main types, static, scripted Static Ott controls Each model is tested in the same predefined sequence Scripted Each test is programmatically defined OTT provides high level API
  15. Different modes: Check model Compile model Compile and simulate Compile, simulate and verify (TestCase) Point to illustration
  16. Example of using OCT for compilation and verification. CSV compare used for verification Results are passed to next step
  17. Each test unique, more like classic unit tests Test written in python OTT provides common API to Modelica / FMI tools Provides support for report generation
  18. Report step responsible for processing and producing results Different reporters HTML, for humans JUNIT, xml for computers Pickle, used for reconstructing and general post processing
  19. With the junit xml it is possible to integrate to build systems
  20. Examples
  21. slide
  22. Usability Easy: Modifications Compare variables Review, update result Test case inheritance
  23. Finalize new test specification format Finalize run configuration format Leaving traceability files after run, which contains version history and run configuration More GUI Support more tools