<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Continuous Integration for Testing Full Robotic Behaviours in a GUI-stripped Simulation</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Vladimir Estivill-Castro</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Rene Hexel</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Carl Lusty</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>MiPal, Gri th University</institution>
          ,
          <addr-line>Brisbane, QLD</addr-line>
          ,
          <country country="AU">Australia</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Today, behaviour models are incorporated to perform a sequence of tasks, involving motion planning, object recognition, localisation, manipulation and collaboration, and potentially even learning. Testing models in isolation is insu cient; entire missions that integrate several models should be thoroughly validated before deployment. This paper provides two new contributions: rst, to pro t from the development of the simulator as an extension to Model-View-Controller (MVC) where the view can be optionally incorporated. Second, to use the simulator with the stripped-GUI to massively scale up the testing the integration of models of behaviour that ful l missions performed under the paradigm of continuous integration. We explore the challenging aspects of this testing context and illustrate it with a case study where software models of behaviour are parameterized.</p>
      </abstract>
      <kwd-group>
        <kwd>Behaviour-Based Software</kwd>
        <kwd>Model-View Controller</kwd>
        <kwd>Continuous Integration</kwd>
        <kwd>Test-Driven Development</kwd>
        <kwd>Headless Simulation</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1 Introduction</title>
      <p>
        Continuous Integration (CI) automates the build and testing of source code
