BVandLC Tool.

A tool for guiding PEX to achieve Boundary Value and Logical Coverage Criteria.

Boundary Value Coverage

For a logical condition (x > 10)

The typical test inputs generated by Pex are
x=0, x=12 //* Values may Vary

We add instrumentation to guide Pex to generate values at boundary conditions as well
i.e besides x=0, x=12 two new test inputs are generated
x=9,x=10

Logical Coverage

For a logical statement (x || (y && z))
the typical test inputs generated by Pex are
(F,F,F) ,(F,T,F), (F,T,T),(T,F,F)

We add instrumentation to guide Pex to generate test cases to execute condition at all ( if possible ) combinations of truth values of constituent clauses.
Our implementation currently faces some issues in some of the compiler optimizations where a complex predicate is broken down to multiple simple predicates in MSIL, we would shortly upload fixes

Steps to execute the tool


PS: For the demonstrative purpose there is test project namely TestPro bundled along the sources.