<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" 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:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>Testing</title>
        <link>http://geekswithblogs.net/mattjgilbert/category/9260.aspx</link>
        <description>Testing</description>
        <language>en-GB</language>
        <copyright>mattjgilbert</copyright>
        <managingEditor>mattjgilbert@yahoo.co.uk</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <item>
            <title>More testing help</title>
            <link>http://geekswithblogs.net/mattjgilbert/archive/2008/12/15/more-testing-help.aspx</link>
            <description>Following on from my post last week with a set of guidelines for testing in the BizTalk world, Michael Stephenson also has a series of posts discussing some of these areas in more detail &lt;a href="http://geekswithblogs.net/michaelstephenson/archive/2008/12/12/127828.aspx"&gt;here&lt;/a&gt;. He has also started to look at some of the offerings with BizTalk 2009 which has new support for Unit tests out-the-box. &lt;img src="http://geekswithblogs.net/mattjgilbert/aggbug/127897.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>mattjgilbert</dc:creator>
            <guid>http://geekswithblogs.net/mattjgilbert/archive/2008/12/15/more-testing-help.aspx</guid>
            <pubDate>Mon, 15 Dec 2008 17:21:31 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/mattjgilbert/comments/127897.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/mattjgilbert/archive/2008/12/15/more-testing-help.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/mattjgilbert/comments/commentRss/127897.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Shortfalls in testing</title>
            <link>http://geekswithblogs.net/mattjgilbert/archive/2008/12/10/shortfalls-in-testing.aspx</link>
            <description>&lt;p&gt;&lt;font face="Arial"&gt;We’ve been working internally to ensure we have a good story when it comes to testing our Integration solutions. We identified short-comings in our ability to confidently regression test changes and also to capacity plan and predict future growth and resource needs. Too tackle this we have been working on a testing framework for running unit tests, integration tests and load/stress tests using tools like &lt;a target="_blank" href="http://www.codeplex.com/bizunit"&gt;BizUnit&lt;/a&gt; and &lt;a target="_blank" href="http://www.microsoft.com/downloads/details.aspx?familyid=C8AF583F-7044-48DB-B7B9-969072DF1689&amp;amp;displaylang=en"&gt;LoadGen&lt;/a&gt;. While doing one of our bi-weekly reviews with the development team it struck me that while the foundations to the test framework were in place and were being used, the actual quality of the tests being create and the coverage was really poor. In many cases a simple “pick up the message and does it get there” test was all that existed.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;With this in mind I’ve put together a set of guidelines/considerations for our developers for when they are putting tests together. There are some general ones and some BizTalk specific ones and are currently focused more around unit testing and integration testing. We will do another set for performance and stress testing at a later date.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;Here’s our first stab at a list of considerations. I’ve not doubt we have missed a lot but we’ll see how it goes.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;&lt;strong&gt;&lt;u&gt;General Considerations&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;
Separate testing code from the code being tested&lt;br /&gt;
Is the unit testing code under source control?&lt;br /&gt;
Can all test methods run autonomously so they don’t rely on other test or require that they are run in a particular order?&lt;br /&gt;
Is every test able to run over and over again, in any order, and produce the same results?&lt;br /&gt;
Make use of both positive and negative testing:&lt;br /&gt;
  Exercise the code as intended and verify the right result&lt;br /&gt;
  Deliberately misuse the code and verify correct error handling&lt;br /&gt;
&lt;/font&gt;&lt;font face="Arial"&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;Have you included range tests (minimum and maximum values)?&lt;br /&gt;
Have you tested cascade effects (other updates and effects on systems other than the direct result/output of the code being tested)?&lt;br /&gt;
Have you tested validation rules? (e.g. regex or date validation)&lt;br /&gt;
Are the tests self documenting: do they have meaningful names? Do you have a consistent and clear naming convention?&lt;br /&gt;
Do test and test fixtures cleanly set-up and take down any test data or configuration they require to run? Do they leave the system in the same state it was prior to tests being executed?&lt;br /&gt;
Do you only have single assertions as part of a test?&lt;br /&gt;
Are any new test steps you have created generic and reusable in other projects? &lt;br /&gt;
Do you need to document custom test steps?&lt;br /&gt;
Have you included test data from a range of locales/encoding types (ANSI, EPSIDIC, full unicode) that involved systems may be using?&lt;br /&gt;
 &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;&lt;strong&gt;&lt;u&gt;Specific Considerations&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;
Have you tested every message is delivered correctly?&lt;br /&gt;
Have you validated that the delivered message structure is correct?&lt;br /&gt;
Have you tested message are delivered to the correct place?&lt;br /&gt;
Have you tested each piece of validation logic?&lt;br /&gt;
Have you tested valid and invalid inputs and data for validated fields?&lt;br /&gt;
Have you tested invalid structures?&lt;br /&gt;
Have you tested invalid or missing reference data?&lt;br /&gt;
Have you tested message splitting if required?&lt;br /&gt;
Have you tested transformations work as expected?&lt;br /&gt;
Have you tested orchestrations work as expected? &lt;br /&gt;
  That they handle any discussions with other systems (e.g. enrichment) consistently?&lt;br /&gt;
  Compensation and Error handling works as expected?&lt;br /&gt;
  Transactions work as expected? &lt;br /&gt;
&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;Have you tested multiple subscribers receive the message as expected?&lt;br /&gt;
Have you written tests for custom components?&lt;br /&gt;
Have you tested Pipelines work as expected? &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;&lt;/font&gt; &lt;/p&gt; &lt;img src="http://geekswithblogs.net/mattjgilbert/aggbug/127788.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>mattjgilbert</dc:creator>
            <guid>http://geekswithblogs.net/mattjgilbert/archive/2008/12/10/shortfalls-in-testing.aspx</guid>
            <pubDate>Wed, 10 Dec 2008 18:04:10 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/mattjgilbert/comments/127788.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/mattjgilbert/archive/2008/12/10/shortfalls-in-testing.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/mattjgilbert/comments/commentRss/127788.aspx</wfw:commentRss>
        </item>
    </channel>
</rss>
