134 research outputs found
Scalability-First Pointer Analysis with Self-Tuning Context-Sensitivity
Context-sensitivity is important in pointer analysis to ensure high
precision, but existing techniques suffer from unpredictable scala-
bility. Many variants of context-sensitivity exist, and it is difficult
to choose one that leads to reasonable analysis time and obtains
high precision, without running the analysis multiple times.
We present the Scaler framework that addresses this problem.
Scaler efficiently estimates the amount of points-to information
that would be needed to analyze each method with different variants
of context-sensitivity. It then selects an appropriate variant for
each method so that the total amount of points-to information is
bounded, while utilizing the available space to maximize precision.
Our experimental results demonstrate that Scaler achieves pre-
dictable scalability for all the evaluated programs (e.g., speedups
can reach 10x for 2-object-sensitivity), while providing a precision
that matches or even exceeds that of the best alternative techniques
Achievements, open problems and challenges for search based software testing
Search Based Software Testing (SBST) formulates testing as an optimisation problem, which can be attacked using computational search techniques from the field of Search Based Software Engineering (SBSE). We present an analysis of the SBST research agenda, focusing on the open problems and challenges of testing non-functional properties, in particular a topic we call 'Search Based Energy Testing' (SBET), Multi-objective SBST and SBST for Test Strategy Identification. We conclude with a vision of FIFIVERIFY tools, which would automatically find faults, fix them and verify the fixes. We explain why we think such FIFIVERIFY tools constitute an exciting challenge for the SBSE community that already could be within its reach
FORTEST: Formal methods and testing
Formal methods have traditionally been used for specification and development of software. However there are potential benefits for the testing stage as well. The panel session associated with this paper explores the usefulness
or otherwise of formal methods in various contexts for improving software testing. A number of different possibilities for the use of formal methods are explored and questions raised. The contributors are all members of the UK FORTEST Network on formal methods and testing. Although
the authors generally believe that formal methods
are useful in aiding the testing process, this paper is intended to provoke discussion. Dissenters are encouraged to put their views to the panel or individually to the authors
Formalizing Safety Requirements Using Controlling Automata
Safety is an important element of dependability. It is defined as the absence
of accidents. Most accidents involving software-intensive systems have been
system accidents, which are caused by unsafe inter-system or inter-component
interactions. To validate the absence of system hazards concerning
dysfunctional interactions, industrials call for approaches of modeling system
safety requirements and interaction constraints among components. This paper
proposes such a formalism, namely interface control systems (or shortly
C-Systems). An interface C-System is composed of an interface automaton and a
controlling automaton, which formalizes safe interactions and restricts system
behavior at the meta level. This framework differs from the framework of
traditional model checking. It explicitly separates the tasks of product
engineers and safety engineers, and provides a top-down technique for modeling
a system with safety constraints, and for automatically composing a safe system
that conforms to safety requirements. The contributions of this work include
formalizing safety requirements and a way of automatically ensuring system
safety.Comment: 6 pages. In Proceedings of the 2nd International Conference on
Dependability (DEPEND 2009), Athens, Greece. IEEE Computer Society, 200
Recommended from our members
SPIN-ning Software Architectures: A Method for Exploring Complex Systems
When designing complex software systems that provide multiple non-functional properties, it is usual to try to reuse (and finally compose) simpler existing designs, which deal with each of these properties in solitude. The paper describes a method for automatically and quickly identifying all the different ways one can compose such designs, with the aid of a model checke
Reproducing Failures in Fault Signatures
Software often fails in the field, however reproducing and debugging field
failures is very challenging: the failure-inducing input may be missing, and
the program setup can be complicated and hard to reproduce by the developers.
In this paper, we propose to generate fault signatures from the failure
locations and the original source code to reproduce the faults in small
executable programs. We say that a fault signature reproduces the fault in the
original program if the two failed in the same location, triggered the same
error conditions after executing the same selective sequences of
failure-inducing statements. A fault signature aims to contain only sufficient
statements that can reproduce the faults. That way, it provides some context to
inform how a fault is developed and also avoids unnecessary complexity and
setups that may block fault diagnosis. To compute fault signatures from the
failures, we applied a path-sensitive static analysis tool to generate a path
that leads to the fault, and then applied an existing syntactic patching tool
to convert the path into an executable program. Our evaluation on real-world
bugs from Corebench, BugBench, and Manybugs shows that fault signatures can
reproduce the fault for the original programs. Because fault signatures are
less complex, automatic test input generation tools generated failure-inducing
inputs that could not be generated by using the entire programs. Some
failure-inducing inputs can be directly transferred to the original programs.
Our experimental data are publicly available at
https://doi.org/10.5281/zenodo.5430155
- ā¦