Predicate Complete Testing * Thomas Ball * Thomas Ball, A Theory of Predicate-Complete Test Coverage...
-
Upload
barbra-dean -
Category
Documents
-
view
219 -
download
1
Transcript of Predicate Complete Testing * Thomas Ball * Thomas Ball, A Theory of Predicate-Complete Test Coverage...
Predicate Complete Testing*
Thomas Ball
* Thomas Ball, A Theory of Predicate-Complete Test Coverage and Generation, Technical Report MSR-TR-2004-
28, Microsoft Research
Testing Definitions
Statement Every statement is executed by the test set
Path Every control path is executed by the test set
Predicate Every logical predicate is executed by the test
setComplete
Some notion that the test set is “exhaustive”
Theoretical Goals
Control Flow metrics Statement, branch, multiple condition,
predicate, path, linear code sequence and jumpPredicate Complete Testing
Cover all reachable observable states Bound the number tests Know when to stop (when do we have a
complete test set)Does PCT actually produce tests?
Using Boolean Programs
Recall that BP transforms the original program into a program of its Boolean predicates
A BP state is some Boolean assignment of all predicates
The BP state space is finite (<= m*2^n)Some BP states are observableSome BP states are reachable
Boolean Program
Reachable States
Reachability Graph
Formalizing the state abstraction
Boolean Program II
Upper and Lower bounds for R
R – set of reachable statesU – upper bound for R via may-transitionsLp – pessimistic lower bound for R via
must+ transitions, a may transition, and must- transitions
Lo – optimistic lower bound for R, with the assumption that the program does not diverge
Algorithm
Using algorithms for computing L and U, |L|==|U| => the abstraction accurately encodes all the paths of R.
Generate all paths for L in the graph
Test Generation
Discussion