SlideShare une entreprise Scribd logo
1  sur  34
Télécharger pour lire hors ligne
From System Modeling to
Automated System Testing
An overview of the CITK Toolchain
BOSCH — February 12th 2015. Stuttgart, Germany | Florian Lier [flier@techfak.uni-bielefeld.de]
Systems in Robotics | Current State
Research on autonomous robots achieved considerable progress over the
recent years.

Reported results are typically validated through experimental evaluation or
demonstrated live at robotics competitions. [ DARPA Challenge, RoboCup, …]

Amongst other reasons, this is due to: „off-the-shelf“ robots [ iCub, NAO, … ]
and vivid open source communities providing reusable building blocks, e.g.
ROS, Orocos, OPRoS, Yarp …

Publicly available data sets are used to improve benchmarking procedures,
i.e., Rawseeds Project.
3
Systems in Robotics | Software Foundation
4
!
Most current robotics systems are realized by implementing a component-based architecture
These components do not necessarily share the same ecosystem, build, deploy and
testing environment or integration model …
AR Toolkit
Systems in Robotics | Software Foundation
Systems in Robotics | Problem Statement
System artifacts are often distributed over different locations, thus already the
discovery, identification and aggregation of all required artifacts is difficult.

Which specific versions (master or v0.1) of software components were in use
for a particular system or ideally system version?

How can automated integration testing, evaluation and preservation of
results of these heterogeneous components be achieved?
7
Systems in Robotics | Aspect Overview
8
Before you can test
Systems in Experimental Robotics | Goal
To tackle these issues we introduced an approach based on an
integrated software toolchain for system developers (testers)
and experiment designers.
9
Systems in Experimental Robotics | System Model
10
Test!
n SCM’s
dev dev
iCub-nightly
auto-gen
auto deploy
/somewhere/$USER/
Recipes: Java, C/C++, Python, Experiments System Composite
Run Software & Experiment in Lab
direct use
..or in office/home
Local & Global CI
11
sync
Web-based catalog (Systems and related artifacts)
Systems in Robotics | Tool Chain
n SCM’s
dev dev
iCub-nightly
auto-gen
auto deploy
/somewhere/
Recipes: Java, C/C++, Python System Composite
Lab
direct use
Local & Global CI
12
Systems in Robotics | Technical Realization Recipes
..or in office/home
sync
Web-based catalog (Systems and related artifacts)
13
Systems in Robotics | Catalog
14
Systems in Robotics | Catalog
Local & Global CI
15
Systems in Robotics | Bootstrapping
download pre-packaged CI Server
Local & Global CI
16
Systems in Robotics | Bootstrapping
extract & simply start it
17
Systems in Robotics | Jenkins
find ready to use local (or global) CI Server
18
clone distribution/recipe repository
Systems in Robotics | Job Generator
19
invoke job-configurator with desired distribution including tests
Systems in Robotics | Job Generator
20
Systems in Robotics | Job Generator
Systems in Robotics | Testing
21
!
What are these “tests” actually?
Systems in Robotics | Test Framework Goals
22
Not a “tailored” solution for a specific system or even language (component-
based architecture may even prevent this in the first place)

Minimize the effort, let the machine do the work (CI) and enable developers
to design well-structured functional tests

Explicit environment setup and configuration, transparent orchestration,
repeatable and comparable tests

Serialize building and testing automatically

