<!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>Daniel Kulesz , Fabian Tothy and Fabian Beckz University of Stuttgart daniel.kulesz@informatik.uni-stuttgart.de, ytothfn@studi.informatik.uni-stuttgart.de, zfabian.beck@visus.uni-stuttgart.de</article-title>
      </title-group>
      <abstract>
        <p>-Existing approaches for detecting anomalies in spreadsheets can help to discover faults but they are often applied too late in the spreadsheet lifecycle. By contrast, our approach detects anomalies immediately whenever users change their spreadsheets. This live inspection approach has been implemented as part of the Spreadsheet Inspection Framework, enabling the tool to visually report findings without disturbing the users' workflow. An advanced list representation allows users to keep track of the latest findings, prioritize open problems, and check progress on solving the issues. Results from a first user study indicate that users find the approach useful.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>I. INTRODUCTION</title>
      <p>
        Faults in spreadsheets are common and can cause severe
damage [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. In recent years, several tool-based approaches
have been developed for automatically detecting anomalies
in spreadsheets [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], arguing that anomalies are dependable
indicators for possible faults in spreadsheets. Today, a number
of anomaly detection tools aims for a tight integration into
spreadsheet environments like Microsoft Excel. One key
benefit of tightly integrated tools is their ability to communicate
findings in the same environment users work with their
spreadsheets. Findings vary by detection approach and can be, e.g.
smelly formulas, failed test cases, or violated constraints.
      </p>
      <p>Existing spreadsheet anomaly detection tools still suffer
from a major drawback: Since their scans have to be triggered
manually, it cannot be guaranteed that users execute them
regularly—if at all. The more actions users take and the more
time passes between scans, the more difficult it gets for users
to identify the actions responsible for the reported findings.
Also, the spreadsheet could contain findings already created
by previous users, and distinguishing between new and old
findings puts an additional mental load onto users.
At first glance, checking spreadsheets for anomalies
automatically in the background seems to be the trivial solution
to address the described issues. In fact, recent versions of
Microsoft Excel already issue live inspection techniques by
providing warning icons for built-in error types and report
them as warning diamonds next to the affected cells (Figure
1). However, adopting a similar approach for more complex
anomalies involves several challenges. In the rest of this
position paper, we describe these challenges, our attempts
to overcome them, and first experiences with the resulting
solution.</p>
    </sec>
    <sec id="sec-2">
      <title>II. LIVE INSPECTION CHALLENGES</title>
      <p>We identified the following challenges for a live inspection
approach of spreadsheets:
Ch1: Avoid disruption: Users primarily want to work with
their spreadsheet and not study findings. Thus, users
must be notified in a low-disrubtive manner.</p>
      <p>Ch2: Support workflow: Users should be free to choose when
to deal with findings and supported in their workflow
addressing the findings.</p>
      <p>Ch3: Motivation: Users should be motivated to deal with
reported findings.</p>
      <p>Ch4: Recent first: Findings caused by recent user actions
should be reported in a more prominent fashion than
older findings.</p>
      <p>Ch5: Provide overview: Users need an overview of all
currently open findings and support to group them.</p>
    </sec>
    <sec id="sec-3">
      <title>III. LIVE INSPECTION APPROACH</title>
      <p>
        In previous work [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], we developed an open-source tool
named Spreadsheet Inspection Framework (SIF)1. It allows
users to scan spreadsheets for anomalies using a number of
automated and partly automated detection techniques. SIF
visualizes findings in a side pane and with in-spreadsheet
marker icons (example in Figure 2, cell C12). We extend this
tool by a live inspection mechanism.
      </p>
      <p>
        The live inspection mechanism borrows ideas from the task
metaphor that many e-mail clients employ to empower users to
process and categorize incoming e-mails [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. Users typically
do not sit and wait for new e-mails to arrive but do other work.
Similarly, spreadsheet users are trying to solve a task with
their spreadsheet when being informed about a new finding
they caused. Even if the findings are a direct cause of the
users’ actions, the situation may be comparable in terms of
the amount of attention users are willing to invest.
      </p>
      <p>To adopt the metaphor, we divided the formerly flat list
(Ch5) of findings (anomalies) into four categories represented
by the tabs shown in Figure 2. They are named, from left
to right: ‘Open’, ‘Later’ (postponed), ‘Ignored’ and ‘Archive’
(solved). Figure 3 illustrates the states between which findings
can travel.</p>
      <p>1http://spreadsheet-inspection-framework.github.io</p>
      <p>A newly detected finding is added to the list of findings
as ’Open’. Open findings have a state of being ‘read’ or
‘unread’. The eye-catching red bubble next to the ‘Open’
section shows the number of unread findings (Ch1 Ch3, Ch5).
Recent findings are placed on top (Ch4). The tabs ‘Later’ and
‘Ignore’ do not employ this notification mechanism because
findings become part of these categories only when users
explicitly move them there (Ch2)—by definition, all findings
of these categories are read.</p>
      <p>Findings that were raised but are meanwhile solved move to
the ‘Archive’ without triggering a notification. The archive is
a neutral category. In a preliminary version we experimented
with a reward mechanism that highlighted solved findings and
counted them using a green notification bubble (Ch3), but
since many findings can be ‘solved’ by simply deleting the
causative cells, this counter could introduce false incentives.</p>
      <p>On the technical side, we implemented a diff mechanism
which allows us to distinguish new from existing findings.
Additionally, we set a trigger that automatically issues a
scan whenever a user’s action triggers a recalculation of
the spreadsheet. An extended preferences dialog allows users
to choose which inspection rules shall be included in the
automatic scan on a per-spreadsheet basis.</p>
    </sec>
    <sec id="sec-4">
      <title>IV. EVALUATION</title>
      <p>We did a first user study with one pilot followed by five
participants (male engineering students aged between 18 and
24). The participants had to solve two tasks in a given
spreadsheet that required extending and changing the business
logic of its formulas. The spreadsheet was designed in such a
way that findings were likely to be caused.</p>
      <p>Three of the participants used the in-spreadsheet marker
icons and directly tried to solve open issues as they appeared,
but skipped findings they did not find trivial in the first place.
They kept the inspection pane closed and did not open it
until they finished their primary tasks. Then, they used the
inspection pane to solve the remaining findings. The forth
participant did not pay attention at all to the findings until he
finished the primary task. In contrast, the fifth participant kept
the inspection pane open all the time and paid more attention
to the findings than to the actual task.</p>
      <p>The first three subjects achieved a rapid learning effect:
Once they understood that constants in formulas lead to
findings, they changed their behavior and did not put constants
into the next formulas they created. Overall, the participants
rated the live inspection mechanism to be low distracting and
generally acceptable.</p>
    </sec>
    <sec id="sec-5">
      <title>V. FUTURE WORK</title>
      <p>Future work should provide an extended reward mechanism
to motivate the users to solve open findings. When processing
large spreadsheets or checking for more complex anomalies,
users should be able to continue working while the scans are
still running. Also, checks need to be executed incrementally
and in order of priority, comparable to selecting and
prioritizing regression tests in software engineering.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>S. G.</given-names>
            <surname>Powell</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K. R.</given-names>
            <surname>Baker</surname>
          </string-name>
          , and
          <string-name>
            <given-names>B.</given-names>
            <surname>Lawson</surname>
          </string-name>
          , “
          <article-title>A critical review of the literature on spreadsheet errors,” Decision Support Systems</article-title>
          , vol.
          <volume>46</volume>
          , no.
          <issue>1</issue>
          , pp.
          <fpage>128</fpage>
          -
          <lpage>138</lpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>D.</given-names>
            <surname>Jannach</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Schmitz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Hofer</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Wotawa</surname>
          </string-name>
          , “
          <article-title>Avoiding, finding and fixing spreadsheet errors-a survey of automated approaches for spreadsheet QA</article-title>
          ,
          <source>” Journal of Systems and Software</source>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>D.</given-names>
            <surname>Kulesz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Scheurich</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Beck</surname>
          </string-name>
          , “
          <article-title>Integrating anomaly diagnosis techniques into spreadsheet environments</article-title>
          ,” in
          <source>Software Visualization (VISSOFT)</source>
          ,
          <source>2014 Second IEEE Working Conference on. IEEE</source>
          ,
          <year>2014</year>
          , pp.
          <fpage>11</fpage>
          -
          <lpage>19</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>A. M.</given-names>
            <surname>Szo</surname>
          </string-name>
          <article-title>´stek, “Dealing with my emails: Latent user needs in email management</article-title>
          .
          <source>” Computers in Human Behavior</source>
          , vol.
          <volume>27</volume>
          , no.
          <issue>2</issue>
          , pp.
          <fpage>723</fpage>
          -
          <lpage>729</lpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>