Useful Unit Testing Research Tools

Microsoft Pex

A tool developed by Microsoft Research. It is an automated tool, which allows you to perform white-box type testing. Using Pex you can achieve higher code coverage. It also assists you with regression testing. 

You can download Pex from Microsoft Research. Pex is also included part of VS2010 Power Tools. 

Pex will generate all the necessary inputs and outputs by looking at your method. Then you can generate Unit Tests and run them as required. I highly recommend for methods with complex algorithms. You can also use Pex with other Unit Test frameworks such as nUnit, xUnit. 

Pex allows you to create Parameterized Unit Tests. When you download Pex, it comes with another tool called Moles, which allows you to replace any method with a delegate at test time. 

You can download Pex from here. 

CHESS

Another useful tool developed by Microsoft Research, which allows you to find and reproduce bugs (Heisenbugs)in concurrent and multithreaded programs. CHESS supports testing both managed and unmanaged code.

How CHESS track bugs?

In a nutshell, CHESS repeatedly exercise/run each threads multiple times with different interleaving. If the interleaving result an error CHESS will allow you to debug the error. 

[TestMethod]

[HostType(“Chess”)]

public void MyConcurrentThreadTestMethod()

{

                ……

}

You can make aware of your Unit Test that CHESS is integrated by just specifying the attribute, for example

CHESS allows you to locate the bug, reproduce it consistently, and then allow you to debug the issue.

For more information or to download CHESS please refer to the link here.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s