<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-923369492371389655</id><updated>2011-04-21T22:22:33.295-07:00</updated><title type='text'>InterviewQuestions</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://interviewquestions4all.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/923369492371389655/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://interviewquestions4all.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>lakshmananv</name><uri>http://www.blogger.com/profile/09631118879231679818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>4</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-923369492371389655.post-6457456607772452907</id><published>2007-08-19T20:45:00.000-07:00</published><updated>2007-08-19T20:46:04.979-07:00</updated><title type='text'>Working Effectively</title><content type='html'>&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 20pt; font-family: &amp;quot;Arial,Bold&amp;quot;;"&gt;Working Effectively With Developers&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;Arial,Bold&amp;quot;;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-right: -27pt; text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;Developers and testers often do not work effectively together. Either the developers can change, we can change, or both. I've never had much luck directly changing other people's behavior. I &lt;/span&gt;&lt;i style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Italic&amp;quot;;"&gt;have &lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;had luck changing my own behavior to indirectly elicit improvements in the way developers act. And those changes feed back to me, producing a virtuous cycle in our relationship. This paper is about my approach to working effectively with developers.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoBodyText" style="text-align: justify;"&gt;I expect that you, my reader, are a tester and spend most of your time looking for bugs, talking to developers, and writing bug reports. This paper describes three things I've learned to do better over the years:&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;1. &lt;b style=""&gt;Define my role&lt;/b&gt; in a way that makes a developer want me around. I help the developer get rid of bugs before anyone else sees them, which reduces total project cost.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;2. &lt;b style=""&gt;Explain myself and my job&lt;/b&gt; such that a developer gives me the benefit of the doubt. I reduce the opportunity for snap judgements about me, and I take an unusual approach to convincing the developer that bug reports should not be seen as threats.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;3. &lt;b style=""&gt;Write bug reports&lt;/b&gt; in a way that allows for little misinterpretation.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;The three main sections are largely independent. The techniques do not depend on each&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;other.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 18pt; font-family: &amp;quot;Arial,Bold&amp;quot;;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; text-indent: -0.5in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 16pt; font-family: &amp;quot;Arial,Bold&amp;quot;;"&gt;1.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;               &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 16pt; font-family: &amp;quot;Arial,Bold&amp;quot;;"&gt;Picking an Effective Role&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 18pt; font-family: &amp;quot;Arial,Bold&amp;quot;;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;In this section, I first describe my preferred role and its implications for day-to-day work. I then describe the problems this role solves and, importantly, what new problems it might create.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;I assume you've been told to test a particular developer's work, perhaps a new feature added to the product. You are probably handling more than one developer at once, but I cover the complications that causes only later in the section. I assume you'll start working during coding: after the developer writes the first line of code (Program Specs) for us but before she's finished (except for fixing whatever bugs you and others find). If you're involved earlier, that's great, but I don't assume it. If you start after the code's done, this section will be of little use, except to help you argue that you should start earlier next time. It also doesn't apply if you're doing configuration testing, load testing, or other types of testing where you're not looking for bugs in a particular developer's work.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 16pt; font-family: TimesNewRoman;"&gt;Who does the testing team serve?&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;One common answer is "the customer". In this model, the testers serve to protect the customers from the developers. The customer is the helpless maiden tied to the train track with a runaway product bearing down on her. Only the testers are there to save her by stopping the train (from shipping - at least until the bugs are fixed).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;I have a number of problems with this model, not the least of which is that it rarely works. Too often, the train runs over the maiden, leaving her intended saviors frustrated, demoralized, cynical, and ineffective. For purposes of this paper, though, a specific problem is more relevant: casting people into the role of villains is not the best possible prelude to asking them for help. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;Make no mistake: you'll spend a lot of time seeking help from developers. You'll need explanations of the program, which is asking for a developer's most precious gift: time. You'll file bug reports and you'll trust the developer to handle them sensibly, not seeking every excuse to declare a bug a feature, to insist on more information, or otherwise waste you’re most precious resource: time.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;Perhaps I exaggerate. Perhaps no developer &lt;/span&gt;&lt;i style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Italic&amp;quot;;"&gt;really &lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;believes you think that she's a villain. More likely, she believes something worse: that you think she's too error-prone to trust. Most developers would rather be considered a villain than an incompetent. Whatever the nuances of reaction, the fact remains that this model gives developers and testers conflicting goals. The developers want to ship; the testers try to stop them. Cooperation from the developers will be at best dutiful, at worst resentful: never reaching the peak possible when testing is integrated into the team.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;So: if not the customer, who does the testing team serve?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;I claim it should be that person who must take all things into account and decide whether the product should be shipped. "All things" includes what competitors are doing, the risk that the programmers are so tired that further effort is likely to do more harm than good, the costs of breaking commitments, and what benefits might be lost to both the customers and the company were the product delayed. I'll call that person the "project manager". The testing team's job is to provide an accurate assessment of one of the factors the project manager tracks - the product's bugginess, specifically from the perspective of what customers are likely to see and care about. For how the testing&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;team can report bug data, as well as a few other types it makes sense for them to track.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;Let me emphasize that, in my scheme, testers still have the same core work product: bug reports. It's the use of those bug reports that differs. Rather than being used as evidence against the product, they're turned into information that allows the project manager to make better decisions.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;Now, it's far from clear that this new role helps cooperation with the developer. Consider it from her point of view: the tester is always there, hovering around, intent for any sign of a problem, ready to pounce on it and carry it off to daddy the project manager. Nobody likes a tattletale.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;How to counter this? One solution is a team structure called &lt;/span&gt;&lt;b style=""&gt;&lt;i style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Italic&amp;quot;;"&gt;egoless programming&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;i style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Italic&amp;quot;;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;span style=""&gt; &lt;/span&gt;in which programmers do not think of code as an extension of themselves.Their ego is not involved, so their own errors are less threatening. However, I can't allow&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;this solution, because it would mean developers have to change their behavior, not me.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;The developers I work with are seldom egoless, and I have no choice but to live within&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;that constraint. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;My solution hinges on the distinction between &lt;/span&gt;&lt;b style=""&gt;&lt;i style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Italic&amp;quot;;"&gt;private bugs&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;i style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Italic&amp;quot;;"&gt; &lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;and &lt;/span&gt;&lt;b style=""&gt;&lt;i style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Italic&amp;quot;;"&gt;public bugs&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;. A private bug is one that a programmer creates but fixes before placing the code into the public source base, where it can potentially harm her fellow programmers and, much later, customers. Once a bug is out there, protection of teammates dictates that it should be publicized, if known. (Note the important semantic shift: it's not publicized to punish the creator, but to protect her friends.) As a tester, my message to the developer is that I'm here to help her keep her private bugs from becoming public. Presto! I am now an ally, someone devoted to making her look better. My job is to serve as her safety net, to concentrate especially on those bugs that she has trouble preventing or finding herself. I'm a tool, a way to expand the developer's mental reach. (Let's not forget that, even when we work closely with developers, they usually find more of their own bugs than we ever do.)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;Let me be clear about what's happening here. Suppose my developer is ready with a chunk of new code and three bug fixes. I will begin testing immediately. The only thing that would cause me to defer testing would be if I were already doing the same thing for another developer. When I find problems, I email bug reports to her. I normally do not put those bug reports into the public bug tracking database. I don't share them with other testers, other developers, or managers. They're private. I record and track them in my own email folders unless the developer asks that they be tracked publicly.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;The developer might not fix all the bugs before putting the code in the public source base. I might disagree with that decision, but I accept that the developer is better placed to make it. (This is precisely parallel to my opinion about the relation of the whole testing team to the project manager.) If she doesn't fix a bug, its bug report moves from my email folder to the bug tracking system. Since the bug is now public, the public (that is, the project manager and other developers) needs to know about it.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;When I'm not looking for private bugs, I look for public bugs. That is, I finish testing code already in the public source base. (Perhaps it's there because I wasn't assigned to the task early enough. Or perhaps the programmer needed to make something partly working available for demo purposes or to unblock other programmers.) Bugs I find there are public bugs and reported through the public bug tracking system.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;That's an oversimplified description, in order to make the point that I always err on the&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;side of helping the programmer find private bugs. In reality, things are more complicated. Suppose that the code just finished is not very important, and that bugs in the code already made public could seriously hamper other programmers. Then I might concentrate on&lt;span style=""&gt;  &lt;/span&gt;public bugs. I'd almost certainly have the programmer's support in that, for reasons explained in the next major section. And, sometime before the end of the project, I need to make sure that all the code gets tested appropriately. Testing a steady stream of changes mustn't prevent that.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 16pt; font-family: &amp;quot;Arial,Bold&amp;quot;;"&gt;What problems are now smaller?&lt;/span&gt;&lt;/b&gt;&lt;b style=""&gt;&lt;i style=""&gt;&lt;span style="font-size: 14pt; font-family: &amp;quot;Arial,BoldItalic&amp;quot;;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;i style=""&gt;&lt;span style="font-size: 14pt; font-family: &amp;quot;Arial,BoldItalic&amp;quot;;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;Why am I going to all this trouble? It sure sounds like I'm out to make friends. Friends are nice, but companies don't pay me to improve my social life. They pay me to use&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;collegiality as a means to an end, a way to reduce problems. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;What problems? &lt;/span&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Bold&amp;quot;;"&gt;In general, friction. &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;I am much taken with John Daly's Rule , which has you always ask this question of any activity: "What bugs aren't I finding while I'm doing that?" Friction slows down movement. Typical developer/tester friction wastes time that could be better spent finding bugs. But there are other, specific problems that this approach helps with.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Bold&amp;quot;;"&gt;Bugs found uneconomically late. &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;A bug found immediately is almost always cheaper and&lt;span style=""&gt;  &lt;/span&gt;faster to fix than the same bug found after the developer's had time to forget what she had in mind. Avoiding the overhead of a formal bug tracking database can also be a savings.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Bold&amp;quot;;"&gt;Developers who don't test. &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;A common complaint about developers is that they "throw&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;the latest build over the wall" without trying it at all. It breaks immediately, is therefore&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;untestable, and so it gets thrown back. Negative accomplishment: wasted time. A similar problem is a developer who claims a bug has been fixed, but the simplest test&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;reveals that the bug is still there. I once watched a programmer fix the same six-line&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;routine four times, introducing an obvious bug each time. I don't see how he could have possibly tried his fixes at all.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;It might seem I'm making this problem even worse by shackling the tester to the&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;programmer, having you test each change as soon as possible. Am I not giving her&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;permission to test even less? No, because I've changed the perceived economics of the&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;situation. Before, the programmer lost nothing if she saved ten minutes of her time by&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;costing you two hours. Now she does: those two hours of wasted time mean that more&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;private bugs will become public. She has more of an incentive to run a quick automated&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;build verification test ("smoke test") that you might have built for her, and to try the new feature or bugfix before handing it to you. She has a reason to talk to you about what kind of division of labor makes sense.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Bold&amp;quot;;"&gt;"Please debug this for me." &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;Developers often annoy testers by asking them to do a large part of the debugging. They may ask for a very specific test case that has a minimum number of steps. They may ask for extensive documentation of variant tests that they could try more efficiently themselves.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;Again, this problem is reduced because wasting your time costs the programmer&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;something. Further, because the feedback loop is tighter - because you're more likely able to just show the developer what's wrong, as opposed to filing a bug report that has to be understandable in three weeks when the developer can look at it - the cost to you of debugging is reduced.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Bold&amp;quot;;"&gt;Not knowing what's new. &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;Testers often complain that they don't know what's in new&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;builds of the product, so they don't know what to test. Sometimes this omission is&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;thoughtless: it's just too much bother to keep everything up to date and everyone&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;informed. Sometimes it's mischievous: the developer &lt;/span&gt;&lt;i style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Italic&amp;quot;;"&gt;really &lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;wanted to add that feature,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;couldn't get permission, but had heard Grace Murray Hopper give a speech that included her slogan "it's easier to get forgiveness than permission", so added it.&lt;/span&gt;&lt;span style="font-size: 7.5pt; font-family: TimesNewRoman;"&gt;2&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;It's harder to be thoughtless to someone you work with closely, especially someone who's helping you keep problems in that new feature private. It's also slightly harder to hide mischief from that person.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Bold&amp;quot;;"&gt;"Stop asking for all those stupid documents." &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;Testers need to know what the product's supposed to do before they can tell if it does it. Programmers aren't thrilled about providing that documentation. When working closely, more information can flow informally. That's perhaps not ideal, since any tester who comes after you will still be in the dark, but it may be the reasonable alternative to nothing. As a tester, I've also made myself useful by writing the documentation myself (turning the informal into formal). &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Bold&amp;quot;;"&gt;"Please do all these things that are not your job." &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;Testing teams seem to collect&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;unpleasant or difficult jobs that often get in the way of actually doing testing. That's&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;especially true when testing teams are labeled Quality Assurance, a term vague enough&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;that anyone who doesn't want to maintain the configuration management system or create system builds (that is, anyone sane) can argue that QA should do it instead. And&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;individual testers helping developers can similarly end up sidetracked, for example, into&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;writing some support code.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;As you might guess from my experience as a technical writer, I'm not averse to testers&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;helping out the team. But, once bugs become a service to the developer, John Daly's Rule becomes more compelling.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Bold&amp;quot;;"&gt;Untestable code. &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;Testers are often presented with code that is difficult to exercise&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;intentionally in ways that users might do accidentally. Or they might have trouble knowing they've done so. Or it might be hard to tell what the code has actually done. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;When developers value you and your bugs, they're more apt to add testability support code.Often a little goes a long way &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Bold&amp;quot;;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Bold&amp;quot;;"&gt;Lack of developer introspection about bugs. &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;When I work closely with a developer,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;they learn my approach to detecting bugs. They become more able to prevent the bugs I&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;would otherwise detect. In this way, I may "move upstream", helping the developer with design or planning rather than only doing after-the-fact testing. I don't push this on&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;developers; I wait for them to ask.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;i style=""&gt;&lt;span style="font-size: 14pt; font-family: &amp;quot;Arial,BoldItalic&amp;quot;;"&gt;What problems might I create?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;i style=""&gt;&lt;span style="font-size: 14pt; font-family: &amp;quot;Arial,BoldItalic&amp;quot;;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;Every solution brings with it a potential for new problems.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Bold&amp;quot;;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Bold&amp;quot;;"&gt;You have to start earlier&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Bold&amp;quot;;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;If you begin working with the developer after all the code has been made public and all&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;that's left are bug fixes, you won't get much benefit.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Bold&amp;quot;;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Bold&amp;quot;;"&gt;Greater sensitivity to tester/programmer ratio&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Bold&amp;quot;;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;Consider the differences between this approach and "over the wall" testing.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: Symbol;"&gt;· &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;It is more interrupt-driven. To maintain a good relationship, you need to respond&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;quickly when a programmer needs help. In conventional testing, you have more&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;freedom to queue testing tasks.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: Symbol;"&gt;· &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;It is more dependent on structural knowledge. In both types of testing, you must be able to view a feature as its user might. In conventional testing, some understanding of the structure or architecture of the feature or whole product is useful; it enhances your user-centered tests and sometimes allows you to omit unneeded tests. But, when working closely with a developer, such understanding is more than useful: it's essential for effective communication and - just as important - for giving the developer the feeling of effective communication.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoBodyTextIndent" style="text-align: justify;"&gt;I&lt;span style=""&gt;  &lt;/span&gt;want to be careful here. I do not believe that the degree of structural knowledge you need requires you to be a programmer. I have seen nonprogrammers do this perfectly well. I've known one good programmer who explicitly values nonprogrammers precisely because explaining structure to them requires him to clarify his thoughts.&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;What are the implications of these differences?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;h1 style="text-align: justify;"&gt;Suppose the tester/programmer ratio is 1 to 10, and you're trying to work closely with&lt;/h1&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;each of them.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: Symbol;"&gt;· &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;Requests for help will come at relatively unpredictable intervals. You'll have to queue some people. But that reduces your value to them, so they're less likely to ask for help next time.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: Symbol;"&gt;· &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;You won't be able to keep up with the structure of each programmer's subsystem. You'll need explanations of things the programmer may think you should have already learned. You may need to have something explained again, which the programmer may find infuriating. (From her perspective, she just explained it to you. From yours, seven other tasks intervened, driving the explanation out of your mind.) Or, worse, you may remember something that's no longer true, leading to misdirected tests or spurious bug reports.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoBodyTextIndent" style="text-align: justify;"&gt;In such a situation, testing will devolve into "over the wall testing", because that just works better under such constraints. To avoid bad feelings, you might as well start it out that way.&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoBodyTextIndent" style="text-align: justify;"&gt;Suppose the ratio is more like 1 to 3. That's more tractable, but it's still likely that you'll disappoint the developer by not being able to test as much as she'd like (meaning too many private bugs are missed). You need to handle this carefully. Be sure not to over-promise, to raise unmet expectations. I've done that. It's bad, worse than not trying to work closely. Be especially careful to identify risky areas of the developer's code, or risky types of bugs, and to explicitly agree that those are what you'll concentrate on. Because I'm sensitive to how easily developers can pin their hopes on testers, I would prefer to be assigned to work closely with one developer and handle the other two in a more conventional way.&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Bold&amp;quot;;"&gt;You don't learn from secrets&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Bold&amp;quot;;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;Suppose testers and developers do a wonderful job, and few bugs are ever found in public source. How does anyone learn from those paltry few public bug reports? Noel Nyman, who reviewed a draft of this paper, wrote: "When I started in each [new] test group, a primary source of information was the bug history. It's an invaluable insight into the product and what regression tests might be needed. No one describing the products has ever given me 10% of the information I found in the old bugs." Other reviewers pointed out that, while developers might learn to avoid their own characteristic bugs, they won't benefit from seeing what kind of bugs other developers make. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;Process improvement groups would have a similar problem. I have no compelling answer to this problem, other than that it's a price I'm willing to pay.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;Public bugs are still found and logged. In some sense, they're the best ones to learn from, since they escaped both the developer and tester, but it would be better also to know about private bugs. A company with a successful process improvement effort (I've never worked in one) might be more egoless, a place where developers are more willing to log private bugs for the public good. The arguments I make in the next major section might help toward that end. I've never been fortunate enough to work at a company that does inspections well, but such companies might already be used to sharing private bugs, atleast among developers.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Bold&amp;quot;;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Bold&amp;quot;;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Bold&amp;quot;;"&gt;Build control&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Bold&amp;quot;;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;I've applied this approach to relatively monolithic and self-contained products: I get an&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;executable from the developer and run it on my machine. If the product is broken up into many pieces (shared libraries, configuration files, etc.) and the developer doesn't build and deliver the whole thing, or if there's no practical way to test the developer's piece in isolation and know that it's really isolated from whatever else happens to be on your machine (including especially the simultaneous work of other developers) - well, you have a configuration control nightmare that might swamp any benefits of close work. Best to retreat to getting full builds at periodic intervals.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Bold&amp;quot;;"&gt;Setting the wrong expectations&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Bold&amp;quot;;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;Developers may expect great benefits at no cost. Set expectations carefully.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-family: Symbol;"&gt;· &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt;"&gt;Your job is to provide early information about bugs. That means the overall task – that of creating code that the project manager deems of sufficient quality - will go faster However, if the developer fixes bugs as you find them, the first part of the task - getting the first demonstrable version of the code&lt;/span&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;span style="font-size: 12pt;"&gt;into the source base – may go slower. The developer might find that annoying or inappropriate.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: Symbol;"&gt;· &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;Although you will be careful to conserve her time, you'll need information. You'll have to talk to her, or send her email. Both will take up her time, inevitably on days when she feels she just hasn't got it. Promise to work with her to minimize disruption. For example, in order to use time when they wouldn't be working anyway, I've interviewed developers at lunch, breakfast, and dinner, and while driving them to the airport or to pick up their car from the repair shop. But some disruption is inevitable.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: Symbol;"&gt;· &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;Make sure to emphasize that your relationship will unavoidably cause some friction. You &lt;/span&gt;&lt;i style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Italic&amp;quot;;"&gt;will &lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;annoyingly discover a serious bug the day before she thought she was done, making her wonder why you couldn't have found the important things first. It is &lt;/span&gt;&lt;i style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Italic&amp;quot;;"&gt;much &lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;better that she complain, even inappropriately, than "go dark" (disappear as a way of avoiding an unpleasant problem or person). Going dark won't work, anyway, because you'll be persistent. Politely persistent, but persistent. (I've said things like "I'm going to help you even when you can't stand it any more.")&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Bold&amp;quot;;"&gt;Collaboration can fail&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Bold&amp;quot;;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;A close relationship is an investment of time. Sometimes investments don't pay off:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: Symbol;"&gt;· &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;Your programmer is so stubborn that you could scream - except that maybe no one would hear you over the sound of &lt;/span&gt;&lt;i style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Italic&amp;quot;;"&gt;her &lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;screams about &lt;/span&gt;&lt;i style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Italic&amp;quot;;"&gt;your &lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;stubbornness.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: Symbol;"&gt;· &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;The programmer seems deliberately obstructive or misleading. (She may be trying to conserve her time by directing you using fair means or foul. But sometimes she's just incorrigibly careless, or trying to hide incompetence, or whatever.)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-family: Symbol;"&gt;· &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;You've raised expectations that will be unmet. The programmer is unhappy with what you're doing. My personal tendency is to pour more effort into a bad investment, to throw good time after bad. That's wrong. Sometimes you need to admit that a plan has failed and switch to a plan that will work better. In this case, the backup plan is over-the-wall testing: pulling back, working at a distance, more formally, concentrating on the public source code at the significant builds. Because it's easy for me to get trapped in a role, I find it important to explicitly assess the status of the relationship, especially early on. So I track how much time I'm spending communicating with the developer. At some point, I ask myself to be hard-nosed about whether that time is worthwhile. What is the character of the communication?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: Symbol;"&gt;· &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;Is it about answering specific questions and explaining specific points? Or is it about generalities? (When I'm stuck in a rut with a developer, I find myself writing long emails about the fundamentals of software testing as a way of explaining my decisions.)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: Symbol;"&gt;· &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;Do I find myself carefully crafting email to avoid any possibility of misunderstanding, or preparing myself carefully before talking to the developer? Those are preemptive measures against inefficient conversation, but they take much time themselves.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 1in; text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: Symbol;"&gt;· &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;Am I repeating myself? Is the developer?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: Symbol;"&gt;· &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;Some inefficiency is inevitable at first. Is it decreasing? Fast enough?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;And I ask what I am gaining from this.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: Symbol;"&gt;· &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;Does what I'm learning about the code help me test? What good ideas have I gotten?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: Symbol;"&gt;· &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;What bugs have I found earlier than I would have?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: Symbol;"&gt;· &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;Am I spending less time writing, discussing, and revisiting bug reports?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: Symbol;"&gt;· &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;What's the chance that my effectiveness will improve?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;If my frustration has been building, I ask these questions after a weekend away from work. Then I balance the costs and benefits. If I doubt I'll achieve the needed results, I may try a new communication approach for a short time, then re-evaluate. Or I may simply pull back. If there's one particular testing task on which we're stuck, I'll pull back only from that.I do this with no recriminations. If there's blame to be had, I'm happy to take it on myself,for two reasons. First, enough time has already been spent not finding bugs: why spend more? Second, I am convinced that, were I good enough, I could work effectively with almost any developer.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;Although there's no reason for fanfare about the change in plan, do make sure to&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;communicate it clearly to the developer, your manager, and the developer's manager. They have a right to know, and not telling them would make any problems worse.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Bold&amp;quot;;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Bold&amp;quot;;"&gt;How are you a star?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Bold&amp;quot;;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;A reviewer wrote: "From my perspective, your proposal is the opportunity for me to make the [developers] I work with look good and me look like I do nothing [...] Every test manager I've ever personally met has mouthed the mantra that bug count is not a valid criterion for measuring a tester's effectiveness. Every one of them I've actually worked with has, at some point, used bug count to single out, reward, or promote testers." This has not been a problem for me. For whatever reason, I've not been aware of managers using bug counts (except in a vague general-impression sort of way) to evaluate me. If your managers do that, my approach is a problem. Having you sacrifice your job at the developer's feet is a bit much. Sampling might work: suppose you work with four developers, one closely and three in the conventional way. Your manager might reasonably assume that your bug counts for the three were representative of your overall work. (This invites you to under-report the time spent working on their code, but any such simple measure invites "gaming the numbers".) Testimonials from developers, especially in the form of requests for your services, can work wonders.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Bold&amp;quot;;"&gt;Personality and experience&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Bold&amp;quot;;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;Some testers strongly prefer to work collaboratively; others are loners. This approach will reduce your interaction with the rest of the testing team. Your manager will have less visibility into what you're doing, which is bad if you get stuck without realizing it. That makes this approach riskier with inexperienced testers. Some testers like to make a plan and follow it. Others are more tolerant of interruptions. This approach favors the latter. In addition to being tolerant, you must be well-organized enough that you still finish all your tasks.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Bold&amp;quot;;"&gt;The Stockholm syndrome&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Bold&amp;quot;;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;The "Stockholm Syndrome" refers to the tendency of captives to bond with their captors and adopt their point of view. For example, a hostage might come to view the police as the enemy.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 7.5pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;It's more than a little over-dramatic to see testers as the hostages of programmers. But by cooperating closely with developers, you may adopt their point of view and lose the&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;customer's, causing you to miss bugs. In particular, you're likely to miss those bugs where the product does exactly what it was intended to do - but what it was intended to do is not what the customer would want. Usability problems are an example of this type of bug. So would be a scientific calculator that provided base-2 logarithms (useful mainly to programmers) rather than the natural logarithms most of its customers expect, or an online banking system that gave new users passwords the same as their user names. (A random password would be much better since many people never change their password.)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;So we have a tradeoff between the risks and value of closer work. In most projects, most of the time, I believe the value outweighs the risk. "Most" does not mean "all". In safety-critical projects, for example, the added expense of truly independent testing will pay for itself if it prevents testers from absorbing the programmers' assumptions about possible failure modes.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;The risk of infection can be reduced by making explicit attempts to model the customer&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;and other users. The following books taught me ways to keep the customer in mind even while talking to the developer, a marketing book that describes a process of&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;target-customer characterization, which describes activity-based planning;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;a more mainstream software engineering book on discovering requirements;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;and which advocates describing user activities in the future perfect tense.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;Some fraction of the testing team should concentrate on whole-product testing, rather&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;than on testing features in isolation. Such testing is often organized around work flows&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;(use-cases, scenarios, tasks), and is best done by domain experts (for example,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;accountants who test an accounting package by doing the things accountants do). These&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;independent testers find bugs that feature testers infected by developer assumptions will&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;miss (as well as feature interaction bugs and usability problems).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; text-indent: -0.5in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 18pt; font-family: &amp;quot;Arial,Bold&amp;quot;;"&gt;2.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;              &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 18pt; font-family: &amp;quot;Arial,Bold&amp;quot;;"&gt;Explaining Yourself and Your Job&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 18pt; font-family: &amp;quot;Arial,Bold&amp;quot;;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;Whatever your role, you have to present yourself correctly, so that the judgement the&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;programmer makes of you is the judgement you want.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;This section does not assume you're following the approach described in the previous&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;section. It applies to all situations where you must explain testing to a developer.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;i style=""&gt;&lt;span style="font-size: 14pt; font-family: &amp;quot;Arial,BoldItalic&amp;quot;;"&gt;A good first impression&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;i style=""&gt;&lt;span style="font-size: 14pt; font-family: &amp;quot;Arial,BoldItalic&amp;quot;;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;Testers are often hurt by programmers' snap judgements. The most common one is that&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;testers want to be programmers, just aren't good enough to make it. So your first task is to avoid being classified too soon. Here are three ways.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Bold&amp;quot;;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Bold&amp;quot;;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Bold&amp;quot;;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Bold&amp;quot;;"&gt;Don't ever exaggerate your programming or technical skills&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Bold&amp;quot;;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;I was once in a meeting where a manager boasted "we did object-oriented programming in 1971; we just didn't call it that". Although he was correct in a narrow sense, he lost his audience that moment and never regained it.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;The message he intended to send was "I'm technical, like you. It's safe to trust me for&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;technical guidance." The message the programmers received was "I think I know more&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;than I do. I will be resistant to the education I need. I will either waste your time in painful training or by making you do stupid things."&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;Testers who exaggerate their programming skills send the same message.There's even a good case for downplaying your skills. Many programmers expect it. Anything that looks like bragging is a warning sign.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Bold&amp;quot;;"&gt;Expertise in an odd field is useful&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Bold&amp;quot;;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;But failing to brag isn't enough to establish credibility. One surprising technique is&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;transference. Suppose that you happen to be an expert on Greek oared ships of the 5 &lt;/span&gt;&lt;span style="font-size: 7.5pt; font-family: TimesNewRoman;"&gt;th&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;century BC. Programmers respect that sort of thing, because they value expertise in&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;general. Expertise in weird subjects, ones that have little to do with programming, is&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;valued more than expertise in allied fields. This respect for your "offline" expertise will&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;transfer into respect for your testing ability. I don't know the reason, but it's worth noting that many really good programmers have surprising expertise in a completely unrelated field.&lt;/span&gt;&lt;span style="font-size: 7.5pt; font-family: TimesNewRoman;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 7.5pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;But, again, be careful. I have a degree in English Literature, which gives me the&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;background to scatter mildly entertaining and relevant quotes in papers. But it would be&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;dangerous and wrong for me to claim expertise. I have a bachelor's degree, which is little more than a certificate of trainability. If I tried to pass it off as expertise, I'd run a&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;substantial risk of running into someone who'd see right through me.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Bold&amp;quot;;"&gt;Place yourself outside the status hierarchy&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Bold&amp;quot;;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;My English degree doesn't make me an expert, but there's another way in which it's useful.When I'm in a Ph.D.-heavy situation, the fact that I have only a bachelor's and master's degree in computer science can be a negative. If things come down to ritual displays of credentials, my rank is clear - and it's lower than I'd like. But if I don't mention my computer degrees and instead describe myself as an English major, suddenly I can't be pigeonholed. I also acquire a slight cachet of being an interdisciplinarian, which specialists have a guilty feeling is a good thing. (Because of the widespread prejudice against English majors, this only works after I've displayed some technical competence.) A tester can similarly defer classification. If, for example, you have green hair and play in a rock band most nights, it's harder for a programmer to put you in the "tester as wannabe programmer" pigeonhole.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;i style=""&gt;&lt;span style="font-size: 14pt; font-family: &amp;quot;Arial,BoldItalic&amp;quot;;"&gt;Explaining your job&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;i style=""&gt;&lt;span style="font-size: 14pt; font-family: &amp;quot;Arial,BoldItalic&amp;quot;;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;However, I wouldn't necessarily recommend dying your hair green. That's indirect. At&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;some point, you must directly convince the programmer of your value. In this section, I'll present an approach based on the folk psychology of the programmer. &lt;/span&gt;&lt;i style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Italic&amp;quot;;"&gt;Folk psychology &lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;is the way ordinary people explain why people do certain things. It's based on the notion that people have beliefs and desires, and that they act on those beliefs to achieve those desires. It differs from &lt;/span&gt;&lt;i style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Italic&amp;quot;;"&gt;real psychology&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;, which aims (in part) to discover what "beliefs" and "desires" are (if anything), and by what mechanism they are created and lead to actions. It differs from &lt;/span&gt;&lt;i style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Italic&amp;quot;;"&gt;pop psychology &lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;in that it's not used to sell magazines or the products advertised in magazines.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;For many programmers, a dominant desire is the respect of their fellow programmers.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;They believe that the way to achieve that is by having these characteristics:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: Symbol;"&gt;· &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;An ability to create concise and powerful abstractions. This is similar to the notion of "elegance" in mathematics and physics. Circumstances might prevent a good programmer from producing elegant code, but the ability and desire must be present.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: Symbol;"&gt;· &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;The ability to master a great deal of relevant technical detail. See, for example, the section titled "A Portrait of J. Random Hacker" in [Raymond96], in which Eric Raymond describes quickly absorbing a manual on a typesetting language in order to write a book. (This, in conjunction with the previous, makes programmers seem an odd combination of generalist and specialist.)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: Symbol;"&gt;· &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;Strong problem-solving ability, which consists of applying the consequences of those abstractions to the technical detail.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: Symbol;"&gt;· &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;High productivity, measured by amount of code produced. Any bits that aren't shipped (e.g., design documents) don't count nearly as much as shipped bits.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoBodyTextIndent" style="text-align: justify;"&gt;A legendary programmer would be one who was presented a large and messy problem, where simply understanding the problem required the mastery of a great deal of detail, boiled the problem down to its essential core, eliminated ambiguity, devised some simple operations that would allow the complexity to be isolated and tamed, demonstrated that all the detail could be handled by appropriate combinations of those operations, and produced the working system in a week.&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;Testing is a threat to the programmer's self-image when it strikes at those characteristics. It may demonstrate that the abstractions are not sound, the detail hasn't been mastered, or the problem hasn't been solved. It's not surprising, then, that programmers tend to divert testing away from those fundamentals and see it as a way of systematically exploring the code they've written, looking for coding errors. Coding errors are not a big deal. A programmer who is careless about coding errors might lose a little prestige, but could still be considered great. A programmer who never makes a coding error but produces clumsy abstractions never will be.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;Now, to a tester, looking for coding errors is only a small part of the job. Conceptual&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;errors, such as inadequate abstractions or mistaken assumptions, are more important. They cost more to fix. This mismatch of expectations can lead to intense conflict. A programmer may see you as doing the wrong job, using the wrong approach. Discovering and explaining the right approach now becomes a problem to solve. And programmers are relentless problemsolvers. (As my wife, a veterinarian who'd never known programmers before meeting my friends, said when we were courting: "You know, your friends have really strong opinions... about everything.")&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;Avoid this problem by explaining your job to the programmer. There are several parts to this explanation.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.75in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;1.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;Explaining the difference between your job and her job.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;2. Demonstrating that you possess a skill the programmer is not likely to develop by&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;sheer concentrated reasoning from first principles.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoBodyTextIndent2"&gt;3. Showing how your exercising of that skill helps the programmer realize her natural abilities to their fullest, much more than it casts doubt on them. In an important way, you compensate for the intractability and uncontrollability of the world.&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;Let me begin with a specific example. It's one that I thought of while writing this paper, so I've only tried it on one developer, but I think it's the best way I've yet found to describe my job. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;Here's a puzzle:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;i style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Italic&amp;quot;;"&gt;That man's father is my father's son,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;i style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Italic&amp;quot;;"&gt;But brother and sister have I none.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;i style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Italic&amp;quot;;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;This is puzzling because the first line describes this situation:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;!--[if gte vml 1]&gt;&lt;v:line id="_x0000_s1026" style="'position:absolute;left:0;text-align:left;z-index:1'" from="219.6pt,21.8pt" to="219.6pt,43.4pt" allowincell="f"&gt;&lt;v:line id="_x0000_s1027" style="'position:absolute;" from="140.4pt,43.5pt" to="313.2pt,43.5pt" allowincell="f"&gt;&lt;v:line id="_x0000_s1028" style="'position:absolute;left:0;" from="140.4pt,43.5pt" to="140.4pt,65.1pt" allowincell="f"&gt;&lt;v:line id="_x0000_s1029" style="'position:absolute;left:0;" from="313.2pt,43.5pt" to="313.2pt,65.1pt" allowincell="f"&gt;&lt;v:line id="_x0000_s1030" style="'position:absolute;left:0;" from="313.2pt,94.1pt" to="313.2pt,115.7pt" allowincell="f"&gt;&lt;v:shapetype id="_x0000_t202" coordsize="21600,21600" spt="202" path="m0,0l0,21600,21600,21600,21600,0xe"&gt;  &lt;v:stroke joinstyle="miter"&gt;  &lt;v:path gradientshapeok="t" connecttype="rect"&gt; &lt;/v:shapetype&gt;&lt;v:shape id="_x0000_s1031" type="#_x0000_t202" style="'position:absolute;" allowincell="f"&gt;  &lt;v:textbox&gt;   &lt;![if !mso]&gt;   &lt;table cellpadding="0" cellspacing="0" width="100%"&gt;    &lt;tr&gt;     &lt;td&gt;&lt;![endif]&gt;     &lt;div&gt;     &lt;p class="MsoNormal" align="center" style="'text-align:center'"&gt;My Father&lt;/p&gt;     &lt;/div&gt;     &lt;![if !mso]&gt;&lt;/td&gt;    &lt;/tr&gt;   &lt;/table&gt;   &lt;![endif]&gt;&lt;/v:textbox&gt; &lt;/v:shape&gt;&lt;v:shape id="_x0000_s1032" type="#_x0000_t202" style="'position:absolute;" allowincell="f"&gt;  &lt;v:textbox&gt;   &lt;![if !mso]&gt;   &lt;table cellpadding="0" cellspacing="0" width="100%"&gt;    &lt;tr&gt;     &lt;td&gt;&lt;![endif]&gt;     &lt;div&gt;     &lt;p class="MsoNormal" align="center" style="'text-align:center'"&gt;Me&lt;/p&gt;     &lt;/div&gt;     &lt;![if !mso]&gt;&lt;/td&gt;    &lt;/tr&gt;   &lt;/table&gt;   &lt;![endif]&gt;&lt;/v:textbox&gt; &lt;/v:shape&gt;&lt;v:shape id="_x0000_s1033" type="#_x0000_t202" style="'position:absolute;" allowincell="f"&gt;  &lt;v:textbox&gt;   &lt;![if !mso]&gt;   &lt;table cellpadding="0" cellspacing="0" width="100%"&gt;    &lt;tr&gt;     &lt;td&gt;&lt;![endif]&gt;     &lt;div&gt;     &lt;p class="MsoNormal" align="center" style="'text-align:center'"&gt;That Man’s Father&lt;/p&gt;     &lt;p class="MsoNormal" align="center" style="'text-align:center'"&gt;(My Father’s Son     )&lt;/p&gt;     &lt;/div&gt;     &lt;![if !mso]&gt;&lt;/td&gt;    &lt;/tr&gt;   &lt;/table&gt;   &lt;![endif]&gt;&lt;/v:textbox&gt; &lt;/v:shape&gt;&lt;v:shape id="_x0000_s1034" type="#_x0000_t202" style="'position:absolute;" allowincell="f"&gt;  &lt;v:textbox&gt;   &lt;![if !mso]&gt;   &lt;table cellpadding="0" cellspacing="0" width="100%"&gt;    &lt;tr&gt;     &lt;td&gt;&lt;![endif]&gt;     &lt;div&gt;     &lt;p class="MsoNormal" align="center" style="'text-align:center'"&gt;That Man&lt;/p&gt;     &lt;/div&gt;     &lt;![if !mso]&gt;&lt;/td&gt;    &lt;/tr&gt;   &lt;/table&gt;   &lt;![endif]&gt;&lt;/v:textbox&gt; &lt;/v:shape&gt;&lt;![endif]--&gt;&lt;!--[if !vml]--&gt;&lt;span style=""&gt;  &lt;table align="left" cellpadding="0" cellspacing="0"&gt;  &lt;tbody&gt;&lt;tr&gt;   &lt;td height="0" width="158"&gt;&lt;br /&gt;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;   &lt;td&gt;&lt;br /&gt;&lt;/td&gt;   &lt;td&gt;&lt;img src="file:///C:/DOCUME%7E1/LAKSHM%7E1/LOCALS%7E1/Temp/msoclip1/01/clip_image001.gif" shapes="_x0000_s1026 _x0000_s1027 _x0000_s1028 _x0000_s1029 _x0000_s1030 _x0000_s1031 _x0000_s1032 _x0000_s1033 _x0000_s1034" height="186" width="330" /&gt;&lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;span style=""&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;span style=""&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;span style=""&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;span style=""&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;span style=""&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;span style=""&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;br /&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;But the picture is contradicted by the second line, since my father doesn't have another&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;son.The puzzle is easily solved if you realize that the verse only &lt;/span&gt;&lt;i style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Italic&amp;quot;;"&gt;implies &lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;that "that man's father"is someone different from "me". If they're the same person, you can draw this picture, which does not violate the second line:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;!--[if gte vml 1]&gt;&lt;v:shape id="_x0000_s1035" type="#_x0000_t202" style="'position:absolute;left:0;text-align:left;" allowincell="f"&gt;  &lt;v:textbox&gt;   &lt;![if !mso]&gt;   &lt;table cellpadding="0" cellspacing="0" width="100%"&gt;    &lt;tr&gt;     &lt;td&gt;&lt;![endif]&gt;     &lt;div&gt;     &lt;p class="MsoNormal" align="center" style="'text-align:center'"&gt;My father&lt;/p&gt;     &lt;/div&gt;     &lt;![if !mso]&gt;&lt;/td&gt;    &lt;/tr&gt;   &lt;/table&gt;   &lt;![endif]&gt;&lt;/v:textbox&gt; &lt;/v:shape&gt;&lt;v:line id="_x0000_s1036" style="'position:absolute;left:0;" from="190.8pt,29.6pt" to="190.8pt,58.4pt" allowincell="f"&gt;&lt;v:shape id="_x0000_s1037" type="#_x0000_t202" style="'position:absolute;" allowincell="f"&gt;  &lt;v:textbox&gt;   &lt;![if !mso]&gt;   &lt;table cellpadding="0" cellspacing="0" width="100%"&gt;    &lt;tr&gt;     &lt;td&gt;&lt;![endif]&gt;     &lt;div&gt;     &lt;p class="MsoNormal" align="center" style="'text-align:center'"&gt;Me&lt;/p&gt;     &lt;p class="MsoNormal" align="center" style="'text-align:center'"&gt;(That Man's     Father)&lt;/p&gt;     &lt;p class="MsoNormal" align="center" style="'text-align:center'"&gt;(My Father's Son)&lt;span style="'font-size:11.0pt;mso-bidi-font-size:10.0pt;font-family:Arial;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;     &lt;p class="MsoNormal"&gt;&lt;![if !supportEmptyParas]&gt; &lt;![endif]&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;     &lt;/div&gt;     &lt;![if !mso]&gt;&lt;/td&gt;    &lt;/tr&gt;   &lt;/table&gt;   &lt;![endif]&gt;&lt;/v:textbox&gt; &lt;/v:shape&gt;&lt;v:line id="_x0000_s1038" style="'position:absolute;left:0;" from="190.8pt,102pt" to="190.8pt,123.6pt" allowincell="f"&gt;&lt;v:shape id="_x0000_s1039" type="#_x0000_t202" style="'position:absolute;" allowincell="f"&gt;  &lt;v:textbox&gt;   &lt;![if !mso]&gt;   &lt;table cellpadding="0" cellspacing="0" width="100%"&gt;    &lt;tr&gt;     &lt;td&gt;&lt;![endif]&gt;     &lt;div&gt;     &lt;p class="MsoNormal" align="center" style="'text-align:center'"&gt;That Man&lt;/p&gt;     &lt;/div&gt;     &lt;![if !mso]&gt;&lt;/td&gt;    &lt;/tr&gt;   &lt;/table&gt;   &lt;![endif]&gt;&lt;/v:textbox&gt; &lt;/v:shape&gt;&lt;![endif]--&gt;&lt;!--[if !vml]--&gt;&lt;span style=""&gt;  &lt;table align="left" cellpadding="0" cellspacing="0"&gt;  &lt;tbody&gt;&lt;tr&gt;   &lt;td height="11" width="149"&gt;&lt;br /&gt;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;   &lt;td&gt;&lt;br /&gt;&lt;/td&gt;   &lt;td&gt;&lt;img src="file:///C:/DOCUME%7E1/LAKSHM%7E1/LOCALS%7E1/Temp/msoclip1/01/clip_image002.gif" shapes="_x0000_s1035 _x0000_s1036 _x0000_s1037 _x0000_s1038 _x0000_s1039" height="195" width="224" /&gt;&lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;span style=""&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;span style=""&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;span style=""&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;span style=""&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;br /&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;Now, I'd expect any programmer to quickly solve this puzzle - they're problem solvers,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;after all. But the key point is that &lt;/span&gt;&lt;i style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Italic&amp;quot;;"&gt;someone had to create the puzzle before someone else&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;i style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Italic&amp;quot;;"&gt;could solve it. &lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;And problem creation is a different skill than problem solving. In this&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;particular case, the puzzle creator wanted to confuse two situations and could do it after&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;realizing that fathers don't refer to their own son as "that man" or themselves as "that&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;man's father". The skill lies in knowing how to mislead the puzzle solver.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;This example is quite relevant to software testing, since one thing testers do is to wonder whether two different names could ever refer to the same thing. ("What if the input data file is the same as the output log file? Will the code overwrite its input before it reads it?") Now, a programmer could argue that programmers can (and do) ponder such special cases themselves. They learn them by fixing bugs. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;However, testers make better problem-posers than developers do:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: Symbol;"&gt;· &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;It's the only thing they do. They see more bugs. They think more about bugs. They spend more time practicing problem creation.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: Symbol;"&gt;· &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;Just as puzzle creaters know puzzle solvers, testers study programmers in order to gain insight into the kinds of things programmers might overlook. It's hard for programmers to think about the kinds of things they don't think about.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;span style="font-size: 7.5pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: Symbol;"&gt;· &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;Testers also study users, in particular how to know roughly what a user knows, making it possible to do roughly what real users will do. This is difficult for programmers to do. Again, they may not have as much time. Also, they know too much about their solution to put themselves in the place of the user.&lt;/span&gt;&lt;span style="font-size: 7.5pt; font-family: TimesNewRoman;"&gt;8&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;So what a tester does is help the programmer master the relevant technical detail by presenting specific details (in the form of test cases) that otherwise would not come to her attention. Unfortunately, you often present this detail too late (after the code is written), so it reveals problems in the abstractions or their use. But that's an unfortunate side-effect of putting testers on projects too late, and of the unfortunate notion that testing is all about running tests, rather than about designing them. If the programmer had had the detail earlier, the problems wouldn't have happened.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;Programmers help testers by describing how they'd test the program. That's useful for two reasons. First, it helps the tester understand where the programmer's blind spots might be. Second, it illuminates the tester's blind spots - testers overlook things too, of course.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;That's the intellectual case. A tester helps the programmer realize her true ability by&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;providing detail to master. That's an easy argument for a programmer to accept - at least provisionally. But there will be snags in practice, and they're most likely to be related to bug reports. That's the topic of section 3.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;i style=""&gt;&lt;span style="font-size: 14pt; font-family: &amp;quot;Arial,BoldItalic&amp;quot;;"&gt;Other oddities about yourself that you should explain&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;i style=""&gt;&lt;span style="font-size: 14pt; font-family: &amp;quot;Arial,BoldItalic&amp;quot;;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;Below is a comparison of programmer and tester characteristics. I want to emphasize three here, because I've seen them lead to friction.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Bold&amp;quot;;"&gt;Testers tolerate tedious tasks; programmers automate them. &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;When programmers turn to testing, they often concentrate exclusively on automated tests. (Sometimes they spend so much time working on automation support that they somehow don't quite ever get to writing any actual tests...) When programmers see testers running tests manually,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;especially the same test over again, an opinion that testers are less competent is reinforced.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;Explicitly counter this by pointing out that the decision to automate is an economic one,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;and that the tradeoffs are possibly not what they think. Space does not permit me to&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;develop the argument here. Suffice it to say that the tradeoff is not between the time to automate a test and the time to run it &lt;/span&gt;&lt;i style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Italic&amp;quot;;"&gt;N &lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;times manually.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Bold&amp;quot;;"&gt;Testers get up to speed quickly; programmers gain a thorough understanding.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;Everyone values a quick study, but programmers may not realize how often testers are&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;presented with a product and almost no time to learn it. That places a premium on people who are able to "pick the low-hanging fruit": find out what they need to know, find the important bugs, and move on. Because programmers value thoroughness, such testers may appear shallow rather than effective, unless they explain themselves.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Bold&amp;quot;;"&gt;Testers believe ignorance is important; programmers that expertise is important.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;Testers know that ignorance of the structure of the product and of "the right way to use&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;it" allows them to see what the programmer misses and the user sees. More expertise than the user has is a dangerous thing. Asking naive questions can produce surprising answers. Programmers need to be told that naiveté is a deliberate policy, not a shortcoming.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; text-indent: -0.5in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 18pt; font-family: &amp;quot;Arial,Bold&amp;quot;;"&gt;3.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;              &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 18pt; font-family: &amp;quot;Arial,Bold&amp;quot;;"&gt;Reporting Bugs&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 18pt; font-family: &amp;quot;Arial,Bold&amp;quot;;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;This section describes how bug reports can be used to help build an effective relationship. It doesn't require you to use the techniques of the previous two sections. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;You do two things with a bug report:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.75in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;1.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;Provide information about the state of the programmer's code. This is the familiar purpose of bug reports.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;2 .Provide information about you and the degree to which the programmer can rely on you.&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;Initially, the developer should be suspicious. Some programmers have experience with&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;testers who waste time with bug reports that are not useful. The rest have heard horror&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;stories. You must convince the programmer that you are a useful person to have around. There are three parts to doing that.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Bold&amp;quot;;"&gt;Don't waste her time.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Bold&amp;quot;;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;The bug report should not make her guess at information.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: Symbol;"&gt;· &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;If at all possible, include an explicit sequence of steps that will make the bug&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoBodyTextIndent" style="text-align: justify;"&gt;reproducible. Try the sequence of steps, as written, before reporting the bug. Make sure you start from the clearly described starting state (for example, make sure you exit the program and restart it).&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: Symbol;"&gt;· &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;Say what you expected to happen, what did happen, and what was incorrect about it.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: Symbol;"&gt;· &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;Most programmers prefer to get bug reports that reproduce the problem in the&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoBodyTextIndent" style="text-align: justify;"&gt;minimal number of steps. Some do not, because it doesn't really save them time. (For example, the instructions on how to report a bug in the GNU C compiler explicitly told you not to bother with producing a minimal example.)&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: Symbol;"&gt;· &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;Alternate sequences that also fail can help the programmer discover the underlying cause faster, but the sequences shouldn't be trivial variations of each other. Those waste the programmer's time deciding that there's nothing new. (It will probably take some time for you to learn the feature well enough to decide what variations aren't trivial.)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: Symbol;"&gt;· &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;Descriptions of scenarios that surprisingly do work can also help.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: Symbol;"&gt;· &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;If the problem doesn't happen on her machine, quickly take it upon yourself to&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;discover the differences between your machines. Check future bug reports for&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoBodyTextIndent" style="text-align: justify;"&gt;configuration dependence. Learn how the product is sensitive to configurations. (This is, of course, useful in finding configuration bugs. Early in testing, it's equally useful in helping smooth the developer's path.)&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Bold&amp;quot;;"&gt;Keep yourself out of it.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Bold&amp;quot;;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: Symbol;"&gt;· &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;Ruthlessly scrub your bug reports of any hint of personal criticism. You may need to let some bug reports sit overnight until you can read them with a fresh eye. You may find that asking questions is a less threatening way of conveying information than making statements. (And don't forget to ask genuine questions: there's a lot you have to learn.) Ask yourself how you'd feel if it turns out that what you thought was a bug is correct behavior. If you'd feel like a fool, there's a fair chance that part of the reason is your wording of the bug report.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: Symbol;"&gt;· &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;Don't try to solve the problem you report. It's unlikely you know enough to solve it well. Attempting to do so is likely to be counterproductive.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Bold&amp;quot;;"&gt;Demonstrate your value with important bugs.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Bold&amp;quot;;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;You and the programmer are likely to have differing opinions about what's important. You might believe, as I do, that usability problems are critically important. The programmer might not. How do you resolve this conflict? You might barrage her with usability bugs, hoping to persuade her with volume. Or, you might first barrage her with bugs she believes are important, bugs so serious that she heaves a sigh of relief that they were&lt;span style=""&gt;  &lt;/span&gt;caught. Then, having established credibility as someone whose judgement is sound, you expand the scope of "important" to include usability bugs.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;As you might guess, I favor the latter approach. I have in the past held back less important bugs, waiting to report them until after I've gained the programmer's respect. That's not something I do lightly, especially with the bugs that the programmer would believe are real bugs, just low priority. What if I'm hit by a bus? What if the programmer is transferred to another task and is now unable to fix minor bugs she might have otherwise fixed? But sometimes I've judged that it's the most effective thing to do. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;Here are some other techniques to help keep the focus on important bugs.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: Symbol;"&gt;· &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;Explain why the bug would be important to a customer. If your scenario could be accused of being unrealistic, devise a more realistic scenario that also demonstrates the bug. If your programmer says that no real user would ever do that, first carefully consider if she's right. She may be. If she's not, marshal good arguments in favor of your scenario. What do the customer service people say?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: Symbol;"&gt;· &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;Many bug tracking systems have both a severity and a priority field. The severity field describes the consequences of the bug. The priority field describes how soon a bug should be fixed. Usually, a severe bug is also high priority, &lt;/span&gt;&lt;i style=""&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;TimesNewRoman,Italic&amp;quot;;"&gt;but not always&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;. There may be good reasons not to fix it. As a tester, you are probably not privy to all those reasons, nor should you have the authority to schedule a programmer's time. Therefore, leave the priority field blank when reporting the bug. By doing this, you are avoiding defining "important" as "what's important to me, the tester". If the bug tracking system has only a severity field, make it clear - in words and actions - that the value you give it does not represent priority. And try to get a priority field added.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; font-family: Symbol;"&gt;· &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;When you find a bug, seek further consequences. For example, I once tested some code that changed the name by which a user identified herself to the product. For&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoBodyTextIndent" style="text-align: justify;"&gt;aesthetic reasons, the name could not begin or end with a blank. (Since blanks are not visible, it's difficult for other users to know what the real name is.) I discovered that the code did not enforce that rule. Suppose I'd filed a bug report titled "Can create name that's hard for other users to type". It would have rightly been given low priority.&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;However, I had recently discovered that the username was part of the name of a file on the user's disk. I also knew, from reading past bug reports and keeping up with developer email, that the product had a hard time with certain files with blanks in them. That inspired me to try various uses of blank-terminated names, uses that would interact with the disk file. I also tried names containing the DOS directory separator character '\'. I was able to find much more serious bugs. I don't remember the exact details, but the bug report title could have been something like "All session data lost (names with backslash or trailing blanks)". That's a bit more compelling. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;As you gain rapport with a developer, you'll be able to spend considerably less time on&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;private (email) bug reports. Most of the suggestions given above also make bug reports&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;more useful to their other possible consumers: other testers, project management, people concerned with development process or metrics. So you should continue to take nearly as much care with bugs logged in the public bug tracking system.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 18pt; font-family: &amp;quot;Arial,Bold&amp;quot;;"&gt;Summary&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 18pt; font-family: &amp;quot;Arial,Bold&amp;quot;;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;So. Where do we stand after all these pages?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;Testers often complain that the developer is king. Because of that, testers don't get the&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: TimesNewRoman;"&gt;attention, respect, and resources they want.But what if you accept this situation, then run with the metaphor? My perspective is that the developer is often a benevolent and useful monarch, just sadly and inevitably incomplete in her knowledge of the user and the nature of her own fallibility. The effective counselor seeks to complete the monarch, to make her wiser in the eyes of the world, not become monarch himself. Tyrants, of course, must be overthrown.&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/923369492371389655-6457456607772452907?l=interviewquestions4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://interviewquestions4all.blogspot.com/feeds/6457456607772452907/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=923369492371389655&amp;postID=6457456607772452907' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/923369492371389655/posts/default/6457456607772452907'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/923369492371389655/posts/default/6457456607772452907'/><link rel='alternate' type='text/html' href='http://interviewquestions4all.blogspot.com/2007/08/working-effectively.html' title='Working Effectively'/><author><name>lakshmananv</name><uri>http://www.blogger.com/profile/09631118879231679818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-923369492371389655.post-8695266299069348654</id><published>2007-08-15T06:48:00.000-07:00</published><updated>2007-08-15T06:50:01.784-07:00</updated><title type='text'>Testing Concepts</title><content type='html'>&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;Black-box testing and white-box testing are the two fundamental testing strategies.&lt;span style=""&gt;  &lt;/span&gt;They are strategies, not technical or analytical methods.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;Black-box tests are derived from the functional design specification, without regard to the internal program structure. Black-box testing tests the product against the end user, external specifications. Black-box testing is done without any internal knowledge of the product. It is important in practice to try to test, or at least write, detailed test plans for requirements and functional specifications tests without too much knowledge of the code. Understanding the code changes the way the requirements are seen and test design should not be “contaminated” by this knowledge too early.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;Black-box testing will not test hidden functions (i.e., functions implemented but not described in the functional design specification), and the errors associated with them will not be found in black-box testing.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;White-box tests require knowledge of the internal program structure and are derived from the internal design specification or the code. They will not detect missing functions (i.e., those described in the functional design specification but not supported by the internal specification or code).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;BLACK-BOX METHODS FOR FUNCTION-BASED TESTS (page 83)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;The following methods are commonly used:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=""&gt;equivalence partioning&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=""&gt;boundary-value analysis&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=""&gt;error guessing.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;The following are lesser-used methods:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=""&gt;cause-effect graphing&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=""&gt;syntax testing&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=""&gt;state transition testing&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=""&gt;graph matrix.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.25in;"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.25in;"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.25in;"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.25in;"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.25in;"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.25in;"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;h1&gt;&lt;u&gt;&lt;span style="font-weight: normal;"&gt;Equivalence partitioning&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/h1&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;Equivalence partitioning is a systematic process that identifies, on the basis of whatever information is available, a set of interesting classes of input conditions to be tested, where each class is representative of (or covers) a large set of other possible tests. If partitioning is applied to the product under test, the product is going to behave in much the same way for all members of the class.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;The aim is to minimize the number of test cases required to cover these input conditions.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;There are two distinct steps. The first is to identify the equivalence classes (ECs) and the second is to identify the test cases.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;(1)&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=""&gt;Identifying equivalence classes&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.25in;"&gt;&lt;span style=""&gt;For each external input:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;(i)&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=""&gt;If the input specifies a range of valid values, define one valid EC (within the range) and two invalid Ecs (one outside each end of the range).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoBodyTextIndent"&gt;&lt;span style="font-weight: normal;"&gt;Example:&lt;span style=""&gt;  &lt;/span&gt;If the input requires a month in the range of 1-12, define one valid EC for months 1 through 12 and two invalid ECs&lt;span style=""&gt;  &lt;/span&gt;(month&lt;1&gt;12).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -22.5pt;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;(ii)&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=""&gt;If the input specifies the number (N) of valid values, define one valid EC and two invalid ECs (none, and more than N).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;span style=""&gt;Example:&lt;span style=""&gt;  &lt;/span&gt;If the input requires the titles of at least three but no more than eight books, then define one valid EC and two invalid ECs (&lt;3&gt;8 books).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -27pt;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;(iii)&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=""&gt;If the input specifies a set of valid values, define one valid EC (within the set) and one invalid EC (outside the set).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoBodyTextIndent"&gt;&lt;span style="font-weight: normal;"&gt;Example:&lt;span style=""&gt;  &lt;/span&gt;If the input requires one of the names TOM, DICK, or HARRY, then define one valid EC (using one of the valid names) and one invalid EC (using the name JOE).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -27pt;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;(iv)&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=""&gt;If there is reason to believe that the program handles each valid input differently, then define one valid EC per valid input.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -27pt;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;(v)&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;          &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=""&gt;If the input specifies a “must be” situation, define one valid EC and one invalid EC.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;span style=""&gt;Example:&lt;span style=""&gt;  &lt;/span&gt;If the first character of the input must be numeric, then define one valid EC where the first character is a number and one invalid EC where the first character is not a number.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -27pt;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;(vi)&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=""&gt;If there is reason to believe that elements in an EC are not handled in an identical manner by the program, subdivide the EC into smaller ECs.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 9pt;"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;(2)&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=""&gt;Identifying test cases&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.5in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;(i)&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=""&gt;Assign a unique number to each EC.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -22.5pt;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;(ii)&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=""&gt;Until all valid ECs have been covered by test cases, write a new test case covering as many of the uncovered ECs as possible.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -22.5pt;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;(iii)&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=""&gt;Until all invalid Ecs have been covered by test cases, write a test case that covers one, and only one, of the uncovered invalid ECs.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -22.5pt;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;(iv)&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;     &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=""&gt;If multiple invalid ECs are tested in the same test case, some of those tests may never be executed because the first test may mask other tests or terminate execution of the test case.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 13.5pt;"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoBodyTextIndent2"&gt;&lt;span style="font-weight: normal;"&gt;Equivalence partitioning significantly reduces the number of input conditions to be tested by identifying classes of conditions that are equivalent to many other conditions. It does not test combinations of input conditions.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;  &lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;u&gt;&lt;span style=""&gt;Boundary-value analysis&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;Boundary-value analysis is a variant and refinement of equivalence partitioning, with two major differences:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;First, rather than selecting any element in an equivalence class as being representative, elements are selected such that each edge of the EC is the subject of a test. Boundaries are always a good place to look for defects.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;Second, rather than focusing exclusively on input conditions, output conditions are also explored by defining output ECs. What can be output? What are the classes of output? What should I create as an input to force a useful set of classes that represent the outputs that ought to be produced?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;The guidelines for boundary-value analysis are:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=""&gt;If an input specifies a range of valid values, write test cases for the ends of the range and invalid-input test cases for conditions just beyond the ends.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.25in;"&gt;&lt;span style=""&gt;Example:&lt;span style=""&gt;  &lt;/span&gt;If the input requires a real number in the range 0.0 to 90.0 degrees, then write test cases for 0.0, 90.0, -0.001, and 90.001.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=""&gt;If an input specifies a number of valid values, write test cases for the minimum and maximum number of values and one beneath and beyond these values.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.25in;"&gt;&lt;span style=""&gt;Example:&lt;span style=""&gt;  &lt;/span&gt;If the input requires the titles of at least 3, but no more than 8, books, then write test cases for 2, 3, 8, and 9 books.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=""&gt;Use the above guidelines for each output condition.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.25in;"&gt;&lt;span style=""&gt;Boundary-value analysis is not as simple as it sounds, because boundary conditions may be subtle and difficult to identify. The method does not test combinations of input conditions.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.25in;"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;h1&gt;&lt;u&gt;&lt;span style="font-weight: normal;"&gt;Error guessing&lt;/span&gt;&lt;/u&gt;&lt;span style="font-weight: normal;"&gt; (page 87)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h1&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;Error guessing is an &lt;i style=""&gt;ad hoc&lt;/i&gt; approach, based on intuition and experience, to identify tests that are considered likely to expose errors. The basic idea is to make a list of possible errors or error-prone situations and then develop tests based on the list. What are the most common error-prone situations we have seen before? Defects’ histories are useful. There is a high probability that defects that have been there in the past are the kind that are going to be there in the future.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;Some items to try are:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=""&gt;empty or null lists/strings&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=""&gt;zero instances/occurrences&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=""&gt;blanks or null characters in strings&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=""&gt;negative numbers&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.25in;"&gt;&lt;span style=""&gt;One of the studies done by Myers (1979) states that the probability of errors remaining in the program is proportional to the number of errors that have been found so far. This alone provides a rich source of focus for productive error guessing.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.25in;"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.25in;"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.25in;"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;h1&gt;&lt;span style="font-weight: normal;"&gt;WHITE-BOX METHODS FOR INTERNALS-BASED TESTS&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h1&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;Once white-box testing is started, there are a number of techniques to ensure the internal parts of the system are being adequately tested and that there is sufficient logic coverage.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;The execution of a given test case against program P will exercise (cover) certain parts of P’s internal logic. A measure of testedness for P is the degree of logic coverage produced by the collective set of test cases for P. White-box testing methods are used to increase logic coverage.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;There are four basic forms of logic coverage:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;(1)&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=""&gt;statement coverage&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;(2)&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=""&gt;decision (branch) coverage&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;(3)&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=""&gt;condition coverage&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;(4)&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=""&gt;path coverage.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;White-box methods defined and compared&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;The following figure illustrates white-box methods. For example, to perform condition coverage, tests covering characteristics 1 and 3 are required. Tests covering 2 and 4 are not required. To perform multiple condition coverage, tests covering characteristics 1 and 4 are required. Such tests will automatically cover characteristics 1 and 2.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;table class="MsoNormalTable" style="border: medium none ; margin-left: 5.4pt; border-collapse: collapse;" border="1" cellpadding="0" cellspacing="0"&gt;   &lt;tbody&gt;&lt;tr style="height: 45pt;"&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 149.25pt; height: 45pt;" valign="top" width="199"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: solid solid solid none; border-color: windowtext windowtext windowtext -moz-use-text-color; border-width: 1pt 1pt 1pt medium; padding: 0in 5.4pt; width: 66.75pt; height: 45pt;" valign="top" width="89"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;Statement coverage&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: solid solid solid none; border-color: windowtext windowtext windowtext -moz-use-text-color; border-width: 1pt 1pt 1pt medium; padding: 0in 5.4pt; width: 63pt; height: 45pt;" valign="top" width="84"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;Decision&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;coverage&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: solid solid solid none; border-color: windowtext windowtext windowtext -moz-use-text-color; border-width: 1pt 1pt 1pt medium; padding: 0in 5.4pt; width: 63pt; height: 45pt;" valign="top" width="84"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;Condition&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;coverage&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: solid solid solid none; border-color: windowtext windowtext windowtext -moz-use-text-color; border-width: 1pt 1pt 1pt medium; padding: 0in 5.4pt; width: 63pt; height: 45pt;" valign="top" width="84"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;Decision/&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;Condition&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;coverage&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: solid solid solid none; border-color: windowtext windowtext windowtext -moz-use-text-color; border-width: 1pt 1pt 1pt medium; padding: 0in 5.4pt; width: 63pt; height: 45pt;" valign="top" width="84"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;Multiple&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;Condition coverage&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none none solid; border-color: -moz-use-text-color -moz-use-text-color windowtext; border-width: medium medium 1pt;" width="1"&gt;&lt;p class="MsoNormal"&gt; &lt;/p&gt;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 45pt;"&gt;   &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color windowtext windowtext; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 149.25pt; height: 45pt;" valign="top" width="199"&gt;   &lt;p class="MsoNormal" style="margin-right: -4.65pt;"&gt;&lt;span style=""&gt;1.&lt;span style=""&gt;  &lt;/span&gt;Each statement is &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;executed at least   once&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 66.75pt; height: 45pt;" valign="top" width="89"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;Y&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 63pt; height: 45pt;" valign="top" width="84"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;span style=""&gt;       &lt;/span&gt;Y&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 63pt; height: 45pt;" valign="top" width="84"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;Y&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 63pt; height: 45pt;" valign="top" width="84"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;Y&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td colspan="2" style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 63.75pt; height: 45pt;" valign="top" width="85"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;span style=""&gt;       &lt;/span&gt;Y&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 45pt;"&gt;   &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color windowtext windowtext; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 149.25pt; height: 45pt;" valign="top" width="199"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;2.&lt;span style=""&gt;  &lt;/span&gt;Each decision takes on all possible   outcomes at least once&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 66.75pt; height: 45pt;" valign="top" width="89"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;N&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 63pt; height: 45pt;" valign="top" width="84"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;span style=""&gt;       &lt;/span&gt;Y&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 63pt; height: 45pt;" valign="top" width="84"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;N&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 63pt; height: 45pt;" valign="top" width="84"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;Y&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td colspan="2" style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 63.75pt; height: 45pt;" valign="top" width="85"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;span style=""&gt;  &lt;/span&gt;implicit&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 45pt;"&gt;   &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color windowtext windowtext; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 149.25pt; height: 45pt;" valign="top" width="199"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;3.&lt;span style=""&gt;  &lt;/span&gt;Each condition in a decision takes on all   possi-ble outcomes at least once&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 66.75pt; height: 45pt;" valign="top" width="89"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;N&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 63pt; height: 45pt;" valign="top" width="84"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;span style=""&gt;       &lt;/span&gt;N&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 63pt; height: 45pt;" valign="top" width="84"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;Y&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 63pt; height: 45pt;" valign="top" width="84"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;Y&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td colspan="2" style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 63.75pt; height: 45pt;" valign="top" width="85"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;span style=""&gt;  &lt;/span&gt;implicit&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 45pt;"&gt;   &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color windowtext windowtext; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 149.25pt; height: 45pt;" valign="top" width="199"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;4.&lt;span style=""&gt;  &lt;/span&gt;All possible combina-tions of condition   out-comes in each decision occur at least once&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 66.75pt; height: 45pt;" valign="top" width="89"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;N&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 63pt; height: 45pt;" valign="top" width="84"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;span style=""&gt;       &lt;/span&gt;N&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 63pt; height: 45pt;" valign="top" width="84"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;N&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 63pt; height: 45pt;" valign="top" width="84"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;N&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td colspan="2" style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 63.75pt; height: 45pt;" valign="top" width="85"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;span style=""&gt;       &lt;/span&gt;Y&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;FIGURE:&lt;span style=""&gt;  &lt;/span&gt;The white-box methods defined and compared. Each column in this figure represents a distinct method of white-box testing, and each row (1-4) defines a different test characteristic. For a given method (column), “Y” in a given row means that the test characteristic is required for the method. “N” signifies no requirement. “Implicit” means the test characteristic is achieved implicitly by other requirements of the method.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;Exhaustive path coverage is generally impractical. However, there are practical methods, based on the other three basic forms, which provide increasing degrees of logic coverage.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/923369492371389655-8695266299069348654?l=interviewquestions4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://interviewquestions4all.blogspot.com/feeds/8695266299069348654/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=923369492371389655&amp;postID=8695266299069348654' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/923369492371389655/posts/default/8695266299069348654'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/923369492371389655/posts/default/8695266299069348654'/><link rel='alternate' type='text/html' href='http://interviewquestions4all.blogspot.com/2007/08/testing-concepts.html' title='Testing Concepts'/><author><name>lakshmananv</name><uri>http://www.blogger.com/profile/09631118879231679818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-923369492371389655.post-987141511847817384</id><published>2007-08-15T06:44:00.000-07:00</published><updated>2007-08-15T06:45:05.549-07:00</updated><title type='text'>Test Plan</title><content type='html'>&lt;h2&gt;Test Planning : Test Plan &lt;/h2&gt;   &lt;p class="MsoNormal"&gt;&lt;b&gt;1. The goal of software testing is to:&lt;br /&gt;&lt;/b&gt;A: Debug the System.&lt;/p&gt;   &lt;p class="MsoNormal"&gt;B: Validate that the system behaves as expected.&lt;/p&gt;   &lt;p class="MsoNormal"&gt;C:&lt;span style=""&gt;  &lt;/span&gt;Avoid Lawsuits&lt;/p&gt;   &lt;p class="MsoNormal"&gt;D: Execute the program with the intent of finding errors.&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;b&gt;2. If no errors were found during testing:&lt;br /&gt;&lt;/b&gt;A: the system was not tested completely.&lt;/p&gt;   &lt;p class="MsoNormal"&gt;B: The programmer is a perfect genius.&lt;/p&gt;   &lt;p class="MsoNormal"&gt;C: no errors were sought.&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;b&gt;3. A Test Plan defines: &lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;   &lt;table class="MsoNormalTable" style="border-collapse: collapse;" border="0" cellpadding="0" cellspacing="0"&gt;   &lt;tbody&gt;&lt;tr&gt;   &lt;td style="padding: 0in 5.4pt; width: 221.4pt;" valign="top" width="295"&gt;   &lt;p class="MsoNormal"&gt;A: What is selected for testing.&lt;/p&gt;   &lt;/td&gt;   &lt;td style="padding: 0in 5.4pt; width: 221.4pt;" valign="top" width="295"&gt;   &lt;p class="MsoNormal"&gt;C: Objectives and results.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="padding: 0in 5.4pt; width: 221.4pt;" valign="top" width="295"&gt;   &lt;p class="MsoNormal"&gt;B: Expected results.&lt;/p&gt;   &lt;/td&gt;   &lt;td style="padding: 0in 5.4pt; width: 221.4pt;" valign="top" width="295"&gt;   &lt;p class="MsoNormal"&gt;D: Targets and misses.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt;   &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;b&gt;4. Test Planning should begin:&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;A: At the same time that requirements definition begins.&lt;/p&gt;   &lt;p class="MsoNormal"&gt;B: When building starts.&lt;/p&gt;   &lt;p class="MsoNormal"&gt;C: When Code build is complete&lt;/p&gt;   &lt;p class="MsoNormal"&gt;D: After shipping the first version.&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;b&gt;Why plan tests:&lt;br /&gt;5. Documented tests are:&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;   &lt;table class="MsoNormalTable" style="border-collapse: collapse;" border="0" cellpadding="0" cellspacing="0"&gt;   &lt;tbody&gt;&lt;tr&gt;   &lt;td style="padding: 0in 5.4pt; width: 221.4pt;" valign="top" width="295"&gt;   &lt;p class="MsoNormal"&gt;A: Repeatable.&lt;/p&gt;   &lt;/td&gt;   &lt;td style="padding: 0in 5.4pt; width: 221.4pt;" valign="top" width="295"&gt;   &lt;p class="MsoNormal"&gt;C: Sensible.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="padding: 0in 5.4pt; width: 221.4pt;" valign="top" width="295"&gt;   &lt;p class="MsoNormal"&gt;B: Organized.&lt;/p&gt;   &lt;/td&gt;   &lt;td style="padding: 0in 5.4pt; width: 221.4pt;" valign="top" width="295"&gt;   &lt;p class="MsoNormal"&gt;D: Manageable.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt;   &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;b&gt;6. List three benefit factors in planned tests:&lt;br /&gt;&lt;/b&gt;Repeatable, Controllable, Coverage.&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;   &lt;p class="MsoBodyText"&gt;7. The Test Plan is defined as an overall document providing direction for all testing activity.&lt;/p&gt;   &lt;p class="MsoNormal"&gt;True, False&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;   &lt;p class="MsoBodyText"&gt;8. The _____&lt;span style=""&gt;   &lt;/span&gt;answers What will be covered in test? And what will not be covered in the tests.&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;b&gt;&lt;span style=""&gt;9.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;!--[endif]--&gt;&lt;b&gt;A _____&lt;span style=""&gt;  &lt;/span&gt;is a statement of what the tester is expected to accomplish or validate during testing activity.&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;   &lt;p class="MsoBodyText"&gt;10.&lt;span style=""&gt;  &lt;/span&gt;Procedures for configuration management, version control, hardware and software configurations and other items such as defect tracking should be listed in _________ .&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;i&gt;{&lt;/i&gt;&lt;b&gt;&lt;i&gt;&lt;span style="font-size: 10pt; font-family: Verdana; color: black;"&gt;&lt;a href="http://school.discovery.com/quizzes8/paulmw/TP584.html"&gt;http://school.discovery.com/quizzes8/paulmw/TP584.html&lt;/a&gt;&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;i&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/i&gt;&lt;/p&gt;   &lt;i&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;Times New Roman&amp;quot;;"&gt;&lt;br /&gt; &lt;/span&gt;&lt;/i&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;   &lt;ol style="margin-top: 0in;" start="1" type="A"&gt; &lt;li class="MsoNormal" style=""&gt;Test      Scope&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Test      Objectives&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Assumptions&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Risk      Analysis&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Test      Design&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Roles      and Responsibilities&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Test      Schedule and Resources&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Test      Data Management&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Test      Environment&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Communication      Approach&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Test      Tools&lt;/li&gt; &lt;/ol&gt;   &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin: 6pt 0in 6pt 0.7in; text-indent: -0.5in;"&gt;&lt;u&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;/u&gt;&lt;span style=""&gt; &lt;/span&gt;The data required for testing, the infrastructure requirements to manage the data as well as the methods for preparing test data, requirements, converters and sources.&lt;/p&gt;   &lt;p class="MsoNormal" style="margin: 6pt 0in 6pt 0.7in; text-indent: -0.5in;"&gt;&lt;u&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;span style=""&gt;           &lt;/span&gt;&lt;/u&gt;&lt;span style=""&gt; &lt;/span&gt;What will be covered in the test?&lt;span style=""&gt;  &lt;/span&gt;What will not be? Might include functional or structural requirements, API, infrastructure component or deliverable documentation.&lt;/p&gt;   &lt;p class="MsoNormal" style="margin: 6pt 0in 6pt 0.7in; text-indent: -0.5in;"&gt;&lt;u&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;/u&gt;&lt;span style=""&gt; &lt;/span&gt;A testing goal. It is a statement of what the tester is expected to accomplish or validate during a testing activity. These guide the development of test cases and procedures.&lt;/p&gt;   &lt;p class="MsoNormal" style="margin: 6pt 0in 6pt 0.7in; text-indent: -0.5in;"&gt;&lt;u&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;/u&gt;&lt;span style=""&gt; &lt;/span&gt;Details what types of tests must be conducted, what stages of testing are required and outlines the sequence and timing of tests.&lt;/p&gt;   &lt;p class="MsoNormal" style="margin: 6pt 0in 6pt 0.7in; text-indent: -0.5in;"&gt;&lt;u&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;/u&gt;&lt;span style=""&gt; &lt;/span&gt;This may include formal and informal meetings, working sessions, processes, tools and techniques such as escalation or posting testing state.&lt;/p&gt;   &lt;p class="MsoNormal" style="margin: 6pt 0in 6pt 0.7in; text-indent: -0.5in;"&gt;&lt;u&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;/u&gt;&lt;span style=""&gt; &lt;/span&gt;This includes Major Test activities, the sequence of tests, dependencies on other project activities and initial estimates for each activity. Includes people, tools and facilities.&lt;/p&gt;   &lt;p class="MsoNormal" style="margin: 6pt 0in 6pt 0.7in; text-indent: -0.5in;"&gt;&lt;u&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;/u&gt;&lt;span style=""&gt; &lt;/span&gt;These document test prerequisites. This may include skill level of test resources, budget, state of the application, tools available and or entrance or exit criteria.&lt;/p&gt;   &lt;p class="MsoNormal" style="margin: 6pt 0in;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin: 6pt 0in;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin: 6pt 0in;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin: 6pt 0in;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;   &lt;i&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;Times New Roman&amp;quot;;"&gt;&lt;br /&gt; &lt;/span&gt;&lt;/i&gt;  &lt;p class="MsoNormal"&gt;Answers:&lt;br /&gt; &lt;!--[if !supportLineBreakNewLine]--&gt;&lt;br /&gt; &lt;!--[endif]--&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;i&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Bradley Hand ITC&amp;quot;;"&gt;1. d&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;i&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Bradley Hand ITC&amp;quot;;"&gt;2. a&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;i&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Bradley Hand ITC&amp;quot;;"&gt;3. c&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;i&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Bradley Hand ITC&amp;quot;;"&gt;4. a&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;i&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Bradley Hand ITC&amp;quot;;"&gt;5. a&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;i&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Bradley Hand ITC&amp;quot;;"&gt;6. Repeatable, Controllable, Coverage.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;i&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Bradley Hand ITC&amp;quot;;"&gt;7. True&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;i&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Bradley Hand ITC&amp;quot;;"&gt;8. Test Scope&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;i&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Bradley Hand ITC&amp;quot;;"&gt;9. Test Objective&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;i&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Bradley Hand ITC&amp;quot;;"&gt;&lt;span style=""&gt;10.&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;!--[endif]--&gt;&lt;i&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Bradley Hand ITC&amp;quot;;"&gt;Test environment&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;i&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Bradley Hand ITC&amp;quot;;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt;"&gt;Vocabulary &lt;/span&gt;Answers:&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;i&gt;&lt;span style="font-family: &amp;quot;Bradley Hand ITC&amp;quot;;"&gt;H, A, B, E, J, G, C.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;i&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Bradley Hand ITC&amp;quot;;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/923369492371389655-987141511847817384?l=interviewquestions4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://interviewquestions4all.blogspot.com/feeds/987141511847817384/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=923369492371389655&amp;postID=987141511847817384' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/923369492371389655/posts/default/987141511847817384'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/923369492371389655/posts/default/987141511847817384'/><link rel='alternate' type='text/html' href='http://interviewquestions4all.blogspot.com/2007/08/test-plan.html' title='Test Plan'/><author><name>lakshmananv</name><uri>http://www.blogger.com/profile/09631118879231679818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-923369492371389655.post-2403631024056534006</id><published>2007-08-15T06:19:00.000-07:00</published><updated>2007-08-19T20:57:40.102-07:00</updated><title type='text'>Interview</title><content type='html'>Testing is the evaluation of process it verify to specified specification and identified the difference between the actual and expected results.&lt;br /&gt;  &lt;p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;&lt;span style=""&gt;                                           &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;u&gt;&lt;span style="font-size: 15pt;"&gt;Testing Life Cycle&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"&gt;&lt;span style="font-size: 15pt;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoBodyTextIndent" style="margin-left: 0.5in;"&gt;Unlike SDLC (Software Development life cycle) there is STLC (software testing life cycle). Different Organizations have different names of phases in defining the life cycle. But broadly we can summarize as follows&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"&gt;&lt;span style="font-size: 15pt;"&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 15pt;"&gt;A systematic approach to testing that normally includes these phases: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 1in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;1.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Risk Analysis &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 1in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;2.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Planning Process &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 1in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;3.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Test Design &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 1in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;4.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Performing Test &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 1in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;5.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Defect Tracking and Management &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 1in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;6.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Quantitative Measurement &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 1in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 15pt;"&gt;7.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Test Reporting&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 15pt;"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="H1" style="text-align: justify;"&gt;&lt;span style="font-size: 15pt;"&gt;1. Risk Analysis&lt;/span&gt;&lt;span style="font-size: 29pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 15pt;"&gt;A.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Risk Identification&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 15pt;"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 1in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 15pt;"&gt;1.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Software Risks&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 15pt;"&gt; - Knowledge of the most common risks associated with software development, and the platform you are working on. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 1in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 15pt;"&gt;2.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Testing Risks&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 15pt;"&gt; - Knowledge of the most common risks associated with software testing for the platform you are working on, tools being used, and test methods being applied. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 1in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 15pt;"&gt;3.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Premature Release Risk&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 15pt;"&gt; - Ability to determine the risk associated with releasing unsatisfactory or untested software products. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 1in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 15pt;"&gt;4.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Business Risks&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 15pt;"&gt; - Most common risks associated with the business using the software. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 1in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 15pt;"&gt;5.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Risk Methods&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 15pt;"&gt; - Strategies and approaches for identifying risks or problems associated with implementing and operating information technology, products, and processes; assessing their likelihood, and initiating strategies to test for those risks. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 15pt;"&gt;B.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Managing Risks&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 15pt;"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 1in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 15pt;"&gt;1.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Risk Magnitude&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 15pt;"&gt; - Ability to rank the severity of a risk categorically or quantitatively. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 1in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 15pt;"&gt;2.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Risk Reduction Methods&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 15pt;"&gt; - The strategies and approaches that can be used to minimize the magnitude of a risk. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 1in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 15pt;"&gt;3.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Contingency Planning&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 15pt;"&gt; - Plans to reduce the magnitude of a known risk should the risk event occur.&lt;b style=""&gt;CSTE Body of Knowledge&lt;/b&gt;&lt;br /&gt;&lt;em&gt;Skill Category 6&lt;/em&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="H1" style="text-align: justify;"&gt;&lt;span style="font-size: 15pt;"&gt;2. Test Planning Process&lt;/span&gt;&lt;span style="font-size: 29pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 15pt;"&gt;A.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Pre-Planning Activities&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 15pt;"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 1in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 15pt;"&gt;1.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Success Criteria/Acceptance Criteria&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 15pt;"&gt; - The criteria that must be validated through testing to provide user management with the information needed to make an acceptance decision. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 1in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 15pt;"&gt;2.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Test Objectives&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 15pt;"&gt; - Objectives to be accomplished through testing. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 1in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 15pt;"&gt;3.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Assumptions&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 15pt;"&gt; - Establishing those conditions that must exist for testing to be comprehensive and on schedule; for example, software must be available for testing on a given date, hardware configurations available for testing must include XYZ, etc. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 1in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 15pt;"&gt;4.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Entrance Criteria/Exit Criteria&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 15pt;"&gt; - The criteria that must be met prior to moving to the next level of testing, or into production. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 15pt;"&gt;B.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Test Planning&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 15pt;"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 1in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 15pt;"&gt;1.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Test Plan&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 15pt;"&gt; - The deliverables to meet the test’s objectives; the activities to produce the test deliverables; and the schedule and resources to complete the activities. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 1in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 15pt;"&gt;2.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Requirements/Traceability&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 15pt;"&gt; - Defines the tests needed and relates those tests to the requirements to be validated. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 1in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 15pt;"&gt;3.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Estimating&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 15pt;"&gt; - Determines the amount of resources required to accomplish the planned activities. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 1in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 15pt;"&gt;4.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Scheduling&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 15pt;"&gt; - Establishes milestones for completing the testing effort. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 1in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 15pt;"&gt;5.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Staffing&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 15pt;"&gt; - Selecting the size and competency of staff needed to achieve the test plan objectives. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 1in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 15pt;"&gt;6.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Approach&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 15pt;"&gt; - Methods, tools, and techniques used to accomplish test objectives. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 1in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 15pt;"&gt;7.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Test Check Procedures (i.e., test quality control)&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 15pt;"&gt; - Set of procedures based on the test plan and test design, incorporating test cases that ensure that tests are performed correctly and completely. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 15pt;"&gt;C.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Post-Planning Activities&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 15pt;"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 1in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 15pt;"&gt;1.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Change Management&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 15pt;"&gt; - Modifies and controls the plan in relationship to actual progress and scope of the system development. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 1in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;2.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Versioning(change control/change management/configuration management)&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 15pt;"&gt; - Methods to control, monitor, and achieve change.&lt;b style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="H1" style="text-align: justify;"&gt;&lt;span style="font-size: 15pt;"&gt;3. Test Design&lt;/span&gt;&lt;span style="font-size: 29pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 15pt;"&gt;A.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Design Preparation&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 15pt;"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 1in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 15pt;"&gt;1.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Test Bed/Test Lab&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 15pt;"&gt; - Adaptation or development of the approach to be used for test design and test execution. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 1in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 15pt;"&gt;2.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Test Coverage&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 15pt;"&gt; - Adaptation of the coverage objectives in the test plan to specific system components. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 15pt;"&gt;B.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Design Execution&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 15pt;"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 1in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 15pt;"&gt;1.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Specifications&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 15pt;"&gt; - Creation of test design requirements, including purpose, preparation and usage. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 1in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 15pt;"&gt;2.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Cases&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 15pt;"&gt; - Development of test objectives, including techniques and approaches for validation of the product. Determination of the expected result for each test case. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 1in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 15pt;"&gt;3.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Scripts&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 15pt;"&gt; - Documentation of the steps to be performed in testing, focusing on the purpose and preparation of procedures; emphasizing entrance and exit criteria. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 1in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 15pt;"&gt;4.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Data&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 15pt;"&gt; - Development of test inputs, use of data generation tools. Determination of the data set or sub-set needed to ensure a comprehensive test of the system. The ability to determine data that suits boundary value analysis and stress testing requirements.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 15pt;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="H1" style="text-align: justify;"&gt;&lt;span style="font-size: 15pt;"&gt;4. Performing Tests&lt;/span&gt;&lt;span style="font-size: 29pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 15pt;"&gt;A.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Execute Tests&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 15pt;"&gt; - Perform the activities necessary to execute tests in accordance with the test plan and test design (including setting up tests, preparing data base(s), obtaining technical support, and scheduling resources). &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 15pt;"&gt;B.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Compare Actual versus Expected Results&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 15pt;"&gt; - Determine if the actual results met expectations (note: comparisons may be automated). &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 15pt;"&gt;C.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Test Log&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 15pt;"&gt; - Logging tests in a desired form. This includes incidents not related to testing, but still stopping testing from occurring. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 15pt;"&gt;D.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Record Discrepancies&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 15pt;"&gt; - Documenting defects as they happen including supporting evidence.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 15pt;"&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="H1" style="text-align: justify;"&gt;&lt;span style="font-size: 15pt;"&gt;5.&lt;span style=""&gt;  &lt;/span&gt;Defect Tracking and Correction&lt;/span&gt;&lt;span style="font-size: 29pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 15pt;"&gt;A.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Defect Tracking&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 15pt;"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 1in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 15pt;"&gt;1.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Defect Recording&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 15pt;"&gt; - Defect recording is used to describe and quantify deviations from requirements. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 1in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 15pt;"&gt;2.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Defect Reporting&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 15pt;"&gt; - Report the status of defects; including severity and location. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 1in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 15pt;"&gt;3.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Defect Tracking&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 15pt;"&gt; - Monitoring defects from the time of recording until satisfactory resolution has been determined. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 15pt;"&gt;B.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Testing Defect Correction&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 15pt;"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 1in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 15pt;"&gt;1.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Validation&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 15pt;"&gt; - Evaluating changed code and associated documentation at the end of the change process to ensure compliance with software requirements. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 1in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 15pt;"&gt;2.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Regression Testing&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 15pt;"&gt; - Testing the whole product to ensure that unchanged functionality performs as it did prior to implementing a change. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 1in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;3.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Verification&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 15pt;"&gt; - Reviewing requirements, design, and associated documentation to ensure they are updated correctly as a result of a defect correction.&lt;b style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="H1" style="text-align: justify;"&gt;&lt;span style="font-size: 15pt;"&gt;6. Acceptance Testing&lt;/span&gt;&lt;span style="font-size: 29pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 15pt;"&gt;A.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Concepts of Acceptance Testing&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 15pt;"&gt; - Acceptance testing is a formal testing process conducted under the direction of the software user’s to determine if the operational software system meets their needs, and is usable by their staff. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 15pt;"&gt;B.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Roles and Responsibilities&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 15pt;"&gt; - The software tester’s need to work with users in developing an effective acceptance plan, and to ensure the plan is properly integrated into the overall test plan. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 15pt;"&gt;C.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Acceptance Test Process&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 15pt;"&gt; - The acceptance test process should incorporate these phases: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 1in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 15pt;"&gt;1.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 15pt;"&gt;Define the acceptance test criteria &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 1in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 15pt;"&gt;2.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 15pt;"&gt;Develop an acceptance test plan &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 1in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 15pt;"&gt;3.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 15pt;"&gt;Execute the acceptance test plan &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="H1" style="text-align: justify;"&gt;&lt;span style="font-size: 15pt;"&gt;7. Status of Testing&lt;/span&gt;&lt;span style="font-size: 29pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"&gt;&lt;span style="font-size: 15pt;"&gt;Metrics specific to testing include data collected regarding testing, defect tracking, and software performance. Use quantitative measures and metrics to manage the planning, execution, and reporting of software testing, with focus on whether goals are being reached. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 15pt;"&gt;A.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Test Completion Criteria&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 15pt;"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 1in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 15pt;"&gt;1.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Code Coverage&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 15pt;"&gt; - Purpose, methods, and test coverage tools used for monitoring the execution of software and reporting on the degree of coverage at the statement, branch, or path level. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 1in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 15pt;"&gt;2.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Requirement Coverage&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 15pt;"&gt; - Monitoring and reporting on the number of requirements exercised, and/or tested to be correctly implemented. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 15pt;"&gt;B.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Test Metrics&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 15pt;"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 1in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 15pt;"&gt;1.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Metrics Unique to Test&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 15pt;"&gt; - Includes metrics such as Defect Removal Efficiency, Defect Density, and Mean Time to Last Failure. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 1in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 15pt;"&gt;2.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Complexity Measurements&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 15pt;"&gt; - Quantitative values accumulated by a predetermined method, which measure the complexity of a software product. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 1in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 15pt;"&gt;3.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Size Measurements&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 15pt;"&gt; - Methods primarily developed for measuring the software size of information systems, such as lines of code, function points, and tokens. These are also effective in measuring software testing productivity. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 1in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 15pt;"&gt;4.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Defect Measurements&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 15pt;"&gt; - Values associated with numbers or types of defects, usually related to system size, such as 'defects/1000 lines of code' or 'defects/100 function points'. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 1in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 15pt;"&gt;5.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Product Measures&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 15pt;"&gt; - Measures of a product’s attributes such as performance, reliability, failure, usability, &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;&lt;span style=""&gt; &lt;/span&gt;8.&lt;span style=""&gt;  &lt;/span&gt;Test Reporting&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 29pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 15pt;"&gt;A.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Reporting Tools&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 15pt;"&gt; - Use of word processing, database, defect tracking, and graphic tools to prepare test reports. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 15pt;"&gt;B.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Test Report Standards&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 15pt;"&gt; - Defining the components that should be included in a test report. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 15pt;"&gt;C.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 15pt;"&gt;Statistical Analysis&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 15pt;"&gt; - Ability to draw statistically valid conclusions from quantitative test results.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;span style="font-size: 15pt;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 17pt;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/923369492371389655-2403631024056534006?l=interviewquestions4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://interviewquestions4all.blogspot.com/feeds/2403631024056534006/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=923369492371389655&amp;postID=2403631024056534006' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/923369492371389655/posts/default/2403631024056534006'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/923369492371389655/posts/default/2403631024056534006'/><link rel='alternate' type='text/html' href='http://interviewquestions4all.blogspot.com/2007/08/interview.html' title='Interview'/><author><name>lakshmananv</name><uri>http://www.blogger.com/profile/09631118879231679818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
