Below is an image of a behavior that I do not understand when using intellitest. Notice the green did not get all the way to the end of the progress bar and right next to it is the current dynamic coverage measure which is 3/7 blocks.
Shouldn't I be able to CONTINUE my test run all the way till the progress bar fills to completeness and the block measure numbers match. I don't see a continue button -- clicking the run button causes the test run to re-test and then result remains the same.
Intellitest uses a technique called dynamic symbolic execution, where it keeps on generating inputs to any statement which helps cover a code path. Read about it here.
If intellitest is unable to generate an input which can help it cover a path, it flags the case as a warning.
The less coverage count just means intellitest was unable to reason about the code. Some of the usual cases which block automated reasoning are
In the second case, intellitest shows an
Object Creation
warning. It shows you what Factory it used to create an object and provides you a chance to override that and possibly inject Mocks/Fakes/Dummies etc..Warnings tell that tool needs your help to reason about code and explore more tests. The course of action in this case would be:
Apply
on toolbar if you think this factory is appropriateStill if coverage numbers are not met, see if the input values generated by intellitest are adequate, you may use additional assumptions to guide the input generation (see PexAssume, msdn reference.