Predicate Complete Testing * Thomas Ball * Thomas Ball, A Theory of Predicate-Complete Test Coverage...

13
Predicate Complete Testing * Thomas Ball * Thomas Ball, A Theory of Predicate-Complete Test Coverage and Generation, Technical Report MSR-TR- 2004-28, Microsoft Research

Transcript of Predicate Complete Testing * Thomas Ball * Thomas Ball, A Theory of Predicate-Complete Test Coverage...

Page 1: Predicate Complete Testing * Thomas Ball * Thomas Ball, A Theory of Predicate-Complete Test Coverage and Generation, Technical Report MSR-TR-2004- 28,

Predicate Complete Testing*

Thomas Ball

* Thomas Ball, A Theory of Predicate-Complete Test Coverage and Generation, Technical Report MSR-TR-2004-

28, Microsoft Research

Page 2: Predicate Complete Testing * Thomas Ball * Thomas Ball, A Theory of Predicate-Complete Test Coverage and Generation, Technical Report MSR-TR-2004- 28,

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”

Page 3: Predicate Complete Testing * Thomas Ball * Thomas Ball, A Theory of Predicate-Complete Test Coverage and Generation, Technical Report MSR-TR-2004- 28,

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?

Page 4: Predicate Complete Testing * Thomas Ball * Thomas Ball, A Theory of Predicate-Complete Test Coverage and Generation, Technical Report MSR-TR-2004- 28,

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

Page 5: Predicate Complete Testing * Thomas Ball * Thomas Ball, A Theory of Predicate-Complete Test Coverage and Generation, Technical Report MSR-TR-2004- 28,

Boolean Program

Page 6: Predicate Complete Testing * Thomas Ball * Thomas Ball, A Theory of Predicate-Complete Test Coverage and Generation, Technical Report MSR-TR-2004- 28,

Reachable States

Page 7: Predicate Complete Testing * Thomas Ball * Thomas Ball, A Theory of Predicate-Complete Test Coverage and Generation, Technical Report MSR-TR-2004- 28,

Reachability Graph

Page 8: Predicate Complete Testing * Thomas Ball * Thomas Ball, A Theory of Predicate-Complete Test Coverage and Generation, Technical Report MSR-TR-2004- 28,

Formalizing the state abstraction

Page 9: Predicate Complete Testing * Thomas Ball * Thomas Ball, A Theory of Predicate-Complete Test Coverage and Generation, Technical Report MSR-TR-2004- 28,

Boolean Program II

Page 10: Predicate Complete Testing * Thomas Ball * Thomas Ball, A Theory of Predicate-Complete Test Coverage and Generation, Technical Report MSR-TR-2004- 28,

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

Page 11: Predicate Complete Testing * Thomas Ball * Thomas Ball, A Theory of Predicate-Complete Test Coverage and Generation, Technical Report MSR-TR-2004- 28,

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

Page 12: Predicate Complete Testing * Thomas Ball * Thomas Ball, A Theory of Predicate-Complete Test Coverage and Generation, Technical Report MSR-TR-2004- 28,

Test Generation

Page 13: Predicate Complete Testing * Thomas Ball * Thomas Ball, A Theory of Predicate-Complete Test Coverage and Generation, Technical Report MSR-TR-2004- 28,

Discussion