<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>JW on Test</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/james_whittaker/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/james_whittaker/feed.xml</link>
    <description />
    <lastBuildDate>Tue, 16 Apr 2019 05:10:24 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>tour of the month: the exit-stage-right tour</title>
      <link>https://docs.microsoft.com/archive/blogs/james_whittaker/tour-of-the-month-the-exit-stage-right-tour</link>
      <pubDate>Thu, 21 May 2009 16:11:00 GMT</pubDate>
      <dc:creator><![CDATA[MSDN Archive]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/james_whittaker/2009/05/21/tour-of-the-month-the-exit-stage-right-tour/</guid>
      <description><![CDATA[All tours much eventually come to an end and thus it is with my tour with Microsoft. I have resigned...]]></description>
      <content:encoded><![CDATA[<P>All tours much eventually come to an end and thus it is with my tour with Microsoft. I have resigned my position and am leaving the company. It was a great ride. </P>
<P>But the tours will continue. My book <EM>Exploratory Software Testing: Tips, Tricks, Tours and Techniques to Guide Manual Testers </EM>is in press and will appear through Addison-Wesley sometime this summer. I am truly&nbsp;thankful for the many wonderful testers at Microsoft who contributed wisdom, thoughts and even case studies to the effort. Special thanks go to Nicole Haugen, Geoff Staneff, David Gorena Elizondo, Shawn Brown and Bola Agbonile. Microsoft is full of great testers and even here, these guys manage to stand out. </P>
<P>I imagine that I will not be long in setting up a new blog as I have very much enjoyed this experience and being the only tester in Developer Division's top ten bloggers&nbsp;was quite an honor. For that I thank you. </P>
<P>In case you are interested in my landing place, I can imagine that one or two of the more popular testing blogs around town will be talking about it.</P>
<P>Wish me luck ...</P>
<P mce_keep="true">&nbsp;</P>]]></content:encoded>
    </item>
    <item>
      <title>tour of the month: the landmark tour</title>
      <link>https://docs.microsoft.com/archive/blogs/james_whittaker/tour-of-the-month-the-landmark-tour</link>
      <pubDate>Mon, 06 Apr 2009 14:18:00 GMT</pubDate>
      <dc:creator><![CDATA[MSDN Archive]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/james_whittaker/2009/04/06/tour-of-the-month-the-landmark-tour/</guid>
      <description><![CDATA[Every location that covets tourists must have some good reasons for them to come. For Las Vegas it’s...]]></description>
      <content:encoded><![CDATA[<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><SPAN style="FONT-SIZE: 12pt"><FONT face=Calibri>Every location that covets tourists must have some good reasons for them to come. For Las Vegas it’s the casinos and the strip, for Amsterdam it’s the coffee shops and red light district, for Egypt it’s the pyramids. Take these landmarks away and the place is no longer an attraction. <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></FONT></SPAN></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><SPAN style="FONT-SIZE: 12pt"><FONT face=Calibri>Software is much the same – there has to be some reason for users to buy it. Some <I style="mso-bidi-font-style: normal">landmarks</I> that make it what it is. If you identify the landmark features that draw users, that’s where you need to concentrate a lot of testing. You can tell where the tourist landmarks are by noticing crowds and watching where they spend their money. For exploratory testers finding the landmarks also means following the money, literally. And money usually leads directly to the sales force. <o:p></o:p></FONT></SPAN></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><SPAN style="FONT-SIZE: 12pt"><FONT face=Calibri>Sales folk spend a great deal of time giving demos of applications. One might imagine that since they get paid based on fulfilling their sales quota, they would be very good at it and would include any interesting nuances of usage that make the product look its very best. They also excel at shortcuts to smooth out demos and often come up with scenarios that sell the product but weren’t part of any specific requirements or user story. The long and short of it is that sales people are a fantastic source of information for the landmark tour.<o:p></o:p></FONT></SPAN></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><SPAN style="FONT-SIZE: 12pt"><FONT face=Calibri>Testers performing the landmark tour should sit in on sales demos, watch sales videos, and accompany salespeople on trips to talk to customers. Each demo or demo script identifies the landmark features and can even give you insight into their relative importance by how often those features appear. <o:p></o:p></FONT></SPAN></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><SPAN style="FONT-SIZE: 12pt"><FONT face=Calibri>To execute the tour, you could simply run through the demos yourself and look for problems. As the product code is modified for bug fixes and new features, it may be that the demo breaks and you’ve not only found a great bug, but you’ve saved your sales force from some pretty serious embarrassment (perhaps even salvaging a sale). I have found enough bugs this way to privately wonder if there is a case to be made for testers sharing in sales commissions!<o:p></o:p></FONT></SPAN></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><SPAN style="FONT-SIZE: 12pt"><FONT face=Calibri>But we’ve found a more powerful way is to inject variation into the demo scenarios by “landmark hopping.” Ever use a compass in the woods? That’s the effect we are going for here. My army-trained older brother taught me to locate landmarks (rocks, trees, hillsides) in a compass scope and then to make a path from landmark to landmark in the general direction you want to go. It kept me from getting lost in the woods of Kentucky where I grew up and it creates excellent variation in demo scripts and end-to-end sceanrios. Pick the landmarks in advance, scramble them up and tour from one to the next. Rinse and repeat trying to use the landmark feature in a different way every time. <o:p></o:p></FONT></SPAN></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><SPAN style="FONT-SIZE: 12pt"><FONT face=Calibri>A powerful variation of this tour is the <B style="mso-bidi-font-weight: normal">skeptical customer tour</B> in which you execute the landmark tour but pretend there is a customer constantly stopping the demo and asking ‘what if’. ‘What if I wanted to do <I style="mso-bidi-font-style: normal">this</I>?’ they may ask, or, ‘how would I do <I style="mso-bidi-font-style: normal">that</I>?’ requiring you to go off script and include a new feature into the demo. This happens a lot in customer demos, especially the serious ones where a purchase is imminent and the customer is kicking the tires one last time. It’s a powerful way to create test cases that will matter to end users. </FONT></SPAN></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><SPAN style="FONT-SIZE: 12pt"><FONT face=Calibri>Landmarks can be "back of the box" features, features used as part of&nbsp;sales demos, features popular to users (in the event you collect such statistics), features prominently displayed in the UI and so forth. </FONT></SPAN><SPAN style="FONT-SIZE: 12pt"><FONT face=Calibri>Clearly any bugs you find on this tour or any of its variations are very important ones as they are likely to be seen by real customers.</FONT></SPAN></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><SPAN style="FONT-SIZE: 12pt"><FONT face=Calibri>Enjoy the tour and don't get lost. </FONT></SPAN></P>]]></content:encoded>
    </item>
    <item>
      <title>testing sucks</title>
      <link>https://docs.microsoft.com/archive/blogs/james_whittaker/testing-sucks</link>
      <pubDate>Thu, 02 Apr 2009 17:11:00 GMT</pubDate>
      <dc:creator><![CDATA[MSDN Archive]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/james_whittaker/2009/04/02/testing-sucks/</guid>
      <description><![CDATA[Bet that got your attention. It's true, but let me qualify it: Running test cases over and over in...]]></description>
      <content:encoded><![CDATA[<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><SPAN style="FONT-SIZE: 12pt"><FONT face=Calibri></FONT></SPAN></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><SPAN style="FONT-SIZE: 12pt"><FONT face=Calibri>Bet that got your attention. It's true, but let me qualify it: Running test cases over and over in the hope that bugs will manifest sucks. It’s boring, uncreative work and since half the world thinks that is all testing is about, it is no great wonder few people covet testing positions. Testing is either too tedious and repetitive or it’s downright too hard. Either way, who would want to stay in such a position?<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></FONT></SPAN></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><SPAN style="FONT-SIZE: 12pt"><FONT face=Calibri>What is interesting about testing is strategy, deciding what to test and how to combine multiple features and environmental consideration in a single test. The tactical part of testing, actually running test cases and logging bugs is the least interesting part. <o:p></o:p></FONT></SPAN></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><SPAN style="FONT-SIZE: 12pt"><FONT face=Calibri>Smart test managers and test directors need to recognize this and ensure that every tester splits their time between strategy and tactics. Take the tedious and repetitive parts of the testing process and automate them. Tool development is a major creative task at Microsoft and is well rewarded by the corporate culture. <o:p></o:p></FONT></SPAN></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><SPAN style="FONT-SIZE: 12pt"><FONT face=Calibri>For the hard parts of the testing process like deciding what to test and determining test completeness, user scenarios and so forth we have another creative and interesting task. Testers who spend time categorizing tests and developing strategy (the interesting part) are more focused on testing and thus spend less time running tests (the boring part). <o:p></o:p></FONT></SPAN></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><SPAN style="FONT-SIZE: 12pt"><FONT face=Calibri>Testing is an immature science. There are a lot of insights that a thinking person can make without inordinate effort. By ensuring that testers have the time to take a step back from their testing effort and find insights that will improve their testing, teams will benefit. Not only are such insights liable to improve the overall quality of the test, but the creative time will improve the morale of the testers involved.</FONT></SPAN></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><SPAN style="FONT-SIZE: 12pt"><FONT face=Calibri>So all the managers out there need to ask themselves what they've done lately to make their testers more creative. If you don't have an answer, then testing isn't the only thing that sucks. </FONT></SPAN></P>]]></content:encoded>
    </item>
    <item>
      <title>live webinar next week</title>
      <link>https://docs.microsoft.com/archive/blogs/james_whittaker/live-webinar-next-week</link>
      <pubDate>Wed, 25 Mar 2009 16:23:00 GMT</pubDate>
      <dc:creator><![CDATA[MSDN Archive]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/james_whittaker/2009/03/25/live-webinar-next-week/</guid>
      <description><![CDATA[I am doing another webinar on March 31 which will be hosted by uTest. This is the second webinar I...]]></description>
      <content:encoded><![CDATA[<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>I am doing another webinar on March 31 which will be hosted by uTest. This is the second webinar I have done for them and I quite enjoyed the first.&nbsp;I have a lot of new material that I have created (and am still creating) for this one which I've called "5 Insights to Revolutionize&nbsp;Your QA."</FONT><FONT size=3 face=Calibri>&nbsp;</FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>The link to register is <A href="https://blog.utest.com/?p=122">https://blog.utest.com/?p=122</A>. Note the use of the words 'sucks' in the blurb. I love it when I get marketing people to say sucks...</FONT></P>]]></content:encoded>
    </item>
    <item>
      <title>tour of the month: the intellectual's tour</title>
      <link>https://docs.microsoft.com/archive/blogs/james_whittaker/tour-of-the-month-the-intellectuals-tour</link>
      <pubDate>Wed, 11 Mar 2009 14:09:00 GMT</pubDate>
      <dc:creator><![CDATA[MSDN Archive]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/james_whittaker/2009/03/11/tour-of-the-month-the-intellectuals-tour/</guid>
      <description><![CDATA[As promised, here is the first tour on the tour-of-the-month parade. It's probably not the best...]]></description>
      <content:encoded><![CDATA[<P><FONT size=3><FONT face=Calibri>As promised, here is the first tour on the tour-of-the-month parade. It's probably not the best place to start, but it's finding so many good bugs for so many testers around the company that I wanted to get it in the hands of others sooner rather than later where it might make more logistical sense.</FONT></FONT></P>
<P><FONT size=3><FONT face=Calibri>Enjoy! </FONT></FONT></P>
<P><FONT size=3><FONT face=Calibri>I&nbsp;was once on a walking tour of London in which the guide was a gentleman in his fifties who claimed at the outset to have lived in London all his life. A fellow tourist happened to be a scholar who was knowledgeable in English history and was constantly asking hard questions of the guide. He didn’t mean to be a jerk, but he was curious and that ended up being a dangerous combination … at least to the guide.</FONT></FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>Whenever the guide would talk about some specific location on the tour whether it was Oscar Wilde’s former apartment in Chelsea, details of the great fire, or what life was like when horses were the primary mode of transportation, the scholar would second guess him or ask him some hard question that the guide struggled to answer. The poor guide had never worked so hard on any past tour. Every time he opened his mouth he knew he was going to be challenged and he knew he had to be on his toes. He wasn’t up to the task and finally admitted that he had only actually lived in London for five years and he had memorized the script of the tour. Until he met the scholar, his ruse had worked. </FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>What a fantastic bug! I was so impressed I bought both the guide and the scholar a pint when the tour ended at a pub (a place, incidentally, where the hapless guide was infinitely more knowledgeable than the scholar).</FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>When applied to exploratory testing, this tour takes on the approach of <I style="mso-bidi-font-style: normal">asking the software hard questions</I>. How do we make the software work as hard as possible? Which features will stretch it to its limits? What inputs and data will cause it to perform the most processing? Which inputs might fool its error checking routines? Which inputs and internal data will stress its ability to produce any specific output?</FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>For folks who test word processors this tour would direct them to create the most complicated documents possible, ones full of graphics, tables, multiple columns, footnotes and so forth.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>For folks testing online purchasing systems, what is the hardest order we can place? Can we order two hundred items? Can we place multiple items on backorder? Can we keep changing our mind about the credit card we want to use? Can we make mistakes on <I style="mso-bidi-font-style: normal">every</I> field in the data entry forms? This tour is going to be different for every application, but the idea is the same: ask your software hard questions. Just as the scholar did with the London guide, you are likely to find gaps in its logic and capabilities. </FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri>A variation of this tour is the <B style="mso-bidi-font-weight: normal">arrogant American tour </B>that celebrates a stereotype of my countrymen when we travel abroad. Instead of asking hard questions, we ask silly questions otherwise intended simply to annoy or impede the tour and draw attention to ourselves. We intentionally present obstacles to see how the software reacts. Instead of the most complicated word processing document, we make the most colorful, invert every other page, print only prime number pages, or place something in a location that makes little sense. On a shopping site we’ll seek out the most expensive items only to return them immediately. It doesn’t have to make sense … we do it because we <I style="mso-bidi-font-style: normal">can</I>.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN></FONT></FONT></P>
<P mce_keep="true">&nbsp;</P>]]></content:encoded>
    </item>
    <item>
      <title>links you've been asking for</title>
      <link>https://docs.microsoft.com/archive/blogs/james_whittaker/links-youve-been-asking-for</link>
      <pubDate>Wed, 25 Feb 2009 12:26:00 GMT</pubDate>
      <dc:creator><![CDATA[MSDN Archive]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/james_whittaker/2009/02/25/links-youve-been-asking-for/</guid>
      <description><![CDATA[I’ve gotten enough requests for links to my interviews, lectures and pointless videos that I am...]]></description>
      <content:encoded><![CDATA[<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>I’ve gotten enough requests for links to my interviews, lectures and pointless videos that I am finally tired of responding individually. Here are a few recent ones I have been pointing people to:</FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><A href="https://channel9.msdn.com/posts/briankel/James-Whittaker-on-Software-Testing/"><FONT size=3 face=Calibri>A video interview on Channel 9 about software testing</FONT></A></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><A href="https://channel9.msdn.com/posts/VisualStudio/Better-Software-Quality-with-Visual-Studio-Team-System-2010/"><FONT size=3 face=Calibri>A video interview on Channel 9 about Visual Studio Team System</FONT></A></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><A href="https://www.dotnetrocks.com/default.aspx?showNum=408"><FONT size=3 face=Calibri>A radio interview on Dot Net Rocks with two funny guys</FONT></A><FONT size=3 face=Calibri> (I had a blast with this one and it will be one reason I never run for political office in the future)</FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><A href="https://www.utest.com/webinar_james_whittaker.htm"><FONT size=3 face=Calibri>The Future of Testing webinar for uTest</FONT></A></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>No, “Piece of Crap” is not included. Sorry but it’s time we put that one to sleep. Lee Copeland is widely known to play it at his lectures so try and catch him on his speaking circuit if you just can’t resist. That video is another reason I can’t run for political office. Neil Young has my sincerest apologies. </FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>Some internal links for my MS readers:</FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><A href="https://mylearning/coursedetails.aspx?COURSENO=COUR2008081912383306390258"><FONT color=#0000ff size=3 face=Calibri>The Future of Testing</FONT></A></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><A href="https://mylearning/coursedetails.aspx?COURSENO=COUR2009012816291506510614"><FONT color=#0000ff size=3 face=Calibri>An Update on the Future</FONT></A></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><A href="https://mylearning/CourseDetails.aspx?COURSENO=COUR2007091311211104330459&amp;title=Security%20Testing%20-%20Online"><FONT color=#0000ff size=3 face=Calibri>Online Security Testing Course</FONT></A><FONT size=3 face=Calibri> (this is officially a classic since it is the last time I taught this material)</FONT></P><SPAN style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-bidi-font-size: 10.0pt; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 'Times New Roman'; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA">
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal>Sorry to post internal links that many of you can’t get to. But if you do&nbsp;manage to get to them, report the bug you exploited so I can include it in my future talks! </P></SPAN>]]></content:encoded>
    </item>
    <item>
      <title>the touring test</title>
      <link>https://docs.microsoft.com/archive/blogs/james_whittaker/the-touring-test</link>
      <pubDate>Thu, 12 Feb 2009 13:55:00 GMT</pubDate>
      <dc:creator><![CDATA[MSDN Archive]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/james_whittaker/2009/02/12/the-touring-test/</guid>
      <description><![CDATA[(I couldn’t resist the play on Alan Turing’s famous test when naming this testing metaphor.) 
When...]]></description>
      <content:encoded><![CDATA[<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>(I couldn’t resist the play on Alan Turing’s famous test when naming this testing metaphor.) </FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>When I think of software, I naturally think of it in testing terms. In my mind software is made up of <B style="mso-bidi-font-weight: normal">components</B> which are defined by structural boundaries (code files/assemblies) where multiple components communicate through some defined interface, a set of <B style="mso-bidi-font-weight: normal">features</B> that define the functionality for each component, and <B style="mso-bidi-font-weight: normal">capabilities</B> that produce behavior that the user desires. It’s extremely useful to me to think about it this way because I can now more purposefully explore my application. </FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>For example, I can choose a set of capabilities to test as an ensemble or focus on a single one. I can purposefully explore the capabilities of many features or a single feature. I can exercise capabilities that cross component boundaries or choose to stay within a component. I can use my component/feature/capability map to guide my testing and ensure that I cover the interesting combinations to the extent possible. </FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>I call these tests <I style="mso-bidi-font-style: normal">tours</I> and think in terms of a tourism metaphor when I test software. Ideas from tourism fit well into testing. If you think about a big, complicated tourist destination like New York or London you realize that wandering aimlessly around its streets is a pretty lousy way to tour. If you understand a little bit about its districts and destinations (components and features) you have a better feel for how to get around. If you go further and use published guidebooks, consult locals and read tourist maps you’ll discover the best places to go and things to do (capabilities) a lot faster. Travelers want to get the most out of their brief vacation time and as testers we can learn from them. </FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>At Microsoft a group of us test folk from around the division and around the company are experimenting with tour-guided testing. We have the <B style="mso-bidi-font-weight: normal">Supermodel Tour</B> in which all we do is window shop … look at the interface and find superficial (no intended disrespect to any actual supermodel who might be reading this blog) bugs. We have the <B style="mso-bidi-font-weight: normal">Money Tour</B> where we watch salespeople demo the product and create variations of those demos as test cases. We have the Intellectual Tour where we ask the software hard questions. We have the <B style="mso-bidi-font-weight: normal">Garbage Collector’s Tour</B>, the <B style="mso-bidi-font-weight: normal">Competitor’s Tour</B>, the <B style="mso-bidi-font-weight: normal">Museum Tour</B>, the <B style="mso-bidi-font-weight: normal">After Hours Tour</B> and a host more that we are experimenting with. All of these tours represent specific, focused testing advice that guides the tester through paths of the software. The tours help a tester think through inputs, data and environment settings that satisfy the goals of the tour. It's a more methodical and purposeful way to test. </FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>We created the tours as exploratory test guidance and even more as a way of partitioning test concerns. Each tour is guidance about a very specific type of capability. Add all the tours together and they collectively should encompass most all interesting scenarios, but there is more to them that that. They can also be associated with the component/feature/capability map to help testers associate a tour with a specific&nbsp;capability. Want to test the interface between a database component and the application? Run the <B style="mso-bidi-font-weight: normal">FedEx Tour</B>. Want to test legacy code? Run the Museum Tour<B style="mso-bidi-font-weight: normal"> </B>and the <B style="mso-bidi-font-weight: normal">Prior Version</B> <B style="mso-bidi-font-weight: normal">Tour</B>. Want to test how two features interact? Run the <B style="mso-bidi-font-weight: normal">Guidebook Tour </B>between them. The touring tests take the discussion of how to test up to a higher level. Instead of talking about specific test cases, they guide us toward talking about test <EM>concepts</EM> because each tour embodies testing advice for a very specific capability. Such higher level concepts have been missing from our testing vocabulary for far too long. </FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>Tours also take the discussion of bugs to a higher level. Want to find UI bugs? Run the Supermodel Tour. Want to find stress bugs? Run the <B style="mso-bidi-font-weight: normal">Saboteur</B> (get it?) and the <B style="mso-bidi-font-weight: normal">TOGOF Tour</B>. Want to find timing bugs? Run the <B style="mso-bidi-font-weight: normal">Rained Out Tour</B>. </FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>Want to learn more about the details of these tours? Stay tuned to this site, I am going to start running a tour-of-the-month post to explain these concepts in more detail. Perhaps your own team will join us and pass the touring test!</FONT></P>]]></content:encoded>
    </item>
    <item>
      <title>of moles and tainted peanuts</title>
      <link>https://docs.microsoft.com/archive/blogs/james_whittaker/of-moles-and-tainted-peanuts</link>
      <pubDate>Fri, 06 Feb 2009 14:47:00 GMT</pubDate>
      <dc:creator><![CDATA[MSDN Archive]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/james_whittaker/2009/02/06/of-moles-and-tainted-peanuts/</guid>
      <description><![CDATA[There was a full page ad for Jif peanut butter in my morning paper that caught my attention. (For...]]></description>
      <content:encoded><![CDATA[<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>There was a full page ad for Jif peanut butter in my morning paper that caught my attention. (For those non-US readers, our nation is experiencing a salmonella bacteria outbreak which has been traced back to contaminated peanuts.) The ad touted Jif’s rigorous testing processes and reassured readers that testing for salmonella was a long time habit for the Jif company and we should feel confident in consuming their products. </FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>Now clearly peanut butter is not software. I very much doubt that the processes for making peanut butter have changed much over the past few decades. I also imagine that one batch of peanut butter is about the same as the last batch. I concede that we have a harder problem. </FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>But, the term ‘long time habit’ really caught me. Because I haven’t seen too many long term habits established in the testing industry. We plan tests, write test cases, find bugs, report bugs, use tools, run diagnostics and then we get a new build and start the process all over again. But how much do we learn in the process? How much do we retain from one build to the next? Are we getting better each time we test? Are we getting better purposefully or are we just getting more experienced? In many ways, the only real repository of historical wisdom (those long term habits of Jif) is embodied in our tools. </FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>My friend <A class="" target=_blank>Alan Page</A> likens testing to playing whack-a-mole. You know the one: chuck a quarter in and plastic moles pop up through a random sequence of holes and you whack them on the head with a mallet. Whack one, another appears and even previously-whacked moles can pop up again requiring additional mallet treatment. It’s a never ending process, just add quarters. </FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>Sound familiar? Testing is whack-a-mole with developers applying the quarters liberally. Now, defect prevention notwithstanding, we can take a lesson from Jif. They understand that certain risks are endemic to their business and they’ve designed standard procedures for mitigating those risks. They’ve learned how to detect salmonella and they have wired those tests into their process. </FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>Have we paid enough attention to our risks that we can codify such routine test procedures and require their consistent application?</FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>Clearly software is not peanut butter. Every piece of software is different; Office’s salmonella is likely irrelevant to Windows and vice versa. But that is no excuse to play whack-a-mole with bugs. We have to get better. Perhaps we can’t codify a salmonella testing procedure into a cookbook recipe but we can start being more proactive with the whole business of learning from our mistakes. </FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>I propose that testers take a break from finding bugs and just take some time to generalize. When the bug pops its head from some coded hole, resist the temptation to whack it. Instead, study it. How did you find it? What was it that made you investigate that particular part of the app? How did you notice the hole and what was happening in the app that caused the bug to pop out? Is the test case that found the bug generalizable to find more bugs similar to the one you are ready to whack? Is there some advice you could pass along to other testers that would help them identify such holes? </FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>In other words, spend part of your time testing the current product you are trying to ship. Spend the rest of the time making sure you learn to test the next product better. There is a way to do this, a metaphor we use here at Microsoft to help. </FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT size=3><FONT face=Calibri>I’ll discuss the metaphor and how we apply it to form long time habits, peanut butter style, in my next post.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN></FONT></FONT></P>]]></content:encoded>
    </item>
    <item>
      <title>getting away from it all</title>
      <link>https://docs.microsoft.com/archive/blogs/james_whittaker/getting-away-from-it-all</link>
      <pubDate>Sun, 01 Feb 2009 14:39:00 GMT</pubDate>
      <dc:creator><![CDATA[MSDN Archive]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/james_whittaker/2009/02/01/getting-away-from-it-all/</guid>
      <description><![CDATA[When you’re on vacation do you think about work? Not thoughts of dread, worry or angst but...]]></description>
      <content:encoded><![CDATA[<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>When you’re on vacation do you think about work? Not thoughts of dread, worry or angst but reflection, planning and problem solving. I just did. Last Sunday I awoke in Seattle to freezing temps and a dusting of snow. By midday I was building a sandcastle on Ka’anapali Beach, Maui in 79 degree sunshine. If that’s not getting away from it all, I don’t know what is. </FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>Yet my mind wasn’t really away. In fact, I thought about work all the time. Given that software was everywhere I looked, it’s not hard to see why. My entire trip was booked online, even the taxi to the airport. Not a single person besides myself took part in the process. Just me … and a load of software.</FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT size=3><FONT face=Calibri>The taxi cab itself contained software, as did the airplane. The baggage carousel, the espresso machine, the car rental counter (no person there, just a self serve terminal) and even the surveillance camera that watched my son juggle his soccer ball while I packed our bags in the trunk. All alone, except for the software. Even the frozen concoction machine had software that helped it maintain the right temperature. (It broke, incidentally, making me thankful that I am a beer drinker.) <SPAN style="mso-spacerun: yes">&nbsp;</SPAN></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>Is it possible for anyone in this field to <I style="mso-bidi-font-style: normal">really</I> get away from it all? (Don’t get me started on the motion sensors that control the air conditioning in the hotel room. I’m all for turning them off when they are not in use, but apparently sitting still <I style="mso-bidi-font-style: normal">and</I> being cool was not one of their end-to-end scenarios.)</FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>The truth of the matter is that getting away from it all just isn’t necessary for me. I like seeing software in action and I enjoy brooding over problems of testing it. Vacations free my mind from the daily grind and leave my mind to question things that back home I might overlook. Does this make me work obsessed or just indicate that I really like what I do? </FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>Vacations have always been like this for me. When I was a professor, two students who led my research lab, Ibrahim El-Far and Scott Chase, actually avoided me when I returned from a trip, afraid of the work my new insights would bring. They never quite managed to successfully do so. </FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>Which brings me back to the motion sensor in my room. The problem isn’t so much a poor tester, rather poor testing guidance. The sensor does exactly what it is designed to do and testing it based on those requirements got me in the sit-and-sweat loop. The problem is that no one thought to give it a field try … what I call ‘day in the life’ testing. Had the tester thought to take the sensor through a 24 hour cycle of usage they would have identified that problematic ten hour period (yes, ten, it’s a vacation after all) when motion is low and the desire to be cool is high. But what tool gives such guidance? Modern tools help testers in many ways, but helping them think of good test scenarios isn’t one of them. They help us organize, automate, regress and so forth, but do they really help us to <I style="mso-bidi-font-style: normal">test</I>? </FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>That’s the tool I want. Tomorrow, when I return, I am going to direct someone to build it for me. Ibrahim and Scott, you are off the hook this time. </FONT></P>]]></content:encoded>
    </item>
    <item>
      <title>more about test case reuse</title>
      <link>https://docs.microsoft.com/archive/blogs/james_whittaker/more-about-test-case-reuse</link>
      <pubDate>Thu, 22 Jan 2009 14:33:00 GMT</pubDate>
      <dc:creator><![CDATA[MSDN Archive]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/james_whittaker/2009/01/22/more-about-test-case-reuse/</guid>
      <description><![CDATA[We mostly write test cases that are specifically tied to a single application. This shouldn’t come...]]></description>
      <content:encoded><![CDATA[<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>We mostly write test cases that are specifically tied to a single application. This shouldn’t come as any big surprise given that we’ve never expected test cases to have any value outside our immediate team. But if we want to complete the picture of reusable test cases that I painted in my last post we need to write test cases that can be applied to any number of different apps. </FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>Instead of writing a test case for an application, we could move down a level and write them for features instead. There are any number of web applications, for example, that implement a shopping cart so test cases written for such a feature should be applicable to all such apps. The same can be said of many common features like connecting to a network, making SQL queries to a database, username and password authentication, and so forth. Feature-level test cases are far more reusable and transferable than application-specific test cases. </FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>The more focused we make the scope of the test cases we write, the more general they become. Features are more focused than applications, functions and objects are more focused than features, controls and data types are more focused than functions and so forth. At a low enough level, we have what I like to call “atomic” test cases. A <I style="mso-bidi-font-style: normal">test atom</I> is a test case that exists at the lowest possible level of abstraction. Perhaps you’d write a set of test cases that simply submits alphanumeric input into a text box control. It does one thing only and doesn’t try to be anything more. You may then replicate this test atom and modify it for different purposes. For example, if the alphanumeric string in question is intended to be a username, then a new test atom that encoded the structure of valid usernames would be refined from an existing atom. Over time thousands (and hopefully orders of magnitude more) of such test atoms would be collected. </FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>Test atoms can be combined into <I style="mso-bidi-font-style: normal">test molecules</I>. Two alphanumeric string atoms might be combined into a test molecule that tests a username and password dialog box. I can see cases where many independent test authors would build such molecules and then over time the best such molecule would win out and yet the alternatives would still be available. With the proper incentives, test case authors would build any number of molecules that could then be leased or purchased for reuse by application vendors that implement similar functionality. </FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT size=3><FONT face=Calibri>At some point, enough test atoms and molecules would exist that the need to write new, custom tests would be minimal. I think that Wikipedia, a site with user supplied, policed and maintained content, would be what the industry would need to store all these tests. Perhaps such a community Testipedia can be constructed or companies can build their own internal Testipedias for sensitive applications. But a library of environment-carrying (see my last post) test atoms and molecules would have incredible value. <SPAN style="mso-spacerun: yes">&nbsp;</SPAN></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>A valuable extension of this idea is to write atoms and molecules in such a way that they will understand whether or not they apply to an application. Imagine highlighting and then dragging a series of ten thousands tests onto an application and having the tests themselves figure out whether they apply to the application and then running themselves over and over within different environments and configurations. </FONT></P><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'; mso-bidi-font-size: 10.0pt; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 'Times New Roman'; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA">Ah, but now I am just dreaming. </SPAN>]]></content:encoded>
    </item>
  </channel>
</rss>