<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Peli's Farm - Pex, Stubs, Moles, QuickGraph, MbUnit, Reflector Addins - CHESS</title>
    <link>http://blog.dotnetwiki.org/</link>
    <description>TouchDevelop, Pex4Fun, Rise4Fun, Pex, Moles, QuickGraph, MbUnit, Reflector Addins</description>
    <language>en-us</language>
    <copyright>Jonathan 'Peli' de Halleux</copyright>
    <lastBuildDate>Fri, 30 Jan 2009 20:52:08 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.2.8279.16125</generator>
    <managingEditor>jonathan.dehalleux@gmail.com</managingEditor>
    <webMaster>jonathan.dehalleux@gmail.com</webMaster>
    <item>
      <trackback:ping>http://blog.dotnetwiki.org/Trackback.aspx?guid=2ba3e093-9a77-4e79-ad10-c8d29a5fb405</trackback:ping>
      <pingback:server>http://blog.dotnetwiki.org/pingback.aspx</pingback:server>
      <pingback:target>http://blog.dotnetwiki.org/PermaLink,guid,2ba3e093-9a77-4e79-ad10-c8d29a5fb405.aspx</pingback:target>
      <dc:creator>Jonathan de Halleux</dc:creator>
      <wfw:comment>http://blog.dotnetwiki.org/CommentView,guid,2ba3e093-9a77-4e79-ad10-c8d29a5fb405.aspx</wfw:comment>
      <wfw:commentRss>http://blog.dotnetwiki.org/SyndicationService.asmx/GetEntryCommentsRss?guid=2ba3e093-9a77-4e79-ad10-c8d29a5fb405</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <img style="display: inline; margin-left: 0px; margin-right: 0px" align="right" src="http://research.microsoft.com/en-us/projects/chess/ChessLogoWebpage.png" />A
while ago at PDC, a couple of my colleagues presented <a href="http://research.microsoft.com/chess" target="_blank">CHESS</a> but
unfortunately weren’t ready to release it. Well, you don’t have to wait anymore: <a href="http://msdn.microsoft.com/en-us/devlabs/cc950526.aspx" target="_blank">CHESS
is now available for download at DevLabs</a> for Visual Studio 2008 Team Dev or Team
Test. CHESS comes under the same pre-release license as <a href="http://research.microsoft.com/pex" target="_blank">Pex</a> or
under <a href="http://research.microsoft.com/en-us/projects/chess/download.aspx" target="_blank">an
academic license</a>.
</p>
        <p>
          <strong>
          </strong>
        </p>
        <p>
          <strong>CHESS = Unit Testing of Concurrent Programs</strong>
        </p>
        <p>
CHESS is a tool that finds and reproduces “<a href="http://en.wikipedia.org/wiki/Unusual_software_bug" target="_blank">Heisenbugs</a>”
in concurrent programs (both Win32 and .NET)… You know those kind of bugs that do
not reproduce under the debugger or only in production environment, the kind of bugs
where you scratch your head for days in front of a process dump before giving up.
</p>
        <p>
I also recently recorded a great <a href="http://channel9.msdn.com/posts/Peli/Getting-started-with-CHESS-in-Visual-Studio-2008/" target="_blank">‘getting
started’ CHESS tutorial</a> for CHESS in Visual Studio Unit Test: you can take a unit
test*** and turn it into a CHESS test by adding the <strong>[HostType(“Chess”)]</strong> attribute!
</p>
        <p>
          <a href="http://blog.dotnetwiki.org/images/CHE.1releasedonDevlabsFindingandReproduc_11322/image.png">
            <img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://blog.dotnetwiki.org/images/CHE.1releasedonDevlabsFindingandReproduc_11322/image_thumb.png" width="297" height="115" />
          </a>
        </p>
        <p>
          <strong>*** </strong>That unit test should involve threads, otherwise CHESS will have
not effect.
</p>
        <p>
          <strong>CHESS and Pex</strong>
        </p>
        <p>
In order to control the scheduling of .NET programs, CHESS instruments the threading
APIs using <a href="http://research.microsoft.com/en-us/um/redmond/projects/pex/wiki/Microsoft.ExtendedReflection.html" target="_blank">ExtendedReflection</a>,
the code instrumentation framework that was built for Pex. In the future, we would
also like to combine both approach to explore data inputs and thread schedules together.
</p>
        <p>
