<!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>On the Usage of Dependency-based Models for Spreadsheet Debugging</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Birgit Hofer</string-name>
          <email>bhofer@ist.tugraz.at</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Franz Wotawa</string-name>
          <email>wotawa@ist.tugraz.at</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Graz University of Technology, Inffeldgasse 16b/II</institution>
          ,
          <addr-line>8010 Graz</addr-line>
          ,
          <country country="AT">Austria</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Locating faults in spreadsheets can be difficult. Therefore, tools supporting the localization of faults are needed. Modelbased software debugging (MBSD) is a promising fault localization technique. This paper presents a novel dependencybased model that can be used in MBSD. This model allows improvements of the diagnostic accuracy while keeping the computation times short. In an empirical evaluation, we show that dependency-based models of spreadsheets whose value-based models are often not solvable in an acceptable amount of time can be solved in less than one second. Furthermore, we show that the amount of diagnoses obtained through dependency-based models is reduced by 15 % on average when using the novel model instead of the original dependency-based model. The short computation time and the improved diagnostic accuracy enable the usage of model-based debugging for spreadsheets in practice.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;Spreadsheets</kwd>
        <kwd>Debugging</kwd>
        <kwd>Model-based Fault Localization</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. INTRODUCTION</title>
      <p>
        Even for small spreadsheets, the localization of faults can
be time consuming and frustrating. Thus, approaches
supporting fault localization in spreadsheets are needed. Some
fault localization techniques developed for the software
engineering discipline have been adapted to the spreadsheet
domain, for example [
        <xref ref-type="bibr" rid="ref1 ref10 ref8 ref9">1, 9, 10, 8</xref>
        ]. Model-based software
debugging (MBSD) [
        <xref ref-type="bibr" rid="ref13 ref16 ref18">16, 18, 13</xref>
        ] is one of these techniques. So
far, researchers have only focused on methods that use
valuebased models [
        <xref ref-type="bibr" rid="ref11 ref12 ref3 ref4">3, 4, 12, 11</xref>
        ]. Value-based models compute a
