<!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>Investigating Developer Perception on Test Smells Using Better Code Hub - Work in Progress -</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Martin Schvarcbacher</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Davide Spadini</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Magiel Bruntink</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ana Oprescu</string-name>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Delft University of Technology</institution>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Software Improvement Group</institution>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>University of Amsterdam</institution>
        </aff>
      </contrib-group>
      <abstract>
        <p />
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Test smells can be found in test code using a
variety of tools. In this paper, we present our
integration of a test smell detection tool into
Better Code Hub (BCH), an online
environment for monitoring code quality and
identifying problems in it. We extended BCH with
test smell detection and observe how
developers react to various instances of test smells. By
integrating this detection into BCH, we gain
access to a wide range of developers working
on both open-source and commercial projects
using their own code. We study whether
developers consider these test smells important
and what they do with them in future code
changes. From our preliminary results, we
found out a high test smell detection
accuracy for most test smells; however, developers
are only willing to remove a small portion of
them.
The majority of the developer focus is spent on
writing and improving production code quality, while test
code quality is often not prioritized [
        <xref ref-type="bibr" rid="ref12">14</xref>
        ]. This can
lead to the creation of so called test smells [3], which
can make the tests hard to modify and can decrease
their e ectiveness. Test smells can be hard to detect
by manual inspection [
        <xref ref-type="bibr" rid="ref12">14</xref>
        ], which means that we have
to rely on automatic test smell detection to nd such
instances. Removing test smells can have a positive
impact on the test suite quality, reduce the test
akiness and discover bugs not previously covered by these
faulty unit tests [
        <xref ref-type="bibr" rid="ref7">9</xref>
        ].
      </p>
      <p>SIG, a consultancy company with the
headquarter in Amsterdam (NL), developed a tool to
analyze GitHub repositories code quality called Better
Code Hub (BCH)1. BCH checks the GitHub codebase
against 10 easy to follow software engineering
guidelines. Currently the guideline for test quality in BCH
only include assertions density and test code LOC. We
extended the existing test quality metrics with test
smell detection and integrated it into BCH to do our
research on test smells.</p>
      <p>
        Existing research on test smells focuses on detection
of test smells [
        <xref ref-type="bibr" rid="ref1 ref10 ref11 ref3 ref6">8, 12, 13, 2, 5</xref>
        ] with detection accuracy
and recall often surpassing 95%. The impact of test
smells on code maintainability and test e ectiveness
was studied in [
        <xref ref-type="bibr" rid="ref1 ref9">2, 11</xref>
        ].
      </p>
      <p>We aim to answer the following research questions:
RQ1: What is the perception of developers on test
smells in their codebase?</p>
      <p>RQ2: Which test smells developers consider to be
important?</p>
      <p>Our research on test smells is di erent in the
following aspects: (1) we investigate all instances of test
smells on code the developers have previously
interacted with; (2) by using Better Code Hub, we can
1https://bettercodehub.com/
cover more projects and users to gain a more diverse
data set; (3) by giving developers concrete examples
from their own codebase, we expect the developers to
be aware of the context in which both the
production and test code was developed and how the test
smell was created. Furthermore, for each detected test
smell in the code base, we ask the developers (through
a survey) their opinion on the importance of the
detected smell. Because the survey is integrated directly
in BCH, we are able to invite users outside of SIG
to take part in the survey and also analyze their own
code.</p>
      <p>After conducting our experiment, we found that
developers recognize test smell instances once they are
presented to them with high accuracy. However,
depending on the test smell, they are less willing to
refactor the test suite to remove this test smell even for test
smells which are rated as having an high impact on
software maintainability.</p>
      <p>The paper is structured as follows: section 2
contains the related works on test smell research, section 3
presents the research questions and experiment design,
section 4 provides the results followed by section 5 with
an analysis of the results, followed by our future plans
in section 6 and concludes with section 7.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Background and Related Work</title>
      <p>
        The concept of test smells originates from the work of
van Deursen et al. [3] and test smells have been
expanded with several other instances [
        <xref ref-type="bibr" rid="ref5 ref8">10, 7</xref>
        ]. Garousi
et al. [
        <xref ref-type="bibr" rid="ref2">4</xref>
        ] performed a study on the existing
literature and categorized all of the published test smells
and their detection methods. We aim to study test
smells in both open-source and closed-source projects,
as there might be di erences in how these two projects
are developed and maintained [
        <xref ref-type="bibr" rid="ref14">16</xref>
        ]. Most of the