Well enough said… go and try it out!
</p>
        <img width="0" height="0" src="http://blog.dotnetwiki.org/aggbug.ashx?id=2ba3e093-9a77-4e79-ad10-c8d29a5fb405" />
      </body>
      <title>CHESS 0.1 released on Devlabs: Finding and Reproducing Heisenbugs in Concurrent Programs</title>
      <guid isPermaLink="false">http://blog.dotnetwiki.org/PermaLink,guid,2ba3e093-9a77-4e79-ad10-c8d29a5fb405.aspx</guid>
      <link>http://blog.dotnetwiki.org/2009/01/30/CHESS01ReleasedOnDevlabsFindingAndReproducingHeisenbugsInConcurrentPrograms.aspx</link>
      <pubDate>Fri, 30 Jan 2009 20:52:08 GMT</pubDate>
      <description>&lt;p&gt;
&lt;img style="display: inline; margin-left: 0px; margin-right: 0px" align="right" src="http://research.microsoft.com/en-us/projects/chess/ChessLogoWebpage.png" /&gt;A
while ago at PDC, a couple of my colleagues presented &lt;a href="http://research.microsoft.com/chess" target="_blank"&gt;CHESS&lt;/a&gt; but
unfortunately weren’t ready to release it. Well, you don’t have to wait anymore: &lt;a href="http://msdn.microsoft.com/en-us/devlabs/cc950526.aspx" target="_blank"&gt;CHESS
is now available for download at DevLabs&lt;/a&gt; for Visual Studio 2008 Team Dev or Team
Test. CHESS comes under the same pre-release license as &lt;a href="http://research.microsoft.com/pex" target="_blank"&gt;Pex&lt;/a&gt; or
under &lt;a href="http://research.microsoft.com/en-us/projects/chess/download.aspx" target="_blank"&gt;an
academic license&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;CHESS = Unit Testing of Concurrent Programs&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
CHESS is a tool that finds and reproduces “&lt;a href="http://en.wikipedia.org/wiki/Unusual_software_bug" target="_blank"&gt;Heisenbugs&lt;/a&gt;”
in concurrent programs (both Win32 and .NET)… You know those kind of bugs that do
not reproduce under the debugger or only in production environment, the kind of bugs
where you scratch your head for days in front of a process dump before giving up.
&lt;/p&gt;
&lt;p&gt;
I also recently recorded a great &lt;a href="http://channel9.msdn.com/posts/Peli/Getting-started-with-CHESS-in-Visual-Studio-2008/" target="_blank"&gt;‘getting
started’ CHESS tutorial&lt;/a&gt; for CHESS in Visual Studio Unit Test: you can take a unit
test*** and turn it into a CHESS test by adding the &lt;strong&gt;[HostType(“Chess”)]&lt;/strong&gt; attribute!
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.dotnetwiki.org/images/CHE.1releasedonDevlabsFindingandReproduc_11322/image.png"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://blog.dotnetwiki.org/images/CHE.1releasedonDevlabsFindingandReproduc_11322/image_thumb.png" width="297" height="115" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;*** &lt;/strong&gt;That unit test should involve threads, otherwise CHESS will have
not effect.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;CHESS and Pex&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
In order to control the scheduling of .NET programs, CHESS instruments the threading
APIs using &lt;a href="http://research.microsoft.com/en-us/um/redmond/projects/pex/wiki/Microsoft.ExtendedReflection.html" target="_blank"&gt;ExtendedReflection&lt;/a&gt;,
the code instrumentation framework that was built for Pex. In the future, we would
also like to combine both approach to explore data inputs and thread schedules together.
&lt;/p&gt;
&lt;p&gt;
Well enough said… go and try it out!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.dotnetwiki.org/aggbug.ashx?id=2ba3e093-9a77-4e79-ad10-c8d29a5fb405" /&gt;</description>
      <comments>http://blog.dotnetwiki.org/CommentView,guid,2ba3e093-9a77-4e79-ad10-c8d29a5fb405.aspx</comments>
      <category>CHESS</category>
      <category>Pex</category>
      <category>RiSE</category>
    </item>
  </channel>
</rss>