small set of possible explanations (i.e., diagnoses) for an
observed misbehavior. This small set of diagnoses is helpful
for users when debugging. Unfortunately, value-based
models have high computation times and they do not scale: the
underlying solving mechanisms have problems when dealing
with variables with large domains and real numbers. In an
empirical evaluation, Außerlechner et al. [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] showed the
limitations of different constraint solvers and SMT (satisfiability
modulo theories) solvers when using these models.
To the best of our knowledge, dependency-based models
have not been used for localizing faults in spreadsheets. The
reason for this may be their inaccuracy. Dependency-based
models compute a significantly higher number of diagnoses
than value-based models. In this paper, we propose a novel
type of dependency-based model which uses equivalence
instead of the implication to model the dependency relation
between cells. This allows improvements on the diagnostic
accuracy while keeping the computation times short.
In order to demonstrate the differences between the
valuebased, the original dependency-based, and our improved
dependency-based model, we make use of a running
example. This example is a simplified version of the
“homework/budgetone”spreadsheet taken from the EUSES
spreadsheet corpus [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. We manually injected a fault into the
spreadsheet in cell D5. Figure 1a shows the normal (or value)
view of this faulty spreadsheet variant. Figure 1b shows the
formula view of the same spreadsheet. The output cells1 of
the spreadsheet are shaded in gray. The faulty cell D5 is
highlighted with a red box. The fault manifests in the value
of the output cell D7. The expected value for this cell is
78,6 %.
      </p>
      <p>
        (a) Normal view
(b) Formula view
When using model based debugging, the faulty cell of this
example spreadsheet can be detected independent of the
underlying model. There are however differences with respect
to runtime and solution size. The value-based model and
our novel dependency-based model identify three cells that
1An output cell is a cell that is not referenced by any other cell.
could explain the observed misbehavior, while the original
dependency-based model identifies six cells as possible
explanations. When using the constraint solver Minion [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ],
both dependency-based models require only one third of the
computation time compared with the value-based model.
This work is related to the work of Mayer and
Stumptner [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] and Wotawa [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]. Mayer and Stumptner evaluated
models for model-based debugging in the software domain.
Wotawa discussed the relationship of model-based
debugging and program slicing.
      </p>
      <p>In the remainder of this paper, we will explain the
different types of models and show the model representations for
the above described running example (see Section 2). In
Section 3, we will empirically compare the different
models with respect to efficiency and effectiveness. The novel
dependency-based model reduces the number of computed
diagnoses by 15 % compared to original dependency-based
model. Furthermore, the empirical evaluation shows that
the dependency-based models can be solved in less than one
second even for those spreadsheets whose value-based
models require more than 20 minutes solving time.</p>
    </sec>
    <sec id="sec-2">
      <title>2. MODEL-BASED DEBUGGING</title>
      <p>
        In model-based software debugging (MBSD), the cells of a
spreadsheet and the given observations (i.e., the test case2)
are converted into constraints. As the given test case is a
failing test case, this constraint system results in a
contradiction. In order to determine which cells could resolve this
contradiction, MBSD introduces abnormal variables (AB) for
each cell. These abnormal variables represent the “health”
state of the cells. If a cell c is not abnormal, the formula of
the cell must be correct [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ]:
(1)
(2)
      </p>
      <sec id="sec-2-1">
        <title>This logic expression can be transformed to ¬AB(c) → constraint(c).</title>
      </sec>
      <sec id="sec-2-2">
        <title>AB(c) ∨ constraint(c).</title>
        <p>
          Having such a constraint system, we are able to use a
constraint or SMT solver to determine which abnormal variables
have to be set to true to eliminate the contradiction. We
refer the interested reader to [
          <xref ref-type="bibr" rid="ref14 ref18">18, 14</xref>
          ] for more information
about the principles of MBSD. MBSD can be performed
using either dependency-based or value-based models. We
discuss these models and our novel dependency-based model
in the following subsections.
        </p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>2.1 Value-based models</title>
      <p>
        When using value-based models, the values of the cells are
propagated. A value-based constraint system contains (i) the
input cells and their values, (ii) the output cells and their
expected values, and (iii) all formulas concatenated with their
abnormal variable. The constraint representation handles
the formulas as equations instead of assignments. This
allows to draw conclusions on the input from the output of a
formula. Such a value-based model for spreadsheets is
proposed by Abreu et al. [
        <xref ref-type="bibr" rid="ref3 ref4">3, 4</xref>
        ]. The running example from
Figure 1b is converted into the following constraints:
2A test case is a tuple (I, O), where I are the values for the input
cells and O the expected values for the output cells. A test case
is a failing test case if at least one computed output value differs
from the expected value.
      </p>
      <sec id="sec-3-1">
        <title>Input:</title>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>2.2 Original dependency-based models</title>
      <p>When using dependency-based models, only the information
about whether the computed values are correct is
propagated. Therefore, all cell values are represented as Boolean
instead of Integer or Real values. All variables representing
input cells are initialized with true. All variables
representing correct output cells are also initialized with true. The
variables representing erroneous output cells are initialized
with false. Instead of using the concrete formulas in the
constraints, only the correctness relation is modeled. If the
formula of cell c is correct and the input values of a formula
are correct then cell c must compute a correct value:
AB(cellc) ∨</p>
      <p>
        ^
c′∈ρ(c)
c′ → c
(3)
where ρ(c) is the set of all cells that are referenced in c.
Details about this modeling for software written in an
imperative language can be found e.g. in [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]. The
dependencybased constraints for our running example are as follows:
      </p>
      <sec id="sec-4-1">
        <title>Input:</title>
        <p>B2 == true
C2 == true
B3 == true
. . .</p>
      </sec>
      <sec id="sec-4-2">
        <title>Output:</title>
        <p>D3 == true
B7 == true
C7 == true
D7 == false</p>
      </sec>
      <sec id="sec-4-3">
        <title>Formula constraints:</title>
        <sec id="sec-4-3-1">
          <title>AB(cellD2)</title>
        </sec>
        <sec id="sec-4-3-2">
          <title>AB(cellD3)</title>
        </sec>
        <sec id="sec-4-3-3">
          <title>AB(cellB4)</title>
        </sec>
        <sec id="sec-4-3-4">
          <title>AB(cellC4)</title>
        </sec>
        <sec id="sec-4-3-5">
          <title>AB(cellD4)</title>
        </sec>
        <sec id="sec-4-3-6">
          <title>AB(cellD5) AB(cellD7)</title>
          <p>∨
∨
∨
∨
∨
∨
. . .
∨
(B2 ∧ C2 → D2)
(D2 ∧ D4 → D3)
(B2 ∧ B3 → B4)
(C2 ∧ C3 → C4)
(B4 ∧ C4 → D4)
(B5 → D5)
(D4 ∧ D6 → D7)</p>
          <p>Solving this constraint system leads to six possible
solutions: Either cell B4, C4, D4, D5, D6 or D7 must contain
the fault. This dependency-based model computes more
diagnoses because of the implication. In the value-based
model, the cells B4, C4, and D4 can be excluded from the
set of possible diagnoses because B4 and C4 are used to
compute D4, and D4 is used to compute D3, which is known to
compute the correct value. Unfortunately, this information
gets lost when using the implication because the implication
allows conclusions only from the input to the output but
not vice versa. This problem will be solved with the novel
dependency-based model that is explained in the following
subsection.</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>2.3 Novel dependency-based models</title>
      <p>In order to eliminate the previously described weakness of
dependency-based models, we use bi-implication
(equivalence) instead of the implication. The formula constraints
for our running example from Figure 1b are as follows:
Please note, that this list gives only examples. It is not
a complete list, because the size of the list depends on the
functions that are supported by the concrete spreadsheet
environment (e.g. Microsoft Excel, iWorks’Number,
OpenOffice’s Calc). All formulas where coincidental correctness
might happen still have to be modeled with the implication
instead of the bi-implication.</p>
    </sec>
    <sec id="sec-6">
      <title>3. EMPIRICAL EVALUATION</title>
      <p>
        This section consists of two major parts: the empirical setup
(discussing the prototype implementation, the used
platform, and the evaluated spreadsheet corpora) and the
results showing that dependency-based models are able to
compute diagnoses within a fraction of a second even for
spreadsheets whose value-based models require more than
20 minutes of solving time. In addition, this empirical
evaluation shows that the number of diagnoses obtained by the
novel dependency-based model is reduced by 15 % on
average compared to the original dependency-based model.
We developed a prototype in Java for performing the
empirical evaluation. This prototype uses Minion [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] as a
constraint solver. Minion is an out-of-the-box, open source
constraint solver and offers support for almost all arithmetic,
relational, and logic operators such as multiplication,
division, and equality over Boolean and Integers.
      </p>
      <p>The evaluation was performed on an Intel Core2 Duo
processor (2.67 GHz) with 4 GB RAM and Windows 7 as operating
system. We used the Minion version 0.15. The computation
time is the average time over 10 runs.</p>
      <p>
        We evaluated the models by means of spreadsheets from the
publicly available Integer spreadsheet corpus3 [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. This
corpus contains 33 different spreadsheets (12 artificially created
spreadsheets and 21 real-life spreadsheets), e.g., a
spreadsheet that calculates the lowest price combination on a
shopping list or the winner of Wimbleton 2012. These
spreadsheets contain both arithmetical and logical operators as well
as the functions SUM and IF. The spreadsheets contain on
average 39 formula cells, the largest spreadsheet contains 233
formulas. Faulty versions of the spreadsheets (containing
single, double and triple faults) were created by randomly
selecting formulas and applying mutation operators [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] on
them. The corpus contains in total 220 mutants. In the
empirical evaluation, we used only the spreadsheets which
contain a single fault, i.e. 94 spreadsheets.
      </p>
      <p>Table 1 compares the three types of models with respect
to fault localization capabilities and runtimes. The fault
localization capabilities are expressed by means of the
number of cells that are single fault diagnoses. The runtime
is measured by means of Minion’s average solving time in
milliseconds. The spreadsheets are divided into two
subgroups: spreadsheets whose value-based models are solved
by Minion in less then 20 minutes and spreadsheets whose
value-based models could not be solved within 20 minutes
(i.e. 31 from 94 spreadsheets). For these 31 spreadsheets,
the dependency-based models are solved in less than one
second. These runtime results indicate that dependency-based
models are better suited for debugging large spreadsheets
than value-based models.
3https://dl.dropbox.com/u/38372651/Spreadsheets/Integer Spreadsheets.zip
Reduction</p>
      <p>0 %
]0 %;10 %]
]10 %;20 %]
]20 %;30 %]
]30 %;40 %]
]40 %;50 %]
]50 %;60 %]
]60 %;70 %]
]70 %;80 %]
]80 %;90 %]
]90 %;100 %]
For 64 spreadsheets, no reduction in the number of diagnoses
was achieved when using the novel dependency-based model
instead of the original model. However, for 15 spreadsheets,
a reduction of more than 80 % was achieved.</p>
    </sec>
    <sec id="sec-7">
      <title>4. DISCUSSION AND CONCLUSIONS</title>
      <p>Locating faulty formulas in spreadsheets can be time
