<!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>Automatic testing of OCE, a human-centered reinforcement learning system for automated software composition</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Maxence Demougeot</string-name>
          <email>Maxence.Demougeot@irit.fr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Kevin Delcourt</string-name>
          <email>Kevin.Delcourt@irit.fr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Jean-Paul Arcangeli</string-name>
          <email>Jean-Paul.Arcangeli@irit.fr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Sylvie Trouilhet</string-name>
          <email>Sylvie.Trouilhet@irit.fr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Françoise Adreit</string-name>
          <email>Francoise.Adreit@irit.fr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>1st International Workshop on Intelligent Software Engineering</institution>
          ,
          <addr-line>APSEC 2022, 6 December</addr-line>
          ,
          <institution>Gyeongsang National University (Hybrid)</institution>
          ,
          <country country="KR">South Korea $</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Institut de Recherche en Informatique de Toulouse</institution>
          ,
          <addr-line>Université de Toulouse, UT3, UT2J</addr-line>
          ,
          <country country="FR">France</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>More and more applications rely on Machine Learning (ML) techniques, e.g., to automate software engineering. Like other applications, they need to be tested and validated. Testing ML-based software difers from testing software which do not rely on AI and ML: non-determinism, lack of oracle, high dependence on training and evaluation data are hard points. The problem is even more complicated when humans are involved in the process. In this paper, we analyze the problem of evaluating OCE, a human-centered intelligent system based on reinforcement learning that automatically builds user-tailored software. We present a test environment composed of two tools which are based on the notions of “scenario” and “ideal assembly”: OCE Scenario Maker to edit scenarios and OCE Scenario Runner to automate and repeat their execution.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;Test automation</kwd>
        <kwd>testing tools</kwd>
        <kwd>automated software composition</kwd>
        <kwd>reinforcement learning</kwd>
        <kwd>human in-the-loop</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>1. Introduction
mechanism. It describes the principles of our solution
and the tooling we have developed.</p>
      <p>More and more applications rely on Machine Learning Sec. 2 summarizes the principles of Opportunistic
Soft(ML) techniques, namely to automate software engineer- ware Composition and our needs for testing. Sec. 3
ing. As part of our project on Opportunistic Software analyzes the main issues of testing ML-based systems
Composition, we are designing an intelligent solution in particular with humans “in the loop”, then focuses
based on reinforcement learning (RL) to automatically on OCE. Sec. 4 briefly presents several tools that allow
build applications in ambient contexts, and we are de- testers to carry out experiments on ML-based solutions,
veloping several working prototypes of an Opportunistic then describes the principles of our solution, the
protoComposition Engine (OCE). With OCE, the user is put in type tools we have developed and integrated with OCE,
the loop and provides feedback on the built applications. and a demonstration. Sec. 5 concludes and discusses</p>
      <p>For ML-based solutions, as with any software, develop- some open issues.
ment teams need to address validation issues. Testing is a
potential solution. However, testing human-centered
MLbased systems is quite diferent from testing traditional 2. Background
software, i.e., those which do not rely on ML techniques.</p>
      <p>For our part, we need to assess the prototype versions 2.1. Opportunistic Software Composition
of OCE in diferent use cases. Beyond the common
problems posed by the evaluation of ML-based systems, our
issues lie in the dynamics of the learning environment,
including the human user. To answer, we have developed
a tooling that supports the definition of test scenarios
with simulated users, their execution and the evaluation
of the results, which use is illustrated in a video1.</p>
      <p>
        The purpose of this paper is to present our work on
