<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: The Purpose of a Good Test Case</title>
	<atom:link href="http://www.testingmentor.com/imtesty/2009/11/11/the-purpose-of-a-good-test-case/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.testingmentor.com/imtesty/2009/11/11/the-purpose-of-a-good-test-case/</link>
	<description>Treatises on the practice of software testing</description>
	<lastBuildDate>Tue, 07 Feb 2012 09:15:11 -0500</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
	<item>
		<title>By: testingmentor</title>
		<link>http://www.testingmentor.com/imtesty/2009/11/11/the-purpose-of-a-good-test-case/comment-page-1/#comment-42</link>
		<dc:creator>testingmentor</dc:creator>
		<pubDate>Wed, 11 Nov 2009 18:09:06 +0000</pubDate>
		<guid isPermaLink="false">http://testingmentor.com/imtesty/2009/11/11/the-purpose-of-a-good-test-case/#comment-42</guid>
		<description>I realize that it is one example of many &#039;motivations&#039;. However, as you indicate below, &quot;...in some contexts, management does indeed value the fallacious idea that good testing equals the number of bugs discovered.&quot; 

People sometimes assume the entire message is captured in the first sentence; especially in a lengthy paper. This is why outrageous statements simply fuel the ignorance of the misinformed. 

- Bj - 
Sunday, October 01, 2006 3:48 PM by I.M.Testy</description>
		<content:encoded><![CDATA[<p>I realize that it is one example of many &#8216;motivations&#8217;. However, as you indicate below, &#8220;&#8230;in some contexts, management does indeed value the fallacious idea that good testing equals the number of bugs discovered.&#8221; </p>
<p>People sometimes assume the entire message is captured in the first sentence; especially in a lengthy paper. This is why outrageous statements simply fuel the ignorance of the misinformed. </p>
<p>- Bj &#8211;<br />
Sunday, October 01, 2006 3:48 PM by I.M.Testy</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: testingmentor</title>
		<link>http://www.testingmentor.com/imtesty/2009/11/11/the-purpose-of-a-good-test-case/comment-page-1/#comment-41</link>
		<dc:creator>testingmentor</dc:creator>
		<pubDate>Wed, 11 Nov 2009 18:08:13 +0000</pubDate>
		<guid isPermaLink="false">http://testingmentor.com/imtesty/2009/11/11/the-purpose-of-a-good-test-case/#comment-41</guid>
		<description>&gt;(BTW..this is why I disagree with Kaner&#039;s assertion that we test to &quot;maximize bug count.&quot;) 

You seem to miss the point that this is a single example on a list of many possible motivations for testing.  &lt;i&gt;Sometimes&lt;/i&gt; we &lt;i&gt;might&lt;/i&gt; test with the goal of maximizing the bug count.  Moreover, I don&#039;t think he&#039;s talking at that point about artificially or misleadingly inflating the bug count; I think he&#039;s making a distinction between, given the same amount of time finding a few really super-important bugs, investigating and reporting them in great detail; and finding a whole bunch of bugs (with distinct root causes) irrespective of their relative importance, and investigating and reporting them in somewhat less detail than in the first case. 

Note that in some contexts, management does indeed value the fallacious idea that good testing equals the number of bugs discovered.  There is much education to be done there, for sure.  In my view, counting bugs (or test cases) is a practical guarantee that someone will be misled. 

---Michael B. 
Saturday, September 30, 2006 3:37 AM by Michael Bolton</description>
		<content:encoded><![CDATA[<p>>(BTW..this is why I disagree with Kaner&#8217;s assertion that we test to &#8220;maximize bug count.&#8221;) </p>
<p>You seem to miss the point that this is a single example on a list of many possible motivations for testing.  <i>Sometimes</i> we <i>might</i> test with the goal of maximizing the bug count.  Moreover, I don&#8217;t think he&#8217;s talking at that point about artificially or misleadingly inflating the bug count; I think he&#8217;s making a distinction between, given the same amount of time finding a few really super-important bugs, investigating and reporting them in great detail; and finding a whole bunch of bugs (with distinct root causes) irrespective of their relative importance, and investigating and reporting them in somewhat less detail than in the first case. </p>
<p>Note that in some contexts, management does indeed value the fallacious idea that good testing equals the number of bugs discovered.  There is much education to be done there, for sure.  In my view, counting bugs (or test cases) is a practical guarantee that someone will be misled. </p>
<p>&#8212;Michael B.<br />
Saturday, September 30, 2006 3:37 AM by Michael Bolton</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: testingmentor</title>
		<link>http://www.testingmentor.com/imtesty/2009/11/11/the-purpose-of-a-good-test-case/comment-page-1/#comment-40</link>
		<dc:creator>testingmentor</dc:creator>
		<pubDate>Wed, 11 Nov 2009 18:07:51 +0000</pubDate>
		<guid isPermaLink="false">http://testingmentor.com/imtesty/2009/11/11/the-purpose-of-a-good-test-case/#comment-40</guid>
		<description>Hi Michael, 

Yes, I realize that Kaner has changed his view (and more recently he also changed his view of tester&#039;s need for programming skills). The use of the quote was not to disparage Cem. My comment is meant to point out the fact that a common misconception regarding testing as simply a bug-finding activity was sometimes perpetuated by leading industry experts and I thought the quote from Testing Computer Software 2nd. Ed. epitomized this limited view of the role of software testing. 

I design a test case based on the intended purpose of proving or disproving consistency with established facts that are known or can be determined). A test case may comprise several &#039;tests&#039; which support the test case. 

For example, if I am testing an edit control&#039;s ability to handle strings composed of valid Unicode characters, then I would iterate through an array, or enumeration, or data file of static strings containing valid characters derived from failure analysis models, then I would auto-generate strings of random length and random valid characters for subsequent iterations of that test case. (NOTE: The explicit purpose here is to validate proper handling of valid Unicode strings &gt; minLength and &lt; maxLength. I am not including boundary testing, invalid characters, or a myriad of other tests that I would also run.) 

If one of the tests fail, then that test case fails. If some of the tests fail, then that test case fails. (If they all fail, the project is probably in big trouble!) 

For example, let&#039;s assume the edit control isn&#039;t Unicode enabled. Some of the &#039;tests&#039; might pass (those with characters limited to the underlying supported ANSI character set), but the vast majority of the &#039;tests&#039; will fail. Let&#039;s say there are 250 unique static strings we are going to use in our test case, and 225 strings contain characters that are outside the range of supported ANSI characters for that test environment. Do I write 225 bugs; one for every failure? 

Absolutely not! That is simply a misrepresentation and artificial inflation of the number of defects. The root cause is that the edit control is not Unicode enabled. We don&#039;t need to tell the developer the control is not Unicode enabled 225 times (because if we do  the developer will justifiably resolve 224 of the bugs as a duplicates! (Assuming the same root cause.)) (BTW..this is why I disagree with Kaner&#039;s assertion that we test to &quot;maximize bug count.&quot;) 

A bug can manifest itself in many ways. A professional tester will troubleshoot the problem to isolate the cause and identify different paths, variations, or symptoms so the defect report provides more detailed information and enable the developer to effect a better fix. Flooding the developer with several bugs all pointing to a single root cause only serves to artificially inflate the defect tracking database (again reinforcing the fallacious idea that testing is valued by the number of bugs discovered), and discredits professional testers who understand their overall value to an organization is not determined simply by the number of bugs they write.

Thursday, September 21, 2006 6:07 PM by I.M.Testy</description>
		<content:encoded><![CDATA[<p>Hi Michael, </p>
<p>Yes, I realize that Kaner has changed his view (and more recently he also changed his view of tester&#8217;s need for programming skills). The use of the quote was not to disparage Cem. My comment is meant to point out the fact that a common misconception regarding testing as simply a bug-finding activity was sometimes perpetuated by leading industry experts and I thought the quote from Testing Computer Software 2nd. Ed. epitomized this limited view of the role of software testing. </p>
<p>I design a test case based on the intended purpose of proving or disproving consistency with established facts that are known or can be determined). A test case may comprise several &#8216;tests&#8217; which support the test case. </p>
<p>For example, if I am testing an edit control&#8217;s ability to handle strings composed of valid Unicode characters, then I would iterate through an array, or enumeration, or data file of static strings containing valid characters derived from failure analysis models, then I would auto-generate strings of random length and random valid characters for subsequent iterations of that test case. (NOTE: The explicit purpose here is to validate proper handling of valid Unicode strings > minLength and < maxLength. I am not including boundary testing, invalid characters, or a myriad of other tests that I would also run.) </p>
<p>If one of the tests fail, then that test case fails. If some of the tests fail, then that test case fails. (If they all fail, the project is probably in big trouble!) </p>
<p>For example, let&#8217;s assume the edit control isn&#8217;t Unicode enabled. Some of the &#8216;tests&#8217; might pass (those with characters limited to the underlying supported ANSI character set), but the vast majority of the &#8216;tests&#8217; will fail. Let&#8217;s say there are 250 unique static strings we are going to use in our test case, and 225 strings contain characters that are outside the range of supported ANSI characters for that test environment. Do I write 225 bugs; one for every failure? </p>
<p>Absolutely not! That is simply a misrepresentation and artificial inflation of the number of defects. The root cause is that the edit control is not Unicode enabled. We don&#8217;t need to tell the developer the control is not Unicode enabled 225 times (because if we do  the developer will justifiably resolve 224 of the bugs as a duplicates! (Assuming the same root cause.)) (BTW..this is why I disagree with Kaner&#8217;s assertion that we test to &#8220;maximize bug count.&#8221;) </p>
<p>A bug can manifest itself in many ways. A professional tester will troubleshoot the problem to isolate the cause and identify different paths, variations, or symptoms so the defect report provides more detailed information and enable the developer to effect a better fix. Flooding the developer with several bugs all pointing to a single root cause only serves to artificially inflate the defect tracking database (again reinforcing the fallacious idea that testing is valued by the number of bugs discovered), and discredits professional testers who understand their overall value to an organization is not determined simply by the number of bugs they write.</p>
<p>Thursday, September 21, 2006 6:07 PM by I.M.Testy</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: testingmentor</title>
		<link>http://www.testingmentor.com/imtesty/2009/11/11/the-purpose-of-a-good-test-case/comment-page-1/#comment-39</link>
		<dc:creator>testingmentor</dc:creator>
		<pubDate>Wed, 11 Nov 2009 18:07:37 +0000</pubDate>
		<guid isPermaLink="false">http://testingmentor.com/imtesty/2009/11/11/the-purpose-of-a-good-test-case/#comment-39</guid>
		<description>&gt;Actually, I am referring to a quote in the book &quot;Testing Computer Software 2nd ed.&quot; 

Kaner has rescinded his view that “a test that did not reveal a problem was a waste of time”   since the book was published, and has said so.  See &quot;The Ongoing Revolution in Software Testing&quot;, http://www.kaner.com/pdfs/TheOngoingRevolution.pdf   

That paper also has a few more potential purposes for a test that you might like to add to your list. 

What&#039;s the difference between a single test that has 30,000 variations and 30,000 tests that are very similar to one another? 

The thing that links them is &lt;i&gt;reification error&lt;/i&gt;--the notion that a test case, an idea, is a countable thing, rather than a concept. 

Cheers, 

---Michael B. 

Wednesday, September 20, 2006 11:59 AM by Michael Bolton</description>
		<content:encoded><![CDATA[<p>>Actually, I am referring to a quote in the book &#8220;Testing Computer Software 2nd ed.&#8221; </p>
<p>Kaner has rescinded his view that “a test that did not reveal a problem was a waste of time”   since the book was published, and has said so.  See &#8220;The Ongoing Revolution in Software Testing&#8221;, <a href="http://www.kaner.com/pdfs/TheOngoingRevolution.pdf" rel="nofollow">http://www.kaner.com/pdfs/TheOngoingRevolution.pdf</a>   </p>
<p>That paper also has a few more potential purposes for a test that you might like to add to your list. </p>
<p>What&#8217;s the difference between a single test that has 30,000 variations and 30,000 tests that are very similar to one another? </p>
<p>The thing that links them is <i>reification error</i>&#8211;the notion that a test case, an idea, is a countable thing, rather than a concept. </p>
<p>Cheers, </p>
<p>&#8212;Michael B. </p>
<p>Wednesday, September 20, 2006 11:59 AM by Michael Bolton</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: testingmentor</title>
		<link>http://www.testingmentor.com/imtesty/2009/11/11/the-purpose-of-a-good-test-case/comment-page-1/#comment-38</link>
		<dc:creator>testingmentor</dc:creator>
		<pubDate>Wed, 11 Nov 2009 18:07:07 +0000</pubDate>
		<guid isPermaLink="false">http://testingmentor.com/imtesty/2009/11/11/the-purpose-of-a-good-test-case/#comment-38</guid>
		<description>Hi Shrini, 

Actually, I am referring to a quote in the book &quot;Testing Computer Software 2nd ed.&quot; 

As I stated previously, I absolutely concur one of the primary objectives of of testing (and thus a test case) is to provide information. 

The pesticide paradox applies primarily to completely scripted non-regression type tests that don&#039;t allow the person executing the test to deviate from the instructions (or steps). The paradox doesn&#039;t apply to non-functional test cases. For example, a performance test will run over and over many times. Its overall value does not diminish during the product lifecycle (if perf is a critical factor for release). It also doesn&#039;t apply to true regression tests. Regression tests historically have a very low rate of identifying new defects; however are of significant value in providing information and confidence that specific features continue to function as expected. (Build verification tests are critical, provide high value, but the base set changes very little during the lifecycle.) 

You state &quot;A test case can be good in  a number of different ways.&quot; I was simply trying to point out those specific ways. 

I don&#039;t agree with your second point. In fact, some tests (specifically those for establishing baseline measures) will and do remain &quot;good&quot; during the product lifecycle, and there are some tests (primarily regression tests) that will remain &quot;good&quot; for several years while the product is in maintence. 

WRT to variations, they should be built into the test case, not additional test cases. For example, I really don&#039;t like hard coded test data. I realize there are times when it is valuable and necessary, but if I designing a test to validate an input control that takes a string of characters you have to believe my approach is going to throw strings of valid randomly generated characters of random length at that control. So, each time the test is executed it uses a different string Unicode characters of varying length. Now I have variability built into a single test. 

BTW...I meant seven categories to match the bulleted list, and corrected that in the post. Thanks for catching that! 

- Bj - 
Monday, September 18, 2006 3:37 PM by I.M.Testy</description>
		<content:encoded><![CDATA[<p>Hi Shrini, </p>
<p>Actually, I am referring to a quote in the book &#8220;Testing Computer Software 2nd ed.&#8221; </p>
<p>As I stated previously, I absolutely concur one of the primary objectives of of testing (and thus a test case) is to provide information. </p>
<p>The pesticide paradox applies primarily to completely scripted non-regression type tests that don&#8217;t allow the person executing the test to deviate from the instructions (or steps). The paradox doesn&#8217;t apply to non-functional test cases. For example, a performance test will run over and over many times. Its overall value does not diminish during the product lifecycle (if perf is a critical factor for release). It also doesn&#8217;t apply to true regression tests. Regression tests historically have a very low rate of identifying new defects; however are of significant value in providing information and confidence that specific features continue to function as expected. (Build verification tests are critical, provide high value, but the base set changes very little during the lifecycle.) </p>
<p>You state &#8220;A test case can be good in  a number of different ways.&#8221; I was simply trying to point out those specific ways. </p>
<p>I don&#8217;t agree with your second point. In fact, some tests (specifically those for establishing baseline measures) will and do remain &#8220;good&#8221; during the product lifecycle, and there are some tests (primarily regression tests) that will remain &#8220;good&#8221; for several years while the product is in maintence. </p>
<p>WRT to variations, they should be built into the test case, not additional test cases. For example, I really don&#8217;t like hard coded test data. I realize there are times when it is valuable and necessary, but if I designing a test to validate an input control that takes a string of characters you have to believe my approach is going to throw strings of valid randomly generated characters of random length at that control. So, each time the test is executed it uses a different string Unicode characters of varying length. Now I have variability built into a single test. </p>
<p>BTW&#8230;I meant seven categories to match the bulleted list, and corrected that in the post. Thanks for catching that! </p>
<p>- Bj &#8211;<br />
Monday, September 18, 2006 3:37 PM by I.M.Testy</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: testingmentor</title>
		<link>http://www.testingmentor.com/imtesty/2009/11/11/the-purpose-of-a-good-test-case/comment-page-1/#comment-37</link>
		<dc:creator>testingmentor</dc:creator>
		<pubDate>Wed, 11 Nov 2009 18:06:46 +0000</pubDate>
		<guid isPermaLink="false">http://testingmentor.com/imtesty/2009/11/11/the-purpose-of-a-good-test-case/#comment-37</guid>
		<description>You might be referring to Cem Kaner’s this article - “what is a good test case’? 
A careful reading of this article and several others by Cem and James Bach would indicate that the notion of “Test case being good if it finds a bug” has changed to “A good test case reveals new information”. Classifying that new information as a bug or mere some information- is a context based decision. 

We all know about “pesticide Paradox” – a test case can be good only initial few times if looked from a “bug finding ability”. As a test case is executed a number of times, it wears out and is less likely to find a bug or expose a new information about application behavior. 


Here are my observations about “Good ness of a test case” 
1. A test case can be good in number of different ways. 
2. A good test case will not (can not)) remain “good” at all the time or during its life time. 
3. A good test case offers easy ways to create variations of its own – hence does not become a victim of pesticide paradox. 
4. Attributes of a Test case that important from overall ‘goodness” standpoint 
a. Information Value 
b. Ease of maintenance 
c. Ease of creating variations of it 
d. Credibility and Power 
e. Provides insight into the feature being tested – serves as knowledge repository 
f. Neither too simple (fit to be disposed after run once or twice) nor too complex ( requires good effort to understand the flow  - hence more time for execution) 

You mentioned that “The rationale for test case usually falls into one of six categories.” 

Which six categories? Where are they mentioned? 

Shrini</description>
		<content:encoded><![CDATA[<p>You might be referring to Cem Kaner’s this article &#8211; “what is a good test case’?<br />
A careful reading of this article and several others by Cem and James Bach would indicate that the notion of “Test case being good if it finds a bug” has changed to “A good test case reveals new information”. Classifying that new information as a bug or mere some information- is a context based decision. </p>
<p>We all know about “pesticide Paradox” – a test case can be good only initial few times if looked from a “bug finding ability”. As a test case is executed a number of times, it wears out and is less likely to find a bug or expose a new information about application behavior. </p>
<p>Here are my observations about “Good ness of a test case”<br />
1. A test case can be good in number of different ways.<br />
2. A good test case will not (can not)) remain “good” at all the time or during its life time.<br />
3. A good test case offers easy ways to create variations of its own – hence does not become a victim of pesticide paradox.<br />
4. Attributes of a Test case that important from overall ‘goodness” standpoint<br />
a. Information Value<br />
b. Ease of maintenance<br />
c. Ease of creating variations of it<br />
d. Credibility and Power<br />
e. Provides insight into the feature being tested – serves as knowledge repository<br />
f. Neither too simple (fit to be disposed after run once or twice) nor too complex ( requires good effort to understand the flow  &#8211; hence more time for execution) </p>
<p>You mentioned that “The rationale for test case usually falls into one of six categories.” </p>
<p>Which six categories? Where are they mentioned? </p>
<p>Shrini</p>
]]></content:encoded>
	</item>
</channel>
</rss>

