Pex goal is to automatically and systematically produce the minimal set of actual parameters needed to execute a finite number of finite paths. It automatically produces a small test suite with high code and assertion coverage. It has been leveraged by the .NET team at Microsoft for Unit Testing core .NET components
HOW IT WORKS?
Pex finds interesting input-output values of your methods, which you can save as a small test suite with high code coverage. Pex performs a systematic analysis, hunting for boundary conditions, exceptions and assertion failures, which you can debug right away. Pex enables Parameterized Unit Testing, an extension of Unit Testing that reduces test maintenance costs.
HOW IS PEX DIFFERENT?
With VS 2008 Unit Tests Framework and other unit test tools such as NUnit, the user has to provide all test inputs: individual values, ranges, a spreadsheet, or a database of some sort. Improper choice of inputs would lead to missed corner cases or a hugely redundant test suite, or both. With Pex, things change for the better, the user does not have to provide any input to the parameterized unit tests. By analyzing the program behavior at runtime Pex can generate inputs that matter, i.e. inputs that will increase the coverage of the test suite and expose bugs.
WHAT DOES PEX HAS IN IT FOR DEVELOPERS?
Pex Framework Libraries.
Seamless Integration with Visual Studio 2008
Suggestions and code snippets
Stubs and detour framework
Command Line support.
Pex Extension Points for popular Unit Testing Frameworks.