SlideShare a Scribd company logo
Model-based Automatic Offline MMI Testing @ Novo Nordisk A/S Jacob Illum, CISS Ulrik Hørlyk Hjort, BestPractice Consulting I-DAY @ FM2009, Eindhoven, Nov. 5th
Overview ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
CISS Focus Areas Applikationer Teknologi Værktøj Modeller  Metoder Protokoller Design- og Prog.sprog Operativ system HW platform GPS Open source Home automation Mobile robotter Intelligente sensorer Ad hoc netværk Mobiltlf Audio/Video Konsum elektr Kontrolsystemer Automobile X-by wire Algoritmik SW-udvikling Effektforbrug Pålidelighed Test & Validering Hybride systemer Kommunikationsteori Model Based Development of Embedded Software Intelligent Sensor Networks Embedded & RT Platform LAB  Safety Critical Software Systems Embedded System Testing & Verification HW/SW Co-Design, Design Space Exploration Resource Optimal Scheduling  Security  High Level Programming Languages for ES IT in Automation
Timed Automata Synchronization Guard Invariant Reset [Alur & Dill’89] Resource
Timed Automata Resource Semantics: ( Idle , x=0 )     ( Idle , x=2.5) d(2.5)    ( InUse , x=0 ) use?    ( InUse , x=5) d(5)    ( Idle , x=5) done!    ( Idle , x=8) d(3)    ( InUse , x=0 ) use?   [Alur & Dill’89]
Timed Automata Resource Semantics: ( Idle , x=0 )     ( Idle , x=2.5) d(2.5)    ( InUse , x=0 ) use?    ( InUse , x=5) d(5)    ( Idle , x=5) done!    ( Idle , x=8) d(3)    ( InUse , x=0 ) use?   [Alur & Dill’89] Synchronization Guard Invariant Reset
Timed Automata Resource Semantics: ( Idle , x=0 )     ( Idle , x=2.5) d(2.5)    ( InUse , x=0 ) use?    ( InUse , x=5) d(5)    ( Idle , x=5) done!    ( Idle , x=8) d(3)    ( InUse , x=0 ) use?   [Alur & Dill’89] Synchronization Guard Invariant Reset
Timed Automata Resource Semantics: ( Idle , x=0 )     ( Idle , x=2.5) d(2.5)    ( InUse , x=0 ) use?    ( InUse , x=5) d(5)    ( Idle , x=5) done!    ( Idle , x=8) d(3)    ( InUse , x=0 ) use?   [Alur & Dill’89] Synchronization Guard Invariant Reset
Timed Automata Resource Semantics: ( Idle , x=0 )     ( Idle , x=2.5) d(2.5)    ( InUse , x=0 ) use?    ( InUse , x=5) d(5)    ( Idle , x=5) done!    ( Idle , x=8) d(3)    ( InUse , x=0 ) use?   [Alur & Dill’89] Synchronization Guard Invariant Reset
Composition Resource Task Shared variable Synchronization Semantics: ( Idle , Init , B=0, x=0)    ( Idle , Init , B=0 , x=3.1415 )    d(3.1415)    ( InUse , Using , B=6, x=0 ) use    ( InUse , Using , B=6, x=6 ) d(6)    ( Idle , Done , B=6 , x=6 ) done
Composition Resource Task Semantics: ( Idle , Init , B=0, x=0)    ( Idle , Init , B=0 , x=3.1415 )    d(3.1415)    ( InUse , Using , B=6, x=0 ) use    ( InUse , Using , B=6, x=6 ) d(6)    ( Idle , Done , B=6 , x=6 ) done Shared variable Synchronization
Composition Resource Task Semantics: ( Idle , Init , B=0, x=0)    ( Idle , Init , B=0 , x=3.1415 )   d(3.1415)    ( InUse , Using , B=6, x=0 ) use    ( InUse , Using , B=6, x=6 ) d(6)    ( Idle , Done , B=6 , x=6 ) done Shared variable Synchronization
Composition Resource Task Semantics: ( Idle , Init , B=0, x=0)    ( Idle , Init , B=0 , x=3.1415 )    d(3.1415)    ( InUse , Using , B=6, x=0 ) use    ( InUse , Using , B=6, x=6 ) d(6)    ( Idle , Done , B=6 , x=6 ) done Shared variable Synchronization
Advanced Features int [0,1234] ivar = 42; typedef struct  { bool  sL; } base_t; base_t Base; bool  func(base_t & bt) { if  (ivar < 31) return  bt.sL; else return   true ; } Template ( base_t & bt )
The Case ,[object Object],[object Object],[object Object],A B C D E F G H I J K L M N O P Q R
[object Object],[object Object],[object Object]
 
