Tuesday, April 23, 2013

You are such a Code Digger... Code Digger VS2012 extension released (Think "Pex powered input/output analysis for Portable Libraries Extension")

Nikolai Tillmann's Blog - Introducing: Code Digger, an extension for VS2012

Today, the Pex team at Microsoft Research (Nikolai Tillmann and Peli de Halleux) is happy to announce that Code Digger, an extension for Visual Studio 2012, has shipped to the Visual Studio Gallery. After shipping the Moles framework as Fakes in Visual Studio 2012, this is the next step of bringing our research projects to the latest and greatest development environment.

Download now from Visual Studio Gallery

Code Digger comes as a lightweight Visual Studio extension.

http://visualstudiogallery.msdn.microsoft.com/fb5badda-4ea3-4314-a723-a1975cbdabb4

...

What is Code Digger?

Code Digger generates interesting values that show different behaviors of your .NET code. The result is a table showing for which inputs your code produces which outputs.

What is the relation between Pex and Code Digger?

Under the hood, Code Digger uses the Pex engine and Microsoft Research’s Z3 constraint solver to systematically analyze all branches in the code, trying to generate a test suite that achieves high code coverage. Working together with Peter Provost from the Visual Studio product group, we tried to create a really simple user interface. We want to bring the idea of code exploration to every programmer’s fingertips. This is different from the Pex Power Tools where we gave you many options to configure, and you had to embrace the idea of (Parameterized) Unit Testing to get all benefits. Code Digger is not a full replacement of Pex, it is merely the first extension that the Pex team ships for Visual Studio 2012 – stay tuned for more.

Limitations

Code Digger only works on public .NET code that resides in Portable Class Libraries.

By restricting the code exploration to Portable Class Libraries, we avoid problems with code that has dependencies on a particular platform which the Pex engine does not understand.

image

Visual Studio Gallery - Microsoft Code Digger

Overview

Code Digger analyzes possible execution paths through your .NET code. The result is a table where each row shows a unique behavior of your code. The table helps you understand the behavior of the code, and it may also uncover hidden bugs.

Through the new context menu item "Generate Inputs / Outputs Table" in the Visual Studio editor, you can invoke Code Digger to analyze your code. Code Digger computes and displays input-output pairs. Code Digger systematically hunts for bugs, exceptions, and assertion failures.

Code Digger only works on public .NET code that resides in Portable Class Libraries.

Under the hood, Code Digger uses the Pex engine and Microsoft Research’s Z3 constraint solver to systematically analyze all branches in the code, trying to generate a test suite that achieves high code coverage.

Code Digger is the first extension from the Pex team at Microsoft Research for Visual Studio 2012. Stay tuned for future extensions that bring more aspects of the rich experience of the Pex Visual Studio 2010 Power Tools to the latest version of Visual Studio. If you have feedback for us, or bug reports, feel free to write an email to the Pex team at Microsoft Research. If you have used Pex before, let us know if you are missing a particular feature.

To stay up-to-date, like Pex and Moles on Facebook.

..."

That's an interesting VS Extension and I like how it leverages Pex and MSR work. The fact it only works on Portable Libraries limits it for me, but still I think this is kind of cool...

 

Related Past Post XRef:
[Rumor] Pex and Moles to be part of Visual Studio 11?

Interested in PEX & MOLES? Wish you could go to a five hour workshop on them? Here’s the next best thing…

Think you can’t unit test ASP.Net? Here’s a tutorial for one way, using the power of Pex and Moles
Playing with Pex is just a web browser away at www.pexforfun.com

Pex 2010 (aka Pex 0.90.50303.0) now available on MSDN Subscribers Downloads
Pex license updated – You can now use it in commercial projects
Pex 0.5 Released - Your Parameterized Unit Test Buddy

No comments: