2009
DOI: 10.1007/978-3-642-02652-2_16
|View full text |Cite
|
Sign up to set email alerts
|

Efficient Testing of Concurrent Programs with Abstraction-Guided Symbolic Execution

Abstract: Abstract. Exhaustive search techniques such as model checking and symbolic execution are insufficient to detect errors in concurrent programs. In this work we present an abstraction-guided symbolic execution technique that quickly detects errors in concurrent programs that arise from thread schedules and input data values. An abstract system is generated that contains a set of key program locations that are relevant in testing the feasibility of a possible error in the program. We guide a symbolic execution al… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
16
0

Year Published

2010
2010
2015
2015

Publication Types

Select...
5
3
1

Relationship

0
9

Authors

Journals

citations
Cited by 30 publications
(16 citation statements)
references
References 26 publications
(34 reference statements)
0
16
0
Order By: Relevance
“…However, none of those approaches can generate symbolic resource estimations, as our approach does, neither take advantage of a resource policy to guide the TDG process. The most related work to our resource-driven approach is [19], which proposes to use an abstraction of the program in order to guide symbolic execution and prune the execution tree as a way to scale up. An important difference is that our trace-based abstraction is an over-approximation of the actual paths which allows us to select the most expensive paths.…”
Section: Conclusion and Related Workmentioning
confidence: 99%
“…However, none of those approaches can generate symbolic resource estimations, as our approach does, neither take advantage of a resource policy to guide the TDG process. The most related work to our resource-driven approach is [19], which proposes to use an abstraction of the program in order to guide symbolic execution and prune the execution tree as a way to scale up. An important difference is that our trace-based abstraction is an over-approximation of the actual paths which allows us to select the most expensive paths.…”
Section: Conclusion and Related Workmentioning
confidence: 99%
“…Furthermore, we plan to investigate how to combine data-flow analyses like the one presented here with model checking. For instance, Rungta et al [2009] have recently shown how to effectively guide a model checker to problem points previously determined through a (generic) static analysis. Such an approach would allow programmers to rule out even more (if not all) false positives than Clara does.…”
Section: Resultsmentioning
confidence: 99%
“…Through this evaluation, PRSS was shown to be effective (some speedups more than 100x) for exploring various concurrent programs using JPF version 3.1.2 across a reasonably small number (5)(6)(7)(8)(9)(10)(11)(12)(13)(14)(15)(16)(17)(18)(19)(20) of parallel machines. However, it is not Paper Metric(s) Search Type Used Randomness Machine Configuration CAPP [8] Transitions Stateful Yes Cluster CAPP [8] Schedules Stateless Yes Cluster Controlling Factors [2] States Stateful Yes Cluster CTrigger [18] Time Stateless No Single machine Depth Bounding [11] States, Transitions, Time, Memory Stateful No Not specified Distributed Reachability [15] Time Stateless Yes Cluster Gambit [7] Time, Memory Hybrid Yes Not specified ICB [4] States, Time Hybrid No Not specified PENELOPE [19] Time Stateless No Not specified PRSS [3] States Stateful Yes Cluster Random Backtracking [12] States, Transitions Stateful Yes Not specified Swarm [5] States, Time, Memory Stateful Yes Single machine clear whether similar results could be obtained for (i) other concurrent programs, (ii) stateless exploration, (iii) different search strategy, or (iv) the latest version of JPF which incorporates many new optimizations.…”
Section: A Parallel Randomized State-space Searchmentioning
confidence: 98%
“…The techniques can be categorized in many different ways. One category of techniques consists of strategies that prioritize or select the exploration of certain parts of the state space by leveraging additional information or heuristics [4], [6]- [12]. A recent, promising strategy in this category is known as Iterative Context-Bounding (ICB) [4], which prioritizes exploration according to the number of preemptive context switches between threads.…”
Section: Introductionmentioning
confidence: 99%