[object Object]
MMI Flows verification old way: ,[object Object],[object Object],[object Object],[object Object],[object Object]
MMI Flow verification new way ,[object Object],[object Object]
Future Work ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Experiences ,[object Object],[object Object],[object Object],[object Object]
Experiences ,[object Object],[object Object],[object Object]
Experiences ,[object Object]
Questions? Thank you for your attention!

More Related Content

What's hot

Python Matplotlib Tutorial | Matplotlib Tutorial | Python Tutorial | Python T...
Python Matplotlib Tutorial | Matplotlib Tutorial | Python Tutorial | Python T...Python Matplotlib Tutorial | Matplotlib Tutorial | Python Tutorial | Python T...
Python Matplotlib Tutorial | Matplotlib Tutorial | Python Tutorial | Python T...
Edureka!
 
Introduction to NumPy (PyData SV 2013)
Introduction to NumPy (PyData SV 2013)Introduction to NumPy (PyData SV 2013)
Introduction to NumPy (PyData SV 2013)
PyData
 
Data Science Academy Student Demo day--Peggy sobolewski,analyzing transporati...
Data Science Academy Student Demo day--Peggy sobolewski,analyzing transporati...Data Science Academy Student Demo day--Peggy sobolewski,analyzing transporati...
Data Science Academy Student Demo day--Peggy sobolewski,analyzing transporati...
Vivian S. Zhang
 
Numpy Talk at SIAM
Numpy Talk at SIAMNumpy Talk at SIAM
Numpy Talk at SIAM
Enthought, Inc.
 
Dma
DmaDma
NumPy Refresher
NumPy RefresherNumPy Refresher
NumPy Refresher
Lukasz Dobrzanski
 
multiple linear regression
multiple linear regressionmultiple linear regression
multiple linear regression
Akhilesh Joshi
 
13. dynamic allocation
13. dynamic allocation13. dynamic allocation
13. dynamic allocation웅식 전
 
Numpy tutorial(final) 20160303
Numpy tutorial(final) 20160303Numpy tutorial(final) 20160303
Numpy tutorial(final) 20160303
Namgee Lee
 
Seeing Like Software
Seeing Like SoftwareSeeing Like Software
Seeing Like Software
Andrew Lovett-Barron
 
R studio
R studio R studio
R studio
Kinza Irshad
 
Intoduction to numpy
Intoduction to numpyIntoduction to numpy
Intoduction to numpy
Faraz Ahmed
 
Xgboost
XgboostXgboost
NCCU: Statistics in the Criminal Justice System, R basics and Simulation - Pr...
NCCU: Statistics in the Criminal Justice System, R basics and Simulation - Pr...NCCU: Statistics in the Criminal Justice System, R basics and Simulation - Pr...
NCCU: Statistics in the Criminal Justice System, R basics and Simulation - Pr...
The Statistical and Applied Mathematical Sciences Institute
 