existing research on test smells involves using open-source
projects and the evaluation is often performed by
people not involved with the project, such as [
        <xref ref-type="bibr" rid="ref4 ref9">11, 6</xref>
        ].
      </p>
      <p>
        Currently there is ongoing research into the
discovery and classi cation of test code smells and their
impact on software quality and reliability [
        <xref ref-type="bibr" rid="ref13 ref7">1, 15, 9</xref>
        ]. Being
able to detect test code smells and point those out to
the developers can help them refactor the test suite to
be less aky and catch more defects. Currently there
are many tools to detect test smells [
        <xref ref-type="bibr" rid="ref1 ref10 ref11 ref3 ref6">8, 12, 13, 2, 5</xref>
        ];
however, none of them are integrated into a modern
tool used by developers.
      </p>
    </sec>
    <sec id="sec-3">
      <title>Experiment Design</title>
      <sec id="sec-3-1">
        <title>Tools used</title>
        <p>We rst modi ed Better Code Hub2 (BCH) using a
Chrome extension to display di erent metrics for test
code quality than the current production build. The
\Automate Tests" metric results were modi ed to
include the detected test smells in the analyzed source
code along with the test smell type. The modi cation
is shown in Figure 1. The user can then click on the
individual smelly method and see the source code. There
is a possibility to submit their feedback on whether the
test code segment is, according to their opinion, a valid
instance of the test smell. This feedback can be given
for each found test smell. A sample view of the code
view and feedback form is in Figure 2. We also
modi ed the guideline explanation in the sidebar to have
a brief explanation of all of the detected test smells to
ensure that the users are aware of how the test smell
classi cation was performed.</p>
        <p>
          We selected the open-source tool tsDetect [
          <xref ref-type="bibr" rid="ref8">10</xref>
          ] to
use for nding test smells in the code base. The tool
works on Java JUnit projects and has support for
JUnit 4 annotations. It also has a published accuracy
rating along with classi ed test smell data. We
integrated tsDetect into a service which analyzes a
repository stored in GitHub as part of the main
analysis performed by BCH. The main advantage of this
tool is that it is open source, uses AST-based detection
of test smells and supports adding new test smells. In
our case, we selected only a subset of the test smells
(discussed in subsection 3.2) by restricting the analysis
performed on each test le to only these test smells.
3.2
        </p>
      </sec>
      <sec id="sec-3-2">
        <title>Selection of Test Smells to Evaluate</title>
        <p>
          The tool tsDetect can detect multiple test smells;
however, for the purpose of this study we restricted
our analysis to the following test smells: conditional
test logic; mystery guest; redundant assertion;
sensitive equality; verbose test; sleepy test; eager test
and resource optimism. The following test smells are
not part of the original test smells proposed by van
Deursen et al. [3], but are part of the tsDetect tool:
conditional test logic, redundant assertion, verbose
test; sleepy test. Based on testing done on a
manually selected dataset, the tsDetect tool is highly
reliable at detecting instances of these test smells [
          <xref ref-type="bibr" rid="ref8">10</xref>
          ].
Additionally we evaluated the detection accuracy of
the subset of these test smells on two Java projects to
con rm these results. The advantage of selecting this
speci c test smell subset is that each of them does not
require viewing the full test source code to understand
whether the given test method contains an instance of
2https://bettercodehub.com
the test smell or not. Test smells such as general
xture require viewing the entire test code to evaluate,
which takes additional time of the developers when
compared to analyzing only a single method.
3.3
        </p>
      </sec>
      <sec id="sec-3-3">
        <title>Survey Design</title>
        <p>We created the survey to be integrated into BCH for
each test smell based on the following criteria: (1)
ability to evaluate if given test smell instance is valid
in the project context, (2) option to classify test smell
instances as something to x (refactoring candidate)
or as something which will take too much time and
e ort to x (technical debt), and (3) at the same time
allow developers to rate the subjective importance of
the found test smell on the project's maintainability.
The rst part of the survey helps us answer RQ1, while
the second scale rating helps us answer RQ2.
3.4</p>
      </sec>
      <sec id="sec-3-4">
        <title>Participant Selection</title>
        <p>Our participants were selected from a pool of Java
developers with at least two years of development
experience within the host company. Each of them was
asked to evaluate parts of the codebase written in Java
they were actively working on, while using BCH for the
evaluation.
4</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Preliminary Results</title>
      <p>This preliminary study was done to determine the
