Pex monitors the executed instructions when it runs a test and the program-under-test. In particular, it observes when the program depends on the length of a string or an array (and the lower bounds and lengths of a multi-dimensional array). It also observes how the program uses the different elements of a string or array. It then uses a constraint solver
to determine which lengths and element values might cause the test and the program-under-test to behave in interesting ways.
Pex tries to minimize the size of the arrays and strings needed to trigger interesting program behaviors.