We introduce a novel technique for checking properties described by finite state machines. The technique is based on a synergy of three well-known methods: instrumentation, program slicing, and symbolic execution. More precisely, we instrument a given program with a code that tracks runs of state machines representing various properties. Next we slice the program to reduce its size without affecting runs of state machines. And then we symbolically execute the sliced program to find real violations of the checked properties, i.e. real bugs. Depending on the kind of symbolic execution, the technique can be applied as a stand-alone bug finding technique, or to weed out some false positives from an output of another bug-finding tool. We provide...
Modern software systems, which often are concurrent and manipulate complex data structures must be ...
We present ABETS, an assertion-based, dynamic analyzer that helps diagnose errors in Maude programs....
AbstractA technique for finding errors in computer programs is to translate a given program and its ...
Symbiotic is a tool for detection of bugs described by finite state machines in C programs. The tool...
Abstract. Symbiotic is a tool for detection of bugs described by fi-nite state machines in C program...
The current trend of multi-core and multi-processor computing is causing a paradigm shift from inher...
Symbolic execution is one of the most powerful tools in static analysis for finding bugs. In this te...
<p>Over the past 20 years, our society has become increasingly dependent on software. Today, we rely...
AbstractMost symbolic software model checkers use abstraction techniques to reduce the verification ...
Symbolic execution is a powerful program analysis technique that systematically explores multiple pr...
Many security and software testing applications require checking whether certain properties of a pro...
The existing specification-based techniques (SBT) has difficulty in generating an appropriate test s...
This paper proposes a new approach to program slicing based on abstract interpretation and model che...
textTraditional approaches for eliminating errors in concurrent and distributed programs include fo...
Applying finite-state verification techniques (e.g., model checking) to software requires that progr...
Modern software systems, which often are concurrent and manipulate complex data structures must be ...
We present ABETS, an assertion-based, dynamic analyzer that helps diagnose errors in Maude programs....
AbstractA technique for finding errors in computer programs is to translate a given program and its ...
Symbiotic is a tool for detection of bugs described by finite state machines in C programs. The tool...
Abstract. Symbiotic is a tool for detection of bugs described by fi-nite state machines in C program...
The current trend of multi-core and multi-processor computing is causing a paradigm shift from inher...
Symbolic execution is one of the most powerful tools in static analysis for finding bugs. In this te...
<p>Over the past 20 years, our society has become increasingly dependent on software. Today, we rely...
AbstractMost symbolic software model checkers use abstraction techniques to reduce the verification ...
Symbolic execution is a powerful program analysis technique that systematically explores multiple pr...
Many security and software testing applications require checking whether certain properties of a pro...
The existing specification-based techniques (SBT) has difficulty in generating an appropriate test s...
This paper proposes a new approach to program slicing based on abstract interpretation and model che...
textTraditional approaches for eliminating errors in concurrent and distributed programs include fo...
Applying finite-state verification techniques (e.g., model checking) to software requires that progr...
Modern software systems, which often are concurrent and manipulate complex data structures must be ...
We present ABETS, an assertion-based, dynamic analyzer that helps diagnose errors in Maude programs....
AbstractA technique for finding errors in computer programs is to translate a given program and its ...