viability of using BCH as a platform for test smell
perception in developers outside of the host organization
to gain a larger sample size. We asked 4 developers
to use our modi ed tool and then interviewed them
afterwards. The results are summarized in Figures 3
and 4. After a separate interview session with the
developers, we were able to obtain additional results not
covered by the BCH survey. From the results we can
see that the majority of the observed test smells are
considered as refactoring candidates. Sensitive
Equality shows that the majority of the instances found were
false positives, and those which were not considered
false positives were ignored. The conditional test logic
is evenly split between marking as a refactoring
candidate and taking no action.
5</p>
    </sec>
    <sec id="sec-5">
      <title>Discussion</title>
      <p>The test smell rated as the one which developers
decided to ignore the most is conditional testing logic,
where the threshold was more than 1 branch
statement per test case. During the interviews, developers
have repeatedly identi ed that rewriting the test cases
to not use conditions would be either impossible or
take too much e ort with no additional gain for test
maintainability. A similar view was held for eager test,
where for certain test cases it was deemed desirable to
call multiple production methods in a row before doing
an assert. The alternative would be to move the rst
production call to another method which sets up the
test; however, this method might only be used by the
one speci c test case, negating any bene ts of moving
to a separate function. Sensitive equality was deemed
the most as a false positive or no action item. This
was primarily due to limitations of tsDetect and
some parts of the code working with parsers, where
toString() was required to evaluate the output. Other
test smells were primarily rated as refactoring
candidates. These test smells could then be used as a metric
for evaluating the quality of the unit tests, as these are
the smells developers are willing to remove. From the
rankings of test smell presence on maintainability, we
can see that the highest impact is sleepy test and
redundant assertion. Due to the high false positive rate
for sensitive equality, the developers ranked the issue
as not severe or hard to avoid.
5.1</p>
      <p>RQ1
Based on the results, we can see that developers
consider most test smells to have a negative e ect on the
codebase and should be removed by refactoring. For
test smells which are detected reliably, the developers
consider the best course of action to take is refactoring
the test method to remove the test smell instance. For
eager test, the developers expressed that refactoring
the test would be di cult and not improve the overall
test suite quality. Conditional test logic was the test
smell most considered as one to keep (take no action).
This can be because the developers consider the test
smell hard to remove in the presented cases. Gaining
more data about sensitive equality would require using
a di erent tool with a lower false positive rate.
5.2</p>
      <p>RQ2
Verbose test was rated always as a refactoring
candidate, despite on average being rated as having a
low impact. On inspection of the found test smell
instances, we found that the tests often contained
several blocks with comments and were repeatedly
testing the same methods with di erent values,
indicating a co-occurence with lazy test. Sleepy test was
rated as having both the highest impact and was
always rated as a refactoring candidate, indicating that
the removal of dependency on threading in unit tests
is perceived as high priority. Resource optimism is
considered medium severity and always a refactoring
candidate, indicating that this test smell can be easily
refactored by adding the extra le existence checks.
Nonetheless, if the test fails due to a le not being
found, it is easy to detect. Eager test was rated on
average as below medium severity and primarily a
refactoring candidate, indicating that it is not perceived
as a problem. Constructor initialization was rated as
not severe problem and could be refactored into setup
methods.
6</p>
    </sec>
    <sec id="sec-6">
      <title>Future Work</title>
      <p>The internal preliminary study shows promising
results to deploy this modi ed version of BCH to the
general public. This will enable us to analyze
multiple projects, both open and closed source from their
developers. We plan to determine if there is a
relationship between the test smell perception and project
experience (in terms of time and commits) and the
familiarity with the le where the test smell resides by
the commit history.
7</p>
    </sec>
    <sec id="sec-7">
      <title>Conclusion</title>
      <p>We extended Better Code Hub with test smell
detection and ran a preliminary study. In this study, we
investigated the developer perception of test smells
using a sample of developers from the host company on
a codebase they were working on. The results show
that the tool can be deployed for the general public
and used to gather a larger sample size from the users.</p>
    </sec>
    <sec id="sec-8">
      <title>Acknowledgements</title>
      <p>We would like to thank the developers at Software
