SlideShare a Scribd company logo
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

More Related Content

What's hot

Vlsi design-manual
Vlsi design-manualVlsi design-manual
Vlsi design-manual
Ambuj Jha
 
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
Engineering Software Lab
 
Vlsi lab manual exp:2
Vlsi lab manual exp:2Vlsi lab manual exp:2
Vlsi lab manual exp:2komala vani
 
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
InfinIT - Innovationsnetværket for it
 
OpenCV祭り (配布用)
OpenCV祭り (配布用)OpenCV祭り (配布用)
OpenCV祭り (配布用)
tomoaki0705
 
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 2Dharmalingam Ganesan
 
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
Pablo Gómez Abajo
 
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 IndustryDharmalingam Ganesan
 
Uvm presentation dac2011_final
Uvm presentation dac2011_finalUvm presentation dac2011_final
Uvm presentation dac2011_finalsean chen
 

What's hot (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
 

Viewers also liked

Rapyuta:Cloud robotics Platform - by shan
Rapyuta:Cloud robotics Platform - by shanRapyuta:Cloud robotics Platform - by shan
Rapyuta:Cloud robotics Platform - by shan
shan km
 
An Introduction to ROS-Industrial
An Introduction to ROS-IndustrialAn Introduction to ROS-Industrial
An Introduction to ROS-IndustrialClay 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 cloudKrishna Kangane
 
淺談台灣機器人 產業&發展
淺談台灣機器人 產業&發展淺談台灣機器人 產業&發展
淺談台灣機器人 產業&發展
Po-Jen Lai
 
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
Juxi Leitner
 
ROS - Robotics Operation System
ROS - Robotics Operation SystemROS - Robotics Operation System
ROS - Robotics Operation Systemhudvin
 
20161006 rsp2016 ohkawa-presen
20161006 rsp2016 ohkawa-presen20161006 rsp2016 ohkawa-presen
20161006 rsp2016 ohkawa-presen
Takeshi Ohkawa
 
ROS distributed architecture
ROS  distributed architectureROS  distributed architecture
ROS distributed architecture
Pablo Iñigo Blasco
 
Robot operating systems (ros) overview & (1)
Robot operating systems (ros) overview & (1)Robot operating systems (ros) overview & (1)
Robot operating systems (ros) overview & (1)
Piyush Chand
 
COSCUP 2016 - ROS + Gazebo機器人模擬器工作坊
COSCUP 2016 - ROS + Gazebo機器人模擬器工作坊COSCUP 2016 - ROS + Gazebo機器人模擬器工作坊
COSCUP 2016 - ROS + Gazebo機器人模擬器工作坊
Po-Jen Lai
 
Cloud Robotics
Cloud RoboticsCloud Robotics
Cloud Robotics
Sayed Chhattan Shah
 
Raspberry Pi + ROS
Raspberry Pi + ROSRaspberry Pi + ROS
Raspberry Pi + ROS
ArnoldBail
 
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...
Sai Natkar
 
Cloud robotics
Cloud roboticsCloud robotics
Cloud robotics
Siddharth Awasthi
 
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
Ruijiao Li
 
Cloud robotics
Cloud roboticsCloud robotics
Cloud robotics
IIT Bombay
 
Introduction to ROS (Robot Operating System)
Introduction to ROS (Robot Operating System) Introduction to ROS (Robot Operating System)
Introduction to ROS (Robot Operating System)
hvcoup
 

Viewers also liked (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)
 

Similar to From System Modeling to Automated System Testing

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
Florian Lier
 
PVS-Studio for Linux (CoreHard presentation)
PVS-Studio for Linux (CoreHard presentation)PVS-Studio for Linux (CoreHard presentation)
PVS-Studio for Linux (CoreHard presentation)
Andrey Karpov
 
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
AdaCore
 
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
Andreas Grabner
 
Csharp dot net
Csharp dot netCsharp dot net
Csharp dot net
Revanth Mca
 
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.
Ankita Tiwari
 
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!
SPB SQA Group
 
System verilog important
System verilog importantSystem verilog important
System verilog important
elumalai7
 
Comparative Development Methodologies
Comparative Development MethodologiesComparative Development Methodologies
Comparative Development Methodologieselliando dias
 
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...
Comunidade NetPonto
 
Android Unit Test
Android Unit TestAndroid Unit Test
Android Unit Test
Phuoc Bui
 
Automating the Quality
Automating the QualityAutomating the Quality
Automating the Quality
Dejan Vukmirovic
 
Software Development Life Cycle Testingtypes
Software Development Life Cycle TestingtypesSoftware Development Life Cycle Testingtypes
Software Development Life Cycle Testingtypesvladimir zaremba
 
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...
Susan Yoskin
 
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!!
Massimo Bonanni
 
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
Mahmoud Ali
 
EuroPython 2014 Devops Risk Mitigation
EuroPython 2014 Devops Risk MitigationEuroPython 2014 Devops Risk Mitigation
EuroPython 2014 Devops Risk Mitigation
Schlomo Schapiro
 

Similar to 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
 

Recently uploaded

Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.
ViralQR
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
Vlad Stirbu
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
Peter Spielvogel
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Assure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyesAssure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 

Recently uploaded (20)

Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Assure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyesAssure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyes
 

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