testing and evaluating OCE, more specifically its learning
Today’s users live in ambient environments invaded by
connected objects. These environments are open,
complex and dynamic: at any time, objects may appear
and others may disappear. Besides, the user needs may
change depending on the situation. One of the issues
is how to manage the variability of such unpredictable
environments, and propose relevant services to the user
[
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
      </p>
      <p>
        To tackle this issue, Opportunistic Software
Composition is a human-centered approach based on
reinforcement learning (RL) [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] that aims at automatically build
applications that are tailored to the user and the
ambient context. It plans on-the-fly assemblies of software
components that are available in the ambient
environment. Like objects, software components [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] expose the
services they provide through an interface; in addition,
they expose at the same level the services they require
In a general way, the testing activity consists in defining
test cases, running them, and asserting the correctness
of the outputs against a specification. Usually, tests are
used to check the behavior of a system by finding bugs
or highlighting anomalies but they can not prove their
absence [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ].
      </p>
    </sec>
    <sec id="sec-2">
      <title>3.1. Issues in testing ML-based systems</title>
      <p>from other components. This makes software
components easier to assemble, replace and reuse. Technically,
they can be assembled by connecting their services, the
assembly implementing an application.</p>
      <p>The goal of opportunistic software composition is to
provide the user with the right application at the right
time, but without them having expressed needs and
preferences due to the dynamics and unpredictability of the
environment, which make their specification dificult.
User-adapted applications are designed in bottom-up way
and emerge from the environment, relying on
automatically on-the-fly learnt knowledge about the user’s needs
and preferences.</p>
      <p>To realize opportunistic software composition, an
Opportunistic Composition Engine (OCE) has been designed:
every service is locally managed by an “agent” that learns
by reinforcement the connection preferences according
to the context and decides on its own connections.
Building an application consists in three steps, called an OCE
cycle, and involves the user:</p>
      <sec id="sec-2-1">
        <title>The growing interest in AI and ML is driving develop</title>
        <p>ment teams to focus on testing and evaluation issues.</p>
        <p>However, testing ML-based systems is quite diferent
from testing traditional software, i.e., those that do not
rely on AI and ML.</p>
        <p>A first point is that learning is assessed indirectly.</p>
        <p>
          When testers evaluate a ML-based solution, they seek to
evaluate the correctness of the learning mechanism. But
1. OCE probes the ambient environment to detect learning can hardly be isolated from the rest of the
applithe available components. cation, which is tested as a whole including the decision
2. According to their learnt knowledge on the user’s process. Therefore, the observed outputs are those of the
preferences, the agents decide on their connec- whole application, not those of the only learning process.
tions to others to collaboratively build up an Secondly, testers struggle to deal with randomness and
assembly plan that defines an application and non-determinism [
          <xref ref-type="bibr" rid="ref8 ref9">8, 9</xref>
          ], whether it comes from learning
present it to the user. or decision. When an anomaly is detected, does it come
from the non-deterministic nature of ML-based systems
3. Using the Interactive Control Environment (ICE),
        </p>
        <p>
          or is there a design or implementation error [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ]?
Therethe user accepts, modifies or rejects the
applica
        </p>
        <p>fore, to get significant results, experiments must be
retion.</p>
        <p>peated a certain number of times to reduce the efects of</p>
        <p>
          User’s actions in the last step are used as feedback non-determinism.
for OCE. From this feedback, a reinforcement signal is Moreover, in many cases, testers can not predict the
computed from which OCE’s agents learn by reinforce- produced outputs for specified inputs: there are not
alment the user’s needs and preferences. As the cycles are ways oracles [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ] or it is dificult to design ones [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ]. To
repeated, OCE gains knowledge that it can then use to assess the accuracy of decisions, a way is to ask humans
create more relevant applications. to perform the same tasks as the system with the same
        </p>
        <p>
          Readers who wish to know more about OCE and ICE input data and observe the diferences in the outputs [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ].
can refer to [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ] and [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ], and to [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ] for a demo. Finally, the results are highly dependent on the
training data [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ]. Indeed, the choice of relevant data and test
2.2. Need for testing OCE cases is critical for the verification of the properties of
ML-based systems. However, training data spaces are
A working prototype of OCE has been developed. How- often infinite and it is dificult but necessary to select the
ever, it must be tested and evaluated, with a focus on the most relevant portions to train and evaluate a system
learning mechanism, in order to check that OCE builds [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ].
assembly plans that fit the user needs and preferences. The problem is even more complicated when using
There are also alternative versions of OCE whose behav- reinforcement learning because of the interactions
beior must be compared. tween the learning agent and the environment [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ] and
        </p>
        <p>Moreover, OCE is parameterizable, and the parameter the incremental building of knowledge. In this case, the
values have to be adjusted. Among the parameters, some system learns over time and makes decisions depending
are ML-specific (for instance the amount of exploration on both its current knowledge and the state of the
envivs. exploitation), others are user-specific and must be ronment. Thus, the dependence on the environment and
tailored to the individual: for instance, the coeficient its variability over time can lead to outdated or obsolete
that defines the user’s preference for components or ap- learnt knowledge.
plications not yet encountered.</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>3.2. Issues in testing interactive ML-based systems</title>
      <p>
        Human-centered ML-based systems are interactive
systems. In the field of interactive systems, it is common
to carry out test campaigns involving real or potential
users to evaluate interaction criteria, such as usability
[
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. Such campaigns may require a large number of
participants to produce significant results and be costly
in time and money.
      </p>
      <p>
        To alleviate these costs, designers often model
synthetic users, e.g., personas, and simulate their actions.
This raises some challenges:
• The potential introduction of biases [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]: how to
insure the quality of this modelization?
• The need for specific design methods and tools.
      </p>
      <sec id="sec-3-1">
        <title>In this paper, we focus on this second point and propose tools to take advantage of synthetic users and apply human-centered methodologies to ML-based systems [16].</title>
        <p>
          In the case of interactive ML-based systems [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ],
humans are the source of learning data. The main issue is
the complexity and the diversity of user profiles.
Knowledge built from the interactions between the user and
the learning system is personalized and may suit one
user but not another. Moreover, the human users may be
imprecise or change their opinions over time. It is thus
dificult to assert the behavior of the learning system.
        </p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>3.3. Issues in testing OCE learning process</title>
    </sec>
    <sec id="sec-5">
      <title>4.1. Related work</title>
      <sec id="sec-5-1">
        <title>In the literature, there are several tools that allow testers</title>
        <p>
          to carry out experiments on ML-based solutions. We can
cite the following:
• Arcade Learning Environment (ALE) [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ] seeks to
test the genericity of a learning algorithm, which
must be able to play dozens of Atari 2600 games.
        </p>
        <p>
          The goal of a learning agent is to maximize the
scores obtained on each game. ALE thus proposes
evaluation metrics to compare and understand
the performances of learning agents on the
different games.
• OpenAI GYM [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ] is a Python library that
addresses the lack of normalization of
reinforcement learning environments by ofering a set of
standard ones. It allows developers to test and
compare their learning agents in these
environments to benchmarks.
• The DotRL platform [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ] is a framework that
enables rapid development and test of reinforcement
learning solutions. To carry out an experiment,
testers select environments and learning agents
among those proposed by the platform, or
develop their own, and compare the performances.
• Cogment [
          <xref ref-type="bibr" rid="ref21">21</xref>
          ] facilitates the definition of complex
human-centered machine learning architectures,
with human users and/or automated agents
interacting with each other with the aim of training
humans and AI together and improve ML results.
        </p>
        <p>For each experiment, Cogment generates logs to
allow the tester to analyze the results.</p>
        <p>OCE runs a distributed human-centered RL process
where the human user is an integral part of the learning
environment: as they accept, modify, or reject an assem- These tools ofer a wide range of features to perform
bly proposed by OCE, they provide feedback that OCE experiments. The Cogment framework is fairly new but
transforms into a reinforcement signal. This way, learnt seems to be the most attractive since it focuses on the
knowledge is personalized and difers from one user to an- presence of humans in the learning process and fits well
other. It also depends on the dynamics, whether it comes the human-centered reinforcement learning paradigm.
from the ambient environment or from the changing However, generally speaking, the gap between what
user’s needs and preferences depending on the current these tools provide and the needs for testing OCE seems
situation and time. OCE decisions are then dependent on quite important and expensive to fill. Indeed, in order
the knowledge gained. to test OCE using these tools, it would be necessary to</p>
        <p>Thus, the evaluation of the OCE learning process faces make the predefined environments and agents
interoperthe issues of both ML-based and interactive systems: in able with those of OCE in particular to use the available
particular, non-determinism and the challenge of assess- benchmarks. Among the problems, some seem dificult
ing the quality of OCE’s decisions on the one hand, de- or even impossible to address such as taking into account
pendence on the user, their profile and the variability of the distribution nature of OCE learning. However, some
their needs and preferences on the other hand. In ad- concepts could be useful for the evaluation of OCE, e.g.,
dition, the multiple forms of the ambient environment the ALE evaluation metrics.
must be taken into account with the variety and number
of components, as well as the dynamics.</p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>4.2. A tooling for OCE testing</title>
      <sec id="sec-6-1">
        <title>Currently, we are exploring the state of the art in more depth. At the same time, we have undertaken to develop</title>
      </sec>
      <sec id="sec-6-2">
        <title>To describe a test scenario, the tester has to indicate, for</title>
        <p>each training and assessment cycle, both which
components populate the environment and the ideal assembly.</p>
        <p>For that, OCE Scenario Maker is a tool composed of:
• A library of dummy software components.
• A component creator that allows the tester to
define dummy components by indicating their
name and associated services, and add them to
the library.
• A cycle creator that allows the tester to specify a
cycle by choosing the participating components
and expressing the ideal assembly (i.e., giving a
list of connections between components).</p>
        <p>In practice, OCE Scenario Maker is a single-page Web
application. A GUI (see Sec. 4.7) assists the tester to
graphically manipulate the scenario elements
(components and connections). Once defined, the test scenario
description is saved in a JSON file.
our own tooling to automate the testing of OCE learning
process, which consists of a pair of tools:
• OCE Scenario Maker, which supports the
definition of tests,
• OCE Scenario Runner, which allows to automate
and repeat their execution.</p>
      </sec>
      <sec id="sec-6-3">
        <title>These are based on (i) a formalism to describe test sce</title>
        <p>narios with the ambient environment and the user’s
preferences and their possible variations over time, (ii) a way
to repeat tests any number of times, and (iii) scores that
measure the quality of OCE decisions.</p>
        <p>A benefit of these tools is that they allow to carry out
test campaigns more easily and at a lower cost, without
having to develop concrete components and involve real
users.</p>
      </sec>
    </sec>
    <sec id="sec-7">
      <title>4.3. Principles</title>
    </sec>
    <sec id="sec-8">
      <title>4.5. OCE Scenario Runner</title>
      <sec id="sec-8-1">
        <title>We define a scenario as a series of OCE cycles but without</title>
        <p>the results that could be provided by OCE: each cycle
is described both by a set of software components of
the ambient environment and the user’s reaction to the
proposal that OCE would make in this context.</p>
        <p>To define the user’s reactions without knowing the
results provided by OCE, we introduce the concept of
ideal assembly: an ideal assembly is the one that the user
would prefer in a given context. Ideal assemblies model
the user preferences in the diferent situations.</p>
        <p>A scenario includes training cycles followed by
assessment cycles. In a training cycle, the ideal assembly
allows OCE to learn the user’s need and preferences in
the stated context. In an assessment cycle, the ideal
assembly is used to verify that OCE has correctly learnt:
to do so, a distance between this ideal assembly and the
proposition of OCE is computed.</p>
        <p>Defining a test consists thus in specifying a sequence
of cycles with a variety of components, a more or less
important number of them, and a more or less dynamic
ambient environment. By specifying the ideal
assembly for a cycle, the tester behaves as an oracle. Besides,
specifying ideal assemblies allows to simulate diferent
user profiles: users with more or less stable preferences,
more or less open to new applications. . . Note that the
selection of adequate training and assessment cycles (i.e.,
the design of test cases) is another challenge that we do
not address in this paper.</p>
        <p>In the following sections, we first present OCE
Scenario Maker and OCE Scenario Runner. Then, we de- 4.6. Software architecture
scribe the architecture of the testing environment which
associates OCE Scenario Maker, OCE Scenario Runner,
and OCE (the engine) to run and test the latter.</p>
      </sec>
      <sec id="sec-8-2">
        <title>Once the test scenario is defined with OCE Scenario</title>
        <p>Maker, it has to be executed to carry out automatic
testing. OCE Scenario Runner is a Java desktop application,
which handles these experiments and their repetition
as many times as required to reduce the impact of
nondeterminism.</p>
        <p>To start an experiment, several parameters must be
set such as the test scenario JSON file produced by OCE
Scenario Maker, OCE parameters, the version of OCE
and the number of repetitions of the experiment. For
each cycle, OCE Scenario Runner compares the assembly
proposed by OCE and the ideal assembly and calculates
a Jaccard Similarity index between the set of the
connections proposed by OCE and the one of the ideal assembly;
then, it computes an average score over all the cycles.</p>
        <p>This provides a measure of the distance between OCE’s
propositions and the ideal assemblies, and so indicates
whether the OCE decisions make relevant applications
emerge according to the learnt user’s preferences. This
measurement only makes sense for the assessment cycles
as the previous cycles are used to create knowledge. It
therefore makes the tester able to analyze and understand
how OCE behaves.</p>
        <p>Figure 1 shows how OCE Scenario Maker and OCE
Scenario Runner fit in OCE runtime environment to create
the testing environment. In the production environment,
OCE interacts with the ambient environment by probing
available components. Then, according to its knowledge
about the user’s preferences and needs, it plans an as- The video shows how the tester defines the
componentsembly which is displayed on ICE. Last, through ICE, based ambient environment and the ideal assemblies
cythe user gives a feedback to OCE that is converted into cle by cycle, then runs the resulting multi-cycle scenario
reinforcement signals for OCE learning agents. and gets similarity scores to check the relevance of OCE’s</p>
        <p>OCE’s modular architecture allows to seamlessly re- decisions.
place ICE and the ambient environment with OCE
Scenario Runner, thus allowing simulation and automation
of the interactions with the user and the environment. 5. Conclusion
When running a scenario, at each cycle, OCE retrieves
the set of the available components provided by OCE
Scenario Runner, then proposes an assembly. Finally,
OCE Scenario Runner returns the ideal assembly that is
used by OCE to create feedback for its agents. Therefore,
OCE Scenario Runner plays both the role of the ambient
environment and the role of the user, in accordance with
the scenario description produced using OCE Scenario
Maker.</p>
      </sec>
    </sec>
    <sec id="sec-9">
      <title>4.7. Testing OCE’s behavior: a demonstration</title>
      <p>The following video2 shows the case of a tester who wants
to check OCE’s behavior in a simple use case where new
components appear dynamically and the user preferences
are stable. In this test scenario, the user is virtually
surrounded by devices like switches and lamps, a switch can
be connected to a single lamp, and OCE builds
applications from them as they appear or disappear. Initially,
three lamps (but only two of them work) and a switch are
available in the user’s surrounding environment, and the
user prefers to use the first lamp. After a while, the third
lamp works again and the user prefers to use it. An other
component appears but do not afect the user’s needs.</p>
      <sec id="sec-9-1">
        <title>2https://www.irit.fr/OppoCompo/automatic-testing/</title>
      </sec>
      <sec id="sec-9-2">
        <title>In this paper, we have addressed the problem of testing</title>
        <p>an intelligent solution for automated software
composition. We have presented both a reflection about testing
human-centered ML-based systems and a pair of tools
that we have developed to automate the testing of our
Opportunistic Composition Engine OCE. When defining
scenarios using OCE Scenario Maker, the tester behaves
as an oracle by designing diferent situations to simulate
the environment dynamics and the user behavior. Then,
experiments can be executed and repeated using OCE
Scenario Runner. Repetition smoothes out the results
altered by the presence of randomness in learning and
decision.</p>
        <p>Of course, questions arise concerning the design of the
test sets. For now, we only propose tools that facilitate
specification, execution, repetition and analyze of tests,
but not a methodology: how to design test sets and how
to assert their relevance? As it is highly dependent on
the users, one way would be to involve them more in
the design, e.g., build scenarios based on observations
of their behavior or ask them about their preferences in
diferent situations. Another way would be to improve
usability of our tools in order to involve end-users in the
implementation and the execution of tests. These are
tracks to be explored further.</p>
        <p>Although our work is still in progress, we hope that
our approach can inspire other practitioners in the field
to develop tools for testing intelligent human-centered
automated solutions.</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>F.</given-names>
            <surname>Sadri</surname>
          </string-name>
          ,
          <article-title>Ambient intelligence: A survey, ACM Computing Surveys (CSUR) 43 (</article-title>
          <year>2011</year>
          )
          <fpage>1</fpage>
          -
          <lpage>66</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>R.</given-names>
            <surname>Sutton</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Barto</surname>
          </string-name>
          ,
          <source>Reinforcement Learning: An Introduction</source>
          , 2nd ed., MIT Press,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>I. Sommerville</surname>
          </string-name>
          ,
          <article-title>Component-based software engineering</article-title>
          , in: Software Engineering,
          <volume>10</volume>
          ℎ ed.,
          <source>Pearson Education</source>
          ,
          <year>2016</year>
          , pp.
          <fpage>464</fpage>
          -
          <lpage>489</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>W.</given-names>
            <surname>Younes</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Trouilhet</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Adreit</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.-P.</given-names>
            <surname>Arcangeli</surname>
          </string-name>
          ,
          <article-title>Agent-mediated application emergence through reinforcement learning from user feedback</article-title>
          ,
          <source>in: 29th IEEE Int. Conf. on Enabling Technologies: Infrastructure for Collaborative Enterprises (WETICE)</source>
          , IEEE Press,
          <year>2020</year>
          , pp.
          <fpage>3</fpage>
          -
          <lpage>8</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>S.</given-names>
            <surname>Trouilhet</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.-P.</given-names>
            <surname>Arcangeli</surname>
          </string-name>
          ,
          <string-name>
            <surname>B. J.-M.</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Koussaifi</surname>
          </string-name>
          ,
          <article-title>Model-Driven Engineering for End-Users in the Loop in Smart Ambient Systems</article-title>
          ,
          <source>Journal of Universal Computer Science</source>
          <volume>27</volume>
          (
          <year>2021</year>
          )
          <fpage>755</fpage>
          -
          <lpage>773</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>K.</given-names>
            <surname>Delcourt</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Adreit</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.-P.</given-names>
            <surname>Arcangeli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Hacid</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Trouilhet</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Younes</surname>
          </string-name>
          ,
          <article-title>Automatic and Intelligent Composition of Pervasive Applications</article-title>
          ,
          <source>in: 19th IEEE Int. Conf. on Pervasive Computing and Communications (PerCom)</source>
          ,
          <source>Kassel (virtual)</source>
          , Germany,
          <year>2021</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>E. W.</given-names>
            <surname>Dijkstra</surname>
          </string-name>
          ,
          <source>On the reliability of programs</source>
          ,
          <year>1971</year>
          . URL: https://www.cs.utexas.edu/users/EWD/ transcriptions/EWD03xx/EWD303.html.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>D.</given-names>
            <surname>Marijan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Gotlieb</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. K.</given-names>
            <surname>Ahuja</surname>
          </string-name>
          ,
          <source>Challenges of Testing Machine Learning Based Systems, in: Proc. of the 1st IEEE Artificial Intelligence Testing Conf</source>
          .,
          <string-name>
            <surname>IEEE</surname>
          </string-name>
          , San Francisco, CA, USA,
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>K.</given-names>
            <surname>Sugali</surname>
          </string-name>
          ,
          <article-title>Software testing: Issues and challenges of artificial intelligence &amp; machine learning</article-title>
          ,
          <source>Int. J. of Artificial Intelligence &amp; Applications</source>
          <volume>12</volume>
          (
          <year>2021</year>
          )
          <fpage>101</fpage>
          -
          <lpage>112</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>C.</given-names>
            <surname>Wan</surname>
          </string-name>
          , S. Liu,
          <string-name>
            <given-names>S.</given-names>
            <surname>Xie</surname>
          </string-name>
          , Y. Liu,
          <string-name>
            <given-names>H.</given-names>
            <surname>Hofmann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Maire</surname>
          </string-name>
          , S. Lu,
          <source>Automated Testing of Software that Uses Machine Learning APIs, in: IEEE/ACM Int. Conf. on Software Engineering (ICSE)</source>
          ,
          <year>2022</year>
          . To appear.
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>E. J.</given-names>
            <surname>Weyuker</surname>
          </string-name>
          ,
          <article-title>On testing non-testable programs</article-title>
          ,
          <source>The Computer Journal</source>
          <volume>25</volume>
          (
          <year>1982</year>
          )
          <fpage>465</fpage>
          -
          <lpage>470</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>S.</given-names>
            <surname>Nakajima</surname>
          </string-name>
          ,
          <article-title>Generalized Oracle for Testing Machine Learning Computer Programs</article-title>
          ,
          <source>in: Software Engineering and Formal Methods - SEFM</source>
          <year>2017</year>
          , volume
          <volume>10729</volume>
          <source>of LNCS</source>
          , Springer,
          <year>2017</year>
          , pp.
          <fpage>174</fpage>
          -
          <lpage>179</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <surname>P. van Wesel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. E.</given-names>
            <surname>Goodloe</surname>
          </string-name>
          ,
          <article-title>Challenges in the Verification of Reinforcement Learning Algorithms</article-title>
          ,
          <source>Technical Report TM-2017-219628</source>
          , NASA,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>J. C.</given-names>
            <surname>Bastien</surname>
          </string-name>
          ,
          <article-title>Usability testing: a review of some methodological and technical aspects of the method</article-title>
          ,
          <source>Int. Journal of Medical Informatics</source>
          <volume>79</volume>
          (
          <year>2010</year>
          )
          <fpage>e18</fpage>
          -
          <lpage>e23</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>J.</given-names>
            <surname>Salminen</surname>
          </string-name>
          , S.-G. Jung,
          <string-name>
            <given-names>B. J.</given-names>
            <surname>Jansen</surname>
          </string-name>
          ,
          <article-title>Detecting demographic bias in automatically generated personas</article-title>
          ,
          <source>in: Extended Abstracts of the 2019 CHI Conf. on Human Factors in Computing Systems</source>
          ,
          <year>2019</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>6</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>S.</given-names>
            <surname>Amershi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Weld</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Vorvoreanu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Fourney</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Nushi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Collisson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Suh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Iqbal</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P. N.</given-names>
            <surname>Bennett</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Inkpen</surname>
          </string-name>
          , et al.,
          <article-title>Guidelines for human-AI interaction</article-title>
          ,
          <source>in: Proceedings of the 2019 CHI Conf. on Human Factors in Computing Systems</source>
          ,
          <year>2019</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>13</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>S.</given-names>
            <surname>Amershi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Cakmak</surname>
          </string-name>
          , W. B.
          <string-name>
            <surname>Knox</surname>
          </string-name>
          , T. Kulesza,
          <article-title>Power to the people: The role of humans in interactive machine learning</article-title>
          ,
          <source>AI</source>
          Magazine
          <volume>35</volume>
          (
          <year>2014</year>
          )
          <fpage>105</fpage>
          -
          <lpage>120</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>M. G.</given-names>
            <surname>Bellemare</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Naddaf</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Veness</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Bowling</surname>
          </string-name>
          ,
          <article-title>The arcade learning environment: An evaluation platform for general agents</article-title>
          ,
          <source>Journal of Artificial Intelligence Research</source>
          <volume>47</volume>
          (
          <year>2013</year>
          )
          <fpage>253</fpage>
          -
          <lpage>279</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>G.</given-names>
            <surname>Brockman</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Cheung</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Pettersson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Schneider</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Schulman</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Tang</surname>
          </string-name>
          , W. Zaremba, OpenAI Gym,
          <source>CoRR</source>
          (
          <year>2016</year>
          ). URL: https://arxiv.org/abs/1606.01540.
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>B.</given-names>
            <surname>Papis</surname>
          </string-name>
          , P. Wawrzyński,
          <article-title>dotRL: A platform for rapid Reinforcement Learning methods development and validation</article-title>
          ,
          <source>in: 2013 Fed. Conf. on Computer Science and Information Systems (FEDCSIS)</source>
          , IEEE,
          <year>2013</year>
          , pp.
          <fpage>129</fpage>
          -
          <lpage>136</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>AI</given-names>
            <surname>Redefined</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. K.</given-names>
            <surname>Gottipati</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Kurandwad</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Mars</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Szriftgiser</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Chabot</surname>
          </string-name>
          ,
          <article-title>Cogment: Open Source Framework For Distributed Multi-actor Training, Deployment</article-title>
          &amp; Operations, CoRR abs/2106.11345 (
          <year>2021</year>
          ). URL: https://arxiv.org/abs/2106.11345.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>