Improvement Group for taking part in this study.
[1] Gabriele Bavota et al. \Are test smells really
harmful? An empirical study". In: Empirical
Software Engineering 20 (2014), pp. 1052{1094.
[3] Arie van Deursen et al. \Refactoring Test Code".</p>
      <p>In: Proceedings of the 2nd International
Conference on Extreme Programming and Flexible
Processes in Software Engineering (XP). 2001,
pp. 92{95.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>Gabriele</given-names>
            <surname>Bavota</surname>
          </string-name>
          et al. \
          <article-title>Are test smells really harmful? An empirical study"</article-title>
          .
          <source>In: Empirical Software Engineering</source>
          <volume>20</volume>
          .4 (
          <issue>Aug</issue>
          . 1,
          <year>2015</year>
          ), pp.
          <volume>1052</volume>
          {
          <fpage>1094</fpage>
          . issn:
          <fpage>1573</fpage>
          -
          <lpage>7616</lpage>
          . doi:
          <volume>10</volume>
          .1007/ s10664 - 014 - 9313 - 0. url: https : / / doi . org / 10 . 1007 / s10664 - 014 - 9313 - 0 (visited on 01/15/
          <year>2019</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>Vahid</given-names>
            <surname>Garousi</surname>
          </string-name>
          and
          <article-title>Bar s Kucuk. \Smells in software test code: A survey of knowledge in industry and academia"</article-title>
          .
          <source>In: Journal of Systems and Software 138 (Apr</source>
          .
          <year>2018</year>
          ), pp.
          <volume>52</volume>
          {
          <fpage>81</fpage>
          . issn:
          <fpage>0164</fpage>
          -
          <lpage>1212</lpage>
          . doi:
          <volume>10</volume>
          .1016/j.jss.
          <year>2017</year>
          .
          <volume>12</volume>
          .013. url: http : / / www . sciencedirect . com / science / article/pii/S0164121217303060.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>M.</given-names>
            <surname>Greiler</surname>
          </string-name>
          ,
          <string-name>
            <surname>A. van Deursen</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Storey</surname>
          </string-name>
          . \
          <source>Automated Detection of Test Fixture Strategies and Smells"</source>
          .
          <source>In: Veri cation and Validation 2013 IEEE Sixth International Conference on Software Testing. Veri cation and Validation 2013 IEEE Sixth International Conference on Software Testing. Mar</source>
          .
          <year>2013</year>
          , pp.
          <volume>322</volume>
          {
          <fpage>331</fpage>
          . doi:
          <volume>10</volume>
          .1109/ICST.
          <year>2013</year>
          .
          <volume>45</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>Michaela</given-names>
            <surname>Greiler</surname>
          </string-name>
          et al. \
          <article-title>Strategies for avoiding text xture smells during software evolution"</article-title>
          .
          <source>In: 2013 10th Working Conference on Mining Software Repositories (MSR)</source>
          .
          <source>2013 10th IEEE Working Conference on Mining Software Repositories (MSR</source>
          <year>2013</year>
          ). San Francisco, CA, USA: IEEE, May
          <year>2013</year>
          , pp.
          <volume>387</volume>
          {
          <fpage>396</fpage>
          . doi:
          <volume>10</volume>
          .1109/ MSR.
          <year>2013</year>
          .
          <volume>6624053</volume>
          . url: http://ieeexplore. ieee . org / document / 6624053/ (visited on 01/28/
          <year>2019</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>Gerard</given-names>
            <surname>Meszaros</surname>
          </string-name>
          .
          <article-title>xUnit test patterns: Refactoring test code</article-title>
          .
          <source>Pearson Education</source>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>F.</given-names>
            <surname>Palomba</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Zaidman</surname>
          </string-name>
          , and A. De Lucia. \
          <article-title>Automatic Test Smell Detection Using Information Retrieval Techniques"</article-title>
          .
          <source>In: 2018 IEEE International Conference on Software Maintenance and Evolution (ICSME)</source>
          .
          <source>2018 IEEE International Conference on Software Maintenance and Evolution (ICSME)</source>
          .
          <source>Sept</source>
          .
          <year>2018</year>
          , pp.
          <volume>311</volume>
          {
          <fpage>322</fpage>
          . doi:
          <volume>10</volume>
          .1109/ICSME.
          <year>2018</year>
          .
          <volume>00040</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>Fabio</given-names>
            <surname>Palomba</surname>
          </string-name>
          and
          <string-name>
            <given-names>Andy</given-names>
            <surname>Zaidman</surname>
          </string-name>
          . \
          <article-title>Does Refactoring of Test Smells Induce Fixing Flaky Tests?"</article-title>
          <source>In: 2017 IEEE International Conference on Software Maintenance and Evolution (ICSME)</source>
          (
          <year>2017</year>
          ), pp.
          <volume>1</volume>
          {
          <fpage>12</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>Anthony</given-names>
            <surname>Peruma</surname>
          </string-name>
          et al.
          <source>Software Unit Test Smells. Software Unit Test Smells</source>
          .
          <year>2018</year>
          . url: https://testsmells.github.io/index.html (visited on 04/25/
          <year>2019</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>B. V.</given-names>
            <surname>Rompaey</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B. D.</given-names>
            <surname>Bois</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Demeyer</surname>
          </string-name>
          . \
          <article-title>Characterizing the Relative Signi cance of a Test Smell"</article-title>
          .
          <source>In: 2006 22nd IEEE International Conference on Software Maintenance. 2006 22nd IEEE International Conference on Software Maintenance. Sept</source>
          .
          <year>2006</year>
          , pp.
          <volume>391</volume>
          {
          <fpage>400</fpage>
          . doi:
          <volume>10</volume>
          .1109/ICSM.
          <year>2006</year>
          .
          <volume>18</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>B.</given-names>
            <surname>Van</surname>
          </string-name>
          Rompaey et al. \
          <article-title>On The Detection of Test Smells: A Metrics-Based Approach for General Fixture and Eager Test"</article-title>
          .
          <source>In: IEEE Transactions on Software Engineering</source>
          <volume>33</volume>
          .12 (
          <issue>Dec</issue>
          .
          <year>2007</year>
          ), pp.
          <volume>800</volume>
          {
          <fpage>817</fpage>
          . issn:
          <fpage>0098</fpage>
          -
          <lpage>5589</lpage>
          . doi:
          <volume>10</volume>
          . 1109 / TSE.
          <year>2007</year>
          .
          <volume>70745</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [13]
          <string-name>
            <surname>Abdus</surname>
            <given-names>Satter</given-names>
          </string-name>
          , Nadia Nahar, and Kazi Sakib. \
          <article-title>Automatically Identifying Dead Fields in Test Code by Resolving Method Call and Field Dependency"</article-title>
          . In: (
          <year>2017</year>
          ), p.
          <fpage>8</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>D.</given-names>
            <surname>Spadini</surname>
          </string-name>
          et al. \
          <article-title>On the Relation of Test Smells to Software Code Quality"</article-title>
          .
          <source>In: 2018 IEEE International Conference on Software Maintenance and Evolution (ICSME)</source>
          .
          <source>2018 IEEE International Conference on Software Maintenance and Evolution (ICSME)</source>
          .
          <source>Sept</source>
          .
          <year>2018</year>
          , pp.
          <volume>1</volume>
          {
          <issue>12</issue>
          . doi:
          <volume>10</volume>
          .1109/ICSME.
          <year>2018</year>
          .
          <volume>00010</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>Michele</given-names>
            <surname>Tufano</surname>
          </string-name>
          et al. \
          <article-title>An empirical investigation into the nature of test smells"</article-title>
          .
          <source>In: 2016 31st IEEE/ACM International Conference on Automated Software Engineering (ASE)</source>
          (
          <year>2016</year>
          ), pp.
          <volume>4</volume>
          {
          <fpage>15</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [16]
          <string-name>
            <surname>Hyrum</surname>
            <given-names>K.</given-names>
          </string-name>
          <string-name>
            <surname>Wright</surname>
            , Miryung Kim, and
            <given-names>Dewayne E. Perry.</given-names>
          </string-name>
          \
          <article-title>Validity Concerns in Software Engineering Research"</article-title>
          .
          <source>In: Proceedings of the FSE/SDP Workshop on Future of Software Engineering Research</source>
          . FoSER '10. event-place: Santa Fe, New Mexico, USA. New York, NY, USA: ACM,
          <year>2010</year>
          , pp.
          <volume>411</volume>
          {
          <fpage>414</fpage>
          . isbn:
          <fpage>978</fpage>
          -1-
          <fpage>4503</fpage>
          -0427-6. doi:
          <volume>10</volume>
          .1145/1882362.1882446. url: http://doi.acm.
          <source>org/10</source>
          .1145/1882362. 1882446 (visited on 04/30/
          <year>2019</year>
          ).
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>