Pex takes test-driven development to the next level. Pex analyzes .NET applications. From a parameterized unit test, which serves as a specification, it automatically produces traditional unit tests cases with high code coverage. Moreover, when a generated test fails, Pex can often suggest a bug fix. To do so Pex performs a systematic program analysis (similar to path bounded model-checking). It records detailed execution traces of test cases. Pex learns the program behavior from the traces, and a constraint solver produces new test cases with different behavior. The result is a minimal test suite with maximal code coverage.