<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Rusty Miller's blog</title><link>http://blogs.msdn.com/b/rustym/</link><description /><dc:language>en-US</dc:language><generator>Telligent Evolution Platform Developer Build (Build: 5.6.50428.7875)</generator><item><title>Tools we used to test C# during VS2005</title><link>http://blogs.msdn.com/b/rustym/archive/2006/02/09/528860.aspx</link><pubDate>Thu, 09 Feb 2006 23:14:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:528860</guid><dc:creator>rustym</dc:creator><slash:comments>7</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/rustym/rsscomments.aspx?WeblogPostID=528860</wfw:commentRss><comments>http://blogs.msdn.com/b/rustym/archive/2006/02/09/528860.aspx#comments</comments><description>&lt;p class=MsoNormal&gt;&lt;font face=Verdana color=navy size=2&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Verdana"&gt;During this last product cycle the C# test team faced some interesting testing challenges.&amp;nbsp; Below is a recap from some of tools written by the C# test team for Visual C# and Visual Studio 2005.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;b&gt;&lt;font face=Verdana color=navy size=2&gt;&lt;span style="FONT-WEIGHT: bold; FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Verdana"&gt;&lt;br /&gt;CompilerFX: &lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;font face=Verdana color=navy size=2&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Verdana"&gt;One of the big challenges of testing a compiler and other language related features of the IDE is that numerous combinations of syntax that are possible to combine. &amp;nbsp;To help solve this problem, we created CompilerFx.&amp;nbsp; CompilerFx is an internal test tool that enables programmatic access to the C# AST (abstract syntax tree).&amp;nbsp; It is written in C# and exposes nodes, the symbol table and annotated parse tree through a rich object model.&amp;nbsp; It has various helper APIs that enables querying the code context easily.&amp;nbsp; The AST information is dumped by the C# Compiler; this enables the tool to have access to the latest language features as soon as they are available.&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face=Verdana color=navy size=2&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Verdana"&gt;Having the C# AST opened up the opportunity for automatically generating tests.&amp;nbsp; Knowing the code context by querying the AST, we are able to recognize interesting code points such as a method invocation and its return type and then generate test cases based on that.&amp;nbsp; This is powerful when it can be done across an existing test suite of 20,000 compiler tests.&amp;nbsp; Since these new compiler tests are compiled and run, we would expect test execution to continue to pass, since the semantics of the code should change.&amp;nbsp; During the VS2005 product cycle CompilerFX based tools found close to 100 bugs across features including the compiler, the refactoring engine, edit and continue, and code formatting.&amp;nbsp; &amp;nbsp;Testing using the AST has a lot of potential and is a place we’ll continue to invest.&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class=MsoNormal&gt;&lt;b&gt;&lt;font face=Verdana color=navy size=2&gt;&lt;span style="FONT-WEIGHT: bold; FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Verdana"&gt;&lt;br /&gt;TAO: Test Automation Object&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;font face=Verdana color=navy size=2&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Verdana"&gt;An important part of what a QA team does is automating test scenarios, many of which require manipulating the user interface. Over time we have created internal tools based mostly on Active Accessibility to do so. A common and significant problem with these tools is synchronizing the tests with the target application; writing very robust tests using this method has not always been easy. When the product UI changes, it often breaks tests and simple focus issues on the test machine can cause false positives.&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face=Verdana color=navy size=2&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Verdana"&gt;Trying to circumvent this problem the C# test team created TAO (Test Automation Object). &amp;nbsp;TAO is basically a test object in the language services that is only instantiated in a test environment. &amp;nbsp;TAO differs from previous efforts in the following ways:&lt;/span&gt;&lt;/font&gt;&lt;font face=Verdana&gt;&lt;span style="FONT-FAMILY: Verdana"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN-LEFT: 0.75in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo2"&gt;&lt;font face=Symbol color=navy size=2&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;·&lt;font face="Times New Roman" size=1&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;i&gt;&lt;font face=Verdana color=navy size=2&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: navy; FONT-STYLE: italic; FONT-FAMILY: Verdana"&gt;Separation between tests and execution engine:&lt;/span&gt;&lt;/font&gt;&lt;/i&gt;&lt;font face=Verdana color=navy size=2&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Verdana"&gt; TAO tests are written in XML making them independent of the engine that executes them. &amp;nbsp;&amp;nbsp;This is really a data driven test.&amp;nbsp; This abstraction also enables us to use the same tests to verify a feature through the UI (with a more traditional UI manipulation technique) or through an API.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN-LEFT: 0.75in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo2"&gt;&lt;font face=Symbol size=3&gt;&lt;span style="FONT-SIZE: 12pt; FONT-FAMILY: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;·&lt;font face="Times New Roman" size=1&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;i&gt;&lt;font face=Verdana color=navy size=2&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: navy; FONT-STYLE: italic; FONT-FAMILY: Verdana"&gt;Bypass the UI:&lt;/span&gt;&lt;/font&gt;&lt;/i&gt;&lt;font face=Verdana color=navy size=2&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Verdana"&gt; &amp;nbsp;TAO does not interact with the product through the traditional approach using Windows messages or Active Accessibility talking to the UI controls. &amp;nbsp;Instead it drives the product through a lower level test interface that enables it to reach functionality without having to mimic a user’s actions. Through these APIs tests can also obtain more detailed information on the product state including events and internal data structures.&lt;/span&gt;&lt;/font&gt;&lt;font face=Verdana&gt;&lt;span style="FONT-FAMILY: Verdana"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN-LEFT: 0.75in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo2"&gt;&lt;font face=Symbol color=navy size=2&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;·&lt;font face="Times New Roman" size=1&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;i&gt;&lt;font face=Verdana color=navy size=2&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: navy; FONT-STYLE: italic; FONT-FAMILY: Verdana"&gt;Performance:&lt;/span&gt;&lt;/font&gt;&lt;/i&gt;&lt;font face=Verdana color=navy size=2&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Verdana"&gt; &amp;nbsp;You might not consider performance as a critical feature of a test; however, we are finding more and more that the usefulness of a test depends a lot on how quickly it can run.&amp;nbsp; TAO tests execute about 4 times faster than the traditional UI based tests.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN-LEFT: 0.75in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo2"&gt;&lt;font face=Symbol color=navy size=2&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;·&lt;font face="Times New Roman" size=1&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;i&gt;&lt;font face=Verdana color=navy size=2&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: navy; FONT-STYLE: italic; FONT-FAMILY: Verdana"&gt;Efficient to write:&lt;/span&gt;&lt;/font&gt;&lt;/i&gt;&lt;font face=Verdana color=navy size=2&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Verdana"&gt;&amp;nbsp; TAO tests take about half as long to write as a traditional UI test.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class=MsoNormal&gt;&lt;b&gt;&lt;font face=Verdana color=navy size=2&gt;&lt;span style="FONT-WEIGHT: bold; FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Verdana"&gt;&lt;br /&gt;DELTA: Debugger Engine Level Test Automation&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;font face=Verdana color=navy size=2&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Verdana"&gt;During VS2002, VS2003 and most of VS2005 the Debugger was tested mainly using an UI-based approach, driving the product through the UI exercising the test scenarios. DELTA is an engine level test library developed in C# that communicates with and drives the lower level debugger components through a set of API’s exposed by the Microsoft.VisualStudio.Debugger.Interop.dll. DELTA creates an instance of the Session Debug Manager (“SDM”) component of the debugger which is a dispatcher between the UI and the various lower level components called “debug engines”. &amp;nbsp;DELTA uses this instance of the SDM to perform various debugging actions such as launching an executable or attaching to an already running one, controlling the execution flow through stepping or breakpoints or manipulating the current state through locals, call stack or threads information. DELTA tests have all the benefits of non-UI automation such as very fast execution and significantly increased robustness. &amp;nbsp;We found that the cost of writing a Delta test was about the same as the UI approach, however, the DELTA test was about 30 times faster to execute. This makes sense when you consider that it’s only loading a small fraction of the DLL’s loaded in VS2005. &amp;nbsp;&amp;nbsp;By targeting the lower level debugger components, DELTA enables us to specifically target components in our testing. &amp;nbsp;One of the biggest benefits is that these test are very robust and fast, which make them useful for checkin tests in addition to running as part of distributed test automation runs.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class=MsoNormal&gt;&lt;font face=Verdana color=navy size=2&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Verdana"&gt;&lt;br /&gt;If you passionate about writing tools and implementing creative ways to test, check out &lt;/span&gt;&lt;/font&gt;&lt;font face=Verdana size=2&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;a title=http://members.microsoft.com/careers/search/results.aspx?FromCP=Y&amp;amp;JobCategoryCodeID=&amp;amp;JobLocationCodeID=&amp;amp;JobProductCodeID=10207&amp;amp;JobTitleCodeID=10540,10300,10299&amp;amp;Divisions=&amp;amp;TargetLevels=&amp;amp;Keywords=&amp;amp;JobCode=&amp;amp;ManagerAlias=&amp;amp;Interval=10 href="http://members.microsoft.com/careers/search/results.aspx?FromCP=Y&amp;amp;JobCategoryCodeID=&amp;amp;JobLocationCodeID=&amp;amp;JobProductCodeID=10207&amp;amp;JobTitleCodeID=10540,10300,10299&amp;amp;Divisions=&amp;amp;TargetLevels=&amp;amp;Keywords=&amp;amp;JobCode=&amp;amp;ManagerAlias=&amp;amp;Interval=10"&gt;C# job openings (external)&lt;/a&gt;.&amp;nbsp; &lt;font color=navy&gt;&lt;span style="COLOR: navy"&gt;You can send your résumé to&lt;/span&gt;&lt;/font&gt; &lt;a title=mailto:vcsjobs@microsoft.com href="mailto:vcsjobs@microsoft.com"&gt;vcsjobs@microsoft.com&lt;/a&gt; &lt;font color=navy&gt;&lt;span style="COLOR: navy"&gt;or directly to &lt;a href="mailto:rustym@microsoft.com"&gt;me&lt;/a&gt;, &lt;/span&gt;&lt;/font&gt;&lt;font color=navy&gt;&lt;span style="COLOR: navy"&gt;I would love to hear your feedback.&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=528860" width="1" height="1"&gt;</description></item><item><title>Customer bugs - list of fixes</title><link>http://blogs.msdn.com/b/rustym/archive/2005/05/18/419807.aspx</link><pubDate>Thu, 19 May 2005 03:22:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:419807</guid><dc:creator>rustym</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/rustym/rsscomments.aspx?WeblogPostID=419807</wfw:commentRss><comments>http://blogs.msdn.com/b/rustym/archive/2005/05/18/419807.aspx#comments</comments><description>&lt;P class=MsoNormal&gt;&lt;SPAN&gt;To follow up from the previous post, &lt;A href="http://www.danfernandez.com/view/view.aspx?ID=137"&gt;here&lt;/A&gt; are&amp;nbsp;all the fixed &lt;B&gt;C#&lt;/B&gt; and &lt;B&gt;Visual Studio Debugger&lt;/B&gt; bugs reported through &lt;A href="http://lab.msdn.microsoft.com/productfeedback/"&gt;MSDN Product Feedback&lt;/A&gt;&amp;nbsp;for Beta1 and the CTP's (this doesn't include bugs entered on Beta2).&lt;BR&gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN&gt;The top bug reporters for C# and the Debugger are:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal dir=ltr&gt;&lt;SPAN&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;TAG 7&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;STRONG&gt;Werdna 4&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;STRONG&gt;Bob Cohen 3&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;STRONG&gt;Keith Hill 3&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;STRONG&gt;Jouko Kynsijrvi 3&lt;BR&gt;&lt;BR&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN&gt;Thanks to everyone that reported a bug!&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal dir=ltr&gt;&lt;SPAN&gt;- Rusty&lt;/SPAN&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=419807" width="1" height="1"&gt;</description></item><item><title>Customer bugs - results</title><link>http://blogs.msdn.com/b/rustym/archive/2005/04/28/413063.aspx</link><pubDate>Thu, 28 Apr 2005 17:32:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:413063</guid><dc:creator>rustym</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/rustym/rsscomments.aspx?WeblogPostID=413063</wfw:commentRss><comments>http://blogs.msdn.com/b/rustym/archive/2005/04/28/413063.aspx#comments</comments><description>&lt;P class=MsoNormal&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN&gt;Almost 9 months after shipping Beta1, Beta2 is shipped and in&amp;nbsp;your hands.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;One big difference between VS2005 Beta1 and betas of our previous products has been the amount of community involvement.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;Beta1 was the debut of the &lt;A href="http://lab.msdn.microsoft.com/productfeedback/"&gt;MSDN Product Feedback Center&lt;/A&gt;, which improved upon the previous bug reporting mechanism in a couple key ways:&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN&gt;It improved transparency through the way it synchronizes data back and forth from our internal bug database to the MSDN Product Feedback site. In particular it enabled MS employee’s to add comments to bug reports, which get pushed out to you.&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN&gt;It (finally) provided a more objective way to rank issues through voting and the importance rating.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;This gave us a better picture of how many users were affected a particular issue.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt; &lt;/DIV&gt;
&lt;LI class=MsoNormal&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN&gt;Now that it was opened to the public (as opposed to you only being able to see your own bugs), it encouraged sharing workarounds, searching for duplicates before entering bugs and discussing/debating a particular issue through discussion threads.&lt;/SPAN&gt;&lt;/FONT&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P class=MsoNormal dir=ltr&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN&gt;This helped remove some of the barriers between the internal product team and customers.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;The results so far have been great!&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;Here is a summary of the resolutions of &lt;B&gt;&lt;SPAN&gt;C#&lt;/SPAN&gt;&lt;/B&gt; and the &lt;B&gt;&lt;SPAN&gt;Visual Studio Debugger&lt;/SPAN&gt;&lt;/B&gt; feedback.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;I’ve also included resolutions for bugs entered by MS employees for the same period&amp;nbsp;for comparison.&lt;BR&gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;B&gt;&lt;FONT face=Arial&gt;&lt;SPAN&gt;Resolution of bugs reported since Beta1:&lt;BR&gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;B&gt;&lt;FONT face=Arial&gt;&lt;SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal dir=ltr&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN&gt;
&lt;TABLE cellSpacing=1 cellPadding=1&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;STRONG&gt;IssueType&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;STRONG&gt;Source&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;STRONG&gt;Total&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;STRONG&gt;&lt;FONT color=#006400&gt;Fixed&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;STRONG&gt;Postponed&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;STRONG&gt;Won'tFix&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;STRONG&gt;ByDesign&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;STRONG&gt;NotRepro&lt;/STRONG&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;CodeDefects&lt;/TD&gt;
&lt;TD&gt;&lt;FONT color=#a52a2a&gt;MSDNFeedback&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;FONT color=#a52a2a&gt;555&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;FONT color=#006400&gt;240&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;FONT color=#a52a2a&gt;59&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;FONT color=#a52a2a&gt;8&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;FONT color=#a52a2a&gt;101&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;FONT color=#a52a2a&gt;142&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT color=#a52a2a&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;FONT color=#a52a2a&gt;MSDNFeedback&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;FONT color=#a52a2a&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;FONT color=#006400&gt;43%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;FONT color=#a52a2a&gt;11%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;FONT color=#a52a2a&gt;1%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;FONT color=#a52a2a&gt;18%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;FONT color=#a52a2a&gt;26%&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;EM&gt;&lt;FONT color=#0000ff&gt;Internal&lt;/FONT&gt;&lt;/EM&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;EM&gt;&lt;/EM&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;EM&gt;&lt;FONT color=#006400&gt;45%&lt;/FONT&gt;&lt;/EM&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;EM&gt;&lt;FONT color=#0000ff&gt;11%&lt;/FONT&gt;&lt;/EM&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;EM&gt;&lt;FONT color=#0000ff&gt;4%&lt;/FONT&gt;&lt;/EM&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;EM&gt;&lt;FONT color=#0000ff&gt;10%&lt;/FONT&gt;&lt;/EM&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;EM&gt;&lt;FONT color=#0000ff&gt;10%&lt;/FONT&gt;&lt;/EM&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Suggestions/DCRs&lt;/TD&gt;
&lt;TD&gt;&lt;FONT color=#a52a2a&gt;MSDNFeedback&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;FONT color=#a52a2a&gt;&amp;nbsp;567&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;FONT color=#006400&gt;51&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;FONT color=#a52a2a&gt;286&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;FONT color=#a52a2a&gt;39&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;FONT color=#a52a2a&gt;131&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;FONT color=#a52a2a&gt;45&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT color=#a52a2a&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;FONT color=#a52a2a&gt;MSDNFeedback&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;FONT color=#a52a2a&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;FONT color=#006400&gt;9%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;FONT color=#a52a2a&gt;50%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;FONT color=#a52a2a&gt;7%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;FONT color=#a52a2a&gt;23%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;FONT color=#a52a2a&gt;8%&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;EM&gt;&lt;FONT color=#0000ff&gt;Internal&lt;/FONT&gt;&lt;/EM&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;EM&gt;&lt;/EM&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;EM&gt;&lt;FONT color=#006400&gt;23%&lt;/FONT&gt;&lt;/EM&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;EM&gt;&lt;FONT color=#0000ff&gt;45%&lt;/FONT&gt;&lt;/EM&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;EM&gt;&lt;FONT color=#0000ff&gt;13%&lt;/FONT&gt;&lt;/EM&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;EM&gt;&lt;FONT color=#0000ff&gt;8%&lt;/FONT&gt;&lt;/EM&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;EM&gt;&lt;FONT color=#0000ff&gt;3%&lt;/FONT&gt;&lt;/EM&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;&lt;BR&gt;&lt;BR&gt;For code defects, the fixed and postponed rates are almost the same between bugs reported through MSDN Feedback and those reported internally.&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;I think the higher “Not Repro” rate for MSDN Feedback code defects is due to having older builds compared with internal teams.&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Getting your bug reports improves the product is two key ways.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;First, obviously, it identifies specific issues that we missed through our normal testing, but need to fix.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;Test teams employ a variety of &lt;a href="http://blogs.msdn.com/rustym/archive/2005/04/19/409782.aspx"&gt;test activities&lt;/A&gt; in the course of their testing, but even then it’s hard to find all the issues (or know which ones to fix) before it goes out in Beta.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;The second way it improves the product is by identifying deficiencies in our test approach, which we can then address in our processes so that the next milestone doesn’t suffer the same class of problems.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;We are currently in the process of doing a test hole analysis for these MSDN Feedback bugs to see if there are trends or patterns to the bugs we missed.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;Getting beta and early adopter coverage is really&amp;nbsp;important part of our strategy for testing the product and improving how we develop software.&lt;BR&gt;&lt;BR&gt;Suggestions and Design Change Request (DCRs) are less of an apples-to-apples comparison with internally entered suggestions.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;The first observation is that a lot more suggestions are entered through MSDN Feedback Center in percentage and total than MS employees enter internally.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;Over half of MSDN Feedback reports are suggestions, but internal suggestions account for less than 5% of the total.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;I think a lot of the “suggestions” internally are expressed through email and hallway conversations instead of bug reports.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;I think the best forum for suggestions is really through the community anyway.&amp;nbsp; The MSDN Feedback site enables us to objectively rank what is important to you through voting and the importance rating.&amp;nbsp; This has been useful in weighing the different suggestions and as a result we’ve been able to act on your feedback – the two notable examples being &lt;A href="http://lab.msdn.microsoft.com/ProductFeedback/viewFeedback.aspx?feedbackid=bbbf7d31-204c-4a93-af08-fb80328fbe86"&gt;C# EnC&lt;/A&gt; (399 votes) and &lt;A href="http://lab.msdn.microsoft.com/productfeedback/viewfeedback.aspx?feedbackid=4ceba825-a7d0-4ed2-9164-827dbc24deeb"&gt;Update Icon sets&lt;/A&gt; (813 votes), the #1 and #2 voted items.&lt;BR&gt;&lt;BR&gt;&lt;SPAN&gt;Overally, I’ve been impressed with the quality of the bug reports and the volume of reports has been manageable.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;In my next post I'll include the list of fixed C# and Debugger bugs.&lt;BR&gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN&gt;- Rusty Miller&lt;BR&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN&gt;Visual C# Test Manager&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=413063" width="1" height="1"&gt;</description></item><item><title>Recruiting</title><link>http://blogs.msdn.com/b/rustym/archive/2005/04/21/410495.aspx</link><pubDate>Thu, 21 Apr 2005 18:37:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:410495</guid><dc:creator>rustym</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/rustym/rsscomments.aspx?WeblogPostID=410495</wfw:commentRss><comments>http://blogs.msdn.com/b/rustym/archive/2005/04/21/410495.aspx#comments</comments><description>&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;FONT face=Verdana&gt;I love going out to college campuses and meeting students, chatting about their projects and giving them a coding problem or two.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;Every college has its only flavor and emphasis - some focus on Java, others C or C++, and some C#.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;The programming language doesn’t really matter – they all give us a chance to talk about a coding problem, tradeoffs with optimization and interesting things to test. &lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;There are hands-on schools where coding skills are quite good while others tend to be more theoretical and students have less coding experience.&amp;nbsp;&lt;SPAN&gt;&amp;nbsp;In general, c&lt;/SPAN&gt;oding skills aren’t as important as problem solving, raw smarts, and of course a passion for software.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;Technologies and even languages come and go, so your ability to learn and ramp up on the next&amp;nbsp;technology or language&amp;nbsp;is more important that deep skills in the technology of the day if you can't learn the next. &lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;This last Winter I made a visit to the University of Waterloo, Ontario.&lt;SPAN&gt;&amp;nbsp;(We have several Waterloo alums on C# team.)&amp;nbsp; Waterloo h&lt;/SPAN&gt;as a really cool coop program where students take 6-8 coops over the course of their degree.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;I never did an internship or coop during college, but wish I had – it’s a great learning experience. &lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;I also got a chance to visit Virginia Tech, another one of my favorite schools.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;While doing recruiting at colleges, we’re looking for great hires for any discipline (Developer, Developer in Test and Program Management) and any team at Microsoft.&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;FONT face=Verdana&gt;My team (C# and the VS Debugger) is looking for Developers in Test (aka SDET), which is probably the least understood discipline outside of Microsoft.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;Santosh wrote a nice &lt;/FONT&gt;&lt;a href="http://blogs.msdn.com/santoshz/archive/2005/02/03/366845.aspx"&gt;&lt;FONT face=Verdana&gt;blog entry&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana&gt; on what it’s like to be a tester at MS.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;Scott Guthrie, Product Unit Manager, of ASP.NET, also has a thorough &lt;/FONT&gt;&lt;A href="http://weblogs.asp.net/scottgu/archive/2004/10/28/249458.aspx"&gt;&lt;FONT face=Verdana&gt;description&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana&gt; of the whole testing process.&amp;nbsp; Check out the jobsblog for a couple other good descriptions (&lt;/FONT&gt;&lt;a href="http://blogs.msdn.com/jobsblog/archive/2004/05/27/143419.aspx"&gt;&lt;FONT face=Verdana&gt;Are you a good enough developer to be a Microsoft SDET?&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana&gt; and &lt;/FONT&gt;&lt;a href="http://blogs.msdn.com/jobsblog/archive/2005/01/19/356412.aspx"&gt;&lt;FONT face=Verdana&gt;3 reasons to consider SDET &lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana&gt;).&lt;SPAN&gt;&amp;nbsp; You can also listen to Peter Hauge's&amp;nbsp;&lt;a href="http://blogs.msdn.com/jobsblog/archive/2005/03.aspx"&gt;podcast&lt;/A&gt;.&amp;nbsp;&lt;/SPAN&gt;The biggest misconception about testing at Microsoft is that it’s not technical.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;I think a lot of this perception comes from people’s experience working for software companies where testers primarily do manual testing and the ratio is on the order of 1 tester for every 10 developers (or even fewer).&amp;nbsp; In those cases, testers really don't have the time to dedicate&amp;nbsp;to the technical side of testing.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;Depending on the team, the ratio at MS is&amp;nbsp;one SDET to&amp;nbsp;one SDE.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;SDET’s are essentially developers that work on the testing problem.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;One of the coolest things about the SDET role in my opinion is the mix of creativity, technical and problem solving you get to apply to most testing problems.&amp;nbsp; Many times the design and implementation is a known quantity, but the testing can be approached from many different ways - restricted to your imagination really.&lt;BR&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;FONT face=Verdana&gt;&lt;BR&gt;If you are interested in an SDET position send me your resume at &lt;A href="mailto:rustym@removeme.microsoft.com"&gt;rustym@removeme.microsoft.com&lt;/A&gt;.&amp;nbsp; Our C# and Debugger job descriptions can be found &lt;/FONT&gt;&lt;A href="http://members.microsoft.com/careers/search/results.aspx?FromCP=Y&amp;amp;JobCategoryCodeID=&amp;amp;JobLocationCodeID=&amp;amp;JobProductCodeID=10207&amp;amp;JobTitleCodeID=&amp;amp;Divisions=&amp;amp;TargetLevels=&amp;amp;Keywords=&amp;amp;JobCode=&amp;amp;ManagerAlias=&amp;amp;Interval=10"&gt;&lt;FONT face=Verdana&gt;here&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana&gt;.&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;FONT face=Verdana&gt;Rusty Miller&lt;BR&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;FONT face=Verdana&gt;Visual C# Test Manager&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=410495" width="1" height="1"&gt;</description></item><item><title>Test styles and predicting bugs</title><link>http://blogs.msdn.com/b/rustym/archive/2005/04/19/409782.aspx</link><pubDate>Tue, 19 Apr 2005 22:06:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:409782</guid><dc:creator>rustym</dc:creator><slash:comments>6</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/rustym/rsscomments.aspx?WeblogPostID=409782</wfw:commentRss><comments>http://blogs.msdn.com/b/rustym/archive/2005/04/19/409782.aspx#comments</comments><description>&lt;P&gt;&lt;SPAN&gt;&lt;FONT size=2&gt;I recently had some flight/airport time to catch up on a couple articles I've been meaning to read.&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;A href="http://www.kaner.com/pdfs/GoodTest.pdf"&gt;&lt;FONT size=2&gt;What is a good test case&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; by Cem Kaner&lt;BR&gt;This is a good summary for people new to software testing.&amp;nbsp; I'm a strong believer in using multiple "test styles" and test activities as part of an overall testing strategy.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;This paper breaks black box testing into Function, Domain, Specification, Risk-based, Stress, Regression, User, Scenario, State-model based, High volume automated and Exploratory testing.&amp;nbsp; Internally we may use different terms, but hit most of these categories in some form.&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;For example, in addition to functional testing, which is probably the dominant style, we also do stress, capacity, security, specification (feature specs as well as others Logo requirement and Accessiblity/Section 508 etc), scenario and exploratory testing.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;We do “User” testing through both dogfooding our product as well as through betas and early adopter programs.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;My team has a few pilot projects with State-model based testing, but it’s limited right at the moment.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;We have recently done a lot more high volume automated testing on our IDE features, where we take arbitrary code and apply generic tests to it.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;This has been pretty successful.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;We’ve taken our compiler test suite of 20,000+ language tests and run in through this engine and have found a number of bugs we didn’t with traditional methods.&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;A href="http://www.cs.wpi.edu/~gpollice/cs562-s05/Readings/DefectPredictionCritique.pdf"&gt;&lt;FONT size=2&gt;A Critique of Software Defect Prediction Models&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; by Norman E. Fenton and Martin Neil&lt;BR&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;A href="http://ieeexplore.ieee.org/iel5/32/19000/00877849.pdf?arnumber=877849"&gt;&lt;FONT size=2&gt;A Decision-Analytic Stopping Rule for Validation of Commercial Software Systems&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; by Tom Chávez&lt;BR&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;FONT size=2&gt;Both papers related to predicting bugs and had interesting approaches, which I want to look into more when I get more time.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;I appreciate the point in Fenton and Neil’s paper about testing effort and testability needing to be part of the equation.&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;They make a good point that variables such as developer skills are very important and can be more important than module size or complexity in bug rates.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;If these are held constant, it’s more valid, but a magic number like the “Goldilocks’s Conjecture” that says there’s an ideal module size is suspect.&lt;BR&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR&gt;&lt;FONT size=2&gt;Chávez’s stopping rule paper also sounds promising, although in general I think we are still a long way from being able to rely on numbers alone. &lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;I think we will still rely a lot on people’s experience and gut feel for setting schedules and determining when to ship.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;We do something internally (and I’m sure many other software projects out there do the same), which we call “bake-time”, where we might have zero ship stoppers at a given point in time, but we still want to wait before we ship because of the possibility of unfound bugs. &lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;Historically last minute ship stoppers have popped up due to hard to predict activities (if we knew what they were we’d do those tests ahead of time).&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Typically it’s a result of someone intentionally doing creative testing or performing a real world scenario people hadn’t thought of yet.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;It’s a challenge to anticipate what these are, but it’s this hunt that makes for some very exciting and creative testing.&lt;BR&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR&gt;&lt;FONT size=2&gt;Internally, we use a low tech but relatively accurate method of predicting bug rates with historical data.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;We look at the shape of active and incoming bug graphs from previous product cycles and incoming rates from test passes and fixed rates to help predict our dates.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;One interesting observation is that while we are driving to hit zero bugs for a even milestone, the total number of bugs stays roughly constant if add the current milestone’s bugs with the bug pushed off to the next milestone, however, the make-up of these bugs changes to weigh the low priority and lower severity variety over time.&lt;BR&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR&gt;&lt;FONT size=2&gt;I’d be interested to know if other people have implemented an bug predicting or stopping rules.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=409782" width="1" height="1"&gt;</description></item><item><title>Introduction &amp; Application Verifier</title><link>http://blogs.msdn.com/b/rustym/archive/2004/08/10/212438.aspx</link><pubDate>Wed, 11 Aug 2004 05:43:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:212438</guid><dc:creator>rustym</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/rustym/rsscomments.aspx?WeblogPostID=212438</wfw:commentRss><comments>http://blogs.msdn.com/b/rustym/archive/2004/08/10/212438.aspx#comments</comments><description>&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Hello, I'm the Test Manager for Visual C# and the Visual Studio Debugger.&amp;nbsp;&amp;nbsp; During my career at MS, I've&amp;nbsp;also worked on Win95, Visual Test, Visual J++ and Visual C++.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;In addition to blogging about what my team is up to, I'll touch on some of the other stuff I have my fingers in:&lt;BR&gt;-&amp;nbsp;Various aspects of software quality&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;- Side-by-Side (for example, VS2003 SxS with VS2005 on the same machine).&lt;BR&gt;- &lt;/FONT&gt;&lt;A href="http://lab.msdn.microsoft.com/ProductFeedback"&gt;&lt;FONT size=2&gt;MSDN Product Feedback&lt;BR&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt;- &lt;/FONT&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyID=7fc46855-b8a4-46cd-a236-3159970fde94&amp;amp;DisplayLang=en"&gt;&lt;FONT size=2&gt;Application Verifier&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt;, one of my favorite test tools&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P dir=ltr style="MARGIN-RIGHT: 0px"&gt;&lt;FONT face=Verdana&gt;&lt;/FONT&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;Which brings me to my first testing suggestion, &lt;/FONT&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyID=7fc46855-b8a4-46cd-a236-3159970fde94&amp;amp;DisplayLang=en"&gt;&lt;STRONG&gt;&lt;FONT size=2&gt;AppVerifier&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/A&gt;&lt;FONT size=2&gt;.&amp;nbsp; If you haven't given it a try already, try running your app under&amp;nbsp;AppVerifier.&amp;nbsp; If you are running on Windows XP or greater (the greater the better because more verifications are added to the OS on in later versions) you can almost immediately find bugs by running your app with this turned on.&amp;nbsp; For the &amp;#8220;core&amp;#8220; set of verifications, the tool causes your app to fail fast when it does something wrong by AV'ing immediately instead of later down the line when the bad code is long gone from the scene.&amp;nbsp;&amp;nbsp; These are the core verifications:&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P dir=ltr style="MARGIN-RIGHT: 0px"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;PageHeap:&amp;nbsp; Checks the heap for corruption and adds guard pages to the end of each allocation. This causes access violations when there are buffer overruns.&lt;BR&gt;Locks:&amp;nbsp; Checks for errors in lock usage. This might cause access violations when errors are located.&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face=Verdana&gt;Handles: Checks for handle errors. This might cause access violations when errors are located.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P dir=ltr style="MARGIN-RIGHT: 0px"&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;It can also help you make your app more secure.&amp;nbsp; See Mike Howard's &lt;/FONT&gt;&lt;A href="http://msdn.microsoft.com/security/default.aspx?pull=/library/en-us/dncode/html/secure12112003.asp"&gt;&lt;FONT size=2&gt;article&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P dir=ltr style="MARGIN-RIGHT: 0px"&gt;&lt;FONT face=Verdana size=2&gt;To get started:&lt;BR&gt;1) &lt;/FONT&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;Install the &lt;/FONT&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyID=7fc46855-b8a4-46cd-a236-3159970fde94&amp;amp;DisplayLang=en"&gt;&lt;FONT size=2&gt;Applications Compatibilty Toolkit &lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt;and run &amp;#8220;appverif&amp;#8220; from the Start.Run.&lt;BR&gt;2)&amp;nbsp;S&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Verdana size=2&gt;et the verifications you want to turn on for your EXE.&lt;BR&gt;3) You should run it under a debugger, so open your EXE in the Visual Studio Debugger (of course! :-) ) and&amp;nbsp;set up your symbol and source paths.&lt;BR&gt;4) F5&lt;BR&gt;5) Test your app.&lt;/FONT&gt;&lt;/P&gt;
&lt;P dir=ltr style="MARGIN-RIGHT: 0px"&gt;&lt;FONT face=Verdana size=2&gt;Tips:&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face=Verdana size=2&gt;1)&amp;nbsp; With PageHeap on you will need lots of extra memory.&amp;nbsp; For VS2005 we turn on all the verifications and found 1GB is needed, although I'm sure you can get by with less depending on your app.&lt;BR&gt;2)&amp;nbsp; As I mentioned, use the newest version of the OS.&amp;nbsp; I'd suggest Windows Server 2003 if you have it.&amp;nbsp; At a minimum you need Windows XP.&lt;BR&gt;3)&amp;nbsp; If you turn on verifications that output to the log file, try &amp;#8220;Break on Error&amp;#8221;.&amp;nbsp; This will give you a call stack can you can immediately see who is causing the problem.&lt;/FONT&gt;&lt;/P&gt;
&lt;P dir=ltr style="MARGIN-RIGHT: 0px"&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;Also see &lt;/FONT&gt;&lt;A href="http://www.microsoft.com/windows/appcompatibility/appverifier_faq.mspx"&gt;&lt;FONT face=Verdana size=2&gt;Appverifer FAQ&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P dir=ltr style="MARGIN-RIGHT: 0px"&gt;&lt;FONT face=Verdana size=2&gt;We use it internally and find a fair number of bugs, but it's the quality not the quanity that's important and AppVerifer can help identify those bad bugs that would otherwise reduce the stabilty of your app.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;- Rusty Miller&lt;/FONT&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=212438" width="1" height="1"&gt;</description></item></channel></rss>