<?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: Manual Tests Cannot Be Automated</title>
	<atom:link href="http://www.satisfice.com/blog/archives/58/feed" rel="self" type="application/rss+xml" />
	<link>http://www.satisfice.com/blog/archives/58</link>
	<description>The Consulting Software Tester</description>
	<pubDate>Fri, 12 Mar 2010 02:51:13 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Dmitriy</title>
		<link>http://www.satisfice.com/blog/archives/58/comment-page-1#comment-158537</link>
		<dc:creator>Dmitriy</dc:creator>
		<pubDate>Thu, 06 Nov 2008 21:53:33 +0000</pubDate>
		<guid isPermaLink="false">http://www.satisfice.com/blog/archives/58#comment-158537</guid>
		<description>James,

I've found your point very interesting but also pretty much self-explanatory.  Here are some definitions of the word "automatic" from thefreedictionary.com:
"Acting or done without volition or conscious control; involuntary",
"resembling the unthinking functioning of a machine", etc.
Thus, all the dis- and advantages of test automation.  In my case, to confirm your point, I've found more of the latter not in the GUI but performance test automation.

Best regards,
Dmitriy</description>
		<content:encoded><![CDATA[<p>James,</p>
<p>I&#8217;ve found your point very interesting but also pretty much self-explanatory.  Here are some definitions of the word &#8220;automatic&#8221; from thefreedictionary.com:<br />
&#8220;Acting or done without volition or conscious control; involuntary&#8221;,<br />
&#8220;resembling the unthinking functioning of a machine&#8221;, etc.<br />
Thus, all the dis- and advantages of test automation.  In my case, to confirm your point, I&#8217;ve found more of the latter not in the GUI but performance test automation.</p>
<p>Best regards,<br />
Dmitriy</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Emmet Healy</title>
		<link>http://www.satisfice.com/blog/archives/58/comment-page-1#comment-98966</link>
		<dc:creator>Emmet Healy</dc:creator>
		<pubDate>Sat, 02 Feb 2008 19:41:45 +0000</pubDate>
		<guid isPermaLink="false">http://www.satisfice.com/blog/archives/58#comment-98966</guid>
		<description>I agree with your premise. From experience of manual and automated testing experience I can agree that most manual tests cannot and should not be automated even when regression testing. There is no substitute for the human eye in spotting defects and identifying something that doesn't look right.

An automated regression test may tell you something has been fixed or is still broken. It won't tell you if a new problem has been uncovered which indeed has not been covered in any test cases. 

Writing automated test cases is often a fixation with managers in their quest to cut time and budget and get a quick release. But it invites leaving a myriad of holes in the testing process and unrevealed bugs which a quick look over by an experienced manual tester would quickly spot.</description>
		<content:encoded><![CDATA[<p>I agree with your premise. From experience of manual and automated testing experience I can agree that most manual tests cannot and should not be automated even when regression testing. There is no substitute for the human eye in spotting defects and identifying something that doesn&#8217;t look right.</p>
<p>An automated regression test may tell you something has been fixed or is still broken. It won&#8217;t tell you if a new problem has been uncovered which indeed has not been covered in any test cases. </p>
<p>Writing automated test cases is often a fixation with managers in their quest to cut time and budget and get a quick release. But it invites leaving a myriad of holes in the testing process and unrevealed bugs which a quick look over by an experienced manual tester would quickly spot.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Vijay Murugan B</title>
		<link>http://www.satisfice.com/blog/archives/58/comment-page-1#comment-15022</link>
		<dc:creator>Vijay Murugan B</dc:creator>
		<pubDate>Tue, 05 Dec 2006 22:19:20 +0000</pubDate>
		<guid isPermaLink="false">http://www.satisfice.com/blog/archives/58#comment-15022</guid>
		<description>Hi James,

That was a very nice article and it makes everyone proud of being a Manual Tester including me. I have been in the QA field for around 6 years performing both Manual and Automated Testing. I completely agree with your comments, but you know there is nothing in the world which is useless.
Also from a manager's perspective automated testing looks to be useful and cost effective in a scenario there is a lot of regression test cases to be run. For Eg: (We have a product with different modules and say there is a change in only some part of the module. however we are not sure if this is going to affect the other modules). In this particular scenario automation testing seems to be more useful for both tester and also for manager.
Since a tester gets bored by testing the same product, since there are no changes or bugs in it. Also it would be cost effective for the manager to run a automated test instead of wasting a manual resource, whom he can employ in other areas which has undergone many changes.
Your comments please...

Regards,
Vijay

&lt;em&gt;[James' Reply: I think automation is potentially a wonderful thing. But your automation simply does not replicate all that a good human does while testing. Your automation is doing something different.
&lt;/em&gt;

&lt;em&gt;BTW, if I ever find that testing is boring, I just change how I test. It isn't testing the same product that causes boredom, but doing the same things.]Â &lt;/em&gt;</description>
		<content:encoded><![CDATA[<p>Hi James,</p>
<p>That was a very nice article and it makes everyone proud of being a Manual Tester including me. I have been in the QA field for around 6 years performing both Manual and Automated Testing. I completely agree with your comments, but you know there is nothing in the world which is useless.<br />
Also from a manager&#8217;s perspective automated testing looks to be useful and cost effective in a scenario there is a lot of regression test cases to be run. For Eg: (We have a product with different modules and say there is a change in only some part of the module. however we are not sure if this is going to affect the other modules). In this particular scenario automation testing seems to be more useful for both tester and also for manager.<br />
Since a tester gets bored by testing the same product, since there are no changes or bugs in it. Also it would be cost effective for the manager to run a automated test instead of wasting a manual resource, whom he can employ in other areas which has undergone many changes.<br />
Your comments please&#8230;</p>
<p>Regards,<br />
Vijay</p>
<p><em>[James' Reply: I think automation is potentially a wonderful thing. But your automation simply does not replicate all that a good human does while testing. Your automation is doing something different.<br />
</em></p>
<p><em>BTW, if I ever find that testing is boring, I just change how I test. It isn't testing the same product that causes boredom, but doing the same things.]Â </em></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jon Ward</title>
		<link>http://www.satisfice.com/blog/archives/58/comment-page-1#comment-3059</link>
		<dc:creator>Jon Ward</dc:creator>
		<pubDate>Thu, 21 Sep 2006 23:33:36 +0000</pubDate>
		<guid isPermaLink="false">http://www.satisfice.com/blog/archives/58#comment-3059</guid>
		<description>What do you think of the idea of automating only the execution of the workflow of some more complex "end-to-end" regression test cases, leaving the checking of the detailed results covered by that workflow to the testers - by capturing a dublog (movie/screenshots) of the workflow as executed by the automated tool, the manual tester can then  quickly scan the automated execution visual log for abberations, and to check the specific complex outcomes expected at various points, for all the automated tests where the workflow has completed to the expected end-point. (if the automated workflow fails, that's the usual auto debig process)
Overall, because the automation takes care of the test data setup, and the detailed steps execution, with both of these at lower long term cost (because we have quarterly regression requirements ad infintum for our massive legacy system), I wonder if this could be an efficient and hopefully effective way to best use automation to free up time for more manual "change" testing whilst minimising the "automated quality loss" that we are discussing here.

&lt;em&gt;[James' Reply: Hybrid automation like this can work nicely. Bear in mind what you give up, however. By having test execution computer controlled, the tester will not be injecting variations into the test coverage, which will lessen the bug finding power of the tests. The tester will also not be as mentally engaged, I bet, leading to fewer new test ideas during test execution. However, there may be a valuable tradeoff gained in terms of the ease or speed of doing complex tests.]Â &lt;/em&gt;</description>
		<content:encoded><![CDATA[<p>What do you think of the idea of automating only the execution of the workflow of some more complex &#8220;end-to-end&#8221; regression test cases, leaving the checking of the detailed results covered by that workflow to the testers - by capturing a dublog (movie/screenshots) of the workflow as executed by the automated tool, the manual tester can then  quickly scan the automated execution visual log for abberations, and to check the specific complex outcomes expected at various points, for all the automated tests where the workflow has completed to the expected end-point. (if the automated workflow fails, that&#8217;s the usual auto debig process)<br />
Overall, because the automation takes care of the test data setup, and the detailed steps execution, with both of these at lower long term cost (because we have quarterly regression requirements ad infintum for our massive legacy system), I wonder if this could be an efficient and hopefully effective way to best use automation to free up time for more manual &#8220;change&#8221; testing whilst minimising the &#8220;automated quality loss&#8221; that we are discussing here.</p>
<p><em>[James' Reply: Hybrid automation like this can work nicely. Bear in mind what you give up, however. By having test execution computer controlled, the tester will not be injecting variations into the test coverage, which will lessen the bug finding power of the tests. The tester will also not be as mentally engaged, I bet, leading to fewer new test ideas during test execution. However, there may be a valuable tradeoff gained in terms of the ease or speed of doing complex tests.]Â </em></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mohan Raj</title>
		<link>http://www.satisfice.com/blog/archives/58/comment-page-1#comment-2129</link>
		<dc:creator>Mohan Raj</dc:creator>
		<pubDate>Tue, 12 Sep 2006 09:51:56 +0000</pubDate>
		<guid isPermaLink="false">http://www.satisfice.com/blog/archives/58#comment-2129</guid>
		<description>automation is usefull when we have to test any application for load, stress and performance. its very clear that if i take an example of ATM where concurrently 10 users have to access it for some kind of operation , this is not possible by manual process and even if we try to do that we can not get accurate results with which we can set a bench mark that till this particular number the application will behave without any issues.

&lt;em&gt;[James' Reply: I think what you're really saying is that you have a particular test in mind that requires a specific kind of operation that you don't know how to get using only people working through the ordinary user interfaces. I accept that. Now, I'd like you to accept that the very test process you are referring to also may reveal problems that you don't know how to detect except by humans like you looking over the test while it is in progress. While witnessing this test, you may get ideas about how to redesign it-- your software certainly won't re-design itself.Â &lt;/em&gt;

&lt;em&gt;There is no fundamental controversy in our industry about test automation, itself. Of course we can and we will use tools to test our software. The controversy I'm discussing has to do with the relationship between humans and their tools. I am warning against the uncritical belief that to automate a test is to reproduce eveything interesting and important that a skilled human tester does when he tests. Automation simply can't do that.]&lt;/em&gt;</description>
		<content:encoded><![CDATA[<p>automation is usefull when we have to test any application for load, stress and performance. its very clear that if i take an example of ATM where concurrently 10 users have to access it for some kind of operation , this is not possible by manual process and even if we try to do that we can not get accurate results with which we can set a bench mark that till this particular number the application will behave without any issues.</p>
<p><em>[James' Reply: I think what you're really saying is that you have a particular test in mind that requires a specific kind of operation that you don't know how to get using only people working through the ordinary user interfaces. I accept that. Now, I'd like you to accept that the very test process you are referring to also may reveal problems that you don't know how to detect except by humans like you looking over the test while it is in progress. While witnessing this test, you may get ideas about how to redesign it-- your software certainly won't re-design itself.Â </em></p>
<p><em>There is no fundamental controversy in our industry about test automation, itself. Of course we can and we will use tools to test our software. The controversy I'm discussing has to do with the relationship between humans and their tools. I am warning against the uncritical belief that to automate a test is to reproduce eveything interesting and important that a skilled human tester does when he tests. Automation simply can't do that.]</em></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mohan Raj</title>
		<link>http://www.satisfice.com/blog/archives/58/comment-page-1#comment-2127</link>
		<dc:creator>Mohan Raj</dc:creator>
		<pubDate>Tue, 12 Sep 2006 09:33:25 +0000</pubDate>
		<guid isPermaLink="false">http://www.satisfice.com/blog/archives/58#comment-2127</guid>
		<description>I totally agree with your comments, its very clear that the complete manual process for testing can not be automated by using any tool. and i had observed one more thing in my 4 years of qa experience that only 10% of automation what we do is reliable. Automation will help in future prospects where a normal verification has to be done on the same application or functionality after some time. Manual tests will always produce better results and here we can find lot of bugs which automation process can not do. in manual process human brain is involved each time when he starts testing , but where as the human brain is involved only one time at the develoment stage of scripts.</description>
		<content:encoded><![CDATA[<p>I totally agree with your comments, its very clear that the complete manual process for testing can not be automated by using any tool. and i had observed one more thing in my 4 years of qa experience that only 10% of automation what we do is reliable. Automation will help in future prospects where a normal verification has to be done on the same application or functionality after some time. Manual tests will always produce better results and here we can find lot of bugs which automation process can not do. in manual process human brain is involved each time when he starts testing , but where as the human brain is involved only one time at the develoment stage of scripts.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: JenK</title>
		<link>http://www.satisfice.com/blog/archives/58/comment-page-1#comment-1832</link>
		<dc:creator>JenK</dc:creator>
		<pubDate>Fri, 08 Sep 2006 22:23:28 +0000</pubDate>
		<guid isPermaLink="false">http://www.satisfice.com/blog/archives/58#comment-1832</guid>
		<description>Maybe this is the dumb thought, but I tend to think of automating first those things that cannot be effectively tested manually.

Examples: A web service that clients will access to upload information to your DB; a console application that will transfer information between DBs; or evaluating how a site performs under load.  None of these can be effectively tested by manual means.

Better yet, if management is pushing automated UI testing, a dose of reality - in terms of the work and/or programming expertise involved in creating effective automation for the above - may put the discussion on firmer ground.

&lt;em&gt;[James' Reply: For each of your examples, I can think of ways to test manually. Ultimately, the human users of those functions must take an action or see some kind of result. You wisely used the word "effectively", however. I would certainly consider using tools to test those things better than I otherwise would be able.&lt;/em&gt;

&lt;em&gt;One thing I like to do is use tools to create an interface that allows me to manually and interactively test. Then I can fluidly develop test ideas.]&lt;/em&gt;</description>
		<content:encoded><![CDATA[<p>Maybe this is the dumb thought, but I tend to think of automating first those things that cannot be effectively tested manually.</p>
<p>Examples: A web service that clients will access to upload information to your DB; a console application that will transfer information between DBs; or evaluating how a site performs under load.  None of these can be effectively tested by manual means.</p>
<p>Better yet, if management is pushing automated UI testing, a dose of reality - in terms of the work and/or programming expertise involved in creating effective automation for the above - may put the discussion on firmer ground.</p>
<p><em>[James' Reply: For each of your examples, I can think of ways to test manually. Ultimately, the human users of those functions must take an action or see some kind of result. You wisely used the word "effectively", however. I would certainly consider using tools to test those things better than I otherwise would be able.</em></p>
<p><em>One thing I like to do is use tools to create an interface that allows me to manually and interactively test. Then I can fluidly develop test ideas.]</em></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rick Fisk</title>
		<link>http://www.satisfice.com/blog/archives/58/comment-page-1#comment-1452</link>
		<dc:creator>Rick Fisk</dc:creator>
		<pubDate>Fri, 01 Sep 2006 04:54:39 +0000</pubDate>
		<guid isPermaLink="false">http://www.satisfice.com/blog/archives/58#comment-1452</guid>
		<description>Great article. The way I see it, automated tests provide us with two important things:

1. A general comfort level - presuming the tests are valid - in areas where many different combinations must be excercised.
2. Time to explore and mumble the keys.</description>
		<content:encoded><![CDATA[<p>Great article. The way I see it, automated tests provide us with two important things:</p>
<p>1. A general comfort level - presuming the tests are valid - in areas where many different combinations must be excercised.<br />
2. Time to explore and mumble the keys.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ken Sommerville</title>
		<link>http://www.satisfice.com/blog/archives/58/comment-page-1#comment-1369</link>
		<dc:creator>Ken Sommerville</dc:creator>
		<pubDate>Wed, 30 Aug 2006 04:36:51 +0000</pubDate>
		<guid isPermaLink="false">http://www.satisfice.com/blog/archives/58#comment-1369</guid>
		<description>Maybe I oversimplify things, but I tend to think of test automation not only as a means to exercising a system under test, but as way of completing many of the daily tasks that I do as a tester. For example, generating test data, analyzing test results, preparing defect reports, retrieving information about system configurations, scouring log files, etc. All of these are tasks that are routinely done but seldom automated.
Why does it seem that many testers rule out these kinds of activities when talking about "test automation"? Many people seem to only focus on the "test" in "test automation".

Another challenge I have in working with my non-technical colleagues is that they focus on the "point, click, record, playback" type of automation, which I despise and hesitate to even call testing. I have used record/playback as a means to understand a commercial tool, but have rarely relied on it to actually exercise the system under test, mainly because I find it inflexible as far as responding to changes in the system.

Any suggestions on handling these types of "automation evangelists"?

&lt;em&gt;[James' Reply: I'm of the same mind, Ken. I define test automation as "tool-supported testing." I think of the typical scripted regression testing atuomation as one facet of that. I usually pull out my agile test automation slides to try and expand the imagination of people who think tools should replace human minds.]&lt;/em&gt;</description>
		<content:encoded><![CDATA[<p>Maybe I oversimplify things, but I tend to think of test automation not only as a means to exercising a system under test, but as way of completing many of the daily tasks that I do as a tester. For example, generating test data, analyzing test results, preparing defect reports, retrieving information about system configurations, scouring log files, etc. All of these are tasks that are routinely done but seldom automated.<br />
Why does it seem that many testers rule out these kinds of activities when talking about &#8220;test automation&#8221;? Many people seem to only focus on the &#8220;test&#8221; in &#8220;test automation&#8221;.</p>
<p>Another challenge I have in working with my non-technical colleagues is that they focus on the &#8220;point, click, record, playback&#8221; type of automation, which I despise and hesitate to even call testing. I have used record/playback as a means to understand a commercial tool, but have rarely relied on it to actually exercise the system under test, mainly because I find it inflexible as far as responding to changes in the system.</p>
<p>Any suggestions on handling these types of &#8220;automation evangelists&#8221;?</p>
<p><em>[James' Reply: I'm of the same mind, Ken. I define test automation as "tool-supported testing." I think of the typical scripted regression testing atuomation as one facet of that. I usually pull out my agile test automation slides to try and expand the imagination of people who think tools should replace human minds.]</em></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Scott Sehlhorst</title>
		<link>http://www.satisfice.com/blog/archives/58/comment-page-1#comment-979</link>
		<dc:creator>Scott Sehlhorst</dc:creator>
		<pubDate>Fri, 18 Aug 2006 04:16:07 +0000</pubDate>
		<guid isPermaLink="false">http://www.satisfice.com/blog/archives/58#comment-979</guid>
		<description>Thanks James for an inspiring idea.  We've expanded on it some at Tyner Blain (linked to my name).  Hope you like it.  Here's the excerpt:

Thereâ€™s a piece of North American folklore about John Henry, who was a manual laborer during the expansion of the railroads in our country. His job was being replaced by steam-driven heavy equipment, as the railroad industry applied technology to become more efficient. The same dynamics are happening today with manual testers. We need to make sure that manual testers avoid John Henryâ€™s fate - read on to see why.</description>
		<content:encoded><![CDATA[<p>Thanks James for an inspiring idea.  We&#8217;ve expanded on it some at Tyner Blain (linked to my name).  Hope you like it.  Here&#8217;s the excerpt:</p>
<p>Thereâ€™s a piece of North American folklore about John Henry, who was a manual laborer during the expansion of the railroads in our country. His job was being replaced by steam-driven heavy equipment, as the railroad industry applied technology to become more efficient. The same dynamics are happening today with manual testers. We need to make sure that manual testers avoid John Henryâ€™s fate - read on to see why.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Shrini</title>
		<link>http://www.satisfice.com/blog/archives/58/comment-page-1#comment-791</link>
		<dc:creator>Shrini</dc:creator>
		<pubDate>Fri, 11 Aug 2006 07:47:14 +0000</pubDate>
		<guid isPermaLink="false">http://www.satisfice.com/blog/archives/58#comment-791</guid>
		<description>Continuing with what Michael said about Manual+explotatory+Scripted  vs Automated +scripted test scenario -- how about following rules ?

# 3 All automated tests  (by design, nature, definition) are scripted (any exceptions ?)

&lt;em&gt;[James' Reply: This depends on your specific definition of automation and script. If to be automated means that the action is carried out by a machine made by humans, instead of by humans themselves, and if to be scripted means to act in a way that is determined in part by a set of instructions, then some automated tests may not be scripted, because some machines do not operate using instructions (I can use a hammer to hit a keyboard, which is a machine that is operating by direct manipulation, instead of by a script). I can also use automation to *design* manual tests, in which case it would be a partially-scripted partially automated test. There are many other examples.&lt;/em&gt;

&lt;em&gt;In general, I would say that most people who point at test automation are going to be pointing at a fairly scripted test.]&lt;/em&gt;

# 4 (converse of #3) All scripted tests can be automated (if tool and Oracle willing)

So aren't we limited by tool and oracle to satisfy rule #4

Shrini&lt;em&gt; &lt;/em&gt;

&lt;em&gt;[James' Reply: It is not true that all scripted tests can be automated, because of the limits of what machines can do. There are straightforward computability limits, such as those that would require a computer to spend 10,000 years to solve the problem. There are also scripted commands that no one could perform, under any circumstances, including the instruction "run all possible tests" or "notice all possible bugs."
&lt;/em&gt;

&lt;em&gt;There are many possible actions that we can script to some degree, and which a human could do in an acceptable way, but which would be very hard or impossible for a computer to do. These include "check to see if something went wrong" which is almost always an implicit part of a test script, and "record any new test ideas that occur to you while  performing this test."]&lt;/em&gt;</description>
		<content:encoded><![CDATA[<p>Continuing with what Michael said about Manual+explotatory+Scripted  vs Automated +scripted test scenario &#8212; how about following rules ?</p>
<p># 3 All automated tests  (by design, nature, definition) are scripted (any exceptions ?)</p>
<p><em>[James' Reply: This depends on your specific definition of automation and script. If to be automated means that the action is carried out by a machine made by humans, instead of by humans themselves, and if to be scripted means to act in a way that is determined in part by a set of instructions, then some automated tests may not be scripted, because some machines do not operate using instructions (I can use a hammer to hit a keyboard, which is a machine that is operating by direct manipulation, instead of by a script). I can also use automation to *design* manual tests, in which case it would be a partially-scripted partially automated test. There are many other examples.</em></p>
<p><em>In general, I would say that most people who point at test automation are going to be pointing at a fairly scripted test.]</em></p>
<p># 4 (converse of #3) All scripted tests can be automated (if tool and Oracle willing)</p>
<p>So aren&#8217;t we limited by tool and oracle to satisfy rule #4</p>
<p>Shrini<em> </em></p>
<p><em>[James' Reply: It is not true that all scripted tests can be automated, because of the limits of what machines can do. There are straightforward computability limits, such as those that would require a computer to spend 10,000 years to solve the problem. There are also scripted commands that no one could perform, under any circumstances, including the instruction "run all possible tests" or "notice all possible bugs."<br />
</em></p>
<p><em>There are many possible actions that we can script to some degree, and which a human could do in an acceptable way, but which would be very hard or impossible for a computer to do. These include "check to see if something went wrong" which is almost always an implicit part of a test script, and "record any new test ideas that occur to you while  performing this test."]</em></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Michael Bolton</title>
		<link>http://www.satisfice.com/blog/archives/58/comment-page-1#comment-683</link>
		<dc:creator>Michael Bolton</dc:creator>
		<pubDate>Tue, 08 Aug 2006 15:48:53 +0000</pubDate>
		<guid isPermaLink="false">http://www.satisfice.com/blog/archives/58#comment-683</guid>
		<description>I think it might be useful to point out a key difference between a "manual" test and an "automated" test.  (This difference has little to do with whether machines are used in the test, since we use machines in every test of computer software in which we operate the software.  All tests in which a computer is involved are "automatic" to some degree.)

When people say "manual test", what they really mean is "human eyes, ears, hands, and brains are engaged in the execution of the test."  When they say "automated test", what they really mean is "human eyes, ears, hands, and brains are not (necessarily or usually) involved in the execution of the test."  That reframe points to the fact that "automated" tests are entirely scripted tests, where "manual" tests are unscripted or exploratory tests.  Automation can be used to aid exploration, but the exploratory act requires that human engagement--until we hear something different from WIRED.

Would any of us willingly get into an airplane that had only been tested by automation, and never by human test pilots?  Would it be possible to test the software on a plane without assistance from automation?   For most sane people, the answer to both questions would be No.  So in evaluating the value of automation, we need to think about how we're using it to assist and extend human capabilities.

I think it's also important to underscore James point that low cost does not necessarily mean high value.  This seems to be a source of some confusion for some testers and programmers in particular.

---Michael B.

&lt;em&gt;[James' Reply: Good points, Michael. Thank you. I would just point out that a manual test is not necessarily an exploratory test (not on purpose, anyway, and maybe not otherwise). However, I agree that most manual tests are at least a small bit exploratory and probably more than that. A good manual test, even if partly scripted, will make use of unscriptable human faculties, to be sure.]Â &lt;/em&gt;</description>
		<content:encoded><![CDATA[<p>I think it might be useful to point out a key difference between a &#8220;manual&#8221; test and an &#8220;automated&#8221; test.  (This difference has little to do with whether machines are used in the test, since we use machines in every test of computer software in which we operate the software.  All tests in which a computer is involved are &#8220;automatic&#8221; to some degree.)</p>
<p>When people say &#8220;manual test&#8221;, what they really mean is &#8220;human eyes, ears, hands, and brains are engaged in the execution of the test.&#8221;  When they say &#8220;automated test&#8221;, what they really mean is &#8220;human eyes, ears, hands, and brains are not (necessarily or usually) involved in the execution of the test.&#8221;  That reframe points to the fact that &#8220;automated&#8221; tests are entirely scripted tests, where &#8220;manual&#8221; tests are unscripted or exploratory tests.  Automation can be used to aid exploration, but the exploratory act requires that human engagement&#8211;until we hear something different from WIRED.</p>
<p>Would any of us willingly get into an airplane that had only been tested by automation, and never by human test pilots?  Would it be possible to test the software on a plane without assistance from automation?   For most sane people, the answer to both questions would be No.  So in evaluating the value of automation, we need to think about how we&#8217;re using it to assist and extend human capabilities.</p>
<p>I think it&#8217;s also important to underscore James point that low cost does not necessarily mean high value.  This seems to be a source of some confusion for some testers and programmers in particular.</p>
<p>&#8212;Michael B.</p>
<p><em>[James' Reply: Good points, Michael. Thank you. I would just point out that a manual test is not necessarily an exploratory test (not on purpose, anyway, and maybe not otherwise). However, I agree that most manual tests are at least a small bit exploratory and probably more than that. A good manual test, even if partly scripted, will make use of unscriptable human faculties, to be sure.]Â </em></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chris J</title>
		<link>http://www.satisfice.com/blog/archives/58/comment-page-1#comment-682</link>
		<dc:creator>Chris J</dc:creator>
		<pubDate>Tue, 08 Aug 2006 15:46:06 +0000</pubDate>
		<guid isPermaLink="false">http://www.satisfice.com/blog/archives/58#comment-682</guid>
		<description>Hi James,

Thanks for the great article.  I support Test Automation Rule #1, but with one caveat.  Some organizations will have a hard time swallowing it whole!

The company I work for is firmly entrenched in Brett Pettichord's Factory School of testing.  The idea is that if we write down all of the requirements, the coders code from them, the testers test from them, and we trace everything together.  Once all of the requirements are tested, we're done!  Easy as pie, right?  (Wrong!)  Our automation efforts, therefore, consist entirely of automating really bad manual tests.  Since the community is convinced that all of these tests are necessary to ensure Quality, it is difficult to help them understand that there are more effective and more efficient ways to test a system than these rigid requirements-based scripts.

Right now I'm trying to help them quickly automate their manual scripts first, so we have some breathing room to think about other strategies.  I'm also working on a model-based testing solution, and researching some more API-level automated testing approaches.

I'm afraid that helping to dig the community out of the hole of manual testing will be the easy part.  The hard part will be convincing the community that the whole idea of how we do testing could be drastically improved...

&lt;em&gt;[James' Reply: Good point, Chris. This calls for a new rule. Rule #0: All rules for humans shall be treated as heuristics (including this one, of course).]&lt;/em&gt;</description>
		<content:encoded><![CDATA[<p>Hi James,</p>
<p>Thanks for the great article.  I support Test Automation Rule #1, but with one caveat.  Some organizations will have a hard time swallowing it whole!</p>
<p>The company I work for is firmly entrenched in Brett Pettichord&#8217;s Factory School of testing.  The idea is that if we write down all of the requirements, the coders code from them, the testers test from them, and we trace everything together.  Once all of the requirements are tested, we&#8217;re done!  Easy as pie, right?  (Wrong!)  Our automation efforts, therefore, consist entirely of automating really bad manual tests.  Since the community is convinced that all of these tests are necessary to ensure Quality, it is difficult to help them understand that there are more effective and more efficient ways to test a system than these rigid requirements-based scripts.</p>
<p>Right now I&#8217;m trying to help them quickly automate their manual scripts first, so we have some breathing room to think about other strategies.  I&#8217;m also working on a model-based testing solution, and researching some more API-level automated testing approaches.</p>
<p>I&#8217;m afraid that helping to dig the community out of the hole of manual testing will be the easy part.  The hard part will be convincing the community that the whole idea of how we do testing could be drastically improved&#8230;</p>
<p><em>[James' Reply: Good point, Chris. This calls for a new rule. Rule #0: All rules for humans shall be treated as heuristics (including this one, of course).]</em></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Shrini Kulkarni</title>
		<link>http://www.satisfice.com/blog/archives/58/comment-page-1#comment-603</link>
		<dc:creator>Shrini Kulkarni</dc:creator>
		<pubDate>Sun, 06 Aug 2006 06:07:51 +0000</pubDate>
		<guid isPermaLink="false">http://www.satisfice.com/blog/archives/58#comment-603</guid>
		<description>Sha brings out a typical Automation Regression Testing scenario -

Note the core theme of notion - such tests are not expected to uncover any different bug other than what is coded - Check if cancel button exists in 100 different windows? Test pass
If yes - Test fail if otherwise. 

Are these tests powerful? May be not. 
Are these tests good in finding bugs - yes - only those bugs (deviations from expected behavior) coded in automated tests? 
Are these tests important? Yes from the perspective of someone who matters. 

Is it a good way to test? May be not - some of these tests could be executed as part of unit tests - in a cheaper way. 


Let me make a statement: The way you state (communicate) your manual Test will decide whether it could be automated or not. The same thing will also decide whether a test case is good or bad. 
This communication (hence documentation) is key aspect of Test design right?

For example - let us consider following test case

Test step or Action : launch Add Member Wizard Screen 
Expected Result: Check that Cancel button is present on the screen and is in enabled state.

It is a manual test  that can be automated - But is it a good manual Test? May be not.

I would be over-simplifying and overselling the value of above test if I claim that "through this automated test I am making sure that there are no major failures in the screen".  What I am checking here is the existence and state of control on the screen - nothing more and nothing less.

Shrini</description>
		<content:encoded><![CDATA[<p>Sha brings out a typical Automation Regression Testing scenario -</p>
<p>Note the core theme of notion - such tests are not expected to uncover any different bug other than what is coded - Check if cancel button exists in 100 different windows? Test pass<br />
If yes - Test fail if otherwise. </p>
<p>Are these tests powerful? May be not.<br />
Are these tests good in finding bugs - yes - only those bugs (deviations from expected behavior) coded in automated tests?<br />
Are these tests important? Yes from the perspective of someone who matters. </p>
<p>Is it a good way to test? May be not - some of these tests could be executed as part of unit tests - in a cheaper way. </p>
<p>Let me make a statement: The way you state (communicate) your manual Test will decide whether it could be automated or not. The same thing will also decide whether a test case is good or bad.<br />
This communication (hence documentation) is key aspect of Test design right?</p>
<p>For example - let us consider following test case</p>
<p>Test step or Action : launch Add Member Wizard Screen<br />
Expected Result: Check that Cancel button is present on the screen and is in enabled state.</p>
<p>It is a manual test  that can be automated - But is it a good manual Test? May be not.</p>
<p>I would be over-simplifying and overselling the value of above test if I claim that &#8220;through this automated test I am making sure that there are no major failures in the screen&#8221;.  What I am checking here is the existence and state of control on the screen - nothing more and nothing less.</p>
<p>Shrini</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alexey Nikolayev</title>
		<link>http://www.satisfice.com/blog/archives/58/comment-page-1#comment-559</link>
		<dc:creator>Alexey Nikolayev</dc:creator>
		<pubDate>Fri, 04 Aug 2006 11:09:27 +0000</pubDate>
		<guid isPermaLink="false">http://www.satisfice.com/blog/archives/58#comment-559</guid>
		<description>James, I was thinking on the "Test Automation Rule #1" and came to conclusion that it can be expanded and detailed so that it doesn't consider automation in particular. Taking into account your response to my comment above I can propose the following statement: "None of good tests can be formalized", under "formalization" we understand the process of noting the test down so that any further interpretation of the note (by human or computer) can restore the test (or test idea) with 100% authenticity.
Is it worth living? ;)

&lt;em&gt;[James' Reply: There can be good tests, I think, and there can be good formal tests. There can even be formal manual tests (by some reasonable definition of formal). &lt;/em&gt;

&lt;em&gt;I don't believe any test can ever be repeated-- if to repeat means to repeat EXACTLY and in all dimensions. Even approximate repetition can be a challenge, depending on what you're trying to repeat. So, if you write down a test for someone else to perform, it can be an interesting challenge to make sure the right thing is repeated.]&lt;/em&gt;</description>
		<content:encoded><![CDATA[<p>James, I was thinking on the &#8220;Test Automation Rule #1&#8243; and came to conclusion that it can be expanded and detailed so that it doesn&#8217;t consider automation in particular. Taking into account your response to my comment above I can propose the following statement: &#8220;None of good tests can be formalized&#8221;, under &#8220;formalization&#8221; we understand the process of noting the test down so that any further interpretation of the note (by human or computer) can restore the test (or test idea) with 100% authenticity.<br />
Is it worth living? <img src='http://www.satisfice.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><em>[James' Reply: There can be good tests, I think, and there can be good formal tests. There can even be formal manual tests (by some reasonable definition of formal). </em></p>
<p><em>I don't believe any test can ever be repeated-- if to repeat means to repeat EXACTLY and in all dimensions. Even approximate repetition can be a challenge, depending on what you're trying to repeat. So, if you write down a test for someone else to perform, it can be an interesting challenge to make sure the right thing is repeated.]</em></p>
]]></content:encoded>
	</item>
</channel>
</rss>