Enable and verify system start-up and tear-down
23
SM
$ENVIONMENT_VARS_DEF
$COMPONENT_A(CHECK_CRITERIA)
$COMPONENT_B(CHECK_CRITERIA)
$COMPONENT_N(CHECK_CRITERIA)
DM
EXEC
RUN
CLEAN
EVAL
CLEAN / REPORT
exec(COMPONENT_A): if "OK" B
exec(COMPONENT_B): if "OK" C
exec(COMPONENT_C): if "OK" D
exec(COMPONENT_Y): if "OK" Z
inject()
exec(COMPONENT_Z): if "OK" E
EXIT
ERROR
export ROS_ROOT=/opt/ros/indigo
export DISPLAY=:0
rosbag record -j /some/topic
java -jar slow_in_java.jar
sh overly_complicated.sh
must start after 5 seconds
monitor PID continuously
must not print “segfaulting()”
must print “conn. established”
lockfile.file must be present
Component Success Criteria
24
Systems in Robotics | Test State Machine Concept
SM
$ENVIONMENT_VARS_DEF
$COMPONENT_A(CHECK_CRITERIA)
$COMPONENT_B(CHECK_CRITERIA)
$COMPONENT_N(CHECK_CRITERIA)
DM
EXEC
RUN
CLEAN
EVAL
CLEAN / REPORT
exec(COMPONENT_A): if "OK" B
exec(COMPONENT_B): if "OK" C
exec(COMPONENT_C): if "OK" D
exec(COMPONENT_Y): if "OK" Z
inject()
exec(COMPONENT_Z): if "OK" E
EXIT
ERROR
stop processes in RUN.invert()
e.g., plot.sh < $FSMT_RUN/logs/*
e.g., read_and_clean.logs
stop processes in EVAL.invert()
25
SM
$ENVIONMENT_VARS_DEF
$COMPONENT_A(CHECK_CRITERIA)
$COMPONENT_B(CHECK_CRITERIA)
$COMPONENT_N(CHECK_CRITERIA)
DM
EXEC
RUN
CLEAN
EVAL
CLEAN / REPORT
exec(COMPONENT_A): if "OK" B
exec(COMPONENT_B): if "OK" C
exec(COMPONENT_C): if "OK" D
exec(COMPONENT_Y): if "OK" Z
inject()
exec(COMPONENT_Z): if "OK" E
EXIT
ERROR
Close all component loggers
Report exit status sys.exit(n)
Create zip archive
Create xUnit output
Systems in Robotics | Test State Machine Concept
26
Systems in Robotics | Test State Machine Implementation
Framework called FSMT (Finite State Machine Based Testing)*

Set of tools written in Python

Implementation of executable “test” state machines including all features as defined in the concept

Simple configuration using *.ini files
* http://opensource.cit-ec.de/projects/fsmt/
27
Systems in Robotics | Test State Machine Implementation
28
Systems in Robotics | Test State Machine Implementation
29
Systems Robotics | FSMT Invocation
fsmt_iniparser my_test.ini -o my_test.scxml
30
Systems Robotics | DEMO
DEMO
https://vimeo.com/112005754
31
Systems Robotics | Provided Benefits
Not a “tailored” solution for a specific system or even language (component-
based architecture may even prevent this in the first place)

Minimize the effort, let the machine do the work (CI) and enable developers
to design well-structured functional tests

Explicit environment setup and configuration, transparent orchestration,
repeatable and comparable tests

Serialize building and testing automatically

Enable and verify system start-up and tear-down
32
Systems Robotics | Thank you!
Links

Web Catalog: https://toolkit.cit-ec.de
Distribution Project: https://opensource.cit-ec.de/citk
Video Material: http://vimeo.com/groups/citk

http://opensource.cit-ec.de/projects/fsmt/
Affiliation

Florian Lier is with Cognitive Interaction Technology — Center of Excellence, Bielefeld University 

Supervisor: Dr.-Ing. habil Sven Wachsmuth
33
Systems Robotics | Literature
Publications (2014)

Modeling Software Systems in Experimental Robotics for Improved Reproducibility -- A Case Study with the iCub Humanoid Robot
http://pub.uni-bielefeld.de/publication/2705677

The Cognitive Interaction Toolkit – Improving Reproducibility of Robotic Systems Experiments

http://pub.uni-bielefeld.de/publication/2702526

Towards Automated Execution and Evaluation of Simulated Prototype HRI Experiments

http://pub.uni-bielefeld.de/publication/2645922

Simulation and HRI Recent Perspectives with the MORSE Simulator

http://pub.uni-bielefeld.de/publication/2685211
34
https://vimeo.com/112005754
Systems in Robotics | Static Demo

Contenu connexe

Tendances

Vlsi lab manual exp:2
Vlsi lab manual exp:2Vlsi lab manual exp:2
Vlsi lab manual exp:2
komala vani
 
Automated testing of NASA Software - part 2
Automated testing of NASA Software - part 2Automated testing of NASA Software - part 2
Automated testing of NASA Software - part 2
Dharmalingam Ganesan
 
Assessing Model-Based Testing: An Empirical Study Conducted in Industry
Assessing Model-Based Testing: An Empirical Study Conducted in IndustryAssessing Model-Based Testing: An Empirical Study Conducted in Industry
Assessing Model-Based Testing: An Empirical Study Conducted in Industry
Dharmalingam Ganesan
 
Uvm presentation dac2011_final
Uvm presentation dac2011_finalUvm presentation dac2011_final
Uvm presentation dac2011_final
sean chen
 

Tendances (9)

Vlsi design-manual
Vlsi design-manualVlsi design-manual
Vlsi design-manual
 
Unit testing on embedded target with C++Test
Unit testing on embedded  target with C++TestUnit testing on embedded  target with C++Test
Unit testing on embedded target with C++Test
 
Vlsi lab manual exp:2
Vlsi lab manual exp:2Vlsi lab manual exp:2
Vlsi lab manual exp:2
 
SWEET - A Tool for WCET Flow Analysis - Björn Lisper
SWEET - A Tool for WCET Flow Analysis - Björn LisperSWEET - A Tool for WCET Flow Analysis - Björn Lisper
SWEET - A Tool for WCET Flow Analysis - Björn Lisper
 
OpenCV祭り (配布用)
OpenCV祭り (配布用)OpenCV祭り (配布用)
OpenCV祭り (配布用)
 
Automated testing of NASA Software - part 2
Automated testing of NASA Software - part 2Automated testing of NASA Software - part 2
Automated testing of NASA Software - part 2
 
A DSL for Model Mutation and its Applications to Different Domains
A DSL for Model Mutation and its Applications to Different DomainsA DSL for Model Mutation and its Applications to Different Domains
A DSL for Model Mutation and its Applications to Different Domains
 
Assessing Model-Based Testing: An Empirical Study Conducted in Industry
Assessing Model-Based Testing: An Empirical Study Conducted in IndustryAssessing Model-Based Testing: An Empirical Study Conducted in Industry
Assessing Model-Based Testing: An Empirical Study Conducted in Industry
 
Uvm presentation dac2011_final
Uvm presentation dac2011_finalUvm presentation dac2011_final
Uvm presentation dac2011_final
 

En vedette

An Introduction to ROS-Industrial
An Introduction to ROS-IndustrialAn Introduction to ROS-Industrial
An Introduction to ROS-Industrial
Clay Flannigan
 
A novel Approch for Robot Grasping on cloud
A novel Approch for Robot Grasping on cloudA novel Approch for Robot Grasping on cloud
A novel Approch for Robot Grasping on cloud
Krishna Kangane
 
ROS - Robotics Operation System
ROS - Robotics Operation SystemROS - Robotics Operation System
ROS - Robotics Operation System
hudvin
 

En vedette (19)

Rapyuta:Cloud robotics Platform - by shan
Rapyuta:Cloud robotics Platform - by shanRapyuta:Cloud robotics Platform - by shan
Rapyuta:Cloud robotics Platform - by shan
 
An Introduction to ROS-Industrial
An Introduction to ROS-IndustrialAn Introduction to ROS-Industrial
An Introduction to ROS-Industrial
 
A novel Approch for Robot Grasping on cloud
A novel Approch for Robot Grasping on cloudA novel Approch for Robot Grasping on cloud
A novel Approch for Robot Grasping on cloud
 
Simulation in Robotics
Simulation in RoboticsSimulation in Robotics
Simulation in Robotics
 
淺談台灣機器人 產業&發展
淺談台灣機器人 產業&發展淺談台灣機器人 產業&發展
淺談台灣機器人 產業&發展
 
ROS Hands-On Intro/Tutorial (Robotic Vision Summer School 2015) #RVSS #ACRV
ROS Hands-On Intro/Tutorial (Robotic Vision Summer School 2015) #RVSS #ACRVROS Hands-On Intro/Tutorial (Robotic Vision Summer School 2015) #RVSS #ACRV
ROS Hands-On Intro/Tutorial (Robotic Vision Summer School 2015) #RVSS #ACRV
 
ROS - Robotics Operation System
ROS - Robotics Operation SystemROS - Robotics Operation System
ROS - Robotics Operation System
 
Cloud robotics
Cloud roboticsCloud robotics
Cloud robotics
 
20161006 rsp2016 ohkawa-presen
20161006 rsp2016 ohkawa-presen20161006 rsp2016 ohkawa-presen
20161006 rsp2016 ohkawa-presen
 
ROS distributed architecture
ROS  distributed architectureROS  distributed architecture
ROS distributed architecture
 
Robot operating systems (ros) overview & (1)
Robot operating systems (ros) overview & (1)Robot operating systems (ros) overview & (1)
Robot operating systems (ros) overview & (1)
 
COSCUP 2016 - ROS + Gazebo機器人模擬器工作坊
COSCUP 2016 - ROS + Gazebo機器人模擬器工作坊COSCUP 2016 - ROS + Gazebo機器人模擬器工作坊
COSCUP 2016 - ROS + Gazebo機器人模擬器工作坊
 
Cloud Robotics
Cloud RoboticsCloud Robotics
Cloud Robotics
 
Raspberry Pi + ROS
Raspberry Pi + ROSRaspberry Pi + ROS
Raspberry Pi + ROS
 
Cloud Robotics: It’s time to offload their brain on Cloud, for better Robotic...
Cloud Robotics: It’s time to offload their brain on Cloud, for better Robotic...Cloud Robotics: It’s time to offload their brain on Cloud, for better Robotic...
Cloud Robotics: It’s time to offload their brain on Cloud, for better Robotic...
 
Cloud robotics
Cloud roboticsCloud robotics
Cloud robotics
 
Cloud Robotics- Enable Cloud Computing for Robots
Cloud Robotics- Enable Cloud Computing for Robots Cloud Robotics- Enable Cloud Computing for Robots
Cloud Robotics- Enable Cloud Computing for Robots
 
Cloud robotics
Cloud roboticsCloud robotics
Cloud robotics
 
Introduction to ROS (Robot Operating System)
Introduction to ROS (Robot Operating System) Introduction to ROS (Robot Operating System)
Introduction to ROS (Robot Operating System)
 

Similaire à From System Modeling to Automated System Testing

Comparative Development Methodologies
Comparative Development MethodologiesComparative Development Methodologies
Comparative Development Methodologies
elliando dias
 
Software Development Life Cycle Testingtypes
Software Development Life Cycle TestingtypesSoftware Development Life Cycle Testingtypes
Software Development Life Cycle Testingtypes
vladimir zaremba
 

Similaire à From System Modeling to Automated System Testing (20)

Modeling Software Systems in Experimental Robotics for Improved Reproducibility
Modeling Software Systems in Experimental Robotics for Improved ReproducibilityModeling Software Systems in Experimental Robotics for Improved Reproducibility
Modeling Software Systems in Experimental Robotics for Improved Reproducibility
 
PVS-Studio for Linux (CoreHard presentation)
PVS-Studio for Linux (CoreHard presentation)PVS-Studio for Linux (CoreHard presentation)
PVS-Studio for Linux (CoreHard presentation)
 
Bounded Model Checking for C Programs in an Enterprise Environment
Bounded Model Checking for C Programs in an Enterprise EnvironmentBounded Model Checking for C Programs in an Enterprise Environment
Bounded Model Checking for C Programs in an Enterprise Environment
 
Shipping Code like a keptn: Continuous Delivery & Automated Operations on k8s
Shipping Code like a keptn: Continuous Delivery & Automated Operations on k8sShipping Code like a keptn: Continuous Delivery & Automated Operations on k8s
Shipping Code like a keptn: Continuous Delivery & Automated Operations on k8s
 
Csharp dot net
Csharp dot netCsharp dot net
Csharp dot net
 
Design the implementation of CDEx Robust DC Motor.
Design the implementation of CDEx Robust DC Motor.Design the implementation of CDEx Robust DC Motor.
Design the implementation of CDEx Robust DC Motor.
 
ITGM8. Всеволод Брекелов (Grid Dinamics) Component tests. let's do that!
ITGM8. Всеволод Брекелов (Grid Dinamics) Component tests. let's do that!ITGM8. Всеволод Брекелов (Grid Dinamics) Component tests. let's do that!
ITGM8. Всеволод Брекелов (Grid Dinamics) Component tests. let's do that!
 
Java Micro-Benchmarking
Java Micro-BenchmarkingJava Micro-Benchmarking
Java Micro-Benchmarking
 
1- java
1- java1- java
1- java
 
System verilog important
System verilog importantSystem verilog important
System verilog important
 
Comparative Development Methodologies
Comparative Development MethodologiesComparative Development Methodologies
Comparative Development Methodologies
 
Testes? Mas isso não aumenta o tempo de projecto? Não quero...
Testes? Mas isso não aumenta o tempo de projecto? Não quero...Testes? Mas isso não aumenta o tempo de projecto? Não quero...
Testes? Mas isso não aumenta o tempo de projecto? Não quero...
 
Android Unit Test
Android Unit TestAndroid Unit Test
Android Unit Test
 
Automating the Quality
Automating the QualityAutomating the Quality
Automating the Quality
 
First fare 2010 lab-view overview
First fare 2010 lab-view overviewFirst fare 2010 lab-view overview
First fare 2010 lab-view overview
 
Software Development Life Cycle Testingtypes
Software Development Life Cycle TestingtypesSoftware Development Life Cycle Testingtypes
Software Development Life Cycle Testingtypes
 
Recover 30% of your day with IBM Development Tools (Smarter Mainframe Develop...
Recover 30% of your day with IBM Development Tools (Smarter Mainframe Develop...Recover 30% of your day with IBM Development Tools (Smarter Mainframe Develop...
Recover 30% of your day with IBM Development Tools (Smarter Mainframe Develop...
 
Testing a Service Fabric solution and live happy!!
Testing a Service Fabric solution and live happy!!Testing a Service Fabric solution and live happy!!
Testing a Service Fabric solution and live happy!!
 
Continuous Integration and Delivery using TeamCity and Jenkins
Continuous Integration and Delivery using TeamCity and JenkinsContinuous Integration and Delivery using TeamCity and Jenkins
Continuous Integration and Delivery using TeamCity and Jenkins
 
EuroPython 2014 Devops Risk Mitigation
EuroPython 2014 Devops Risk MitigationEuroPython 2014 Devops Risk Mitigation
EuroPython 2014 Devops Risk Mitigation
 

Dernier

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Dernier (20)

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 

From System Modeling to Automated System Testing

  • 1.
  • 2. From System Modeling to Automated System Testing An overview of the CITK Toolchain BOSCH — February 12th 2015. Stuttgart, Germany | Florian Lier [flier@techfak.uni-bielefeld.de]
  • 3. Systems in Robotics | Current State Research on autonomous robots achieved considerable progress over the recent years.
 Reported results are typically validated through experimental evaluation or demonstrated live at robotics competitions. [ DARPA Challenge, RoboCup, …]
 Amongst other reasons, this is due to: „off-the-shelf“ robots [ iCub, NAO, … ] and vivid open source communities providing reusable building blocks, e.g. ROS, Orocos, OPRoS, Yarp …
 Publicly available data sets are used to improve benchmarking procedures, i.e., Rawseeds Project. 3
  • 4. Systems in Robotics | Software Foundation 4 ! Most current robotics systems are realized by implementing a component-based architecture These components do not necessarily share the same ecosystem, build, deploy and testing environment or integration model …
  • 6. Systems in Robotics | Software Foundation
  • 7. Systems in Robotics | Problem Statement System artifacts are often distributed over different locations, thus already the discovery, identification and aggregation of all required artifacts is difficult.
 Which specific versions (master or v0.1) of software components were in use for a particular system or ideally system version?
 How can automated integration testing, evaluation and preservation of results of these heterogeneous components be achieved? 7
  • 8. Systems in Robotics | Aspect Overview 8 Before you can test
  • 9. Systems in Experimental Robotics | Goal To tackle these issues we introduced an approach based on an integrated software toolchain for system developers (testers) and experiment designers. 9
  • 10. Systems in Experimental Robotics | System Model 10 Test!
  • 11. n SCM’s dev dev iCub-nightly auto-gen auto deploy /somewhere/$USER/ Recipes: Java, C/C++, Python, Experiments System Composite Run Software & Experiment in Lab direct use ..or in office/home Local & Global CI 11 sync Web-based catalog (Systems and related artifacts) Systems in Robotics | Tool Chain
  • 12. n SCM’s dev dev iCub-nightly auto-gen auto deploy /somewhere/ Recipes: Java, C/C++, Python System Composite Lab direct use Local & Global CI 12 Systems in Robotics | Technical Realization Recipes ..or in office/home sync Web-based catalog (Systems and related artifacts)
  • 15. Local & Global CI 15 Systems in Robotics | Bootstrapping download pre-packaged CI Server
  • 16. Local & Global CI 16 Systems in Robotics | Bootstrapping extract & simply start it
  • 17. 17 Systems in Robotics | Jenkins find ready to use local (or global) CI Server
  • 18. 18 clone distribution/recipe repository Systems in Robotics | Job Generator
  • 19. 19 invoke job-configurator with desired distribution including tests Systems in Robotics | Job Generator
  • 20. 20 Systems in Robotics | Job Generator
  • 21. Systems in Robotics | Testing 21 ! What are these “tests” actually?
  • 22. Systems in Robotics | Test Framework Goals 22 Not a “tailored” solution for a specific system or even language (component- based architecture may even prevent this in the first place)
 Minimize the effort, let the machine do the work (CI) and enable developers to design well-structured functional tests
 Explicit environment setup and configuration, transparent orchestration, repeatable and comparable tests
 Serialize building and testing automatically
 Enable and verify system start-up and tear-down
  • 23. 23 SM $ENVIONMENT_VARS_DEF $COMPONENT_A(CHECK_CRITERIA) $COMPONENT_B(CHECK_CRITERIA) $COMPONENT_N(CHECK_CRITERIA) DM EXEC RUN CLEAN EVAL CLEAN / REPORT exec(COMPONENT_A): if "OK" B exec(COMPONENT_B): if "OK" C exec(COMPONENT_C): if "OK" D exec(COMPONENT_Y): if "OK" Z inject() exec(COMPONENT_Z): if "OK" E EXIT ERROR export ROS_ROOT=/opt/ros/indigo export DISPLAY=:0 rosbag record -j /some/topic java -jar slow_in_java.jar sh overly_complicated.sh must start after 5 seconds monitor PID continuously must not print “segfaulting()” must print “conn. established” lockfile.file must be present Component Success Criteria
  • 24. 24 Systems in Robotics | Test State Machine Concept SM $ENVIONMENT_VARS_DEF $COMPONENT_A(CHECK_CRITERIA) $COMPONENT_B(CHECK_CRITERIA) $COMPONENT_N(CHECK_CRITERIA) DM EXEC RUN CLEAN EVAL CLEAN / REPORT exec(COMPONENT_A): if "OK" B exec(COMPONENT_B): if "OK" C exec(COMPONENT_C): if "OK" D exec(COMPONENT_Y): if "OK" Z inject() exec(COMPONENT_Z): if "OK" E EXIT ERROR stop processes in RUN.invert() e.g., plot.sh < $FSMT_RUN/logs/* e.g., read_and_clean.logs stop processes in EVAL.invert()
  • 25. 25 SM $ENVIONMENT_VARS_DEF $COMPONENT_A(CHECK_CRITERIA) $COMPONENT_B(CHECK_CRITERIA) $COMPONENT_N(CHECK_CRITERIA) DM EXEC RUN CLEAN EVAL CLEAN / REPORT exec(COMPONENT_A): if "OK" B exec(COMPONENT_B): if "OK" C exec(COMPONENT_C): if "OK" D exec(COMPONENT_Y): if "OK" Z inject() exec(COMPONENT_Z): if "OK" E EXIT ERROR Close all component loggers Report exit status sys.exit(n) Create zip archive Create xUnit output Systems in Robotics | Test State Machine Concept
  • 26. 26 Systems in Robotics | Test State Machine Implementation Framework called FSMT (Finite State Machine Based Testing)*
 Set of tools written in Python
 Implementation of executable “test” state machines including all features as defined in the concept
 Simple configuration using *.ini files * http://opensource.cit-ec.de/projects/fsmt/
  • 27. 27 Systems in Robotics | Test State Machine Implementation
  • 28. 28 Systems in Robotics | Test State Machine Implementation
  • 29. 29 Systems Robotics | FSMT Invocation fsmt_iniparser my_test.ini -o my_test.scxml
  • 30. 30 Systems Robotics | DEMO DEMO https://vimeo.com/112005754
  • 31. 31 Systems Robotics | Provided Benefits Not a “tailored” solution for a specific system or even language (component- based architecture may even prevent this in the first place)
 Minimize the effort, let the machine do the work (CI) and enable developers to design well-structured functional tests
 Explicit environment setup and configuration, transparent orchestration, repeatable and comparable tests
 Serialize building and testing automatically
 Enable and verify system start-up and tear-down
  • 32. 32 Systems Robotics | Thank you! Links
 Web Catalog: https://toolkit.cit-ec.de Distribution Project: https://opensource.cit-ec.de/citk Video Material: http://vimeo.com/groups/citk
 http://opensource.cit-ec.de/projects/fsmt/ Affiliation
 Florian Lier is with Cognitive Interaction Technology — Center of Excellence, Bielefeld University 
 Supervisor: Dr.-Ing. habil Sven Wachsmuth
  • 33. 33 Systems Robotics | Literature Publications (2014)
 Modeling Software Systems in Experimental Robotics for Improved Reproducibility -- A Case Study with the iCub Humanoid Robot http://pub.uni-bielefeld.de/publication/2705677
 The Cognitive Interaction Toolkit – Improving Reproducibility of Robotic Systems Experiments
 http://pub.uni-bielefeld.de/publication/2702526
 Towards Automated Execution and Evaluation of Simulated Prototype HRI Experiments
 http://pub.uni-bielefeld.de/publication/2645922
 Simulation and HRI Recent Perspectives with the MORSE Simulator
 http://pub.uni-bielefeld.de/publication/2685211