Cascading talk in Etsy (http://www.meetup.com/cascading/events/169390262/)
Cascading talk in Etsy (http://www.meetup.com/cascading/events/169390262/)Cascading talk in Etsy (http://www.meetup.com/cascading/events/169390262/)
Cascading talk in Etsy (http://www.meetup.com/cascading/events/169390262/)
Jyotirmoy Sundi
 
Property-based Testing and Generators (Lua)
Property-based Testing and Generators (Lua)Property-based Testing and Generators (Lua)
Property-based Testing and Generators (Lua)
Sumant Tambe
 
QCon Rio - Machine Learning for Everyone
QCon Rio - Machine Learning for EveryoneQCon Rio - Machine Learning for Everyone
QCon Rio - Machine Learning for Everyone
Dhiana Deva
 
Introduction to Gura Programming Language
Introduction to Gura Programming LanguageIntroduction to Gura Programming Language
Introduction to Gura Programming Language
Yutaka Saito
 
Python bokeh cheat_sheet
Python bokeh cheat_sheet Python bokeh cheat_sheet
Python bokeh cheat_sheet
Nishant Upadhyay
 
Scikit-learn Cheatsheet-Python
Scikit-learn Cheatsheet-PythonScikit-learn Cheatsheet-Python
Scikit-learn Cheatsheet-Python
Dr. Volkan OBAN
 

What's hot (20)

Python Matplotlib Tutorial | Matplotlib Tutorial | Python Tutorial | Python T...
Python Matplotlib Tutorial | Matplotlib Tutorial | Python Tutorial | Python T...Python Matplotlib Tutorial | Matplotlib Tutorial | Python Tutorial | Python T...
Python Matplotlib Tutorial | Matplotlib Tutorial | Python Tutorial | Python T...
 
Introduction to NumPy (PyData SV 2013)
Introduction to NumPy (PyData SV 2013)Introduction to NumPy (PyData SV 2013)
Introduction to NumPy (PyData SV 2013)
 
Data Science Academy Student Demo day--Peggy sobolewski,analyzing transporati...
Data Science Academy Student Demo day--Peggy sobolewski,analyzing transporati...Data Science Academy Student Demo day--Peggy sobolewski,analyzing transporati...
Data Science Academy Student Demo day--Peggy sobolewski,analyzing transporati...
 
Numpy Talk at SIAM
Numpy Talk at SIAMNumpy Talk at SIAM
Numpy Talk at SIAM
 
Dma
DmaDma
Dma
 
NumPy Refresher
NumPy RefresherNumPy Refresher
NumPy Refresher
 
multiple linear regression
multiple linear regressionmultiple linear regression
multiple linear regression
 
13. dynamic allocation
13. dynamic allocation13. dynamic allocation
13. dynamic allocation
 
Numpy tutorial(final) 20160303
Numpy tutorial(final) 20160303Numpy tutorial(final) 20160303
Numpy tutorial(final) 20160303
 
Seeing Like Software
Seeing Like SoftwareSeeing Like Software
Seeing Like Software
 
R studio
R studio R studio
R studio
 
Intoduction to numpy
Intoduction to numpyIntoduction to numpy
Intoduction to numpy
 
Xgboost
XgboostXgboost
Xgboost
 
NCCU: Statistics in the Criminal Justice System, R basics and Simulation - Pr...
NCCU: Statistics in the Criminal Justice System, R basics and Simulation - Pr...NCCU: Statistics in the Criminal Justice System, R basics and Simulation - Pr...
NCCU: Statistics in the Criminal Justice System, R basics and Simulation - Pr...
 
Cascading talk in Etsy (http://www.meetup.com/cascading/events/169390262/)
Cascading talk in Etsy (http://www.meetup.com/cascading/events/169390262/)Cascading talk in Etsy (http://www.meetup.com/cascading/events/169390262/)
Cascading talk in Etsy (http://www.meetup.com/cascading/events/169390262/)
 
Property-based Testing and Generators (Lua)
Property-based Testing and Generators (Lua)Property-based Testing and Generators (Lua)
Property-based Testing and Generators (Lua)
 
QCon Rio - Machine Learning for Everyone
QCon Rio - Machine Learning for EveryoneQCon Rio - Machine Learning for Everyone
QCon Rio - Machine Learning for Everyone
 
Introduction to Gura Programming Language
Introduction to Gura Programming LanguageIntroduction to Gura Programming Language
Introduction to Gura Programming Language
 
Python bokeh cheat_sheet
Python bokeh cheat_sheet Python bokeh cheat_sheet
Python bokeh cheat_sheet
 
Scikit-learn Cheatsheet-Python
Scikit-learn Cheatsheet-PythonScikit-learn Cheatsheet-Python
Scikit-learn Cheatsheet-Python
 

Viewers also liked

Partners with nature v3
Partners with nature v3Partners with nature v3
Partners with nature v3Ecotrust
 
Model-based GUI testing using Uppaal
Model-based GUI testing using UppaalModel-based GUI testing using Uppaal
Model-based GUI testing using UppaalUlrik Hørlyk Hjort
 
An efficient intrusion detection using relevance vector machine
An efficient intrusion detection using relevance vector machineAn efficient intrusion detection using relevance vector machine
An efficient intrusion detection using relevance vector machineIAEME Publication
 
Data mining for the masses, Chapter 6, Using R as an alternative to Rapidminer
Data mining for the masses, Chapter 6, Using R as an alternative to RapidminerData mining for the masses, Chapter 6, Using R as an alternative to Rapidminer
Data mining for the masses, Chapter 6, Using R as an alternative to Rapidminer
Ulrik Hørlyk Hjort
 
Integrated Web Recommendation Model with Improved Weighted Association Rule M...
Integrated Web Recommendation Model with Improved Weighted Association Rule M...Integrated Web Recommendation Model with Improved Weighted Association Rule M...
Integrated Web Recommendation Model with Improved Weighted Association Rule M...
ijdkp
 
Resilience report spreads2
Resilience report spreads2Resilience report spreads2
Resilience report spreads2
Ecotrust
 
ODD EVEN BASED BINARY SEARCH
ODD EVEN BASED BINARY SEARCHODD EVEN BASED BINARY SEARCH
ODD EVEN BASED BINARY SEARCH
IAEME Publication
 
Ijmet 07 06_005
Ijmet 07 06_005Ijmet 07 06_005
Ijmet 07 06_005
IAEME Publication
 
CAE Result Student's Book
CAE Result Student's BookCAE Result Student's Book
CAE Result Student's Book
Laura Sollier
 
Cambridge essential grammar in use
Cambridge essential grammar in useCambridge essential grammar in use
Cambridge essential grammar in useOscar Guevara
 

Viewers also liked (11)

Partners with nature v3
Partners with nature v3Partners with nature v3
Partners with nature v3
 
Model-based GUI testing using Uppaal
Model-based GUI testing using UppaalModel-based GUI testing using Uppaal
Model-based GUI testing using Uppaal
 
An efficient intrusion detection using relevance vector machine
An efficient intrusion detection using relevance vector machineAn efficient intrusion detection using relevance vector machine
An efficient intrusion detection using relevance vector machine
 
Data mining for the masses, Chapter 6, Using R as an alternative to Rapidminer
Data mining for the masses, Chapter 6, Using R as an alternative to RapidminerData mining for the masses, Chapter 6, Using R as an alternative to Rapidminer
Data mining for the masses, Chapter 6, Using R as an alternative to Rapidminer
 
Integrated Web Recommendation Model with Improved Weighted Association Rule M...
Integrated Web Recommendation Model with Improved Weighted Association Rule M...Integrated Web Recommendation Model with Improved Weighted Association Rule M...
Integrated Web Recommendation Model with Improved Weighted Association Rule M...
 
Resilience report spreads2
Resilience report spreads2Resilience report spreads2
Resilience report spreads2
 
ODD EVEN BASED BINARY SEARCH
ODD EVEN BASED BINARY SEARCHODD EVEN BASED BINARY SEARCH
ODD EVEN BASED BINARY SEARCH
 
Fce Result Workbook Resource Pack with key
Fce Result Workbook Resource Pack with keyFce Result Workbook Resource Pack with key
Fce Result Workbook Resource Pack with key
 
Ijmet 07 06_005
Ijmet 07 06_005Ijmet 07 06_005
Ijmet 07 06_005
 
CAE Result Student's Book
CAE Result Student's BookCAE Result Student's Book
CAE Result Student's Book
 
Cambridge essential grammar in use
Cambridge essential grammar in useCambridge essential grammar in use
Cambridge essential grammar in use
 

Similar to Model-based GUI testing using UPPAAL

A Future for R: Parallel and Distributed Processing in R for Everyone
A Future for R: Parallel and Distributed Processing in R for EveryoneA Future for R: Parallel and Distributed Processing in R for Everyone
A Future for R: Parallel and Distributed Processing in R for Everyone
inside-BigData.com
 
Re-Design with Elixir/OTP
Re-Design with Elixir/OTPRe-Design with Elixir/OTP
Re-Design with Elixir/OTP
Mustafa TURAN
 
Rethinking metrics: metrics 2.0 @ Lisa 2014
Rethinking metrics: metrics 2.0 @ Lisa 2014Rethinking metrics: metrics 2.0 @ Lisa 2014
Rethinking metrics: metrics 2.0 @ Lisa 2014
Dieter Plaetinck
 
The Concurrent Constraint Programming Research Programmes -- Redux (part2)
The Concurrent Constraint Programming Research Programmes -- Redux (part2)The Concurrent Constraint Programming Research Programmes -- Redux (part2)
The Concurrent Constraint Programming Research Programmes -- Redux (part2)
Pierre Schaus
 
Monitoring Complex Systems: Keeping Your Head on Straight in a Hard World
Monitoring Complex Systems: Keeping Your Head on Straight in a Hard WorldMonitoring Complex Systems: Keeping Your Head on Straight in a Hard World
Monitoring Complex Systems: Keeping Your Head on Straight in a Hard World
Brian Troutwine
 
Google Big Data Expo
Google Big Data ExpoGoogle Big Data Expo
Google Big Data Expo
BigDataExpo
 
Ehsan parallel accelerator-dec2015
Ehsan parallel accelerator-dec2015Ehsan parallel accelerator-dec2015
Ehsan parallel accelerator-dec2015
Christian Peel
 
Transfer Learning for Improving Model Predictions in Highly Configurable Soft...
Transfer Learning for Improving Model Predictions in Highly Configurable Soft...Transfer Learning for Improving Model Predictions in Highly Configurable Soft...
Transfer Learning for Improving Model Predictions in Highly Configurable Soft...
Pooyan Jamshidi
 
Benchy: Lightweight framework for Performance Benchmarks
Benchy: Lightweight framework for Performance Benchmarks Benchy: Lightweight framework for Performance Benchmarks
Benchy: Lightweight framework for Performance Benchmarks
Marcel Caraciolo
 
Malo Denielou - No shard left behind: Dynamic work rebalancing in Apache Beam
Malo Denielou - No shard left behind: Dynamic work rebalancing in Apache BeamMalo Denielou - No shard left behind: Dynamic work rebalancing in Apache Beam
Malo Denielou - No shard left behind: Dynamic work rebalancing in Apache Beam
Flink Forward
 
Feature Engineering - Getting most out of data for predictive models
Feature Engineering - Getting most out of data for predictive modelsFeature Engineering - Getting most out of data for predictive models
Feature Engineering - Getting most out of data for predictive models
Gabriel Moreira
 
Feature Engineering - Getting most out of data for predictive models - TDC 2017
Feature Engineering - Getting most out of data for predictive models - TDC 2017Feature Engineering - Getting most out of data for predictive models - TDC 2017
Feature Engineering - Getting most out of data for predictive models - TDC 2017
Gabriel Moreira
 
NVIDIA HPC ソフトウエア斜め読み
NVIDIA HPC ソフトウエア斜め読みNVIDIA HPC ソフトウエア斜め読み
NVIDIA HPC ソフトウエア斜め読み
NVIDIA Japan
 
Accelerating the Development of Efficient CP Optimizer Models
Accelerating the Development of Efficient CP Optimizer ModelsAccelerating the Development of Efficient CP Optimizer Models
Accelerating the Development of Efficient CP Optimizer Models
Philippe Laborie
 
Apache Beam: A unified model for batch and stream processing data
Apache Beam: A unified model for batch and stream processing dataApache Beam: A unified model for batch and stream processing data
Apache Beam: A unified model for batch and stream processing data
DataWorks Summit/Hadoop Summit
 
Viktor Tsykunov: Azure Machine Learning Service
Viktor Tsykunov: Azure Machine Learning ServiceViktor Tsykunov: Azure Machine Learning Service
Viktor Tsykunov: Azure Machine Learning Service
Lviv Startup Club
 
Art & music vs Google App Engine
Art & music vs Google App EngineArt & music vs Google App Engine
Art & music vs Google App Engine
thomas alisi
 
3 things you must know to think reactive - Geecon Kraków 2015
3 things you must know to think reactive - Geecon Kraków 20153 things you must know to think reactive - Geecon Kraków 2015
3 things you must know to think reactive - Geecon Kraków 2015
Manuel Bernhardt
 
How to fake_properly
How to fake_properlyHow to fake_properly
How to fake_properly
Rainer Schuettengruber
 

Similar to Model-based GUI testing using UPPAAL (20)

A Future for R: Parallel and Distributed Processing in R for Everyone
A Future for R: Parallel and Distributed Processing in R for EveryoneA Future for R: Parallel and Distributed Processing in R for Everyone
A Future for R: Parallel and Distributed Processing in R for Everyone
 
Re-Design with Elixir/OTP
Re-Design with Elixir/OTPRe-Design with Elixir/OTP
Re-Design with Elixir/OTP
 
Java
JavaJava
Java
 
Rethinking metrics: metrics 2.0 @ Lisa 2014
Rethinking metrics: metrics 2.0 @ Lisa 2014Rethinking metrics: metrics 2.0 @ Lisa 2014
Rethinking metrics: metrics 2.0 @ Lisa 2014
 
The Concurrent Constraint Programming Research Programmes -- Redux (part2)
The Concurrent Constraint Programming Research Programmes -- Redux (part2)The Concurrent Constraint Programming Research Programmes -- Redux (part2)
The Concurrent Constraint Programming Research Programmes -- Redux (part2)
 
Monitoring Complex Systems: Keeping Your Head on Straight in a Hard World
Monitoring Complex Systems: Keeping Your Head on Straight in a Hard WorldMonitoring Complex Systems: Keeping Your Head on Straight in a Hard World
Monitoring Complex Systems: Keeping Your Head on Straight in a Hard World
 
Google Big Data Expo
Google Big Data ExpoGoogle Big Data Expo
Google Big Data Expo
 
Ehsan parallel accelerator-dec2015
Ehsan parallel accelerator-dec2015Ehsan parallel accelerator-dec2015
Ehsan parallel accelerator-dec2015
 
Transfer Learning for Improving Model Predictions in Highly Configurable Soft...
Transfer Learning for Improving Model Predictions in Highly Configurable Soft...Transfer Learning for Improving Model Predictions in Highly Configurable Soft...
Transfer Learning for Improving Model Predictions in Highly Configurable Soft...
 
Benchy: Lightweight framework for Performance Benchmarks
Benchy: Lightweight framework for Performance Benchmarks Benchy: Lightweight framework for Performance Benchmarks
Benchy: Lightweight framework for Performance Benchmarks
 
Malo Denielou - No shard left behind: Dynamic work rebalancing in Apache Beam
Malo Denielou - No shard left behind: Dynamic work rebalancing in Apache BeamMalo Denielou - No shard left behind: Dynamic work rebalancing in Apache Beam
Malo Denielou - No shard left behind: Dynamic work rebalancing in Apache Beam
 
Feature Engineering - Getting most out of data for predictive models
Feature Engineering - Getting most out of data for predictive modelsFeature Engineering - Getting most out of data for predictive models
Feature Engineering - Getting most out of data for predictive models
 
Feature Engineering - Getting most out of data for predictive models - TDC 2017
Feature Engineering - Getting most out of data for predictive models - TDC 2017Feature Engineering - Getting most out of data for predictive models - TDC 2017
Feature Engineering - Getting most out of data for predictive models - TDC 2017
 
NVIDIA HPC ソフトウエア斜め読み
NVIDIA HPC ソフトウエア斜め読みNVIDIA HPC ソフトウエア斜め読み
NVIDIA HPC ソフトウエア斜め読み
 
Accelerating the Development of Efficient CP Optimizer Models
Accelerating the Development of Efficient CP Optimizer ModelsAccelerating the Development of Efficient CP Optimizer Models
Accelerating the Development of Efficient CP Optimizer Models
 
Apache Beam: A unified model for batch and stream processing data
Apache Beam: A unified model for batch and stream processing dataApache Beam: A unified model for batch and stream processing data
Apache Beam: A unified model for batch and stream processing data
 
Viktor Tsykunov: Azure Machine Learning Service
Viktor Tsykunov: Azure Machine Learning ServiceViktor Tsykunov: Azure Machine Learning Service
Viktor Tsykunov: Azure Machine Learning Service
 
Art & music vs Google App Engine
Art & music vs Google App EngineArt & music vs Google App Engine
Art & music vs Google App Engine
 
3 things you must know to think reactive - Geecon Kraków 2015
3 things you must know to think reactive - Geecon Kraków 20153 things you must know to think reactive - Geecon Kraków 2015
3 things you must know to think reactive - Geecon Kraków 2015
 
How to fake_properly
How to fake_properlyHow to fake_properly
How to fake_properly
 

Model-based GUI testing using UPPAAL

  • 1. Model-based Automatic Offline MMI Testing @ Novo Nordisk A/S Jacob Illum, CISS Ulrik Hørlyk Hjort, BestPractice Consulting I-DAY @ FM2009, Eindhoven, Nov. 5th
  • 2.
  • 3. CISS Focus Areas Applikationer Teknologi Værktøj Modeller Metoder Protokoller Design- og Prog.sprog Operativ system HW platform GPS Open source Home automation Mobile robotter Intelligente sensorer Ad hoc netværk Mobiltlf Audio/Video Konsum elektr Kontrolsystemer Automobile X-by wire Algoritmik SW-udvikling Effektforbrug Pålidelighed Test & Validering Hybride systemer Kommunikationsteori Model Based Development of Embedded Software Intelligent Sensor Networks Embedded & RT Platform LAB Safety Critical Software Systems Embedded System Testing & Verification HW/SW Co-Design, Design Space Exploration Resource Optimal Scheduling Security High Level Programming Languages for ES IT in Automation
  • 4. Timed Automata Synchronization Guard Invariant Reset [Alur & Dill’89] Resource
  • 5. Timed Automata Resource Semantics: ( Idle , x=0 )  ( Idle , x=2.5) d(2.5)  ( InUse , x=0 ) use?  ( InUse , x=5) d(5)  ( Idle , x=5) done!  ( Idle , x=8) d(3)  ( InUse , x=0 ) use? [Alur & Dill’89]
  • 6. Timed Automata Resource Semantics: ( Idle , x=0 )  ( Idle , x=2.5) d(2.5)  ( InUse , x=0 ) use?  ( InUse , x=5) d(5)  ( Idle , x=5) done!  ( Idle , x=8) d(3)  ( InUse , x=0 ) use? [Alur & Dill’89] Synchronization Guard Invariant Reset
  • 7. Timed Automata Resource Semantics: ( Idle , x=0 )  ( Idle , x=2.5) d(2.5)  ( InUse , x=0 ) use?  ( InUse , x=5) d(5)  ( Idle , x=5) done!  ( Idle , x=8) d(3)  ( InUse , x=0 ) use? [Alur & Dill’89] Synchronization Guard Invariant Reset
  • 8. Timed Automata Resource Semantics: ( Idle , x=0 )  ( Idle , x=2.5) d(2.5)  ( InUse , x=0 ) use?  ( InUse , x=5) d(5)  ( Idle , x=5) done!  ( Idle , x=8) d(3)  ( InUse , x=0 ) use? [Alur & Dill’89] Synchronization Guard Invariant Reset
  • 9. Timed Automata Resource Semantics: ( Idle , x=0 )  ( Idle , x=2.5) d(2.5)  ( InUse , x=0 ) use?  ( InUse , x=5) d(5)  ( Idle , x=5) done!  ( Idle , x=8) d(3)  ( InUse , x=0 ) use? [Alur & Dill’89] Synchronization Guard Invariant Reset
  • 10. Composition Resource Task Shared variable Synchronization Semantics: ( Idle , Init , B=0, x=0)  ( Idle , Init , B=0 , x=3.1415 ) d(3.1415)  ( InUse , Using , B=6, x=0 ) use  ( InUse , Using , B=6, x=6 ) d(6)  ( Idle , Done , B=6 , x=6 ) done
  • 11. Composition Resource Task Semantics: ( Idle , Init , B=0, x=0)  ( Idle , Init , B=0 , x=3.1415 ) d(3.1415)  ( InUse , Using , B=6, x=0 ) use  ( InUse , Using , B=6, x=6 ) d(6)  ( Idle , Done , B=6 , x=6 ) done Shared variable Synchronization
  • 12. Composition Resource Task Semantics: ( Idle , Init , B=0, x=0)  ( Idle , Init , B=0 , x=3.1415 ) d(3.1415)  ( InUse , Using , B=6, x=0 ) use  ( InUse , Using , B=6, x=6 ) d(6)  ( Idle , Done , B=6 , x=6 ) done Shared variable Synchronization
  • 13. Composition Resource Task Semantics: ( Idle , Init , B=0, x=0)  ( Idle , Init , B=0 , x=3.1415 ) d(3.1415)  ( InUse , Using , B=6, x=0 ) use  ( InUse , Using , B=6, x=6 ) d(6)  ( Idle , Done , B=6 , x=6 ) done Shared variable Synchronization
  • 14. Advanced Features int [0,1234] ivar = 42; typedef struct { bool sL; } base_t; base_t Base; bool func(base_t & bt) { if (ivar < 31) return bt.sL; else return true ; } Template ( base_t & bt )
  • 15.
  • 16.
  • 17.  
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25. Questions? Thank you for your attention!