every time a developer incorporates changes through a version control system [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
Testing the sophisticated software models that control the behaviour of robots
transcends the validation of each model through unit testing [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. The interaction
of elements composing a sophisticated behaviour is of increasingly crucial
importance to the reliability of robotics systems. Consider, for example, one software
module implementing tracking behaviour of cameras in a vision system mounted
on a robot's head. The development and testing of such a module may be focused
on handling di erent camera resolutions, lighting conditions, and target objects.
Naturally, the software development of the head tracker may initially ignore any
interactions with the locomotion module of the robot. If the robot is legged, the
software control for planning trajectories, controlling all leg articulations, and
ensuring manoeuvrability, path and trajectory compliance (position and speed of
the body's motion) will be the concern of a second team of developers. However,
when the modules are placed together, head motions while tracking objects will,
e.g., a ect the robot's centre of gravity in ways not necessarily predicted by
locomotion control. Testing the interactions of the modules in simulation enables the
evaluation of such potential interactions. Such simulations o er many bene ts,
from accelerated testing times to minimising risks to actual hardware [
        <xref ref-type="bibr" rid="ref3 ref4">3, 4</xref>
        ].
      </p>
      <p>
        CI favours the deployment of robotic software components with a higher level
of robustness and portability [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. First, other developers become consumers of
the software module, acting as testers or code inspectors. But also, as mentioned
earlier, Robotic Unit Testing [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] in combination with frameworks for CI [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] will
perform the unit test on the merged changes that have been recently
incorporated into the version control system. The framework highlight (and not include)
modules whose new release does not satisfactorily pass its tests. CI also facilitates
immediate validation as each committed set of changes triggers a recompilation
of modi ed modules, a recompilation of applications composed of multiple
modules (where modules have been altered) and the execution of validation tests.
      </p>
      <p>
        CI is currently considered best practice as software developers often work in
large projects without face-to-face contact with all those involved (e.g.,
Care-Obot R expands over 100 developers and more than 50 packages [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ].) Moreover,
the ubiquity today of agile approaches to software development implies that
integrations occur regularly. Often improved functionality is integrated at least
on a daily basis. The practice of regular, frequent integration has proven superior
to the isolated development and lengthy merge of integration con icts, usually
resulting in hard to x issues and diverging code branches. In robotics, testing
the integrated application on the physical robot is infeasible for each new version
of a module. Therefore, using a simulator is much more cost-e ective to validate
the mission-critical performance of new or updated modules [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ].
      </p>
      <p>
        The options available in modern version control systems (such as git)
encourage a practice of creating short-lived feature branches. This fast incorporation of
features certainly places time limitations on the extent to which testing can be
performed on a physical robot and encourages the evaluation of behaviours on
simulators. The practice of work isolation to a branch that does not pollute the
master, until desired quality criteria are met puts pressure on the completion of
tests in time. Even in simulators, robotic missions may be lengthy, especially if
the simulator is forced to re ect the reality of the model through a Graphical User
Interface (GUI). In the literature of testing robotic missions at the system-level,
tests had to be limited to 20s [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. Some simulators for machine-learning,
multiagents systems and swarm robotic emphasize detached visualizations mainly to
attach several views [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]; however, such literature does not address Continuous
Integration of Behaviour-based control and the resulting testing bene ts.
      </p>
      <p>
        We propose that simulators should follow the Model-View-Controller
software pattern and potentially be stripped of their GUI. Fundamentally, the
software of a simulator does not have to operate the virtual model in real-time.
Robotic Unit Testing requires that the simulator shall \substitute real sensors
and actuators su ciently well" [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. We argue further that what is needed is that
the simulator can maintain the same physical e ects, control ow, and event
ordering. This way, it should then be possible for a simulator to manage all of
the objects in a simulation at much higher speed (than real-time), limited only
by processing capabilities. The simulator should consequently scale up
tremendously, without altering or biasing the nal result. We integrate model-driven
development of behaviours because these are developed as executable logic-labelled
nite-state machines [
        <xref ref-type="bibr" rid="ref29 ref31">29, 31</xref>
        ].
2
      </p>
    </sec>
    <sec id="sec-2">
      <title>The MVC Pattern for a Simulation</title>
      <p>
        Model View Controller (MVC) is perhaps the most popular design pattern
because of the massive proliferation of devices that enable Graphical User
Interfaces. Some scholars [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] consider MVC an architectural-style pattern, and it is
complementary to tiered architectures for web-applications [9{11] 1. The MVC
pattern separates the organisation of data and knowledge tasks (the model) from
the user interface and presentation (the view). MVC introduces a controller to
mediate between user-generated events that request operations on the data, and
to update the presentation of model elements for the view to render
appropriate visualisations. In this paper, we only require the presence of such mediation
and use MVC broadly to include similar architectures and re nements (such as
Model, View, View-Model, MVVM) that are often distinguished from MVC.
      </p>
      <p>
        In the design and implementation of simulators, the MVC pattern has been
applied, especially for virtual reality (simulators) [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. In this space, researchers
consider USARSim [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], Gazebo [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ], ROAMS [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] and Webots [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] the leaders
because these simulators feature physics simulations and rigid body dynamics,
as well as simulation of various sensors. We also consider V-REP [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] as another
simulator in this category. The rst challenges faced by the design of these
simulators is semantic world modelling and semantic data rendering to represent
complex information about the environment and the robots. The application of
MVC to the architecture of robotic simulators could be attributed to Tobler [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]
for separating the semantics of the simulation from the rendering. The model
encapsulates all there is to know and represent about the environment, objects
and the robots, while the view is in charge of its visualisation. Thus, the model
absorbs the earlier semantic graphs. While some rules of behaviour are placed in
the controller. The focus of simulators has followed a path similar to the
computer gaming industry, even being nicknamed eRobotics [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. It has enhanced the
way simulators have become holistic tools, aiming to assist in several elds
including education and research, improving realism of virtual environments and
semantic data interpretation. With respect to testing, this e ort has resulted
in Virtual Testbeds [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. Such \simulation-in-the-loop" testing [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] is mainly
performed through visualisation of robot performance in a mission [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ]. Since
running missions visually on the simulator takes a long time, testing can easily
consume a large amount of time during the development process. This lengthy
test potentially leads to several anti-patterns of continuous integration [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], most
notably not to categorise tests and not to automate tests. The robotics
community is favouring ROS with Gazebo for development of modules for localisation
and navigation under a simulation process that can be directly implemented on
the real robot without modi cations [
        <xref ref-type="bibr" rid="ref19 ref2 ref5">2, 5, 19</xref>
        ]. On the other hand, Wienke and
Wrede argue for the opposite. Rather than more complex integration and
testing, they favour performance testing on a per-component basis, because mission
testing in robotics is \much harder to set up and maintain due to the complex
interactions of robots with the real world and the non-standard interfaces" [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ].
      </p>
      <sec id="sec-2-1">
        <title>1 For example, Rails codi es SaaS application structure as MVC.</title>
        <p>3</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Continuous Integration</title>
      <p>Software quality can be more e ectively achieved with testing and validation
from the early stages by applying continuous integration. One fundamental claim
of MVC is that, when the pattern is used correctly, model classes are reusable
without modi cation. The second fundamental claim is that MVC can also make
the view reusable without modi cation. These two claims strongly suggest that
there is a signi cant decoupling between the model and the view.</p>
      <p>But such decoupling seems uncommon among robotics simulators. Gazebo is
part of the Player project that claims to be \probably the most widely used robot
control interface in the world."2 Although Gazebo decoupling into a client-server
architecture enables high-performance physics engines like Open Dynamics
Engine (ODE), Bullet, Simbody, and the Dynamic Animation and Robotics Toolkit
(DART), its tight integration makes it di cult to facilitate a GUI-stripping
option. A review of web posts on the -g option (or roslaunch gui:=false) when
using ROS, shows that this is far from being a mature option incorporated in
the fundamental design. Similarly, www.forum.coppeliarobotics.com (V-REP's
forum) has a discussion thread regarding the package's -h option for simulations
in headless mode (without a GUI). There is an admission by the developers
that the -h option \is not a true headless version of V-REP "3. The
discussion thread documents that the attempts to compile V-REP from source with
the makefile noGui noGl option, are also ine ective, despite several version
upgrades. This again illustrates that model/view separation and architectural style
were not initially in the core design plans of V-REP.</p>
      <p>The documentation of MORSE discusses a feature to operate headless. The
documentation concurs with our argument that such capability enables the
execution of the simulator on powerful servers, and integrating the simulator in a
Continuous Integration pipeline, which could run automated testing. However,
this option for MORSE has only being tested on Linux and still requires
compilation against OpenGL. The headless execution is supported by a trick when
displaying MORSE 's main window. The GUI is not prevented from appearing,
but the 3D application elements are rendered in memory instead of the screen
by using Xvfb4. This trick, once again, illustrates the tight coupling that exists
between the view and other components of this simulator.</p>
      <p>
        In his analysis of the preconditions necessary to migrate the evaluation and
testing of Cyber-Physical Systems to cloud environments, Berger [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ] makes the
point that \the term `simulation' is often used interchangeably with
`visualisation' while having a 3D environment in mind". He emphasises that headless
simulation environments must be able to execute in an unattached manner and
that simulation time be decoupled from real-time.
      </p>
      <p>
        Continuous integration and testing for the delivery of reliable software that
incorporates simulations has been around for quite some time [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ]; however, in
this paper we emphasise that the capability of simulators to toggle between GUI
      </p>
      <sec id="sec-3-1">
        <title>2 playerstage.sourceforge.net 3 Posting by coppella, site administrator, on 25th Match 2017. 4 www.openrobots.org/morse/doc/latest/headless.html.</title>
        <p>and headless mode (because of a strict separation) truly potentiates the software
development environment. Therefore, we have developed a simulator using Swift
and GTK that is multi-platform (runs on macOS and Linux). From its conception
and design, we incorporate the MVC architectural paradigm. Therefore, the
capability to execute simulations stripped from a GUI, what the community has
recently named headless simulations, are genuinely possible.</p>
        <p>
          Headless simulations are particularly relevant for continuous integration;
however, to the best of our knowledge only one instance [
          <xref ref-type="bibr" rid="ref23">23</xref>
          ] has achieved the
type of software quality management process proposed here. This earlier
deployment infrastructure [
          <xref ref-type="bibr" rid="ref23">23</xref>
          ] uses a headless simulator sporadically as part of some
unit test. The focus has been the launching of complete compilation in isolated
Docker images and sharing build load. Robotics Unit Testing [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ] has mainly
used [
          <xref ref-type="bibr" rid="ref2 ref5 ref6">2, 5, 6</xref>
          ] Jenkins for CI although other alternatives (such as GitLab CI,
Buildbot, Drone, and Concourse) are now available in the market. For our
implementation, we have chosen Jenkins because several reviews consider it one
of the best tools. It is regarded a both powerful and exible. The usual criticism
is that Jenkins has a steeper learning curve, but feature extensions through
plugins are believed to compensate for this.
4
        </p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Testing Behaviours</title>
      <p>
        Logic-labelled nite state machines (LLFSMs) enable compositions beyond
reactive behaviours. They can naturally incorporate deliberative components,
because transitions labelled by Boolean expressions can represent a query to a
task planning component [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ], or a reasoning agent [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ]. Recall that the origins
of behaviour-based control derive from the composition of timed nite-state
machines under the subsumption architecture in the development of the seminal
Toto [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ]. The continuous integration and testing proposed here evaluate
behaviours as modules for control in accordance with Behaviour-based control [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ]:
behaviours are more complex than actions. Therefore, we consider behaviours
those modules that constitute time-extended processes achieving or maintaining
a particular goal. We progress further from the skill (or tasks) testing proposed
earlier in Robotic Unit Testing [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. Our approach here covers both: what has
been described as Component Integration Testing and System-level Testing [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ].
      </p>
      <p>
        Models of behaviour consisting of the composition of some form of
statecharts are commonly used in the software engineering community as the best
representation from which to automatically generate test-cases. Such
representation is combined with graph-coverage criteria. The most popular of such criteria
is the Edge Coverage criteria [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ]. We found only one earlier proposal for the
automatic generation of tests in robotic behaviour [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. Such approach is based
on Communicating Extended Finite-State Machines and thus on the graphical
representation of behaviours and graph-coverage criteria [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. The Edge
Coverage Criteria generates a test suite so that each transition of each state-charts is
executed in a test. Testing is never a proof of correctness and even the Edge
Coverage Criteria is insu cient to comprehensively test behaviour. Our approach is
to extend such coverage criteria to testing of the goal that each behaviour is to
achieve. The only approach we have found in this direction is the reported
evaluation of the cob navigation package [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. We also focus on coverage of all the
combinations of parameter conditions that de ne valid inputs for a behaviour
(and even some invalid inputs) implementing a parameter provider [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ].
      </p>
      <p>We now use an example of a complex behaviour that is composed of
lowerlevel, internal behaviours. We chose an example from the RoboCup Standard
Platform League (spl.robocup.org). Our entire soccer player behaviour follows a
top-down design. The behaviour must, at the top level, maintain a few states,
named Initial, Set, Ready, Play, and Penalised. Su ce it to say that the top
behaviour; therefore, implements these states as sub-LLFSMs with corresponding
transitions reacting to the stimuli (e.g., UDP messages, a whistle, or even
buttons on the robot being pushed). We focus on the state of Ready, where a robot
must reach a legal position (usually its own half of the eld) before game
resumes. We present the validation of this complex behaviour (in our simulator
with the option that displays the GUI with a video: youtu.be/6bzyf5fhTAQ).
Thus, the state of Ready is again broken down into sub-behaviours, namely, to
nd a landmark (a goal), and identifying whether that landmark is in the
opponent's or the player's half. Finding a goal (if not visible) corresponds to scanning
using the head, and if that is not enough, to spin the whole robot around a bit
(on the spot). However, if the goal is visible, we need two sub-behaviours, one to
track the visible object with the head, and one to align the body to the object.</p>
      <p>
        The behaviours themselves are sophisticated LLFSMs, capable of handling
parameters and recursion [
        <xref ref-type="bibr" rid="ref29">29</xref>
        ]. Thus, the behaviour that tracks a landmark, such
as a goal-post, is capable of also tracking and following the ball (option triggered
by a parameter). Other parameters regulate which post to follow. Typically, the
landmark to follow is set according to the player number, so the behaviour brings
a player back to the correct position within the team of robots.
      </p>
      <p>
        We structure continuous integration tests by functional decomposition [
        <xref ref-type="bibr" rid="ref30">30</xref>
        ].
The elementary behaviours (LLFSMs) can be validated on their own: our
elementary SMStopWalking behaviour stops the walk of the legged robot (including
disengaging from the DCM cycle) and sets it in a posture from which it can kick
or perform some other recorded motion. All test of behaviours under continuous
integration requires a script with a corresponding setup section and a tear-down
section. Behaviour and mission tests are not validation tests of the simulator
itself. We emphasise here the distinction with the test-driven development (TDD)
approach we have taken to the development of our simulator. Figure 1 shows
an XCTest for unit testing under Xcode of the simulator. This test checks that
a spin command (of 10 degrees per second) for the robot does cause the robot
to change its orientation radians after 18s of simulation time. This example
illustrates that actions can be tested on the simulator and that these are
properties of correct behaviour. That is, actions can be validated with simpler unit
testing frameworks. But the testing of the LLFSM SMStopWalking, is
conceptually and practically more sophisticated. All tests ob behaviours also require the
infrastructure of continuous integration (Jenkins) and version control (git).
Bottom-up Testing of Behaviours The function composition of a behaviour
can be the result of a bottom-up approach, composing basic behaviours into
more elaborate ones. But it can also be the result of a top-down construction,
where an elaborate behaviour is structured in a divide-and-conquer approach.
For the testing of behaviours, we prioritise them in bottom-up order; that is we
test sub-behaviours because if any of them are faulty, the integrating behaviour
is probably also faulty.
      </p>
      <p>
        Therefore, we organise our tests by developing the Jenkins scripts that
validate behaviours that do not depend on other behaviours. Figure 2 shows the
functional decomposition of the behaviours that constitute the soccer player
(which sits among several applications installed in our Nao robot). Thus, the
automatic generation of behaviours is guided by the hierarchical structure of the
functional decomposition. The leaves of this hierarchy are tested independently
of other behaviours, but may require additional modules (object recognition in
images, Kalman ltering). We already illustrated one such leaf, the StopWalking
behaviour. But the testing also integrates all behaviours in each subtree.
Figure 2 shows a frame when testing the behaviour that focuses on a designated goal
(and can also, determined by a parameter, walk to it until a certain distance). So
this behaviour requires four test types: (1) nding the opponent's goal by
spinning alone, (2) nding the opponent's goal and approaching it, (3) nding our
goal by spinning alone, (4) nding our goal and approaching it. Naturally, these
tests should be repeated from di erent initial conditions de ned by the posture
(position and orientation) of the robot performing the behaviour. Therefore, we
de ne the coverage of the test as all possible combinations of the parameters of
the behaviour. In the example above, type of goal and type of focus results in
4 possible types of inputs to the behaviour. As mentioned earlier, we automate
the generation of parameters in discrete ranges (and testing all combinations of
\blocks" has been noted to generate many test-cases [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]). We also aim to
characterise the types of environment settings. But this is signi cantly more di cult to
MachineStarter
      </p>
      <p>GameController</p>
      <p>Play
Ready</p>
      <p>TEST Composite Behaviour
FocusFaceDesignatedGoal</p>
      <p>FocusOnGoal
SeekVisionObjectBySpinOrWalk</p>
      <p>HeadScanner
WalkOrSpin</p>
      <p>StopWalking
VisionObjectFollowerDefaultBall
VisionObjectTrackerDefaultBall
WalkOrSpin</p>
      <p>Turn180
Penalized</p>
      <p>Set
TeleOperation</p>
      <p>MachineStarter</p>
      <p>GameController</p>
      <p>Play
Ready
FocusFaceDesignatedGoal</p>
      <p>FocusOnGoal
SeekVisionObjectBySpinOrWalk</p>
      <p>HeadScanner
WalkOrSpin
TEST Elementary Behaviour</p>
      <p>StopWalking
VisionObjectFollowerDefaultBall
VisionObjectTrackerDefaultBall
WalkOrSpin</p>
      <p>Turn180
Penalized</p>
      <p>
        Set
TeleOperation
characterise and automate without providing the detailed semantics of the
behaviour's mission. Thus, at the moment, we con gure the di erent environments
is a manual process (similarly as the manual coding reported earlier [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]).
Lessons learnt The implementation of our proposal revealed that signi cant
gains are obtained with complex behaviours; although initially, the process of
developing tests seems laborious for just validating a simple behaviour. E.g.,
the scripts that perform the test can be subject to signi cant factorisation. The
setup and tear-down phases of each test have many elements in common across
tests enabling a generic setup script and a generic tear down script.
      </p>
      <p>
        Another aspect related to this development is that the test scripts (normally
developed in a UNIX-shell) are subject to testing and validation. Therefore,
we recommend that such scripts also o er the option to switch between
headless or with GUI for the simulator. The option to execute the script with GUI
enables visual validation of the test script before submitting it and setting it
up in the Continuous Integration engine. The same simulation should produce
the same result although it will typically execute di erently in headless mode
than with a GUI. The operating system hosting the simulator (in our case
MacOS) is multitasking the simulator with many other processes. For testing and
analysing component resource utilisation (such as CPU usage under varying
load), \a dedicated host free of other tasks to avoid resource sharing issues"
is recommended [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ] to ensure delity of the measurements. We argued in the
introduction that headless mode accelerates the testing overall, and therefore,
the di erence in execution between headless mode and GUI-mode is to be
expected. This di erence also puts the behaviours to the test. The behaviours are
running in a di erent process (with clfsm [
        <xref ref-type="bibr" rid="ref31">31</xref>
        ] this is typically a single thread),
and modules such as camera image processing, Kalman ltering or localisation
particle lters are their own processes. Therefore, the Continuous Integration
executions test variable concurrency conditions that result from the multi-tasking
environment that executes all processes (on the robot or on the CI server).
      </p>
      <p>The behaviours coded by executable models (LLFSMs) and
incorporated into composed behaviours as per Figure 2.</p>
      <p>Behaviour</p>
      <p>Description
MachineStarter Select an application using the robot's buttons.</p>
      <p>TeleOperation Application for remote control of the robot.</p>
      <p>GameController AmpenptlicraetfeiorenefborutRtoonboinCtueprf:arcees.pond to SPL league controller and
implePlay Actively play: chase ball, kick, maintain formation.</p>
      <p>Ready Place in formation and legal position to re-start the game.</p>
      <p>Set Await re-start the game trough wizzle focusing on ball.</p>
      <p>Penalized Await signals to resume game and re-start localization.</p>
      <p>FocusFace Find a goal, decide if its opponents, turn until nd our goal, walk to our
DesignatedGoal eld tracking our goal, mindful of your position, once in position, face
opponents.</p>
      <p>FocusOnGoal Find any goal as a landmark, and line head and body directly at it.</p>
      <p>Turn180 Spin on the spot using odometry.</p>
      <p>SeekVisionObject
bySpinorWalk</p>
      <p>Find a landmark (a goal or the ball as per parameter), and do so by only
spinning on the spot or optionally by exploratory walk.</p>
      <p>HeadScanner oRfotthaetecnamecekrale.ft to right and up and down expanding the eld of vision</p>
      <p>Perform a spin on the spot (parameter indicates clockwise vs
counterWalkOrSpin clockwise) or additionally perform exploratory walk, do not control head.</p>
      <p>Stop the walk of the legged robot, disengage from the DCM cycle and
StopWalking set it in a posture from which it can kick or perform some other recorded
motion.</p>
      <p>VisionObjectTracker Apply a Proportionate control as a feedback loop on top of a Kalman</p>
      <p>DefaultBall lter to track an object with the robot's' head.</p>
      <p>VisionObjectFollower Apply a feedback loop control to walk the robot and minimize the
dis</p>
      <p>DefaultBall tance to the object as well as align the body to the object.</p>
      <p>The setup phase involves the following, generic steps, even if the platform
used is ROS and a simulator like Gazebo. However, as mentioned earlier, we found
this platform extremely fragile in that the launch infrastructure repeatedly fails.
1.- Verify all environment variables are set.
2.- Con rm all behaviours are compiled and reside in corresponding launching
directory.
3.- Terminate all other executing instances of modules that are reachable via the
middleware and could interfere (image-processing, network messages, etc)
4.- Re-start the middleware
5.- Re-start modules required for the test.
6.- Use an interface to the headless simulator to set up the scene for the test.
We test each behaviour covering all combinations of types of the parameter to
the behaviour (for numerical values we discretise 5 on ranges. We ensure that a
positive value, a negative value and zero are validated even if a negative value is
an incorrect parameter for some cases; such as a distance, but it is usually
ne
for an orientation or bearing).</p>
      <p>The issue of setting up the scene demands an interface to a headless simulator.
A very important aspect of a headless simulator is that it must o er a mechanism
5</p>
      <p>
        The only other work on test-generation [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] refers to this as \blocking" or \dividing
into blocks" a range of values (for instance, for a robot's position, each of its x; y
coordinates is \blocked " into intervals of 0.5m).
to operate in headless mode the model and the widgets that its GUI would o er.
Simulators provide interactive options to place the robot or other objects in
particular postures and operate on sensors (for example, push a button on the
robot) or enable/disable other modules (change resolution on camera, provide
image-processing lters). Such headless interface access to the simulator's model
is the source of signi cant complexity if unavailable [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] and even if available,
middleware timing issues can complicate unit testing [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]. Therefore, in our
design for its headless operation, we provide two alternatives. We o er
commandline options that can set the scene and the characteristics of the robot(s) and its
environment. But we also provide access through our e cient shared-memory
middleware communication framework [
        <xref ref-type="bibr" rid="ref32">32</xref>
        ]. For those familiar with ROS and
Gazebo, our facilities are similar to the capacity to use rostopics from setup
or tear-down scripts to con gure a scene for Gazebo.
      </p>
      <p>These facilities are also essential to validate the behaviour. The middleware
channels enable to retrieve from the headless simulator the nal posture of a
robot or objects, elapsed mission time, and other criteria to evaluate the success
of the behaviour.</p>
      <p>
        The simulator itself as well as other processes that execute concurrently have
options to be launched with di erent levels of verbosity that can be logged.
In our setting, we have con gured our execution of an LLFSM arrangement
with clfsm [
        <xref ref-type="bibr" rid="ref31">31</xref>
        ] to record the trace of execution. We also can log the
operator of our Kalman lter as well as the tra c on our middleware infrastructure
(gusimplewhiteboard [
        <xref ref-type="bibr" rid="ref32">32</xref>
        ]). This ful ls three crucial requirements. First, it is
possible after a test-failure to play out, trace and analyse the behaviour and the
environment evaluation to understand what lead to the failure. Second, it is
possible to carry out \models at run time" in the sense expressed by Barbier [
        <xref ref-type="bibr" rid="ref33">33</xref>
        ].
Since LLFSMs are executable models of behaviour, we can visualise, and follow
close their execution even if the simulator is executing headless. Third, the logs
can be inspected to proactively be used for an analysis that determines the
failure or success of the mission (from whether the robot is stuck, or whether there
are no more actions because the mission is completed).
      </p>
      <p>
        We also consider important to mention that we can simultaneously launch
monitoring behaviours [
        <xref ref-type="bibr" rid="ref34">34</xref>
        ] and use behaviours that validate other behaviours [
        <xref ref-type="bibr" rid="ref35">35</xref>
        ].
5
      </p>
    </sec>
    <sec id="sec-5">
      <title>Conclusions</title>
      <p>Here we have demonstrated that a strict separation between the model and the
view (following the MVC paradigm) can be extended towards an abstract view
that allows a simulation to run with and without a graphical user interface.
Importantly, we enable the evaluation of complex behaviour faster than real-time,
enabling us to scale up the testing of sophisticated robotic teams and systems.
Using our case study of a team of robotic soccer players, we have demonstrated
that this can be automated using a continuous integration infrastructure. Thus,
validation of the behaviour of autonomous robots and other, complex distributed
real-time systems become part of a systematic, integrated software development
process, greatly enhancing system quality and productivity.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>P.</given-names>
            <surname>Duvall</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Matyas</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Glover</surname>
          </string-name>
          , Continuous Integration:
          <article-title>Improving Software Quality</article-title>
          and
          <string-name>
            <given-names>Reducing</given-names>
            <surname>Risk</surname>
          </string-name>
          . Addison-Wesley
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>A.</given-names>
            <surname>Bihlmaier</surname>
          </string-name>
          and H. Worn, \
          <article-title>Robot unit testing,"</article-title>
          <string-name>
            <surname>Simulation</surname>
          </string-name>
          , Modeling, and Programming for Autonomous Robots,
          <year>Springer 2014</year>
          ,
          <volume>255</volume>
          {
          <fpage>266</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>N.</given-names>
            <surname>Hempe</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Waspe</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Rossmann</surname>
          </string-name>
          , \
          <article-title>Combining complex simulations with realistic virtual testing environments { the eRobotics-approach for semantics-based multi-domain VR simulation systems,"</article-title>
          <string-name>
            <surname>Simulation</surname>
          </string-name>
          , Modeling, and Programming for Autonomous Robots,
          <year>Springer 2014</year>
          ,
          <volume>110</volume>
          {
          <fpage>121</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>M. R.</given-names>
            <surname>Zofka</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Kuhnt</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Kohlhaas</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J. M.</given-names>
            <surname>Zo</surname>
          </string-name>
          <article-title>llner, \Simulation framework for the development of autonomous small scale vehicles,"</article-title>
          <source>IEEE Int. Conf. Simulation, Modeling, and Programming for Autonomous Robots (SIMPAR)</source>
          ,
          <year>2016</year>
          ,
          <volume>318</volume>
          {
          <fpage>324</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>F.</given-names>
            <surname>Weisshardt</surname>
          </string-name>
          , J. Kett, d. Freitas Oliveira T. A.,
          <string-name>
            <given-names>A.</given-names>
            <surname>Bubeck</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Verl</surname>
          </string-name>
          , \
          <article-title>Enhancing software portability with a testing and evaluation platform,"</article-title>
          <source>in ISR/Robotik; 41st Int. Symp. on Robotics</source>
          ,
          <year>2014</year>
          ,
          <volume>1</volume>
          {
          <fpage>6</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>M.</given-names>
            <surname>Abdelgawad</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>McLeod</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Andrews</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Xiao</surname>
          </string-name>
          , \
          <article-title>Model-based testing of real-time adaptive motion planning (RAMP),"</article-title>
          <source>5th IEEE Int. Conf. on Simulation</source>
          , Modeling, and Programming for Autonomous Robots, SIMPAR.
          <year>2016</year>
          ,
          <volume>162</volume>
          {
          <fpage>169</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>S.</given-names>
            <surname>Luke</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Cio -Revilla</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Panait</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Sullivan</surname>
          </string-name>
          , and
          <string-name>
            <given-names>G.</given-names>
            <surname>Catalin-Balan</surname>
          </string-name>
          ,
          <article-title>\MASON: A multiagent simulation environment," Simulation</article-title>
          , v.
          <volume>81</volume>
          , n.
          <volume>7</volume>
          ,
          <issue>517</issue>
          {
          <fpage>527</fpage>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>T.</given-names>
            <surname>Mikkonen</surname>
          </string-name>
          , R. Pitkanen, and M. Pussinen, \
          <article-title>On the role of architectural style in model driven development,"</article-title>
          <source>Software Architecture</source>
          ,
          <source>Berlin: Springer</source>
          <year>2004</year>
          ,
          <volume>74</volume>
          {
          <fpage>87</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>H.</given-names>
            <surname>Prajapati</surname>
          </string-name>
          and
          <string-name>
            <given-names>V.</given-names>
            <surname>Dabhi</surname>
          </string-name>
          , \
          <article-title>High quality web-application development on java EE platform</article-title>
          .
          <source>" IEEE Comp. Soc.</source>
          ,
          <volume>04</volume>
          <year>2009</year>
          ,
          <volume>1664</volume>
          {
          <fpage>1669</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>P. L. Thung</surname>
            ,
            <given-names>C. J.</given-names>
          </string-name>
          <string-name>
            <surname>Ng</surname>
            ,
            <given-names>S. J.</given-names>
          </string-name>
          <string-name>
            <surname>Thung</surname>
            , and
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Sulaiman</surname>
          </string-name>
          , \
          <article-title>Improving a web application using design patterns: A case study,"</article-title>
          <source>Int. Symp. IT</source>
          , v.
          <volume>1</volume>
          ,
          <year>2010</year>
          ,
          <volume>1</volume>
          {
          <fpage>6</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <given-names>P.</given-names>
            <surname>Worrall</surname>
          </string-name>
          and
          <string-name>
            <given-names>T.</given-names>
            <surname>Chaussalet</surname>
          </string-name>
          , \
          <article-title>Development of a web-based system using the model view controller paradigm to facilitate regional long-term care planning," 2011 24th Int</article-title>
          .
          <source>Symp. on Computer-Based Medical Systems (CBMS)</source>
          ,
          <year>2011</year>
          ,
          <volume>1</volume>
          {
          <fpage>7</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <given-names>S.</given-names>
            <surname>Carpin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Lewis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Balakirsky</surname>
          </string-name>
          , and
          <string-name>
            <given-names>C.</given-names>
            <surname>Scrapper</surname>
          </string-name>
          , \
          <article-title>USARSim: a robot simulator for research and education,"</article-title>
          <source>IEEE Int. Conf. on Robotics and Automation</source>
          ,
          <year>2007</year>
          ,
          <volume>1400</volume>
          {
          <fpage>1405</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <given-names>N. P.</given-names>
            <surname>Koenig</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Howard</surname>
          </string-name>
          , \
          <article-title>Design and use paradigms for Gazebo, an opensource multi-robot simulator</article-title>
          .
          <source>" IROS Int. Conf. Intelligent Robots and Systems</source>
          , Sendai,
          <year>2004</year>
          ,
          <volume>2149</volume>
          {
          <fpage>2154</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <given-names>A.</given-names>
            <surname>Jain</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Guineau</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Lim</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Lincoln</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Pomerantz</surname>
          </string-name>
          , G. Sohl, and R. Steele, \ROAMS:
          <article-title>Planetary surface rover simulation environment,"</article-title>
          <source>Int. Symp. Arti cial Intelligence</source>
          ,
          <source>Robotics and Automation in Space (i-SAIRAS)</source>
          ,
          <year>2003</year>
          1923.
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <given-names>O.</given-names>
            <surname>Michel</surname>
          </string-name>
          , \Webots:
          <article-title>Professional mobile robot simulation,"</article-title>
          <source>Journal of Advanced Robotics Systems</source>
          , v.
          <volume>1</volume>
          , n.
          <volume>1</volume>
          ,
          <issue>39</issue>
          {
          <fpage>42</fpage>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16. E. Rohmer, el al. \
          <article-title>V-REP: a versatile and scalable robot simulation framework,"</article-title>
          <source>IROS Int. Conf. on Intelligent Robots and Systems</source>
          ,
          <year>2013</year>
          ,
          <volume>1321</volume>
          {
          <fpage>1326</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <given-names>R. F.</given-names>
            <surname>Tobler</surname>
          </string-name>
          , \
          <article-title>Separating semantics from rendering: a scene graph based architecture for graphics applications," The Visual Computer</article-title>
          , v.
          <volume>27</volume>
          , n.
          <volume>6</volume>
          ,
          <issue>687</issue>
          {
          <fpage>695</fpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18. P. Jayasekara, G. Ishigami, and T. Kubota, \
          <article-title>Testing and validation of autonomous navigation for a planetary exploration rover using open source simulation tools,"</article-title>
          <source>11th Intl. Symp. on Arti cial Intelligence</source>
          , Robotics and Automation in Space,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <given-names>K.</given-names>
            <surname>Takaya</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Asai</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Kroumov</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Smarandache</surname>
          </string-name>
          , \
          <article-title>Simulation environment for mobile robots testing using ROS and Gazebo,"</article-title>
          <source>20th Int. Conf. on System Theory</source>
          ,
          <article-title>Control and Computing (ICSTCC)</article-title>
          . IEEE,
          <year>2016</year>
          ,
          <volume>96</volume>
          {
          <fpage>101</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <given-names>J.</given-names>
            <surname>Wienke</surname>
          </string-name>
          and
          <string-name>
            <given-names>S.</given-names>
            <surname>Wrede</surname>
          </string-name>
          , \
          <article-title>Continuous regression testing for component resource utilization," 5</article-title>
          .
          <string-name>
            <given-names>IEEE</given-names>
            <surname>Int. Conf</surname>
          </string-name>
          . Simulation, Modeling, and Programming for Autonomous Robots,
          <string-name>
            <surname>SIMPAR</surname>
          </string-name>
          ,
          <year>2016</year>
          ,
          <volume>273</volume>
          {
          <fpage>280</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21. C. Berger, \
          <article-title>Cloud-based testing for context-aware cyber-physical systems," in Software Testing in the Cloud: Perspectives on an Emerging Discipline</article-title>
          ,
          <source>IGI Global</source>
          ,
          <year>2012</year>
          ,
          <volume>68</volume>
          {
          <fpage>95</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>M. A. Salichs</surname>
            ,
            <given-names>E. A.</given-names>
          </string-name>
          <string-name>
            <surname>Puente</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          <string-name>
            <surname>Moreno</surname>
            , and
            <given-names>J. R.</given-names>
          </string-name>
          <string-name>
            <surname>Pimentel</surname>
          </string-name>
          , \
          <article-title>A software development environment for autonomous mobile robots," Recent Trends in Mobile Robots</article-title>
          . World Scienti c
          <year>1994</year>
          ,
          <volume>211</volume>
          {
          <fpage>253</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23. C. Berger, \
          <article-title>An open continuous deployment infrastructure for a self-driving vehicle ecosystem,"</article-title>
          <source>Open Source Systems: Integrating Communities</source>
          ,
          <year>Springer 2016</year>
          ,
          <volume>177</volume>
          {
          <fpage>183</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24. V.
          <article-title>Estivill-Castro and</article-title>
          J.
          <string-name>
            <surname>Ferrer-Mesters</surname>
          </string-name>
          , \
          <article-title>Path- nding in dynamic environments with PDDL-planners,"</article-title>
          <source>16th Int. Conf. Advanced Robotics (ICAR)</source>
          ,
          <year>Montevideo</year>
          ,
          <year>2013</year>
          ,
          <volume>1</volume>
          {
          <fpage>7</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25. V.
          <string-name>
            <surname>Estivill-Castro</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Hexel</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <surname>A.</surname>
          </string-name>
          <article-title>Ram rez Regalado, \Architecture for logic programing with arrangements of nite-state machines,"</article-title>
          <source>First Workshop on Declarative Cyber-Physical Systems (DCPS)</source>
          at Cyber-Physical
          <string-name>
            <surname>Systems</surname>
            <given-names>IEEE</given-names>
          </string-name>
          ,
          <year>2016</year>
          ,
          <volume>1</volume>
          {
          <fpage>8</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          26. M. Mataric, \
          <article-title>Integration of representation into goal-driven behavior-based robots," Robotics and Automation</article-title>
          , IEEE Transactions on, v.
          <volume>8</volume>
          , no.
          <issue>3</issue>
          ,
          <issue>304</issue>
          {312, jun
          <year>1992</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          27. R. C. Arkin,
          <string-name>
            <surname>Behavior-Based Robotics</surname>
          </string-name>
          . Cambridge: MIT Press,
          <year>1998</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          28.
          <string-name>
            <surname>A. C. R. da Silva</surname>
            ,
            <given-names>A</given-names>
          </string-name>
          . R. ana Paiva and
          <string-name>
            <surname>da Silva V. E. R.</surname>
          </string-name>
          , \
          <article-title>Towards a test speci - cation language for information systems: Focus on data entity and state machine tests,"</article-title>
          <source>6th Int. Conf. Model-Driven Engineering and Software Development, Portugal: SCITEPRESS</source>
          <year>2018</year>
          ,
          <volume>213</volume>
          {
          <fpage>224</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          29. V.
          <string-name>
            <surname>Estivill-Castro</surname>
            and
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Hexel</surname>
          </string-name>
          , \
          <article-title>Veri able parameterised behaviour models for robotic and embedded systems,"</article-title>
          <source>6th Int. Conf. on Model-Driven Engineering and Software Development, Portugal: SCITEPRESS</source>
          <year>2018</year>
          ,
          <volume>364</volume>
          {
          <fpage>371</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          30.
          <string-name>
            <surname>K. K. Aggarwal</surname>
            and
            <given-names>Y.</given-names>
          </string-name>
          <string-name>
            <surname>Simgh</surname>
          </string-name>
          , Software Engineering New Age,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          31. V.
          <string-name>
            <surname>Estivill-Castro</surname>
            and
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Hexel</surname>
          </string-name>
          , \
          <article-title>Arrangements of nite-state machines semantics, simulation, and model checking,"</article-title>
          <source>Int. Conf. on Model-Driven Engineering and Software Development MODELSWARD, Barcelona: SCITEPRESS</source>
          <year>2013</year>
          ,
          <volume>182</volume>
          {
          <fpage>189</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          32. V.
          <string-name>
            <surname>Estivill-Castro</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Hexel</surname>
            , and
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Lusty</surname>
          </string-name>
          , \
          <article-title>High performance relaying of C++11 objects across processes and logic-labeled nite-state machines," 4th Simulation, Modeling, and Programming for Autonomous Robots Int</article-title>
          . Conf.,
          <string-name>
            <surname>SIMPAR</surname>
          </string-name>
          , LNCS 8810. Bergamo: Springer,
          <year>2014</year>
          ,
          <volume>182</volume>
          {
          <fpage>194</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          33.
          <string-name>
            <given-names>F.</given-names>
            <surname>Barbier</surname>
          </string-name>
          , \
          <article-title>Supporting the UML state machine diagrams at runtime," in Model Driven Architecture { Foundations and Applications</article-title>
          , LNCS 5095. Berlin: Springer 2008,
          <volume>338</volume>
          {
          <fpage>348</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          34. V.
          <string-name>
            <surname>Estivill-Castro</surname>
            and
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Hexel</surname>
          </string-name>
          , \
          <article-title>Run-time veri cation of regularly expressed behavioral properties in robotic systems with logic-labeled nite state machines,"</article-title>
          <source>5th IEEE Int. Conf. Simulation</source>
          , Modeling, and Programming for Autonomous Robots SIMPAR,
          <fpage>281</fpage>
          -
          <lpage>288</lpage>
          2016.
        </mixed-citation>
      </ref>
      <ref id="ref35">
        <mixed-citation>
          35. V.
          <string-name>
            <surname>Estivill-Castro</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Hexel</surname>
            , and
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Stover</surname>
          </string-name>
          , \Modeling, validation, and
          <article-title>continuous integration of software behaviours for embedded systems," in 9th IEEE European Modelling Symp</article-title>
          ., Madrid,
          <year>2015</year>
          ,
          <volume>89</volume>
          {
          <fpage>95</fpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>