3 research outputs found
Finding Regressions in Projects under Version Control Systems
Version Control Systems (VCS) are frequently used to support development of
large-scale software projects. A typical VCS repository of a large project can
contain various intertwined branches consisting of a large number of commits.
If some kind of unwanted behaviour (e.g. a bug in the code) is found in the
project, it is desirable to find the commit that introduced it. Such commit is
called a regression point. There are two main issues regarding the regression
points. First, detecting whether the project after a certain commit is correct
can be very expensive as it may include large-scale testing and/or some other
forms of verification. It is thus desirable to minimise the number of such
queries. Second, there can be several regression points preceding the actual
commit; perhaps a bug was introduced in a certain commit, inadvertently fixed
several commits later, and then reintroduced in a yet later commit. In order to
fix the actual commit it is usually desirable to find the latest regression
point.
The currently used distributed VCS contain methods for regression
identification, see e.g. the git bisect tool. In this paper, we present a new
regression identification algorithm that outperforms the current tools by
decreasing the number of validity queries. At the same time, our algorithm
tends to find the latest regression points which is a feature that is missing
in the state-of-the-art algorithms. The paper provides an experimental
evaluation of the proposed algorithm and compares it to the state-of-the-art
tool git bisect on a real data set
On Decomposition of Maximal Satisfiable Subsets
In many areas of computer science, we are given an
unsatisfiable formula F in CNF, i.e., a set of clauses, with the
goal to analyze the unsatisfiability. A kind of such analysis is to
identify Minimal Correction Subsets (MCSes) of F, i.e., minimal
subsets of clauses that need to be removed from F to make it
satisfiable. Equivalently, one might identify the complements of
MCSes, i.e., Maximal Satisfiable Subsets (MSSes) of F. The more
MSSes (MCSes) of F are identified, the better insight into the unsatisfiability
can be obtained. Hence, there were proposed many
algorithms for complete MSS (MCS) enumeration. Unfortunately,
the number of MSSes can be exponential w.r.t. |F|, which often
makes the complete enumeration practically intractable.
In this work, we attempt to cope with the intractability of
complete MSS enumeration by initiating the study on MSS
decomposition. In particular, we propose several techniques that
often allows for decomposing the input formula F into several
subformulas. Subsequently, we explicitly enumerate all MSSes
of the subformulas, and then combine those MSSes to form
MSSes of the original formula F. An extensive empirical study
demonstrates that due to the MSS decomposition, the number of
MSSes that need to be explicitly identified is often exponentially
smaller than the total number of MSSes. Consequently, we
are able to improve upon a scalability of contemporary MSS
enumeration approaches by many orders of magnitude.22122211