<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-8951904624959546499</atom:id><lastBuildDate>Wed, 17 Mar 2010 18:04:02 +0000</lastBuildDate><title>Test This Blog - Eric Jacobson's Software Testing Blog</title><description>Refinements on the art of software testing</description><link>http://www.testthisblog.com/</link><managingEditor>noreply@blogger.com (Eric Jacobson)</managingEditor><generator>Blogger</generator><openSearch:totalResults>97</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/EricJacobsonSoftwareTestingBlog" /><feedburner:info uri="ericjacobsonsoftwaretestingblog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>EricJacobsonSoftwareTestingBlog</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8951904624959546499.post-6160521231021152465</guid><pubDate>Tue, 09 Mar 2010 17:59:00 +0000</pubDate><atom:updated>2010-03-09T13:04:36.863-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">process</category><category domain="http://www.blogger.com/atom/ns#">writing tests</category><category domain="http://www.blogger.com/atom/ns#">software testing career</category><title>Tester Reputation Cheats</title><description>Tester Reputation Cheats&lt;br /&gt;&lt;br /&gt;How well do you know your testers?  There are several tester stunts I have been tempted to pull (and sometimes have).  The act of testing is difficult to monitor so it is easy for testers to spoof productivity.  If you catch yourself doing these…don’t.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Whenever team members stop by your desk, make sure you have a GUI automation test running on one of your boxes.  It looks really cool and gives the appearance that you are an awesome tester (they’ll never know it’s just a looping  record/playback test with no verifications).&lt;/li&gt;&lt;li&gt;Your manager needs to see test cases.  How about just copying the requirements into something called a test case?&lt;/li&gt;&lt;li&gt;You didn’t stumble upon that bug (yes you did).  It came from a carefully planned test.&lt;/li&gt;&lt;li&gt;There is no evidence of what tests you executed because you kept track of them locally (not really).  You will upload the tests to the repository when you have time (yeah, right).&lt;/li&gt;&lt;li&gt;You didn’t forget to log that bug your dev is asking about (yes you did).  You are still reducing the repro steps down to the bare minimum due to some variables that may be related.&lt;/li&gt;&lt;li&gt;You didn’t forget to execute those tests (yes you did), you choose not to execute them because you performed a risk assessment matrix resulting in a lower priority for said tests.&lt;/li&gt;&lt;li&gt;When running performance tests using your wrist watch, record time span values out to the millisecond.  It appears more accurate.&lt;/li&gt;&lt;li&gt;Does your manager review your test cases or just see how many you have written?  If it’s the later, find the copy/past option in your test case repository and change one value (e.g., now pass in “John”, now pass in “Pat”, now pass in “Jill” etc.).  Dude, you just wrote 30 test cases!  It looks great on the metrics summary page.&lt;/li&gt;&lt;li&gt;If you’re lost at the Feature Walkthrough meeting, periodically raise your hand and ask if there are any “ility” requirements (e.g., Scalability, Usability, Compatibility, etc.)…it just sounds cool to ask.&lt;/li&gt;&lt;li&gt;You don’t have a clue how this feature is supposed to work.  If you wait long enough, another tester will take care of it.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Have you noticed any additional stunts testers pull?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8951904624959546499-6160521231021152465?l=www.testthisblog.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/EricJacobsonSoftwareTestingBlog/~4/s8bfaU_-3sM" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/EricJacobsonSoftwareTestingBlog/~3/s8bfaU_-3sM/tester-reputation-cheats.html</link><author>noreply@blogger.com (Eric Jacobson)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">4</thr:total><feedburner:origLink>http://www.testthisblog.com/2010/03/tester-reputation-cheats.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8951904624959546499.post-1318625798663229519</guid><pubDate>Fri, 26 Feb 2010 18:07:00 +0000</pubDate><atom:updated>2010-02-26T13:22:34.349-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">process</category><category domain="http://www.blogger.com/atom/ns#">Teamwork</category><category domain="http://www.blogger.com/atom/ns#">testing metaphor</category><title>Rubber Stamp Instead of Test?  The Horror!</title><description>You probably think this is just another post about how important it is to test everything before it goes to production.  Nope.&lt;br /&gt;&lt;br /&gt;Testers are too often expected to test things they don’t have a chance in hell at testing.  Testing for the sake of process or perception, provides little to no value and degrades the whole trade of testing.&lt;br /&gt;&lt;br /&gt;Sometimes when people ask,&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;“What are the testers going to do to test it?”&lt;/span&gt;, I respond,&lt;br /&gt;&lt;span style="font-style: italic;"&gt;“Nothing…we’ll just rubber-stamp it.”&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Devs usually laugh because they know the bug risk is ridiculously low or the tester does not have the skills to test anything beyond what the dev already tested.  However, other testers, managers, or BAs react with horror.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;“Rubber-stamp it?  Blasphemy!  You’re the tester. EVERYTHING must be tested by you before going to production!”&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The term “rubber-stamping” invokes negative reactions because it brings up the mental image of the desk clerk stamping document after document without paying any attention to what is on them…like the tester marking “Verified” on the bug or feature they didn’t really do anything to test.   But that’s why I like the term!  I’m trying to be honest about what value the tester added…none.&lt;br /&gt;&lt;br /&gt;Here are some examples where the rubber-stamper-tester is justified:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The tester has inadequate skills to perform the tests but has interviewed someone else on the team (usually the devloper) who did test.&lt;/li&gt;&lt;li&gt;The test is not feasible to recreate in a non-prod environment (e.g., a complex multi-user scenario, custom PC environments, unknown repro steps)&lt;/li&gt;&lt;li&gt;The patch can only be verified in debug mode, using complex timing and coordination requiring breakpoints and other unrealistic tricks.  Even devs may skip testing if regression tests pass.&lt;/li&gt;&lt;li&gt;If critical functionality is broken in prod, we may decide to release a fix without testing it.  Speed becomes paramount in this scenario.  We are smart...it is possible that we are smart enough to see a logic error, make the fix, take a deep breath and release to prod without the overhead of testing. After all, it can’t get any worse in prod, right?&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;It’s fun to say our job as testers is to be cynical, to not trust anybody.  But we shouldn’t abuse that belief and become mere team bottle-necks, either.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8951904624959546499-1318625798663229519?l=www.testthisblog.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/EricJacobsonSoftwareTestingBlog/~4/kjm_BkIrlWA" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/EricJacobsonSoftwareTestingBlog/~3/kjm_BkIrlWA/rubber-stamp-instead-of-test-horror.html</link><author>noreply@blogger.com (Eric Jacobson)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://www.testthisblog.com/2010/02/rubber-stamp-instead-of-test-horror.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8951904624959546499.post-6391874365543374870</guid><pubDate>Wed, 17 Feb 2010 17:49:00 +0000</pubDate><atom:updated>2010-02-17T12:54:25.449-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Teamwork</category><category domain="http://www.blogger.com/atom/ns#">questions</category><title>Tester Contractor vs. Developer Contractor</title><description>Does one require more start-up time than the other?&lt;br /&gt;&lt;br /&gt;My department is gearing up for a spike in development this summer.  We plan to use temporary, contractor developers and testers.&lt;br /&gt;&lt;br /&gt;IMO, the contractor devs do not need to know nearly as much about our systems as the contractor testers do.  The devs will be able to make their updates with limited business domain or system knowledge.  However, the testers will need to go way beyond understanding single modules; they will need extensive business domain and system knowledge in order to determine what integration tests to write/execute. &lt;br /&gt;&lt;br /&gt;Some on my team have a notion that testers can come in and be valuable by running simple tests, with limited knowledge.  It scares me so much I would almost consider giving up my entire summer, moving into the office, and doing all the testing myself.&lt;br /&gt;&lt;br /&gt;I’m also wondering if contractor testers should be paired with veteran devs and vice versa.  If we have contractor testers working with contractor developers, as is the plan, it sure seems like a recipe for disaster.&lt;br /&gt;&lt;br /&gt;Have any of you experienced something similar?  What advice do you have for me?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8951904624959546499-6391874365543374870?l=www.testthisblog.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/EricJacobsonSoftwareTestingBlog/~4/8_WsUujUHbg" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/EricJacobsonSoftwareTestingBlog/~3/8_WsUujUHbg/tester-contractor-vs-developer.html</link><author>noreply@blogger.com (Eric Jacobson)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">5</thr:total><feedburner:origLink>http://www.testthisblog.com/2010/02/tester-contractor-vs-developer.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8951904624959546499.post-163994226305611540</guid><pubDate>Tue, 09 Feb 2010 18:01:00 +0000</pubDate><atom:updated>2010-02-10T12:54:16.568-05:00</atom:updated><title>Exploratory Testers Can Learn From Cavers</title><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_COPM94ChagE/S3GkZDM7jjI/AAAAAAAAEsQ/HfSBtCF_sgc/s1600-h/011106surveystation2.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 368px; height: 400px;" src="http://3.bp.blogspot.com/_COPM94ChagE/S3GkZDM7jjI/AAAAAAAAEsQ/HfSBtCF_sgc/s400/011106surveystation2.png" alt="" id="BLOGGER_PHOTO_ID_5436306975476125234" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I’ve spent a good deal of time underground the last 13 years…literally. One of my favorite weekend activities is caving. New caves are discovered nearly every weekend in the northwest Georgia area and responsible cavers survey these caves, make maps, then submit the data to their state’s speleological survey library.&lt;br /&gt;&lt;br /&gt;Cavers are very methodical when it comes to finding virgin passage. Underground ethics specify that cavers survey (with tape, compass, clinometer, and sketchbook) the new passage as they explore it. It is frowned upon to just run through a new cave without performing a proper survey on the way in. Exploring without an initial survey is known as “scooping” or “eye-raping” a cave and it is a sign of an irresponsible caver (sometimes called a “spelunker”).&lt;br /&gt;&lt;br /&gt;The responsible caver learns everything about the new cave by surveying as they go. The survey process forces them to examine all features of the passage carefully, often discovering new leads, which otherwise would have been missed. This patient approach keeps the caver fresh with anticipation about the wonderful cave lying ahead.&lt;br /&gt;&lt;br /&gt;The irresponsible caver, who runs down virgin passage into the dark unknown, only experiences the obvious way forward. They assume they will backtrack to check for leads. In practice, they may grow fatigued or bored with the cave and never return. They have not collected enough data to qualify the cave with the state survey. They can brag to friends about a deep pit and borehole passage. But they cannot tell other cavers to bring a 250-foot rope because the pit is 295-feet deep, or that the big formation room is a half mile in on the northeast end of a 40-foot wide dome room. They don’t know which leads have been checked or how likely it is that this cave drains into a nearby cave further down the mountain. They have no hard facts about the cave; only memories, which fade very quickly.&lt;br /&gt;&lt;br /&gt;A tester's approach to new AUT (Application Under Test) software features should be much the same as those cavers who survey as they explore. As a tester, my tools are my tests. And yes, for complex scenarios, I like to write the test before I perform it. At times, I want to scoop the application, to find the bugs before the other team members do. But I try to reign myself in. I keep track of what I have checked as I go in. I remember how satisfying it is to present team members with a list of tests performed and their results; so much more satisfying than saying “I’m done testing this”.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8951904624959546499-163994226305611540?l=www.testthisblog.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/EricJacobsonSoftwareTestingBlog/~4/1USf177phe4" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/EricJacobsonSoftwareTestingBlog/~3/1USf177phe4/exploratory-testers-can-learn-from.html</link><author>noreply@blogger.com (Eric Jacobson)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_COPM94ChagE/S3GkZDM7jjI/AAAAAAAAEsQ/HfSBtCF_sgc/s72-c/011106surveystation2.png" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total><feedburner:origLink>http://www.testthisblog.com/2010/02/exploratory-testers-can-learn-from.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8951904624959546499.post-1189457773131882150</guid><pubDate>Tue, 02 Feb 2010 18:08:00 +0000</pubDate><atom:updated>2010-02-02T13:19:23.910-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">writing tests</category><category domain="http://www.blogger.com/atom/ns#">Test This</category><title>Test This #5 - Null vs. Blank</title><description>If your AUT has logic that checks for null values, make sure removed values get set back to null. If they get set to blank, you may have a nice crunchy bug.&lt;br /&gt;&lt;br /&gt;Here are the pseudo steps for the test case using a generic order form example. But you can use anything in your AUT that programmatically makes a decision based on whether or not some value exists.&lt;br /&gt;&lt;br /&gt;Feature: Orders with missing line item quantities can no longer be submitted.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Create a new line item on an order. Do not specify a quantity. &lt;em&gt;Crack open the DB and find the record with the unpopulated quantity. Let’s assume the quantity has a null value.&lt;/em&gt;&lt;/li&gt;&lt;li&gt;Populate the quantity via the AUT .&lt;/li&gt;&lt;li&gt;Clear the quantity via the AUT. Look at the DB again. Does the quantity have a blank or null value?&lt;br /&gt;&lt;br /&gt;Expected Results: Quantity has a null value.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;If your dev only validates against null quantity values, your user just ordered nothing...yikes!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8951904624959546499-1189457773131882150?l=www.testthisblog.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/EricJacobsonSoftwareTestingBlog/~4/inqfnPuQ3Wk" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/EricJacobsonSoftwareTestingBlog/~3/inqfnPuQ3Wk/test-this-5-null-vs-blank.html</link><author>noreply@blogger.com (Eric Jacobson)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">4</thr:total><feedburner:origLink>http://www.testthisblog.com/2010/02/test-this-5-null-vs-blank.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8951904624959546499.post-2332356286485396803</guid><pubDate>Mon, 25 Jan 2010 18:17:00 +0000</pubDate><atom:updated>2010-01-25T13:20:05.749-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">software testing career</category><title>Test This Light Switch</title><description>We’ve been interviewing to fill a couple QA positions on our team.  My favorite part of each interview is my “test this light switch” exercise.  It reveals interesting skills about each test candidate. &lt;br /&gt;&lt;br /&gt;I point to the light switch in the room and say “test this light switch”. Here is a sampling of how candidates have responded:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;some asked if there are any requirements (this is a great way to start!)&lt;/li&gt;&lt;li&gt;some just start testing with lots of assumptions (no so great)&lt;/li&gt;&lt;li&gt;one candidate smiled and thought I was kidding.  After asking lots of questions to prime him, he stared uncomfortably at the light switch and offered me close to nothing (embarrassing for both of us)&lt;/li&gt;&lt;li&gt;one candidate walked up to the light switch and began testing it as she walked me through her thought process.  After some solid high level tests, she wanted to see electrical schematics for the building and asked me all kinds of questions about emergency backup power, how many amps the room’s lights draw, and what else was on that circuit.  She wanted to remove the trim plate to check the wiring for electrical code standards.  She asked if the room’s lights could be controlled by a master switch somewhere else or an energy saver timer for off-hours. (these types of questions/tests make her a good fit for my team because my AUT’s weakest test area is its integration with other systems)&lt;/li&gt;&lt;li&gt;one candidate was good at coming up with cosmetic and usability tests (e.g., Is the switch labeled well?  Can I reach it from the doorway when the room is dark?  Does the trim plate match the room’s trim in color and style?)…not so important for my AUT but good tests for others perhaps.&lt;/li&gt;&lt;li&gt;one candidate went right for stress tests.  He flipped the lights on/off as quickly as he could.  He tried to force the switch to stay in the halfway-off-halfway-on position to see if it sparked or flickered the lights.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;More was revealed about the confidence of each candidate, their creativity, how technical their brain was, how quickly their mind worked, their persistence, and finally how interested they were in determining their mission and what I thought was important to know.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8951904624959546499-2332356286485396803?l=www.testthisblog.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/EricJacobsonSoftwareTestingBlog/~4/pYUJk1if3R0" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/EricJacobsonSoftwareTestingBlog/~3/pYUJk1if3R0/test-this-light-switch.html</link><author>noreply@blogger.com (Eric Jacobson)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">6</thr:total><feedburner:origLink>http://www.testthisblog.com/2010/01/test-this-light-switch.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8951904624959546499.post-3214534566625644195</guid><pubDate>Wed, 13 Jan 2010 18:17:00 +0000</pubDate><atom:updated>2010-01-13T13:22:32.652-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">bugs</category><category domain="http://www.blogger.com/atom/ns#">process</category><category domain="http://www.blogger.com/atom/ns#">Teamwork</category><title>Don’t Ask The Tester For Bug Priority</title><description>Most bug reports include Severity and Priority.  On my team, everyone is interested in Priority (because it affects their work load).  Severity is all but ignored.  I propose that testers stop assigning Priority and only assign Severity.&lt;br /&gt;&lt;br /&gt;Priority is not up to the tester.  It is usually a business decision.  It wastes the tester’s time to consider Priority, takes this important decision away from someone more suited to make it, and finally, it may misguide workflow.&lt;br /&gt;&lt;br /&gt;Bugs without Priority have to be read and understood by the customer team (so they can assign priority themselves). This is a good thing.&lt;br /&gt;&lt;br /&gt;What about blocking bugs, you ask?&lt;br /&gt;&lt;br /&gt;Some bugs are important to fix because they block testing.  These bugs are best identified as blocking bugs by testers.  They can be flagged as “Blocking Bugs” using an attribute independent of the Priority field.  Think about it…if BlockingBugA is blocking testing that is less important than other, non-blocked testing, perhaps BlockingBugA only deserves a low priority.&lt;br /&gt;&lt;br /&gt;Tell me where I’m wrong.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8951904624959546499-3214534566625644195?l=www.testthisblog.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/EricJacobsonSoftwareTestingBlog/~4/We8Ysr3a2U0" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/EricJacobsonSoftwareTestingBlog/~3/We8Ysr3a2U0/dont-ask-tester-for-bug-priority.html</link><author>noreply@blogger.com (Eric Jacobson)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">10</thr:total><feedburner:origLink>http://www.testthisblog.com/2010/01/dont-ask-tester-for-bug-priority.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8951904624959546499.post-6904600725721976088</guid><pubDate>Thu, 07 Jan 2010 17:24:00 +0000</pubDate><atom:updated>2010-01-07T13:01:10.977-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">software testing career</category><title>What Does a Good Tester Resume Look Like?</title><description>I recently read about 15 resumes for tester positions on my team.  None of them told us anything about how well the candidate can test.&lt;br /&gt;&lt;br /&gt;Here is what I saw:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;All candidates list a ton of ”technologies” they are familiar with (e.g., .Net, Unix, SQL, XML, MS Office)&lt;/li&gt;&lt;li&gt;They also list a bunch of off-the-shelf testing tools (e.g., TestDirector, LoadRunner, QuickTest Pro, SilkTest, BugZilla)&lt;/li&gt;&lt;/ul&gt;…So far I don’t know anything about how well they can test.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;All candidates string together a bunch of test buzz words…something like, “I know white box testing, gray box testing, black box testing, stress testing, load testing, functional testing, integration testing, sanity testing, smoke testing, regression testing, manual testing, automated testing, user acceptance testing, etc.” &lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;…as if I would be thinking, “yes, but do you know Glass Box Testing?  That’s really what we’re looking for.”&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Some candidates will say something like “I wrote a 50-page test plan”, or “I’m responsible for testing an enterprise application used by 1000 users”&lt;/li&gt;&lt;/ul&gt;…okay, so how well can you test?  To be fair, this is a difficult skill to convey in a resume and perhaps I am just not good at reading between the lines and determining which candidates would thrive as testers on my team.  However, the candidate would have probably gotten an instant interview if they had included any of these:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;My approach to testing is as follows…&lt;/li&gt;&lt;li&gt;See my software testing blog for my opinions on how to test.&lt;/li&gt;&lt;li&gt;My favorite testing books and blogs are…&lt;/li&gt;&lt;li&gt;I enjoy testing because…&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Sigh.  I guess the modern resume has not advanced far enough to reflect candidate traits to said extent.  That's why the interview questions will be so important.  I get to participate in my first interview tomorrow and I have come up with a list of fun questions/activities to help me see how well the candidate tests.  One of them will be to "Test that light switch over there on the wall completely."  (if the candidates are cool enough to read my blog, they'll have a head start).&lt;br /&gt;&lt;br /&gt;What are your favorite tester interview questions?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8951904624959546499-6904600725721976088?l=www.testthisblog.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/EricJacobsonSoftwareTestingBlog/~4/iOmktCF8NRw" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/EricJacobsonSoftwareTestingBlog/~3/iOmktCF8NRw/what-does-good-tester-resume-look-like.html</link><author>noreply@blogger.com (Eric Jacobson)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">14</thr:total><feedburner:origLink>http://www.testthisblog.com/2010/01/what-does-good-tester-resume-look-like.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8951904624959546499.post-1723971370390954671</guid><pubDate>Tue, 22 Dec 2009 15:51:00 +0000</pubDate><atom:updated>2009-12-22T11:06:24.304-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">test blogs</category><category domain="http://www.blogger.com/atom/ns#">testing metaphor</category><title>'Twas The Night Before Prod Release</title><description>'Twas the night before prod release, when all through the build,&lt;br /&gt;Not a unit test was failing, the developers were thrilled;&lt;br /&gt;&lt;br /&gt;The release notes were emailed to users with care,&lt;br /&gt;In hopes that new features, soon would be there;&lt;br /&gt;&lt;br /&gt;The BA was nestled all snug in her chair,&lt;br /&gt;With visions of magnitude ready to share;&lt;br /&gt;&lt;br /&gt;And I on my QA box, trying not to be stressed,&lt;br /&gt;Had just settled down for a last minute’s test;&lt;br /&gt;&lt;br /&gt;When during my test there arose such a clatter,&lt;br /&gt;I opened the error log to see what was the matter;&lt;br /&gt;&lt;br /&gt;And what to my wondering eyes should appear,&lt;br /&gt;But an unhandled fault, with its wording unclear;&lt;br /&gt;&lt;br /&gt;When I showed it to dev, and he gave me a shrug,&lt;br /&gt;I knew in a moment it must be a bug;&lt;br /&gt;&lt;br /&gt;More rapid than eagles, dev’s cursing it came,&lt;br /&gt;And he shouted at testers, and called us by name;&lt;br /&gt;&lt;br /&gt;“Now, Jacobson!  Now, Zacek!  Now, Whiteside and Surapaneni!&lt;br /&gt;On, Cagle!  On, Addepalli, on Chang and Damidi!&lt;br /&gt;&lt;br /&gt;Stop finding bugs in my web service call!&lt;br /&gt;Now dash away! dash away! dash away all!"&lt;br /&gt;&lt;br /&gt;And then, in a twinkling, I heard from the hall,&lt;br /&gt;The tester who showed me, scripts can’t test it all;&lt;br /&gt;&lt;br /&gt;As I rejected the build, and was turning around,&lt;br /&gt;Into my cube, James Bach came with a bound;&lt;br /&gt;&lt;br /&gt;He was dressed really plain, in a baseball-like cap,&lt;br /&gt;And he patted my back for exploring my app;&lt;br /&gt;&lt;br /&gt;He had a big white board and a little round belly,&lt;br /&gt;That shook when he diagrammed like a bowlful of jelly;&lt;br /&gt;&lt;br /&gt;He was chubby and plump, a right jolly old elf,&lt;br /&gt;And he laughed when he saw &lt;a href="http://www.developsense.com/RapidSoftwareTesting.html"&gt;RST &lt;/a&gt;on my shelf;&lt;br /&gt;&lt;br /&gt;Then he spoke about testing, going straight to his work,&lt;br /&gt;And attempted &lt;a href="http://www.satisfice.com/blog/archives/62"&gt;traspection&lt;/a&gt;, though he seemed like a jerk;&lt;br /&gt;&lt;br /&gt;His eyes -- how they twinkled! his dice games, how merry!&lt;br /&gt;He &lt;a href="http://www.testthisblog.com/2008/10/i-got-tested-by-james-bach.html"&gt;questioned and quizzed me&lt;/a&gt; and that part was scary!&lt;br /&gt;&lt;br /&gt;He told me of lessons he taught at &lt;a href="http://www.sqe.com/starwest/Splash.aspx"&gt;STARWEST&lt;/a&gt;,&lt;br /&gt;Made an &lt;a href="http://www.satisfice.com/sbtm/"&gt;SBT&lt;/a&gt; charter and then told me to test;&lt;br /&gt;&lt;br /&gt;Then I heard him exclaim, ere he walked out of sight&lt;br /&gt;“Happy testing to all!  ...just remember I’m right!”&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8951904624959546499-1723971370390954671?l=www.testthisblog.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/EricJacobsonSoftwareTestingBlog/~4/xxKz6MMzGgo" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/EricJacobsonSoftwareTestingBlog/~3/xxKz6MMzGgo/twas-night-before-prod-release.html</link><author>noreply@blogger.com (Eric Jacobson)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://www.testthisblog.com/2009/12/twas-night-before-prod-release.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8951904624959546499.post-8714241881521232969</guid><pubDate>Fri, 11 Dec 2009 18:10:00 +0000</pubDate><atom:updated>2009-12-11T13:12:09.182-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">bugs</category><category domain="http://www.blogger.com/atom/ns#">Teamwork</category><title>Scary Moments In Testing</title><description>Yesterday we had to roll back some production code to its previous build.  It was essentially a performance problem.  The new bits kept timing out for the types of requests users were making from the system. &lt;br /&gt;&lt;br /&gt;Our poor, battered support team had to send out a user notice that said something like “Sorry users, for all the timeouts.  We have just rolled back the code until we can fix the problems.  Oh and by the way, that means you’ll no longer have these new features we just gave you.”&lt;br /&gt;&lt;br /&gt;Shortly thereafter, the head of my department, indirectly asked me why these issues were not caught in testing.  …This is the stuff nightmares are made of.  I felt like throwing up, resigning, or crying.  Once my heart started beating again, I realized I had logged a bug for these problems.  Exhale now. &lt;br /&gt;&lt;br /&gt;The bug was fairly accurate, stating the users would get timeout errors if they attempted anything beyond a specific threshold.  During a bug meeting, it was down-graded in priority and the team decided to move forward with the release.  In hindsight, there was a bit of group-think going on.  We were so anxious to get the release out, we figured the users would put up with the performance problems.  Boy were we wrong.&lt;br /&gt;&lt;br /&gt;Being a tester is scary.  At any given moment, all hell may break loose in production.  And when it does, asking why the tester didn’t find it is, of course, the fairest of questions.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8951904624959546499-8714241881521232969?l=www.testthisblog.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/EricJacobsonSoftwareTestingBlog/~4/6mqiqu7Ed-4" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/EricJacobsonSoftwareTestingBlog/~3/6mqiqu7Ed-4/scary-moments-in-testing.html</link><author>noreply@blogger.com (Eric Jacobson)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">8</thr:total><feedburner:origLink>http://www.testthisblog.com/2009/12/scary-moments-in-testing.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8951904624959546499.post-8792780409931204696</guid><pubDate>Fri, 11 Dec 2009 17:29:00 +0000</pubDate><atom:updated>2009-12-11T12:36:58.703-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Tools</category><category domain="http://www.blogger.com/atom/ns#">automation</category><category domain="http://www.blogger.com/atom/ns#">writing tests</category><title>Automated Report Testing - JART Expansions</title><description>I brainstormed with my report dev and we came up with two valuable &lt;a href="http://www.testthisblog.com/2009/05/jarts-high-level-framework.html"&gt;JART &lt;/a&gt;expansions.&lt;br /&gt;&lt;br /&gt;The first is coded and has already found two bugs (and saved me from days of bordom).  Comprehensive data checking in the report output is complicated but what about checking for data that is missing?  My reports display the string “[Not Found]” when data fields get mapped incorrectly or other datasource problems occur.  It only took about an hour to write a function that scans all report results looking for the string.  Since JART already exported each report result to a text file, I simply automated Notepad’s Find functionalty to look for specific strings passed into my SearchReportResultsForString function.  This was way easy.  Now JART checks about 2240 distinct data columns across 113 reports for this issue.&lt;br /&gt;&lt;br /&gt;I use said function to also look for the “No Data Found” string.  If I find this string it means the report results returned but other than the cover page, no data matching the search criteria exists.  This check gets reported as a “Warning” or inconclusive result.  I use it to help me determine when I need to adjust my filter criteria parameters on each report.&lt;br /&gt;&lt;br /&gt;The second expansion is to build a routine that saves off the report results of each iteration as “Iteration N Baselines”.  Then, using the same report filter criteria and same data store, save off the next iteration’s report results as “Iteration N+1 Baselines”.  Once JART has at least two iterations of baselines, JART will compare the files from each baseline to ensure nothing has changed.  If I can pull this off, it will be HUGE.  I’m expecting it to only support about 75% of my reports.  The other 25% is time sensitive data that may not have a way to remain frozen in time.&lt;br /&gt;&lt;br /&gt;Yesterday, a dev pointed out that the reports display the report execution date (i.e., the current date) in the header and footer.  Thus, they should never match.  Ooops!  I think I can still work around it, but it does complicate things a bit.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8951904624959546499-8792780409931204696?l=www.testthisblog.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/EricJacobsonSoftwareTestingBlog/~4/HL2AGgAGGCg" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/EricJacobsonSoftwareTestingBlog/~3/HL2AGgAGGCg/automated-report-testing-jart.html</link><author>noreply@blogger.com (Eric Jacobson)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.testthisblog.com/2009/12/automated-report-testing-jart.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8951904624959546499.post-4419728310435569252</guid><pubDate>Tue, 01 Dec 2009 17:41:00 +0000</pubDate><atom:updated>2009-12-01T13:01:28.477-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Tools</category><category domain="http://www.blogger.com/atom/ns#">process</category><category domain="http://www.blogger.com/atom/ns#">metrics</category><title>Teaching Exploratory and Session Based Testing</title><description>My former manager and esteemed colleague asked me to teach a two hour class about Session Based Testing (SBT).  We had tried SBT a couple years ago, when I was fresh out of &lt;a href="http://www.developsense.com/blog.html"&gt;Michael Bolton&lt;/a&gt;’s excellent &lt;a href="http://www.developsense.com/RapidSoftwareTesting.html"&gt;Rapid Software Testing course&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I was nervous as hell about the class because most of the testers I work with were signed up and I knew this was an opportunity to either inspire some great testing or look like a fool.  So I spent several weeks researching and practicing what I would teach.  I decided an Exploratory Testing (ET) primer was necessary for this audience before SBT could be explained properly. &lt;br /&gt;&lt;br /&gt;ET proved to be the most intimidating subject to explain.  Most of what I found was explained by members of the &lt;a href="http://en.wikipedia.org/wiki/Context-Driven_School"&gt;Context-Driven School&lt;/a&gt; (e.g., James and Jon Bach).  Nearly everything I found NOT explained by members of the Context-Driven School was heavily criticized (by members of the Context-Driven School) for not being true ET.  With all this confusion over what ET actually is, one wonders how well the Context-Driven School has actually explained what they mean.  I found various statements from videos, blogs, papers, and my RST courseware that ranged from...&lt;br /&gt;&lt;ul&gt;&lt;li&gt;It’s a technique…no it’s a method…no it’s a “way of testing”.&lt;/li&gt;&lt;li&gt;It’s the opposite of scripting…no, it can used with scripting too, even while automating.&lt;/li&gt;&lt;li&gt;All testers use ET to some extent…no wait, most testers aren’t using it because they don’t understand it.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;After (hopefully) explaining ET, I was easily able to transition into SBT, making the case that SBT solves so many of the problems introduced by poorly conducted ET (e.g., lack of artifacts and organization).  I explained the essential ingredients of SBT:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Time Boxing&lt;/li&gt;&lt;li&gt;Missions&lt;/li&gt;&lt;li&gt;Capturing Notes, Bugs, and Issues&lt;/li&gt;&lt;li&gt;Debriefing&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Then I demonstrated my favorite SBT tools:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://sessiontester.openqa.org/"&gt;Session Tester&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.satisfice.com/sbtm/"&gt;The Scan Tool&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;In the end, about half the audience appeared luke warm while the other half appeared skeptical to confused.  I blame it on my own delivery.  I think more light bulbs went off during the ET section.  SBT takes a bit more investment in thought to get it.&lt;br /&gt;&lt;br /&gt;For myself, however, the class was a success.  Ever since my research, I’ve actually been using SBT and I love it!  I also have some better ideas on how to teach it if I ever get a second chance.  Special thanks to Michael Bolton and James Bach, who continue to influence my testing thoughts in more ways than anyone (other than myself).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8951904624959546499-4419728310435569252?l=www.testthisblog.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/EricJacobsonSoftwareTestingBlog/~4/oSG9R7XHAn8" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/EricJacobsonSoftwareTestingBlog/~3/oSG9R7XHAn8/teaching-exploratory-and-session-based.html</link><author>noreply@blogger.com (Eric Jacobson)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">8</thr:total><feedburner:origLink>http://www.testthisblog.com/2009/12/teaching-exploratory-and-session-based.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8951904624959546499.post-4146501369706216745</guid><pubDate>Thu, 12 Nov 2009 17:55:00 +0000</pubDate><atom:updated>2009-11-12T13:03:42.311-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">process</category><category domain="http://www.blogger.com/atom/ns#">software testing career</category><title>Note To Self:  Stop Ignoring Problems!</title><description>&lt;span style="font-style: italic;"&gt;“Yikes!  The AUT just shut itself down… maybe I clicked the close button without realizing it.  Oh well.”&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;“Rad!  Awesome error!  …I’ll worry about it later because I promised the devs I would finish testing the feature changes by close of business today.”&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;“Man, that’s a nasty error…I think I overheard some testers talking about a data refresh. I’m sure the data refresh is causing this error.  I’ve got other things to worry about.”&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;“Dude, I keep seeing this annoying bug.  Fortunately, I know the workaround.  I’m sure another tester has already logged it.  Moving on...”&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Note to self,&lt;br /&gt;&lt;br /&gt;Stop assuming system errors and strange behavior have already been logged or are due to some QA environment maintenance.  What if everyone else is assuming the same thing?  Problems get annoying, even for testers (shhhh, don't tell anyone).  It feels great to ignore seemingly lesser problems in order to focus on seemly greater problems.  But I am being paid to keep track of all problems.   Nobody said it was easy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8951904624959546499-4146501369706216745?l=www.testthisblog.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/EricJacobsonSoftwareTestingBlog/~4/qSmAsDU44Hk" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/EricJacobsonSoftwareTestingBlog/~3/qSmAsDU44Hk/note-to-self-stop-ignoring-problems.html</link><author>noreply@blogger.com (Eric Jacobson)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://www.testthisblog.com/2009/11/note-to-self-stop-ignoring-problems.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8951904624959546499.post-5745306720050153896</guid><pubDate>Thu, 05 Nov 2009 17:34:00 +0000</pubDate><atom:updated>2009-11-05T12:43:26.150-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">writing tests</category><category domain="http://www.blogger.com/atom/ns#">Test This</category><title>Test This #4 – Stale Client Data</title><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_COPM94ChagE/SvMNBOdcdiI/AAAAAAAAEfw/NSiqZuTfedM/s1600-h/Stale+Bread+004.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 225px;" src="http://2.bp.blogspot.com/_COPM94ChagE/SvMNBOdcdiI/AAAAAAAAEfw/NSiqZuTfedM/s400/Stale+Bread+004.jpg" alt="" id="BLOGGER_PHOTO_ID_5400674692859983394" border="0" /&gt;&lt;/a&gt;&lt;span style="font-style: italic;"&gt;(That's a picture of a stale hamburger bun.  My wife hates when I store bread on top of the refrigerator)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Think about your AUT.  Is it possible for a user to see something on their screen that has been altered since the last time their screen refreshed?  If so, you’re in luck. You can execute some stale data tests that may be fruitful.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Think of an item that can be edited.  Let's call it "ItemA".&lt;br /&gt;&lt;ol&gt;&lt;li&gt;UserA opens the UI, and sees ItemA.&lt;/li&gt;&lt;li&gt;UserB opens the UI, and modifys ItemA. (now UserA is looking at a stale item.)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;UserA attempts to modify ItemA.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;Expected Results: UserA is not able to modify the stale version of ItemA.  A user message explains this to the user and helps them figure out what to do next.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Much of this will depend on how locking is handled by your AUT.  However, if you’re creative enough with various types of updates to ItemA, you’ll probably find some unhandled scenarios.  For example: can you drag and drop ItemA?  Can you delete it?  Does ItemB reference a stale version of ItemA (mess with ItemB then)?&lt;br /&gt;&lt;br /&gt;If you are able to find a bug with this technique, please share your test as a comment.&lt;br /&gt;&lt;br /&gt;Happy testing!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8951904624959546499-5745306720050153896?l=www.testthisblog.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/EricJacobsonSoftwareTestingBlog/~4/HFsBpbScAyg" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/EricJacobsonSoftwareTestingBlog/~3/HFsBpbScAyg/test-this-4-stale-client-data.html</link><author>noreply@blogger.com (Eric Jacobson)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_COPM94ChagE/SvMNBOdcdiI/AAAAAAAAEfw/NSiqZuTfedM/s72-c/Stale+Bread+004.jpg" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.testthisblog.com/2009/11/test-this-4-stale-client-data.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8951904624959546499.post-4454623255916072717</guid><pubDate>Fri, 30 Oct 2009 16:28:00 +0000</pubDate><atom:updated>2009-10-30T12:43:36.278-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">process</category><category domain="http://www.blogger.com/atom/ns#">software testing career</category><category domain="http://www.blogger.com/atom/ns#">language</category><title>Can We Stop Talking About "Agile" Yet?</title><description>"Agile"? Ohhhh, what is this "agile" stuff you speak of?&lt;br /&gt;&lt;br /&gt;Look at the topics of most testing/dev conferences, webinars, blogs or tweets.  Can you find the word “Agile” in there?  I’ll bet you can.  I was excited about it five years ago and I thought it would have a huge impact on my software testing challenges.  It has not.&lt;br /&gt;&lt;br /&gt;Testers still have to look at a chunk of software and figure out how to test it.  This is still the most challenging activity we face everyday.  When we find a problem, it doesn’t matter if you want us to log a bug, not close a story, stick it on the wall with a Post-It Note, or whisper it in a developer’s ear.  The same testing must occur to find the problem.  Everything else is what you do before or after the test.&lt;br /&gt;&lt;br /&gt;The grass always looks greener on the other side of the fence.  But once you hop the fence you’ll realize it is just as brown.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8951904624959546499-4454623255916072717?l=www.testthisblog.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/EricJacobsonSoftwareTestingBlog/~4/hgA2h3fBDYk" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/EricJacobsonSoftwareTestingBlog/~3/hgA2h3fBDYk/can-we-stop-talking-about-agile-yet.html</link><author>noreply@blogger.com (Eric Jacobson)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">7</thr:total><feedburner:origLink>http://www.testthisblog.com/2009/10/can-we-stop-talking-about-agile-yet.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8951904624959546499.post-9088197281790189567</guid><pubDate>Thu, 22 Oct 2009 16:47:00 +0000</pubDate><atom:updated>2009-10-26T12:57:44.863-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">software testing career</category><title>Blink Did Not Make Me Think</title><description>After reading &lt;a href="http://adam.goucher.ca/?p=201"&gt;Adam Goucher’s review&lt;/a&gt; of Malcolm Gladwell’s book, Blink, and hearing it recommended by other testers, I finally read it.&lt;br /&gt;&lt;br /&gt;Some people (like Adam) are good at learning about testing by drawing parallels from non-testing material (like dirt bike magazines).  I guess I’m not as good at this.  Although, I did enjoy Blink, it certainly did not provide me with as many “ah ha!” testing moments as I’ve heard other testers suggest.  I learned a bit about marketing, racism, and health care, but not too much about testing.  And I felt like many of the stories and studies were things I already knew (sorry, I'm not being very humble).&lt;br /&gt;&lt;br /&gt;In addition to Adam's test-related discoveries, here are a couple additional ones I scraped up:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Although, it was an awesome breakthrough in office chairs, and completely functional, people hated the Herman Miller Aeron Chairs.  At first, the chairs didn’t sell.  What did people hate?  They hated the way they looked.  People thought they looked flimsy and not very executive-like.  After several cosmetic changes, people began accepting the chairs and now the chairs are hugely popular.  Sadly, this is how users approach new software.  No matter how efficient, they want the UI to look and feel a way they are familiar with.  As testers, we may want to point out areas we think users will dislike.  We can determine these by staying in touch with our own first time reactions.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Blink describes an experiment where in one case, customers at a grocery store were offered two samples of jam.  In a second case, customers were offered about 10 samples of jam.  Which case do you think sold more jam?  The first case.  When people are given too much information, it takes too much work for them to make decisions.  What does this have to do with testing?  From a usability standpoint, testers can identify functionality that may overload users with too many decisions at one time.  The iPhone got this one right.&lt;/li&gt;&lt;/ul&gt;We always hear the complaint that testers who don't read books must not be any good at testing.  For fear of falling into this category, I've recently read some other books that are actually about software testing.  These books have not been as useful as the ideas I stumble upon, myself, while I'm in the trenches. But perhaps knowing these books are unsatisfying is helpful because I know there are no easy answers out there for the problems I face everyday.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8951904624959546499-9088197281790189567?l=www.testthisblog.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/EricJacobsonSoftwareTestingBlog/~4/vZtEzwGIpMQ" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/EricJacobsonSoftwareTestingBlog/~3/vZtEzwGIpMQ/blink-did-not-make-me-think.html</link><author>noreply@blogger.com (Eric Jacobson)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://www.testthisblog.com/2009/10/blink-did-not-make-me-think.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8951904624959546499.post-4519820643402358992</guid><pubDate>Tue, 13 Oct 2009 23:55:00 +0000</pubDate><atom:updated>2009-10-15T18:10:32.740-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">bugs</category><title>Real Bugs in the Wild</title><description>A day went by without finding bugs in my AUT.&lt;br /&gt;&lt;br /&gt;When I got home, as if desperate for bugs, I noticed one in the kitchen.  I wanted to squash it but I know better.  I controlled myself.  I stood back and observed the bug (…an ant).  I wondered how it got there.  If one bug got in, there would probably be more.  I noticed four more bugs over by the window.  Ah hah!  I’ll focus my efforts near the window.  Perhaps I could draw out more bugs.  I’ll give these bugs a reason to show up; several drops of tasty ant poison.&lt;br /&gt;&lt;br /&gt;&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-c1a484532283e78f" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.blogger.com/img/videoplayer.swf?videoUrl=http%3A%2F%2Fv3.nonxt8.googlevideo.com%2Fvideoplayback%3Fid%3Dc1a484532283e78f%26itag%3D5%26begin%3D0%26len%3D86400000%26app%3Dblogger%26et%3Dplay%26el%3DEMBEDDED%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1270996837%26sparams%3Did%252Citag%252Cip%252Cipbits%252Cexpire%26signature%3D30818262250B61FAE8E93BDA8692D6F39F113229.7C77C2BE8441E4042C7595DC4910473314A1A101%26key%3Dck1&amp;amp;thumbnailUrl=http%3A%2F%2Fvideo.google.com%2FThumbnailServer2%3Fapp%3Dblogger%26contentid%3Dc1a484532283e78f%26offsetms%3D5000%26itag%3Dw320%26sigh%3DLvP2KuFIGGdJt9ElTiIeSUSP8lU&amp;amp;messagesUrl=video.google.com%2FFlashUiStrings.xlb%3Fframe%3Dflashstrings%26hl%3Den&amp;amp;nogvlm=1"&gt;
&lt;param name="bgcolor" value="#FFFFFF"&gt;
&lt;embed width="320" height="266" src="http://www.blogger.com/img/videoplayer.swf?videoUrl=http%3A%2F%2Fv3.nonxt8.googlevideo.com%2Fvideoplayback%3Fid%3Dc1a484532283e78f%26itag%3D5%26begin%3D0%26len%3D86400000%26app%3Dblogger%26et%3Dplay%26el%3DEMBEDDED%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1270996837%26sparams%3Did%252Citag%252Cip%252Cipbits%252Cexpire%26signature%3D30818262250B61FAE8E93BDA8692D6F39F113229.7C77C2BE8441E4042C7595DC4910473314A1A101%26key%3Dck1&amp;amp;thumbnailUrl=http%3A%2F%2Fvideo.google.com%2FThumbnailServer2%3Fapp%3Dblogger%26contentid%3Dc1a484532283e78f%26offsetms%3D5000%26itag%3Dw320%26sigh%3DLvP2KuFIGGdJt9ElTiIeSUSP8lU&amp;amp;messagesUrl=video.google.com%2FFlashUiStrings.xlb%3Fframe%3Dflashstrings%26hl%3Den&amp;amp;nogvlm=1" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/object&gt;
&lt;br /&gt;&lt;br /&gt;Ah yes, here they come, from under the window.  Now that I know where they came from, I can patch the hole in the window to prevent further infestations from that oversight.  In the meantime, these bugs will happily bring the poison back to their nest and will probably not return for awhile.  Nevertheless, every so often, I will check.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8951904624959546499-4519820643402358992?l=www.testthisblog.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/EricJacobsonSoftwareTestingBlog/~4/QQRLIj-q0A0" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/EricJacobsonSoftwareTestingBlog/~3/QQRLIj-q0A0/real-bugs-in-wild.html</link><author>noreply@blogger.com (Eric Jacobson)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.testthisblog.com/2009/10/real-bugs-in-wild.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8951904624959546499.post-3490111765050736603</guid><pubDate>Fri, 09 Oct 2009 16:32:00 +0000</pubDate><atom:updated>2009-10-13T19:47:41.668-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">automation</category><category domain="http://www.blogger.com/atom/ns#">Teamwork</category><category domain="http://www.blogger.com/atom/ns#">questions</category><title>If You Don’t Have Test Automation, Don’t Bother</title><description>Successful test automation is the elephant in the room for many testers.  We all want to do it because manual testing is hard, our manager and devs would think we were bad-ass, and…oh yeah, some of us believe it would improve our AUT quality.  We fantasize about triggering our automated test stack and going home, while the manual testers toil away.  We would even let them kiss the tips of our fingers as we walked out the door.&lt;br /&gt;&lt;br /&gt;…sounds good.&lt;br /&gt;&lt;br /&gt;So we (testers) make an attempt at automation, exaggerate the success, then eventually feel like losers. We spend more time trying to get the darn thing to run unattended and stop flagging false bugs, while the quality of our tests takes a back seat and our available test time shrinks.&lt;br /&gt;&lt;br /&gt;We were testing one product.  Now we are testing two.&lt;br /&gt;&lt;br /&gt;The two obvious problems are, 1.) Most of us are not developers.  2.) Writing a program to test another program is more difficult than writing the original program.  ...Ah yes, a match made in heaven!&lt;br /&gt;&lt;br /&gt;I watched an automated testing webinar last week.  It was more honest than I expected.  The claim was, to be successful at test automation the team should not expect existing testers to start automating tests.  Instead, a new team of developers should be added to automate tests that testers” write.  This new team would have their own requirement reviews, manage their own code base, and have their own testers to test their test automation stack.  This does not sound cheap!&lt;br /&gt;&lt;br /&gt;While watching this webinar, something occurred to me.  Maybe we don’t need test automation.  Why do I think this?  Simple.  Because somehow my team is managing to release successful software to the company without it.  There is no test automation team on our payroll.  Regression testing is spotty at best, yet somehow our team is considered a model of success within the company.  How is this possible when every other test tool spam email or blog post I read makes some reference to test automation?&lt;br /&gt;&lt;br /&gt;In my case, I believe a few things have made this possible:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The devs are talented and organized enough to minimize the amount of stuff they break with new builds.  This makes regression testing less important for us testers.&lt;/li&gt;&lt;li&gt;The BAs are talented enough to understand how new features impact existing features.&lt;/li&gt;&lt;li&gt;The testers are talented enough to know where to look.  And they work closely with devs and BAs to determine how stuff should work.&lt;/li&gt;&lt;li&gt;The user support team is highly accessible to users, knowledgeable about the AUT and the business, and works closely with the BAs/devs/testers to get the right prod bugs patched quickly.  The entire team is committed to serving the users.&lt;/li&gt;&lt;li&gt;The users are sophisticated enough to communicate bug details and use workarounds when waiting on fixes.  The users like us because we make their jobs easier.  The users want us to succeed so we can keep making their jobs easier.&lt;/li&gt;&lt;li&gt;The possibility of prod bugs resulting in death, loss of customers, or other massive financial loss is slim to none.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;I suspect a great deal of software teams are similar to mine.  I'm interested in hearing from other software teams that do not depend on tester-driven test automation.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;I do use test automation to help me with one of my simple AUTs which happens to lend itself to automated testing (see &lt;/span&gt;&lt;a style="font-style: italic;" href="http://www.testthisblog.com/2009/05/jarts-high-level-framework.html"&gt;JART)&lt;/a&gt;&lt;span style="font-style: italic;"&gt;.  However, from my experiences, there are few apps that are easy to automate with simple checks. &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8951904624959546499-3490111765050736603?l=www.testthisblog.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/EricJacobsonSoftwareTestingBlog/~4/n0ODWa4p3xg" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/EricJacobsonSoftwareTestingBlog/~3/n0ODWa4p3xg/if-you-dont-have-test-automation-dont.html</link><author>noreply@blogger.com (Eric Jacobson)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total><feedburner:origLink>http://www.testthisblog.com/2009/10/if-you-dont-have-test-automation-dont.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8951904624959546499.post-2208411448640955628</guid><pubDate>Wed, 30 Sep 2009 17:03:00 +0000</pubDate><atom:updated>2009-09-30T13:44:35.292-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">bugs</category><category domain="http://www.blogger.com/atom/ns#">Teamwork</category><title>You Know You're In Trouble When...</title><description>&lt;span style="font-style: italic;"&gt;(these are taken from my real experiences over the past week or so)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You know you’re in trouble when…&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Your dev says “I copied these statements from another developer.  They’re too complex to explain.”&lt;/li&gt;&lt;li&gt;As you begin demoing strange AUT behavior to your dev, your dev drops a sharp F-bomb followed by a sigh.&lt;/li&gt;&lt;li&gt;You ask your dev what needs to be regression tested on account of their bug fix.  They say “everything”.&lt;/li&gt;&lt;li&gt;After a migration you see an email from dev to DBA.  The DBA responds “What are these delta scripts you speak of?”.&lt;/li&gt;&lt;li&gt;Your devs drop a prod patch at 5PM on a Friday as they all head home.&lt;/li&gt;&lt;li&gt;Dev says “Please try to repro the bug again, I didn’t do anything to fix it…I’m just hoping it got indirectly fixed”&lt;/li&gt;&lt;li&gt;Dev says “I marked the bug fixed but I have no way to test it.”&lt;/li&gt;&lt;li&gt;After a week of chasing and logging nasty intermittent bugs, you start seeing emails from your devs to your config managers saying stuff like “Why are these QA service endpoints still pointing to the old QA server?”&lt;/li&gt;&lt;li&gt;Your Config Manager says “Did you sanity test that patch I rolled out to prod when you were at lunch?”.&lt;/li&gt;&lt;li&gt;Your dev says “we don’t really care if the code we write is testable or not”.&lt;/li&gt;&lt;li&gt;Your bug gets rejected with the comment “It works on my box”.&lt;/li&gt;&lt;/ul&gt;What's on your list?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8951904624959546499-2208411448640955628?l=www.testthisblog.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/EricJacobsonSoftwareTestingBlog/~4/InJf9JmCirs" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/EricJacobsonSoftwareTestingBlog/~3/InJf9JmCirs/you-know-youre-in-trouble-when.html</link><author>noreply@blogger.com (Eric Jacobson)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">7</thr:total><feedburner:origLink>http://www.testthisblog.com/2009/09/you-know-youre-in-trouble-when.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8951904624959546499.post-2424481151041181505</guid><pubDate>Thu, 24 Sep 2009 16:25:00 +0000</pubDate><atom:updated>2009-09-24T12:32:03.947-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">bugs</category><category domain="http://www.blogger.com/atom/ns#">process</category><category domain="http://www.blogger.com/atom/ns#">Teamwork</category><category domain="http://www.blogger.com/atom/ns#">testing metaphor</category><title>The Fog Of Test</title><description>&lt;span style="font-weight: bold;"&gt;Test Manager:&lt;/span&gt; &lt;span style="font-style: italic;"&gt;Remember, we're Software Testers, not some sorry-ass QA Analysts. We're elite. Let's act like it out there. Hoo-ah? &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Testers:&lt;/span&gt; &lt;span style="font-style: italic;"&gt;Hoo-ah!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You arm yourself with TestA and prepare to battle your AUT.&lt;br /&gt;&lt;br /&gt;Take a deep breath, head into the AUT, and begin executing TestA.  Prior to observing your expected results, you determine TestA is blocked from further execution (call it BlockageA). You make a note to investigate BlockageA later. You modify TestA slightly to give it a workaround in an attempt to avoid BlockageA. TestA encounters BlockageB. Now you decide to deal with BlockageB because you are out of workarounds.  Is BlockageB a bug?  You can’t find the specs related to BlockageB.  After an hour, your BA finds the specs and you determine BlockageB is a bug (BugB). You check the bug DB to see if this bug has already been logged. You search the bug DB and find BugC, which is eerily similar but has different repro steps than your BugB.  Not wanting to log dupe bugs you perform tests related to BugB and BugC to determine if they are the same.  Finally you decide to log your new bug, BugB.  One week later BugB gets rejected because it was “by design”; the BA forgot to update the feature but verbally discussed it with dev.  Meanwhile, you log a bug for BlockageA and notice four other potential problems while doing so.  These four potential problems are lost because you forgot to write a follow-up reminder note to yourself.  Weeks later BlockageA is fixed.  You somehow stayed organized enough to know TestA can finally be executed.  You execute TestA and it fails.  You log BugD.  BugD is rejected because TestA’s feature got moved to a future build but dev forgot to tell you.  Months later, TestA is up for execution again.  TestA fails and you log BugE.  The dev can’t repro BugE because their dev environment is inadequate for testing.  Dev asks tester to repro BugE.  BugE does not repro because you missed an important repro step.  Now you are back at the beginning. &lt;br /&gt;&lt;br /&gt;You’ve just experienced the "fog of test".&lt;br /&gt;&lt;br /&gt;The "fog of test" is a term used to describe the level of ambiguity in situational awareness experienced by participants in testing operations. The term seeks to capture the uncertainty regarding own capability, AUT capability and stakeholder intent during an engagement or test cycle.&lt;span style="font-style: italic;"&gt; (A little twist on the “Fog of war” Wikipedia entry)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8951904624959546499-2424481151041181505?l=www.testthisblog.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/EricJacobsonSoftwareTestingBlog/~4/1pqZ_GInW3I" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/EricJacobsonSoftwareTestingBlog/~3/1pqZ_GInW3I/fog-of-test.html</link><author>noreply@blogger.com (Eric Jacobson)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">4</thr:total><feedburner:origLink>http://www.testthisblog.com/2009/09/fog-of-test.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8951904624959546499.post-719022112360494287</guid><pubDate>Wed, 16 Sep 2009 17:19:00 +0000</pubDate><atom:updated>2009-09-16T13:29:49.812-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">process</category><category domain="http://www.blogger.com/atom/ns#">writing tests</category><category domain="http://www.blogger.com/atom/ns#">Teamwork</category><category domain="http://www.blogger.com/atom/ns#">questions</category><title>Test Case Reviews Can Be Harmful</title><description>Many (if not most) test teams claim to perform test case reviews.  The value seems obvious, right?  Make sure the tester does not miss anything important.  I think this is the conventional wisdom.  On my team, the review is performed by a Stakeholder, BA, or Dev.&lt;br /&gt;&lt;br /&gt;Valuable?  Sure.  But how valuable compared to testing itself?   Here are the problems I have with Test Case Reviews:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;In order to have a test case review in the first place, one must have test cases.  Sometimes I don’t have test cases…&lt;/li&gt;&lt;li&gt;In order for a non-tester to review my test cases, the test cases must contain extra detail meant to make the test meaningful to non-testers.  IMO, detailed test cases are a huge waste of time, and often invaluable or misleading in the end.&lt;/li&gt;&lt;li&gt;From my experiences, the tests often suggested by non-testers are poorly designed tests or tests already covered by existing tests.  This becomes incredibly awkward.  If I argue or refuse to add said tests, I look bad.  Thus, I often just go through the motions and pretend I executed the poorly conceived tests.  This is bad too.  Developers are the exception, here.  In most cases, they get it.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Forcing me to formally review my test cases with others is demeaning.  Aren’t I getting paid to know how to test something?  When I execute or plan my tests, I question the oracles on my own.  For the most part, I’m smart enough to know when I don’t understand how to test something.  In those cases, I ask.  Isn’t that what I’m being paid for?&lt;/li&gt;&lt;li&gt;Stakeholders, BAs, or Devs hate reading test cases. Zzzzzzzzzz.  And I hate asking them to take time out of their busy days to read mine.&lt;/li&gt;&lt;li&gt;Test Case Reviews subtract from my available test time.  If you’ve been reading my blog, you know my strong feelings on this.  There are countless activities expected of testers that do not involve operating the product.  This, I believe, is partly because testing effectiveness is so difficult to quantify.  People would rather track something simple like, was the test case review completed?  Yes or No.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;I’m interested in knowing how many of you (testers) actually perform Test Case Reviews  on a regular basis, and how you conduct the review itself.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8951904624959546499-719022112360494287?l=www.testthisblog.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/EricJacobsonSoftwareTestingBlog/~4/VqwrRWR7YMA" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/EricJacobsonSoftwareTestingBlog/~3/VqwrRWR7YMA/test-case-reviews-can-be-harmful.html</link><author>noreply@blogger.com (Eric Jacobson)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">15</thr:total><feedburner:origLink>http://www.testthisblog.com/2009/09/test-case-reviews-can-be-harmful.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8951904624959546499.post-1962548574926844322</guid><pubDate>Thu, 10 Sep 2009 16:38:00 +0000</pubDate><atom:updated>2009-09-10T12:46:00.312-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">bugs</category><category domain="http://www.blogger.com/atom/ns#">process</category><category domain="http://www.blogger.com/atom/ns#">test blogs</category><title>The Importance of Unimportant Follow-On Bugs</title><description>Think of a bug…any bug.  Call it BugA.  Now try to think of other bugs that could be caused by BugA.  Those other bugs are what I call “Follow-On Bugs”.  Now forget about those other bugs.  Instead, go find BugB.&lt;br /&gt;&lt;br /&gt;I first heard Michael Hunter (AKA “Micahel”, “The Braidy Tester”) use the similar term, “Follow-on Failures”, in a &lt;a href="http://blogs.msdn.com/micahel/archive/2005/05/30/DidYouDidYouReally.aspx"&gt;blog post&lt;/a&gt;.  Ever since, I’ve used the term “Follow-On Bugs”, though I never hear other testers discuss these.  If I’m missing a better term for these, let me know.  “Down-stream bugs” is not a bad term either.&lt;br /&gt;&lt;br /&gt;Whatever we call these, I firmly believe a key to knowing which tests to execute in the current build, is to be aware of follow-on bugs.  Don’t log them.  The more knowledgeable you become about your AUT, the better you will identify follow-on bugs.  If you’re not sure, ask your devs.&lt;br /&gt;Good testers have more tests than time to execute them.  Follow-on bugs may waste time.  I share more detail about this in my &lt;a href="http://www.testthisblog.com/2009/08/testing-new-features-quicker.html"&gt;testing new features faster post&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I’ve seen testers get into a zone where they keep logging follow-on bugs into the bug tracking system.  This is fine if there are no other important tests left.  However, I’ll bet there are.  Bugs that will indirectly get fixed by other bugs mostly just create administrative work, which subtracts from our available time to code and test.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8951904624959546499-1962548574926844322?l=www.testthisblog.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/EricJacobsonSoftwareTestingBlog/~4/zSU9MTyqd9o" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/EricJacobsonSoftwareTestingBlog/~3/zSU9MTyqd9o/importance-of-unimportant-follow-on.html</link><author>noreply@blogger.com (Eric Jacobson)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://www.testthisblog.com/2009/09/importance-of-unimportant-follow-on.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8951904624959546499.post-4042436057611967048</guid><pubDate>Wed, 02 Sep 2009 16:24:00 +0000</pubDate><atom:updated>2009-09-02T12:51:55.825-04:00</atom:updated><title>Irrational Expectations Put Upon Testers #1</title><description>&lt;strong&gt;The Fantasy of Attending all Design and Feature Review Meetings&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Most testers find themselves outnumbered by &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;devs&lt;/span&gt;. In my case it’s about 10 to 1. (&lt;em&gt;The preferred ratio is a tired discussion I’d like to avoid in this post&lt;/em&gt;.)&lt;br /&gt;&lt;br /&gt;Instead, I would like to gripe about a problem I’&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;ve&lt;/span&gt; noticed as I accumulate more projects to test. Assuming my ten &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;devs&lt;/span&gt; are spread between five projects (or app modules), each &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;dev&lt;/span&gt; must attend only the Feature Review/Design meetings for the project they are responsible for. However, the tester must attend all five. Do you see a problem here?&lt;br /&gt;&lt;br /&gt;Let’s do the math for a 40 hour work week.&lt;br /&gt;&lt;br /&gt;If each project’s Feature Review/Design meetings consume eight hours per week, each &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;dev&lt;/span&gt; will have 32 hours left to write code. Each tester is left with ZERO hours to test code!&lt;br /&gt;&lt;br /&gt;The above scenario is not that much of an exaggeration for my team. The tester has no choice but to skip some of these meetings just to squeeze in a little testing. The tester is expected to "stay in the know" about all projects (and how those projects integrate with each other), while the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;dev&lt;/span&gt; can often focus on a single project.&lt;br /&gt;&lt;br /&gt;I think the above problem is an oversight of many managers. I doubt it gets noticed because the testers' time is being nickel and dimed away. Yet most testers and managers will tell you, “It’s a no-&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;brainer&lt;/span&gt;! The tester should attend all design reviews and feature &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;walkthroughs&lt;/span&gt;…testing should start as early as possible”. I agree. But it is an irrational expectation if you staff your team like this.&lt;br /&gt;&lt;br /&gt;In a future post, I'll share my techniques for being a successful tester in the above environment. feel free to share yours.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8951904624959546499-4042436057611967048?l=www.testthisblog.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/EricJacobsonSoftwareTestingBlog/~4/iu0vqriS5cM" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/EricJacobsonSoftwareTestingBlog/~3/iu0vqriS5cM/irrational-expectations-put-upon.html</link><author>noreply@blogger.com (Eric Jacobson)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total><feedburner:origLink>http://www.testthisblog.com/2009/09/irrational-expectations-put-upon.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8951904624959546499.post-4367829680570070345</guid><pubDate>Thu, 27 Aug 2009 02:14:00 +0000</pubDate><atom:updated>2009-08-26T22:32:32.477-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">testing metaphor</category><category domain="http://www.blogger.com/atom/ns#">language</category><title>Showstopper Bugs and Other Theatrics</title><description>“&lt;span style="font-weight: bold;"&gt;Showstopper&lt;/span&gt;”. This means the show cannot go on. I guess the full metaphor is something like… the star of the show has lost her voice! The show must be stopped until her understudy has been located…or in our case, until the bug is fixed.&lt;br /&gt;&lt;br /&gt;I’ve always hated the label “Showstopper”. I tried to convince my previous manager not to use it. I half-seriously argued it was a theater metaphor and theater metaphors don’t get used for other bug priorities. Well, if some insist upon using this theater metaphor, perhaps we should incorporate other theater metaphors into software testing and development.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Maybe we should classify our second priority bugs as “&lt;span style="font-weight: bold;"&gt;Technical Difficulties&lt;/span&gt;” (i.e., the light board blew a fuse but the stage crew determines they can use the house lights to keep the performance going…a workaround.)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The third priority bugs would be called “&lt;span style="font-weight: bold;"&gt;Missed Lines&lt;/span&gt;” (i.e., an actor forgot a line but the other actors easily improvise and no critical story essentials are missing.)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;And finally, “&lt;span style="font-weight: bold;"&gt;Mediocre Set Design&lt;/span&gt;” (i.e., the set is barebones and unconvincing but with a little imagination, the audience can still enjoy the story.)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;And why stop with just bug priorities...&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Instead of the User Acceptance Test phase we should call it “&lt;span style="font-weight: bold;"&gt;Dress Rehearsal&lt;/span&gt;”.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;“&lt;span style="font-weight: bold;"&gt;Opening Night&lt;/span&gt;” is the night we deploy a new release to production.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;When our users open Task Manager to force quit our app, they are “&lt;span style="font-weight: bold;"&gt;Cutting Out At Intermission&lt;/span&gt;”.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;When the tester gets a perpetual hour-glass, the devs can say the feature got “&lt;span style="font-weight: bold;"&gt;Stage Fright&lt;/span&gt;”.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;We can make our open bug list public and call it “&lt;a style="font-weight: bold;" href="http://en.wikipedia.org/wiki/Fourth_wall"&gt;Breaking the fourth wall&lt;/a&gt;”.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;As CM kicks off the build, we’ll remind them to “&lt;span style="font-weight: bold;"&gt;Break a Leg&lt;/span&gt;”.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;If our users ask for more features, we’ll bow and consider it a “&lt;span style="font-weight: bold;"&gt;Standing Ovation&lt;/span&gt;”.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;And our dev who is always throwing in those extra features nobody asked for, they can be the team “&lt;span style="font-weight: bold;"&gt;Prima Donna&lt;/span&gt;” or “&lt;span style="font-weight: bold;"&gt;Divo&lt;/span&gt;”.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;And finally, if our load testing was done poorly, we may end up with long lines of people waiting to use theater bathrooms. Some of these queues may get quite long. Eventually, people may wait so long they time out….er…"&lt;span style="font-weight: bold;"&gt;Pee Their Pants&lt;/span&gt;”.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8951904624959546499-4367829680570070345?l=www.testthisblog.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/EricJacobsonSoftwareTestingBlog/~4/GABCCYfWXuw" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/EricJacobsonSoftwareTestingBlog/~3/GABCCYfWXuw/showstopper-bugs-and-other-theatrics.html</link><author>noreply@blogger.com (Eric Jacobson)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">5</thr:total><feedburner:origLink>http://www.testthisblog.com/2009/08/showstopper-bugs-and-other-theatrics.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8951904624959546499.post-8198407483489634561</guid><pubDate>Wed, 19 Aug 2009 20:48:00 +0000</pubDate><atom:updated>2009-08-19T17:06:01.050-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">bugs</category><category domain="http://www.blogger.com/atom/ns#">process</category><category domain="http://www.blogger.com/atom/ns#">questions</category><title>Testing New Features Quicker</title><description>So you’ve got 10 new features to test in about 25% of the time you asked for…just another day in the life of a tester. How do you approach this effort?&lt;br /&gt;&lt;br /&gt;Here is how I approach it.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;    First, I sift through the 10 features and pick out the one that will have the most critical bugs (call it FeatureA). I test FeatureA and log two or three critical bugs.&lt;/li&gt;&lt;li&gt;Next, I drop FeatureA and repeat the above for the feature that will have the next most critical bugs (call it FeatureB). I know FeatureA has undiscovered bugs. But I also know FeatureA’s critical bug fixes will trigger FeatureA testing all over again. I also assume some non-discovered FeatureA bugs will be indirectly fixed by the first batch of bug fixes. I am careful not to waste time logging “follow-on-bugs”.&lt;/li&gt;&lt;li&gt;When bug fixes are released, I ignore them. I repeat the above until I have tested all 10 new Features with the first pass.&lt;/li&gt;&lt;li&gt;At this point something important has occurred. The devs and BAs know the general state of what they are most interested in.&lt;/li&gt;&lt;li&gt;Finally, I repeat the above with additional passes, verifying bug fixes with each feature. As the features gradually become verified I communicate this to the team by giving the features a status of “Verified”. I use my remaining time to dig deeper on the weak features.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Okay, nothing breakthrough here, but there are two tricks that should stand out in the above.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Trick 1&lt;/span&gt; – Don’t spend too much time on individual features in the first pass. You want to provide the best info to your devs as early as possible for all 10 Features. It’s way too easy to run out of time by picking one Feature clean.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Trick 2&lt;/span&gt; – Ignore those bug fixes until you get through your first pass with all 10 Features. I know it’s hard. You’re so anxious to see the damn thing fixed. However, IMO, the unknowns of untested Features are more valuable to chase down than the unknowns of whether bugs are fixed. In my experiences, when I log bugs well, verifying them is a brainless rubber-stamping-activity.&lt;br /&gt;&lt;br /&gt;How do &lt;span style="font-style: italic;"&gt;you &lt;/span&gt;get the job done?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8951904624959546499-8198407483489634561?l=www.testthisblog.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/EricJacobsonSoftwareTestingBlog/~4/M3yHHGCjpfo" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/EricJacobsonSoftwareTestingBlog/~3/M3yHHGCjpfo/testing-new-features-quicker.html</link><author>noreply@blogger.com (Eric Jacobson)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://www.testthisblog.com/2009/08/testing-new-features-quicker.html</feedburner:origLink></item></channel></rss>
