<?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 for James Bach’s Blog</title>
	<atom:link href="http://www.satisfice.com/blog/comments/feed" rel="self" type="application/rss+xml" />
	<link>http://www.satisfice.com/blog</link>
	<description>The Consulting Software Tester</description>
	<pubDate>Sun, 14 Mar 2010 09:00:01 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Comment on Dhanasekar S and the Sapient Indian Bloggers by Nandagopal</title>
		<link>http://www.satisfice.com/blog/archives/418/comment-page-1#comment-247716</link>
		<dc:creator>Nandagopal</dc:creator>
		<pubDate>Sun, 14 Mar 2010 03:41:29 +0000</pubDate>
		<guid isPermaLink="false">http://www.satisfice.com/blog/?p=418#comment-247716</guid>
		<description>Dear James,

I am privileged to be mentioned in one of your blog posts! Thank you very much. I will not disappoint you and I promise to keep blogging :)

Regards,
Nandagopal</description>
		<content:encoded><![CDATA[<p>Dear James,</p>
<p>I am privileged to be mentioned in one of your blog posts! Thank you very much. I will not disappoint you and I promise to keep blogging <img src='http://www.satisfice.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Regards,<br />
Nandagopal</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Against Certification by Piotr Rusol</title>
		<link>http://www.satisfice.com/blog/archives/36/comment-page-1#comment-247666</link>
		<dc:creator>Piotr Rusol</dc:creator>
		<pubDate>Sat, 13 Mar 2010 23:09:33 +0000</pubDate>
		<guid isPermaLink="false">http://12.165.213.55/blog/?p=36#comment-247666</guid>
		<description>Hi James,

I have to agree with You in essence that none certification could ever replace experience on any field. In the other hand, You have to understand that none certification, even University diploma, never ever was intended to replace exp. In such, certification is only reference point to knowledge required by particular program, ie.: ISTQB and should be treated only this way.&lt;em&gt;

[James' Reply: I think you missed my point. I'm not complaining about the limitations of the ISTQB, but about the stupidity and injustice of it. How would you like it if I hit you in the face, and then when you complained I were to say "I never claimed that hitting you in the face was a perfect solution to my problem, nor did I claim that it would be pleasant for you. The difficulty is in you, because you don't like being hit in the face with my fist."]&lt;/em&gt;

 Difficulty is in people. They are week beings that has to believe in something. Some believes in God others in money and anothers in politicians. So the real thorn is not in certification programs, ok they could be better, but in the way like people treated them. We can ban certifications at all but do we realy have enough strong to change milions of people?

&lt;em&gt;[James' Reply: Let's begin by banning bad certification programs and worry about changing people, later.]
&lt;/em&gt;
I want to answer on Harinder Seera question: "How would you test something that you can not test?"

Answer is very simple - You have to place object in some well defined environment and observe this env. I do not know the English equivalent but in Polish we say "Metody Po?rednie".</description>
		<content:encoded><![CDATA[<p>Hi James,</p>
<p>I have to agree with You in essence that none certification could ever replace experience on any field. In the other hand, You have to understand that none certification, even University diploma, never ever was intended to replace exp. In such, certification is only reference point to knowledge required by particular program, ie.: ISTQB and should be treated only this way.<em></p>
<p>[James' Reply: I think you missed my point. I'm not complaining about the limitations of the ISTQB, but about the stupidity and injustice of it. How would you like it if I hit you in the face, and then when you complained I were to say "I never claimed that hitting you in the face was a perfect solution to my problem, nor did I claim that it would be pleasant for you. The difficulty is in you, because you don't like being hit in the face with my fist."]</em></p>
<p> Difficulty is in people. They are week beings that has to believe in something. Some believes in God others in money and anothers in politicians. So the real thorn is not in certification programs, ok they could be better, but in the way like people treated them. We can ban certifications at all but do we realy have enough strong to change milions of people?</p>
<p><em>[James' Reply: Let's begin by banning bad certification programs and worry about changing people, later.]<br />
</em><br />
I want to answer on Harinder Seera question: &#8220;How would you test something that you can not test?&#8221;</p>
<p>Answer is very simple - You have to place object in some well defined environment and observe this env. I do not know the English equivalent but in Polish we say &#8220;Metody Po?rednie&#8221;.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Logging: Exploratory Tester&#8217;s Friend by Shmuel Gershon</title>
		<link>http://www.satisfice.com/blog/archives/401/comment-page-1#comment-247605</link>
		<dc:creator>Shmuel Gershon</dc:creator>
		<pubDate>Sat, 13 Mar 2010 16:52:29 +0000</pubDate>
		<guid isPermaLink="false">http://www.satisfice.com/blog/?p=401#comment-247605</guid>
		<description>A reply to your reply (can't edit it inline):
Yes, logging each action as it starts instead of only its result when it ends it is a great way of doing that.

As you say, not only it is hard for one routine to know what will be the next routine called, but doing that would wreck modularity cohesion and low-coupling :).

But for most part (perceiving delays, or analyzing hangs for example) logging at the beginning of each routine would be enough.

&lt;em&gt;[James reply: Okay, so logging "I'm about to try this... if you don't hear from me, tell my wife I love her..."]&lt;/em&gt;</description>
		<content:encoded><![CDATA[<p>A reply to your reply (can&#8217;t edit it inline):<br />
Yes, logging each action as it starts instead of only its result when it ends it is a great way of doing that.</p>
<p>As you say, not only it is hard for one routine to know what will be the next routine called, but doing that would wreck modularity cohesion and low-coupling :).</p>
<p>But for most part (perceiving delays, or analyzing hangs for example) logging at the beginning of each routine would be enough.</p>
<p><em>[James reply: Okay, so logging "I'm about to try this... if you don't hear from me, tell my wife I love her..."]</em></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Dhanasekar S and the Sapient Indian Bloggers by Dhanasekar S</title>
		<link>http://www.satisfice.com/blog/archives/418/comment-page-1#comment-247564</link>
		<dc:creator>Dhanasekar S</dc:creator>
		<pubDate>Sat, 13 Mar 2010 14:09:03 +0000</pubDate>
		<guid isPermaLink="false">http://www.satisfice.com/blog/?p=418#comment-247564</guid>
		<description>James,
   Thank you very much James. It is indeed an ultimate honor to get mentioned in your blog and getting into your blog roll where I see all my role models listed :-)
After working in process driven testing and GUI automation for few years, I realized that is not the reality. Either they follow unwanted processes or try useless automation. In most places I found only idealist and process people, but what I searched for is pragmatists. That’s when I found Dr Cem Kaner website through one of the articles I was reading on automation framework and realized this is want I am looking for. Then I started practicing the context driven testing. 
I take immense pride in saying that I am following foot steps of Dr Cem Kaner, You and Michael Bolton.
Like to quote Robert Frost famous Poem, &lt;i&gt;“But I have promises to keep, 
And miles to go before I sleep” &lt;/i&gt;

Looking forward to learn and contribute more and better towards building a bigger Sapient Testing community including Passionate Testers from India.

Thanks once again for your time and effort you put in build a sapient testing community.

NOTE : The CAPTCHA I filled for this comment is to daydream,but my dream came true today :-)

Regards,
Dhanasekar S
Another Passionate Tester of India
http://testingideas.wordpress.com</description>
		<content:encoded><![CDATA[<p>James,<br />
   Thank you very much James. It is indeed an ultimate honor to get mentioned in your blog and getting into your blog roll where I see all my role models listed <img src='http://www.satisfice.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /><br />
After working in process driven testing and GUI automation for few years, I realized that is not the reality. Either they follow unwanted processes or try useless automation. In most places I found only idealist and process people, but what I searched for is pragmatists. That’s when I found Dr Cem Kaner website through one of the articles I was reading on automation framework and realized this is want I am looking for. Then I started practicing the context driven testing.<br />
I take immense pride in saying that I am following foot steps of Dr Cem Kaner, You and Michael Bolton.<br />
Like to quote Robert Frost famous Poem, <i>“But I have promises to keep,<br />
And miles to go before I sleep” </i></p>
<p>Looking forward to learn and contribute more and better towards building a bigger Sapient Testing community including Passionate Testers from India.</p>
<p>Thanks once again for your time and effort you put in build a sapient testing community.</p>
<p>NOTE : The CAPTCHA I filled for this comment is to daydream,but my dream came true today <img src='http://www.satisfice.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Regards,<br />
Dhanasekar S<br />
Another Passionate Tester of India<br />
<a href="http://testingideas.wordpress.com" rel="nofollow">http://testingideas.wordpress.com</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Logging: Exploratory Tester&#8217;s Friend by Shmuel Gershon</title>
		<link>http://www.satisfice.com/blog/archives/401/comment-page-1#comment-247486</link>
		<dc:creator>Shmuel Gershon</dc:creator>
		<pubDate>Fri, 12 Mar 2010 10:15:50 +0000</pubDate>
		<guid isPermaLink="false">http://www.satisfice.com/blog/?p=401#comment-247486</guid>
		<description>Hi James, great list!

If I may, let me add a 14th point, an insight I learned from a tester in my team:
For functions the software does by itself, in addition to logging the result of each step after it happens (imported data; generated report; exported graph...) it is very useful to log *what the next step will be*. This way, when a failure occurs, it is easy to know what the software was trying to do.

Since I learned that, I am paying attention to it, and impressed by how much common logs or progress reports lack this.
It takes a lot of time for an operation to happen, but you need to wait until the end of it to know which it was.
Once my computer froze during Windows' shutdown with the "playing logoff sound" screen. I'm pretty sure the sound playing was over, and was left wondering what caused the OS freeze.

Hope you approve the addition :)

&lt;em&gt;[James' Reply: Let's say I'm a programmer. How would I actually implement this? Are you just saying you want me to log the start of events, instead of just logging when things end?

Obviously, I can't know, from within a specific routine, what the next thing will be.]&lt;/em&gt;</description>
		<content:encoded><![CDATA[<p>Hi James, great list!</p>
<p>If I may, let me add a 14th point, an insight I learned from a tester in my team:<br />
For functions the software does by itself, in addition to logging the result of each step after it happens (imported data; generated report; exported graph&#8230;) it is very useful to log *what the next step will be*. This way, when a failure occurs, it is easy to know what the software was trying to do.</p>
<p>Since I learned that, I am paying attention to it, and impressed by how much common logs or progress reports lack this.<br />
It takes a lot of time for an operation to happen, but you need to wait until the end of it to know which it was.<br />
Once my computer froze during Windows&#8217; shutdown with the &#8220;playing logoff sound&#8221; screen. I&#8217;m pretty sure the sound playing was over, and was left wondering what caused the OS freeze.</p>
<p>Hope you approve the addition <img src='http://www.satisfice.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><em>[James' Reply: Let's say I'm a programmer. How would I actually implement this? Are you just saying you want me to log the start of events, instead of just logging when things end?</p>
<p>Obviously, I can't know, from within a specific routine, what the next thing will be.]</em></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on How to Investigate Intermittent Problems by Gaurav</title>
		<link>http://www.satisfice.com/blog/archives/34/comment-page-1#comment-247160</link>
		<dc:creator>Gaurav</dc:creator>
		<pubDate>Wed, 10 Mar 2010 17:24:55 +0000</pubDate>
		<guid isPermaLink="false">http://12.165.213.55/blog/?p=34#comment-247160</guid>
		<description>As per my understanding, it is easier (and cheaper) to find problems between two components rather than finding problems between more than two components. I gather, this is the basis of Pair Wise Testing and I have understand AllPairs, the same logic has been implemented. 

I was wondering, if you would be able to provide me some examples on how best to isolate defects between more than two components. (Assuming that such defects in some way maybe considered as intermittent)

Regards
Gaurav Pandey

&lt;em&gt;[James' Reply: Can you present that as a more natural problem? What would it look like in real life?

If you see something that is intermittent, you won't know which variables make it intermittent, or how many they are.]&lt;/em&gt;</description>
		<content:encoded><![CDATA[<p>As per my understanding, it is easier (and cheaper) to find problems between two components rather than finding problems between more than two components. I gather, this is the basis of Pair Wise Testing and I have understand AllPairs, the same logic has been implemented. </p>
<p>I was wondering, if you would be able to provide me some examples on how best to isolate defects between more than two components. (Assuming that such defects in some way maybe considered as intermittent)</p>
<p>Regards<br />
Gaurav Pandey</p>
<p><em>[James' Reply: Can you present that as a more natural problem? What would it look like in real life?</p>
<p>If you see something that is intermittent, you won't know which variables make it intermittent, or how many they are.]</em></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Tester Pilot by Fionna O'Sullivan</title>
		<link>http://www.satisfice.com/blog/archives/411/comment-page-1#comment-244440</link>
		<dc:creator>Fionna O'Sullivan</dc:creator>
		<pubDate>Mon, 22 Feb 2010 07:13:40 +0000</pubDate>
		<guid isPermaLink="false">http://www.satisfice.com/blog/?p=411#comment-244440</guid>
		<description>This is an interesting analogy for test automation, and a very good point. On the one hand, I'd say that it is important to be aware of what your automation system is actually testing and proving - water salinity and volume, say, but &lt;b&gt;not&lt;/b&gt; that there aren't any problems with the float pump.

On the other hand, though, (and I know nothing about planes) would you then have done the manual checks too? Or only done manual checks if the automated tests had flagged something. I try for the former, but am probably guilty of the latter too often for comfort.

A very good and timely reminder to keep alert!
&lt;em&gt;
[James' Reply: A sapient pilot is always needed. Automation is fine as long as you don't mind when it fails. We have lots of automation on our cars, for instance, but failure there generally leads to being stuck at the side of the road. Automation failure on aircraft is considerably more risky. That's why we pilots are constantly watching and checking and cross-checking.]&lt;/em&gt;</description>
		<content:encoded><![CDATA[<p>This is an interesting analogy for test automation, and a very good point. On the one hand, I&#8217;d say that it is important to be aware of what your automation system is actually testing and proving - water salinity and volume, say, but <b>not</b> that there aren&#8217;t any problems with the float pump.</p>
<p>On the other hand, though, (and I know nothing about planes) would you then have done the manual checks too? Or only done manual checks if the automated tests had flagged something. I try for the former, but am probably guilty of the latter too often for comfort.</p>
<p>A very good and timely reminder to keep alert!<br />
<em><br />
[James' Reply: A sapient pilot is always needed. Automation is fine as long as you don't mind when it fails. We have lots of automation on our cars, for instance, but failure there generally leads to being stuck at the side of the road. Automation failure on aircraft is considerably more risky. That's why we pilots are constantly watching and checking and cross-checking.]</em></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Tester Pilot by Kerry</title>
		<link>http://www.satisfice.com/blog/archives/411/comment-page-1#comment-243542</link>
		<dc:creator>Kerry</dc:creator>
		<pubDate>Thu, 18 Feb 2010 00:21:50 +0000</pubDate>
		<guid isPermaLink="false">http://www.satisfice.com/blog/?p=411#comment-243542</guid>
		<description>What Albert misses also is that the automation would then itself need to be tested (and if he wanted to automate testing that then he'd be on the path to madness...)</description>
		<content:encoded><![CDATA[<p>What Albert misses also is that the automation would then itself need to be tested (and if he wanted to automate testing that then he&#8217;d be on the path to madness&#8230;)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Tester Pilot by Armin Albarracin</title>
		<link>http://www.satisfice.com/blog/archives/411/comment-page-1#comment-243231</link>
		<dc:creator>Armin Albarracin</dc:creator>
		<pubDate>Mon, 15 Feb 2010 14:54:15 +0000</pubDate>
		<guid isPermaLink="false">http://www.satisfice.com/blog/?p=411#comment-243231</guid>
		<description>'Dude, I'm not opposed to test automation. I'm opposed to wild irresponsible claims made about test automation. This is based on extensive experience with test automation that I have, as a programmer and as a tester and as a consultant who has written reports about test automation failures'

James, I really liked your statement above. Since years you seem like the one of the few serious voices advocating automation WHEN it makes sense - and not just everywhere it might. The ROI in automation is indeed an issue and should be taken more seriously. Everybody can sell automation - it sounds so nice specially to those not in the know - and the dream of the magic button.</description>
		<content:encoded><![CDATA[<p>&#8216;Dude, I&#8217;m not opposed to test automation. I&#8217;m opposed to wild irresponsible claims made about test automation. This is based on extensive experience with test automation that I have, as a programmer and as a tester and as a consultant who has written reports about test automation failures&#8217;</p>
<p>James, I really liked your statement above. Since years you seem like the one of the few serious voices advocating automation WHEN it makes sense - and not just everywhere it might. The ROI in automation is indeed an issue and should be taken more seriously. Everybody can sell automation - it sounds so nice specially to those not in the know - and the dream of the magic button.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Tester Pilot by Michael Bolton</title>
		<link>http://www.satisfice.com/blog/archives/411/comment-page-1#comment-243175</link>
		<dc:creator>Michael Bolton</dc:creator>
		<pubDate>Sun, 14 Feb 2010 20:28:11 +0000</pubDate>
		<guid isPermaLink="false">http://www.satisfice.com/blog/?p=411#comment-243175</guid>
		<description>Albert said, "State should be defined by a sufficient set of criteria: amount of water in a float, chemical activity of water (pH, electro-conductivity, etc), vibration, pump performance, - as much as required."

Funny how even after James gave, in his story, explicit critical criteria that pointed to the problem&#8212;color, taste, smell&#8212;they &lt;i&gt;still&lt;/i&gt; don't appear on the list.

The argument is simple:  unlike humans, automation &lt;i&gt;doesn't have expectations&lt;/i&gt;.  It is capable of detecting matches or mismatches based on the expectations we feed it.  Humans, by contrast, can identify expectations prospectively, in advance of an observation ("If this were to come to pass, it would indicate a problem"); on the fly, during an observation ("Hey... I didn't expect that; that could be a problem"); and retrospectively ("Now that I've seen the problem, I can figure out how I might have detected it" or "Now that I have a better model, I realize that I could have tested for this, even though a problem hasn't manifested itself yet.").

&lt;i&gt;Just light the red lamp for a pilot if a parameter changed to a value outside of defined range.&lt;/i&gt;

One indicator of a problem with any analysis is the appearance of the word "just".  Yes:  lighting a red lamp is a simple enough thing.  Knowing when to light it and when not to light it is the complicated bit.  Interpreting it is also complicated.  Here's an example of a one-bit communications protocol:  someone honks the horn at you, as you're driving.  How would one interpret accurately that without a walloping dose of context to go along with it?

---Michael B.</description>
		<content:encoded><![CDATA[<p>Albert said, &#8220;State should be defined by a sufficient set of criteria: amount of water in a float, chemical activity of water (pH, electro-conductivity, etc), vibration, pump performance, - as much as required.&#8221;</p>
<p>Funny how even after James gave, in his story, explicit critical criteria that pointed to the problem&mdash;color, taste, smell&mdash;they <i>still</i> don&#8217;t appear on the list.</p>
<p>The argument is simple:  unlike humans, automation <i>doesn&#8217;t have expectations</i>.  It is capable of detecting matches or mismatches based on the expectations we feed it.  Humans, by contrast, can identify expectations prospectively, in advance of an observation (&#8221;If this were to come to pass, it would indicate a problem&#8221;); on the fly, during an observation (&#8221;Hey&#8230; I didn&#8217;t expect that; that could be a problem&#8221;); and retrospectively (&#8221;Now that I&#8217;ve seen the problem, I can figure out how I might have detected it&#8221; or &#8220;Now that I have a better model, I realize that I could have tested for this, even though a problem hasn&#8217;t manifested itself yet.&#8221;).</p>
<p><i>Just light the red lamp for a pilot if a parameter changed to a value outside of defined range.</i></p>
<p>One indicator of a problem with any analysis is the appearance of the word &#8220;just&#8221;.  Yes:  lighting a red lamp is a simple enough thing.  Knowing when to light it and when not to light it is the complicated bit.  Interpreting it is also complicated.  Here&#8217;s an example of a one-bit communications protocol:  someone honks the horn at you, as you&#8217;re driving.  How would one interpret accurately that without a walloping dose of context to go along with it?</p>
<p>&#8212;Michael B.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Heuristic Weight Loss by Ken Sommerville</title>
		<link>http://www.satisfice.com/blog/archives/112/comment-page-1#comment-242936</link>
		<dc:creator>Ken Sommerville</dc:creator>
		<pubDate>Fri, 12 Feb 2010 19:52:24 +0000</pubDate>
		<guid isPermaLink="false">http://www.satisfice.com/blog/archives/112#comment-242936</guid>
		<description>I'm curious if you stuck with the program and have seen continued success with your weight loss some two years later?

&lt;em&gt;[James' Reply: I would have to say no and yes. I went through some personal upheavals that knocked my mindset around for a while. However, I did not gain back all the weight, and as of last month, my brain clicked into the groove again and I am back to walking each day. I had a special tray built for my treadmill, and it holds my computer. I've discovered that I can put set the treadmill to one mile per hour and have no problem working while walking. As I'm typing this, I'm doing 1.3 MPH.]&lt;/em&gt;</description>
		<content:encoded><![CDATA[<p>I&#8217;m curious if you stuck with the program and have seen continued success with your weight loss some two years later?</p>
<p><em>[James' Reply: I would have to say no and yes. I went through some personal upheavals that knocked my mindset around for a while. However, I did not gain back all the weight, and as of last month, my brain clicked into the groove again and I am back to walking each day. I had a special tray built for my treadmill, and it holds my computer. I've discovered that I can put set the treadmill to one mile per hour and have no problem working while walking. As I'm typing this, I'm doing 1.3 MPH.]</em></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Tester Pilot by Albert Gareev</title>
		<link>http://www.satisfice.com/blog/archives/411/comment-page-1#comment-242771</link>
		<dc:creator>Albert Gareev</dc:creator>
		<pubDate>Thu, 11 Feb 2010 16:04:40 +0000</pubDate>
		<guid isPermaLink="false">http://www.satisfice.com/blog/?p=411#comment-242771</guid>
		<description>Hi James,

This is the lesson to think about...

"Crash pilots given conflicting orders"
http://news.bbc.co.uk/2/hi/europe/2115425.stm

[quote]
German investigators have revealed that the pilots of the Russian airliner involved in last week's mid-air collision with a cargo plane received contradictory instructions seconds before the crash. 
They said voice recorders recovered from both aircraft showed Swiss air traffic controllers told the Russian pilots to descend, while the on-board warning system instructed them to climb. 

All 69 people - including 45 schoolchildren - aboard the Russian Tu-154, and two crew members on the Boeing 757 were killed when the two aircraft collided at 35,000 feet (10,500 metres) over the German-Swiss border. 

According to German authorities, cockpit warning systems told the Tu-154 to climb and the cargo jet to descend, just 45 seconds before the collision. But voice recorders reveal that one second later, Zurich air traffic controllers told the Russian pilots to descend. The Russian crew did not respond, so the Zurich control tower repeated the order 14 seconds later, investigators say. 

The Russian plane responded and the two aircraft collided 30 seconds later. 

Although the aircraft were flying over Germany at the time, they were under the control of the Swiss air traffic control body, Skyguide. 

[/quote]

Thank you,
Albert Gareev
&lt;em&gt;
[James' Reply: It is customary to call an example like this a lesson. But really, it's not a lesson. This is a story. It becomes a lesson when we interpret it and make it a part of ourselves. My interpretation of this, I suspect, is different from your interpretation. 

I see this as a lesson about the automation bias and the need for vigorous training in order to pilot aircraft safely.]&lt;/em&gt;</description>
		<content:encoded><![CDATA[<p>Hi James,</p>
<p>This is the lesson to think about&#8230;</p>
<p>&#8220;Crash pilots given conflicting orders&#8221;<br />
<a href="http://news.bbc.co.uk/2/hi/europe/2115425.stm" rel="nofollow">http://news.bbc.co.uk/2/hi/europe/2115425.stm</a></p>
<p>[quote]<br />
German investigators have revealed that the pilots of the Russian airliner involved in last week&#8217;s mid-air collision with a cargo plane received contradictory instructions seconds before the crash.<br />
They said voice recorders recovered from both aircraft showed Swiss air traffic controllers told the Russian pilots to descend, while the on-board warning system instructed them to climb. </p>
<p>All 69 people - including 45 schoolchildren - aboard the Russian Tu-154, and two crew members on the Boeing 757 were killed when the two aircraft collided at 35,000 feet (10,500 metres) over the German-Swiss border. </p>
<p>According to German authorities, cockpit warning systems told the Tu-154 to climb and the cargo jet to descend, just 45 seconds before the collision. But voice recorders reveal that one second later, Zurich air traffic controllers told the Russian pilots to descend. The Russian crew did not respond, so the Zurich control tower repeated the order 14 seconds later, investigators say. </p>
<p>The Russian plane responded and the two aircraft collided 30 seconds later. </p>
<p>Although the aircraft were flying over Germany at the time, they were under the control of the Swiss air traffic control body, Skyguide. </p>
<p>[/quote]</p>
<p>Thank you,<br />
Albert Gareev<br />
<em><br />
[James' Reply: It is customary to call an example like this a lesson. But really, it's not a lesson. This is a story. It becomes a lesson when we interpret it and make it a part of ourselves. My interpretation of this, I suspect, is different from your interpretation. </p>
<p>I see this as a lesson about the automation bias and the need for vigorous training in order to pilot aircraft safely.]</em></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Tester Pilot by Daniel Åberg</title>
		<link>http://www.satisfice.com/blog/archives/411/comment-page-1#comment-242732</link>
		<dc:creator>Daniel Åberg</dc:creator>
		<pubDate>Thu, 11 Feb 2010 08:22:13 +0000</pubDate>
		<guid isPermaLink="false">http://www.satisfice.com/blog/?p=411#comment-242732</guid>
		<description>Hi James!

Great story today. Your one-liners such as: 
“Unless you landed at the rainbow lake on Unicorn Planet, there may be a hydraulic leak in there.” or 
\In that way, we are like secret service agents, trained to deal with known threats and to have a good chance to discern fresh and unusual threats, too.\
makes me smile all day in office.
Back to testing
Cheers</description>
		<content:encoded><![CDATA[<p>Hi James!</p>
<p>Great story today. Your one-liners such as:<br />
“Unless you landed at the rainbow lake on Unicorn Planet, there may be a hydraulic leak in there.” or<br />
\In that way, we are like secret service agents, trained to deal with known threats and to have a good chance to discern fresh and unusual threats, too.\<br />
makes me smile all day in office.<br />
Back to testing<br />
Cheers</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Tester Pilot by Aaron Hodder</title>
		<link>http://www.satisfice.com/blog/archives/411/comment-page-1#comment-242704</link>
		<dc:creator>Aaron Hodder</dc:creator>
		<pubDate>Wed, 10 Feb 2010 22:35:02 +0000</pubDate>
		<guid isPermaLink="false">http://www.satisfice.com/blog/?p=411#comment-242704</guid>
		<description>Nice story.  I'm insanely envious at your opportunity to go bush flying in such a beautiful part of the world.  I'm stuck doing it in Flight Simulator ;)

"The question “Can I explain everything that I see?” is a good heuristic to keep in mind while testing."
I find this heuristic to be valuable.  In the past, I've seen an anomaly, say, "yesterday the program wasn't sending me emails, but today it is."  It's insanely easy to say "Well, it's working now, so it passes, and that's ok."  I always try and make a point now of asking "why was it not working yesterday, but today it is?" rather than just being content that it now works.  The investigative path often leads to very interesting information, even if you never end up explaining the anomaly.</description>
		<content:encoded><![CDATA[<p>Nice story.  I&#8217;m insanely envious at your opportunity to go bush flying in such a beautiful part of the world.  I&#8217;m stuck doing it in Flight Simulator <img src='http://www.satisfice.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>&#8220;The question “Can I explain everything that I see?” is a good heuristic to keep in mind while testing.&#8221;<br />
I find this heuristic to be valuable.  In the past, I&#8217;ve seen an anomaly, say, &#8220;yesterday the program wasn&#8217;t sending me emails, but today it is.&#8221;  It&#8217;s insanely easy to say &#8220;Well, it&#8217;s working now, so it passes, and that&#8217;s ok.&#8221;  I always try and make a point now of asking &#8220;why was it not working yesterday, but today it is?&#8221; rather than just being content that it now works.  The investigative path often leads to very interesting information, even if you never end up explaining the anomaly.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Tester Pilot by Albert Gareev</title>
		<link>http://www.satisfice.com/blog/archives/411/comment-page-1#comment-242698</link>
		<dc:creator>Albert Gareev</dc:creator>
		<pubDate>Wed, 10 Feb 2010 20:58:31 +0000</pubDate>
		<guid isPermaLink="false">http://www.satisfice.com/blog/?p=411#comment-242698</guid>
		<description>&#62;&#62; But if I were to have automated my float pump tests, I would never have found this problem. Because unlike a human, a program can’t look at something and just try to explain it. It must be told exactly what to look for.

Hi James,

You suddenly decided to pump the float (the action wasn't really required) and discovered an issue that could have become a serious problem. That is a typical situation in testing but I don't see why you [hypothetically] have problems imagining automation of float pump tests that would find unexpected/undefined problem. Below is the simplified illustration.

Layer One: Detection
I'm sure you've heard of Boolean algebra and I'm 100% confident you practically used elements of it as you did some programming.
&lt;em&gt;
[James' Reply: This is how you're going to start your argument? Okay. Why yes, Albert, I have heard of Boolean algebra. It came in handy when I was writing machine code for those video games I wrote for the Apple II, Commodore64, PC, and Amiga, back in the eighties. And indeed it's essential in writing the test tools and automation that I create, today. I sure hope the point you are about to make is better informed about computer science than it is about my technical background...]&lt;/em&gt;

The main rule that you would need to use here is "FALSE = NOT TRUE"
Implementation would require heuristic too: instead of looking for problems automatic unit must look after the object's (float, pump, and peripherals) state. If object's state is deviated from the base one - that is an indicator of [possible] problem. State should be defined by a sufficient set of criteria: amount of water in a float, chemical activity of water (pH, electro-conductivity, etc), vibration, pump performance, - as much as required.
&lt;em&gt;
[James' Reply: This fails in two ways to address the issue I raised, both of which you need to understand if you want to get good at test automation:

1. When I test sapiently, I do not need to bring to conscious attention all of the factors that I am indeed considering. However, when I automate, I must do so. You have made a list of factors that you have thought about. But you have not made a list of things you have not yet thought about, so this wouldn't have solved the problem that I did indeed solved in this situation-- namely, testing something that I hadn't identified in advance as a potential issue.

2. The false positive problem. Sure, I've worked with automation that sqawks if something changes. But that's not testing, that's change detection. Once we notice a change we have to evaluate it. Then it becomes testing. The problem is, how can the automation judge which change reports will waste my time and which will not? This is exactly why, when I'm flying, I disable the landing gear alarm that comes on whenever I decelerate below 80 mph. That system assumes that I'm preparing for landing, but actually my cruising speed is 85 and my climbing speed is 70, so the alarm is constantly going off. The manufacturer who created that bit of automation didn't know that.

There are certainly situations we both could cite where we would think that any change to a particular variable is highly likely to be bad. However, in my experience working with complex dynamic systems and complex testing thereof, those situations are not commonplace. Frequently it requires clever coding to mince our way around things that are fully expected to change. The more you write such code, the more expensive your automation becomes.] &lt;/em&gt;

//Note. That already could be sufficient enough, depending on context. Just light the red lamp for a pilot if a parameter changed to a value outside of defined range. However, we may end up with too many lamps or red lights indicating low threat that could have been ignored if checked by a human being. To avoid that problem an automatic checking unit should become a little smarter on its own and do evaluation.//

&lt;em&gt;[James' Reply: In the cockpit, I have a number of instruments that can indicate potential trouble, but just that indication-- which is all automation can do-- is not enough for excellent flying (or testing). There is no "everything is okay" detector on the plane. Nor can there be. The designers have anticipated various specific kinds of problems and I have detectors for those (a stall warning tone, for instance). But on top of all that-- and here is the point I'm trying to make-- my sapience must interpolate and extrapolate; generate ideas and filter them. The automation can help, but it cannot replace sapience.]
&lt;/em&gt;

Layer Two: Evaluation
Boolean algebra is not sufficient enough here. Fuzzy Logic methods (or Artificial Neural Network for more complicated cases) are needed to be used.

&lt;em&gt;[James' Reply: I would argue that a natural neural network is needed.]
&lt;/em&gt;

From the context of your story: small amount of water in a float isn't a problem itself; a little salty water is also a valid case. That is, "true" or "false" state of event doesn't give basis for evaluation. It's combination of events and weight of each event that matter. 
Examples.
Little water + high electro-conductivity = alert
Little water + high/low pH = alert

&lt;em&gt;[James' Reply: What is the false positive rate for that and wouldn't it be easier just to taste the water? This also demonstrates my point about pink water: I don't see anything here that detects pinkness. Here's some homework for you. At minute 27 of &lt;a href="http://www.researchchannel.org/prog/displayevent.aspx?rID=25008&#038;fID=567" rel="nofollow"&gt;this video&lt;/a&gt;, this doctor explains how a particular form of automation has made medical testing WORSE.]
&lt;/em&gt;

//Note. It should be seen pretty clear now that implementation of such a solution isn't a quick patch. Therefore it should be reasonable and affordable.//

From the safety and security stand points it could be reasonable even for a light aircraft. Economically it could be affordable if it's sold along with 100 of planes. Or 100,000. Or one large plane.
&lt;em&gt;
[James' Reply: But Albert, your very example suggests that it's intractable, because you are either unwilling or unable to supply me with a complete list of things to check for and a complete design of the equipment to check for it. Oh, and how much will this equipment weigh? How expensive is it to test and maintain? Simplicity and lightness is important in designing light aircraft.

You haven't addressed these concerns, nor would I expect you to, because my argument is that it's ridiculously hard to do so, and not at all worth doing compared to training the pilot to handle these things himself.]&lt;/em&gt;

It also may lead to what I wouldn't want to happen but what could happen and happens anyway.
For example - replacing a highly qualified mechanic with a combination "automatic unit" + "2-week trainee".  It could be because it's too hard to get or too long to grow a professional, or because it's much cheaper to employ 10 surrogates. Or in an organization with extremely high turnover of staff. That used to be only army in action but now seems to be any big corporation.
This approach has come and stayed, and it looks very attractive in accounting books. What is not visible in balance sheets that professional armed with automation can bring performance to new levels of excellence while amateurish workers even with automation have problems performing just as good.

So my point is that instead of trying to stop the progress maybe better to walk ahead of it? 

&lt;em&gt;[James' Reply: What do you mean progress? I'm not standing in the way of any progress. But I would say that it is not progress to seek to do with automation expensively and poorly what can be done far better and far less expensively by a skilled tester.]
&lt;/em&gt;

(Remember, Mars Pathfinder over-succeeded in 1997, working automatically,  without direct radio guidance)
&lt;em&gt;
[James' Reply: Yes, when I taught my testing class at JPL and saw the new rover under construction. That's wonderful and extremely expensive technology. It also had a critical fault in it that almost ended the mission on the second day!

Dude, I'm not opposed to test automation. I'm opposed to wild irresponsible claims made about test automation. This is based on extensive experience with test automation that I have, as a programmer and as a tester and as a consultant who has written reports about test automation failures.]&lt;/em&gt;

Thank you,
Albert Gareev
http://automation-beyond.com/
</description>
		<content:encoded><![CDATA[<p>&gt;&gt; But if I were to have automated my float pump tests, I would never have found this problem. Because unlike a human, a program can’t look at something and just try to explain it. It must be told exactly what to look for.</p>
<p>Hi James,</p>
<p>You suddenly decided to pump the float (the action wasn&#8217;t really required) and discovered an issue that could have become a serious problem. That is a typical situation in testing but I don&#8217;t see why you [hypothetically] have problems imagining automation of float pump tests that would find unexpected/undefined problem. Below is the simplified illustration.</p>
<p>Layer One: Detection<br />
I&#8217;m sure you&#8217;ve heard of Boolean algebra and I&#8217;m 100% confident you practically used elements of it as you did some programming.<br />
<em><br />
[James' Reply: This is how you're going to start your argument? Okay. Why yes, Albert, I have heard of Boolean algebra. It came in handy when I was writing machine code for those video games I wrote for the Apple II, Commodore64, PC, and Amiga, back in the eighties. And indeed it's essential in writing the test tools and automation that I create, today. I sure hope the point you are about to make is better informed about computer science than it is about my technical background...]</em></p>
<p>The main rule that you would need to use here is &#8220;FALSE = NOT TRUE&#8221;<br />
Implementation would require heuristic too: instead of looking for problems automatic unit must look after the object&#8217;s (float, pump, and peripherals) state. If object&#8217;s state is deviated from the base one - that is an indicator of [possible] problem. State should be defined by a sufficient set of criteria: amount of water in a float, chemical activity of water (pH, electro-conductivity, etc), vibration, pump performance, - as much as required.<br />
<em><br />
[James' Reply: This fails in two ways to address the issue I raised, both of which you need to understand if you want to get good at test automation:</p>
<p>1. When I test sapiently, I do not need to bring to conscious attention all of the factors that I am indeed considering. However, when I automate, I must do so. You have made a list of factors that you have thought about. But you have not made a list of things you have not yet thought about, so this wouldn't have solved the problem that I did indeed solved in this situation-- namely, testing something that I hadn't identified in advance as a potential issue.</p>
<p>2. The false positive problem. Sure, I've worked with automation that sqawks if something changes. But that's not testing, that's change detection. Once we notice a change we have to evaluate it. Then it becomes testing. The problem is, how can the automation judge which change reports will waste my time and which will not? This is exactly why, when I'm flying, I disable the landing gear alarm that comes on whenever I decelerate below 80 mph. That system assumes that I'm preparing for landing, but actually my cruising speed is 85 and my climbing speed is 70, so the alarm is constantly going off. The manufacturer who created that bit of automation didn't know that.</p>
<p>There are certainly situations we both could cite where we would think that any change to a particular variable is highly likely to be bad. However, in my experience working with complex dynamic systems and complex testing thereof, those situations are not commonplace. Frequently it requires clever coding to mince our way around things that are fully expected to change. The more you write such code, the more expensive your automation becomes.] </em></p>
<p>//Note. That already could be sufficient enough, depending on context. Just light the red lamp for a pilot if a parameter changed to a value outside of defined range. However, we may end up with too many lamps or red lights indicating low threat that could have been ignored if checked by a human being. To avoid that problem an automatic checking unit should become a little smarter on its own and do evaluation.//</p>
<p><em>[James' Reply: In the cockpit, I have a number of instruments that can indicate potential trouble, but just that indication-- which is all automation can do-- is not enough for excellent flying (or testing). There is no "everything is okay" detector on the plane. Nor can there be. The designers have anticipated various specific kinds of problems and I have detectors for those (a stall warning tone, for instance). But on top of all that-- and here is the point I'm trying to make-- my sapience must interpolate and extrapolate; generate ideas and filter them. The automation can help, but it cannot replace sapience.]<br />
</em></p>
<p>Layer Two: Evaluation<br />
Boolean algebra is not sufficient enough here. Fuzzy Logic methods (or Artificial Neural Network for more complicated cases) are needed to be used.</p>
<p><em>[James' Reply: I would argue that a natural neural network is needed.]<br />
</em></p>
<p>From the context of your story: small amount of water in a float isn&#8217;t a problem itself; a little salty water is also a valid case. That is, &#8220;true&#8221; or &#8220;false&#8221; state of event doesn&#8217;t give basis for evaluation. It&#8217;s combination of events and weight of each event that matter.<br />
Examples.<br />
Little water + high electro-conductivity = alert<br />
Little water + high/low pH = alert</p>
<p><em>[James' Reply: What is the false positive rate for that and wouldn't it be easier just to taste the water? This also demonstrates my point about pink water: I don't see anything here that detects pinkness. Here's some homework for you. At minute 27 of <a href="http://www.researchchannel.org/prog/displayevent.aspx?rID=25008&#038;fID=567" rel="nofollow">this video</a>, this doctor explains how a particular form of automation has made medical testing WORSE.]<br />
</em></p>
<p>//Note. It should be seen pretty clear now that implementation of such a solution isn&#8217;t a quick patch. Therefore it should be reasonable and affordable.//</p>
<p>From the safety and security stand points it could be reasonable even for a light aircraft. Economically it could be affordable if it&#8217;s sold along with 100 of planes. Or 100,000. Or one large plane.<br />
<em><br />
[James' Reply: But Albert, your very example suggests that it's intractable, because you are either unwilling or unable to supply me with a complete list of things to check for and a complete design of the equipment to check for it. Oh, and how much will this equipment weigh? How expensive is it to test and maintain? Simplicity and lightness is important in designing light aircraft.</p>
<p>You haven't addressed these concerns, nor would I expect you to, because my argument is that it's ridiculously hard to do so, and not at all worth doing compared to training the pilot to handle these things himself.]</em></p>
<p>It also may lead to what I wouldn&#8217;t want to happen but what could happen and happens anyway.<br />
For example - replacing a highly qualified mechanic with a combination &#8220;automatic unit&#8221; + &#8220;2-week trainee&#8221;.  It could be because it&#8217;s too hard to get or too long to grow a professional, or because it&#8217;s much cheaper to employ 10 surrogates. Or in an organization with extremely high turnover of staff. That used to be only army in action but now seems to be any big corporation.<br />
This approach has come and stayed, and it looks very attractive in accounting books. What is not visible in balance sheets that professional armed with automation can bring performance to new levels of excellence while amateurish workers even with automation have problems performing just as good.</p>
<p>So my point is that instead of trying to stop the progress maybe better to walk ahead of it? </p>
<p><em>[James' Reply: What do you mean progress? I'm not standing in the way of any progress. But I would say that it is not progress to seek to do with automation expensively and poorly what can be done far better and far less expensively by a skilled tester.]<br />
</em></p>
<p>(Remember, Mars Pathfinder over-succeeded in 1997, working automatically,  without direct radio guidance)<br />
<em><br />
[James' Reply: Yes, when I taught my testing class at JPL and saw the new rover under construction. That's wonderful and extremely expensive technology. It also had a critical fault in it that almost ended the mission on the second day!</p>
<p>Dude, I'm not opposed to test automation. I'm opposed to wild irresponsible claims made about test automation. This is based on extensive experience with test automation that I have, as a programmer and as a tester and as a consultant who has written reports about test automation failures.]</em></p>
<p>Thank you,<br />
Albert Gareev<br />
<a href="http://automation-beyond.com/" rel="nofollow">http://automation-beyond.com/</a></p>
]]></content:encoded>
	</item>
</channel>
</rss>