consuming. This paper addresses the fault localization
problem by means of model-based diagnosis. Our most
important contribution is the introduction of a novel
dependencybased model. This novel dependency-based model improves
previous work in two ways: (1) Compared to the original
dependency-based model, it reduces the amount of diagnoses
that have to be manually investigated by 15 %. (2)
Compared to the value-based model, it reduces the required
solving time and allows the computation of diagnoses in
realtime where the value-based model cannot compute solutions
within 20 minutes. The savings in computation time can be
explained by the reduction of the domain: The
dependencybased model requires only Boolean variables instead of
Integers and Real numbers.</p>
      <p>The reduction of the domain comes with additional
advantages: (1) An arbitrary solver can be used, because all solvers
support at least Boolean variables. Even spreadsheets
containing Real numbers can be debugged with any solver when
using dependency-based models. (2) The user does not need
to indicate concrete values for the erroneous output
variables. The information that an output cell computes the
wrong value is sufficient.</p>
      <p>In the description of the model, we listed all types of
coincidental correctness occurring in the spreadsheets used in the
empirical evaluation. This list is not exhaustive. For using
this model in practice, the list has to be extended.
We are convinced that the model presented improves the
state of the art in model-based diagnosis. Further work
includes a user study and the adaptation to other types of
programs, e.g. programs written in imperative or
objectoriented languages.</p>
    </sec>
    <sec id="sec-8">
      <title>Acknowledgments</title>
      <p>The research herein is partially conducted within the
competence network Softnet Austria II (www.soft-net.at, COMET
K-Projekt) and funded by the Austrian Federal Ministry of
Economy, Family and Youth (bmwfj), the province of Styria,
the Steirische Wirtschaftsfo¨rderungsgesellschaft mbH. (SFG),
and the city of Vienna in terms of the center for innovation
and technology (ZIT).</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>R.</given-names>
            <surname>Abraham</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Erwig</surname>
          </string-name>
          .
          <article-title>GoalDebug: A Spreadsheet Debugger for End Users</article-title>
          .
          <source>In Proceedings of the 29th International Conference on Software Engineering (ICSE</source>
          <year>2007</year>
          ), pages
          <fpage>251</fpage>
          -
          <lpage>260</lpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>R.</given-names>
            <surname>Abraham</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Erwig</surname>
          </string-name>
          .
          <article-title>Mutation Operators for Spreadsheets</article-title>
          .
          <source>IEEE Transactions on Software Engineering</source>
          ,
          <volume>35</volume>
          (
          <issue>1</issue>
          ):
          <fpage>94</fpage>
          -
          <lpage>108</lpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>R.</given-names>
            <surname>Abreu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Riboira</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Wotawa</surname>
          </string-name>
          .
          <article-title>Constraint-based debugging of spreadsheets</article-title>
          .
          <source>In CibSE'12</source>
          , pages
          <fpage>1</fpage>
          -
          <lpage>14</lpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>R.</given-names>
            <surname>Abreu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Riboira</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Wotawa</surname>
          </string-name>
          .
          <article-title>Debugging of spreadsheets: A CSP-based approach</article-title>
          .
          <source>In 3th IEEE Int. Workshop on Program Debugging</source>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>S.</given-names>
            <surname>Außerlechner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Fruhmann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Wieser</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Hofer</surname>
          </string-name>
          , R. Spo¨rk, C. Mu¨hlbacher, and
          <string-name>
            <given-names>F.</given-names>
            <surname>Wotawa</surname>
          </string-name>
          .
          <article-title>The right choice matters! SMT solving substantially improves model-based debugging of spreadsheets</article-title>
          .
          <source>In Proceedings of the 13th International Conference on Quality Software (QSIC'13)</source>
          , pages
          <fpage>139</fpage>
          -
          <lpage>148</lpage>
          . IEEE,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>M.</given-names>
            <surname>Fisher</surname>
          </string-name>
          and
          <string-name>
            <given-names>G.</given-names>
            <surname>Rothermel. The EUSES Spreadsheet</surname>
          </string-name>
          <article-title>Corpus: A shared resource for supporting experimentation with spreadsheet dependability mechanisms</article-title>
          .
          <source>SIGSOFT Software Engineering Notes</source>
          ,
          <volume>30</volume>
          (
          <issue>4</issue>
          ):
          <fpage>1</fpage>
          -
          <lpage>5</lpage>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>I. P.</given-names>
            <surname>Gent</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Jefferson</surname>
          </string-name>
          ,
          <string-name>
            <surname>and I. Miguel.</surname>
          </string-name>
          <article-title>Minion: A fast, scalable, constraint solver</article-title>
          .
          <source>In Proceedings of the 7th European Conference on Artificial Intelligence (ECAI</source>
          <year>2006</year>
          ), pages
          <fpage>98</fpage>
          -
          <lpage>102</lpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>B.</given-names>
            <surname>Hofer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Perez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Abreu</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Wotawa</surname>
          </string-name>
          .
          <article-title>On the empirical evaluation of similarity coefficients for spreadsheets fault localization</article-title>
          .
          <source>Automated Software Engineering</source>
          , pages
          <fpage>1</fpage>
          -
          <lpage>28</lpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>B.</given-names>
            <surname>Hofer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Riboira</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Wotawa</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Abreu</surname>
          </string-name>
          , and
          <string-name>
            <given-names>E.</given-names>
            <surname>Getzner</surname>
          </string-name>
          .
          <article-title>On the Empirical Evaluation of Fault Localization Techniques for Spreadsheets</article-title>
          .
          <source>In Proceedings of the 16th International Conference on Fundamental Approaches to Software Engineering (FASE</source>
          <year>2013</year>
          ), pages
          <fpage>68</fpage>
          -
          <lpage>82</lpage>
          , Rome, Italy,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>D.</given-names>
            <surname>Jannach</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Baharloo</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D.</given-names>
            <surname>Williamson</surname>
          </string-name>
          .
          <article-title>Toward an integrated framework for declarative and interactive spreadsheet debugging</article-title>
          .
          <source>In Proceedings of the 8th International Conference on Evaluation of Novel Approaches to Software Engineering (ENASE</source>
          <year>2013</year>
          ), pages
          <fpage>117</fpage>
          -
          <lpage>124</lpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>D.</given-names>
            <surname>Jannach</surname>
          </string-name>
          and
          <string-name>
            <given-names>U.</given-names>
            <surname>Engler</surname>
          </string-name>
          .
          <article-title>Toward model-based debugging of spreadsheet programs</article-title>
          .
          <source>In JCKBSE 2010</source>
          , pages
          <fpage>252</fpage>
          -
          <lpage>264</lpage>
          , Kaunas, Lithuania,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>D.</given-names>
            <surname>Jannach</surname>
          </string-name>
          and
          <string-name>
            <given-names>T.</given-names>
            <surname>Schmitz</surname>
          </string-name>
          .
          <article-title>Model-based diagnosis of spreadsheet programs: a constraint-based debugging approach</article-title>
          .
          <source>Automated Software Engineering</source>
          , pages
          <fpage>1</fpage>
          -
          <lpage>40</lpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>C.</given-names>
            <surname>Mateis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Stumptner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Wieland</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Wotawa</surname>
          </string-name>
          .
          <article-title>Model-based debugging of Java programs</article-title>
          .
          <source>In Proceedings of AADEBUG</source>
          ,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>W.</given-names>
            <surname>Mayer</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Stumptner</surname>
          </string-name>
          .
          <article-title>Model-based debugging - state of the art and future challenges</article-title>
          .
          <source>Electronic Notes in Theoretical Computer Science</source>
          ,
          <volume>174</volume>
          (
          <issue>4</issue>
          ):
          <fpage>61</fpage>
          -
          <lpage>82</lpage>
          , May
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>W.</given-names>
            <surname>Mayer</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Stumptner</surname>
          </string-name>
          .
          <article-title>Evaluating models for model-based debugging</article-title>
          .
          <source>In Proceedings of the International Conference on Automated Software Engineering (ASE)</source>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>R.</given-names>
            <surname>Reiter</surname>
          </string-name>
          .
          <article-title>A Theory of Diagnosis from First Principles</article-title>
          .
          <source>Artificial Intelligence</source>
          ,
          <volume>32</volume>
          (
          <issue>1</issue>
          ):
          <fpage>57</fpage>
          -
          <lpage>95</lpage>
          ,
          <year>1987</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>F.</given-names>
            <surname>Wotawa</surname>
          </string-name>
          .
          <article-title>On the Relationship between Model-Based Debugging and Program Slicing</article-title>
          .
          <source>Artificial Intelligence</source>
          ,
          <volume>135</volume>
          :
          <fpage>125</fpage>
          -
          <lpage>143</lpage>
          ,
          <year>February 2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>F.</given-names>
            <surname>Wotawa</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Nica</surname>
          </string-name>
          ,
          <string-name>
            <given-names>and I.-D.</given-names>
            <surname>Moraru</surname>
          </string-name>
          .
          <article-title>Automated debugging based on a constraint model of the program and a test case</article-title>
          .
          <source>The journal of logic and algebraic programming</source>
          ,
          <volume>81</volume>
          (
          <issue>4</issue>
          ),
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>