TrainingConferencesAbout UsContact UsAdvertiseSQE.comRSS Feed

StickyMinds.com: brain food for building better software

Log In
 Clarify Your Search Criteria

Tips on Using Our Search Feature(s)
 
StickyMinds.com Home
ResourcesTopicsCommunityPowerPassBlogs
Home  >  Detail: Dear Aunt Fern ...



A StickyMinds.com Original
Article Picture
Dear Aunt Fern ...

By Danny R. Faught

Send This Content to a FriendGet a Short Link to This ContentPrint This ContentSee User Comments About This Content

Summary: Are you a tester who finds himself at a loss for words when well-meaning relatives ask, "Now, what is it that you do again, dear?" In a reprise of a piece from his bimonthly newsletter, Danny gives us the lowdown on the testing life and tries to eliminate some of the mystery surrounding his profession.


Infosys
Fern Herring, a relative by marriage and one of the brave non-technical souls who try to understand what I write in my newsletter, recently asked: 
 
"Please explain what this 'testing' is that you do, in lay language so I can understand it." 
 
Thanks for asking! I bet many friends and relatives of testers have wondered the same thing. Even some people who work for hi-tech companies are probably not quite sure. How does a tester describe what he does to friends, family, and non-technical business contacts? It's not easy to do! Here's my attempt. 
 
I like to steal from a BASF slogan - "I don't make the software you use. I help make the software you use better." The purpose of most software testing efforts is to find problems (also called "bugs" or "defects") with the software before it is given to the customer. Note that testers rarely contribute directly to the code that makes up the software product. Software teams don't have foolproof methods for making software that works, so the problems are inevitable. It's important to find as many of the problems as possible, though we can never find all of them. That's why I call myself a "software alchemist" - it seems that the only way out is to have a philosopher's stone that can magically turn our software lead into gold.  
 
You've likely run into many bugs in the software you use. Even if you blamed yourself for the problems, I bet bugs in the software caused many of them. The fact that you saw them means that they slipped through the fingers of both the programmers and the testers. It would take a tremendous amount of effort for the testers to be able to find most of the bugs, and that would make the software you buy cost a lot more, perhaps ten times as much, or more. For NASA, it's worth it to do that much testing, but you're probably not willing to pay much more for software than you do now.  
 
What do testers actually do? It starts out with planning, of course, though that part isn't much fun. Software projects change direction so often that I always have this feeling that our plans are for naught. Once a project is underway, testers may participate in reviewing the early documents produced by the software designers. Testers might not be experts in all the various technologies that the designers are linking together, but we're still good at finding mistakes and missing elements that could cause major problems if not discovered until late in the project. Oddly enough, testers often have a better big-picture grasp of the implementation of the software system than programmers, who focus on the details of a small part of it. Some testers also take on a "quality assurance" role, where they audit and improve the overall development process as well as the product. 
 
Once the programmers have produced at least part of the software, it's time for the testers to start running it. The testers may have produced very detailed plans for how to test the software, especially if a flaw in the software could cause a safety risk. Sometimes the testing is "exploratory," with no detailed planning in advance. Usually there will be some combination of these two extremes.  
 
Testers will use the software's features and try to find any behavior that differs from the official documentation or that just doesn't seem right. Sometimes we write our own programs to automate the process. When we find a bug, we report it so designers and programmers can fix it. Writing an effective description of a bug is an art that gets better with experience. 
 
Testing starts by looking at individual features or maybe internal functions that the end user can't see. The programmers may do some of the testing at this level, though there's wide variance in the industry as to how much the programmers test their own code. 
 
Later, testing moves to a higher level and looks at the software system as a whole. This requires more specialized skills than lower-level testing. At this point, we examine things such as whether the software runs fast enough, whether it can run for a long time without failing, and whether it fails if it encounters unexpected situations. 
 
It's hard to grasp the complexity of creating software and verifying that it works. One testing sage (Boris Beizer in his 1996 speech “Software is Different”) has estimated that the engineering effort that goes into producing a word processing program eclipses the engineering that goes into a new supertanker and a 100-floor building combined. That's a lot of complexity crammed into that computer disk! While many people who aren't computer experts are very intimidated by computers, you should realize that those of us who have some understanding of what makes them tick also haven't really tamed the technology. 
 
Testers often disagree about the best way to approach our craft, so I'm sure that even this brief description will invoke the ire of some of my colleagues. As always, I invite your feedback. 
 
For further reading, see my article,"Yes Virginia, We Do Want Our Software to Work". Also, see the earlier reactions to the version of this article that ran in my newsletter.


About the Author
Danny R. Faught is a software-testing consultant. He plans to publish a resource guide for testers, as soon as enough people bug him to finish it. You can reach him at www.tejasconsulting.com or faught@tejasconsulting.com.

Back to Top
 
 

Member Comments
Add Your CommentExpand Comments
 
Comment:    
by Tisha Havens 10/20/2004

Thanks for the great summary! Just what I need to explain my job to my parents and brother. For my 87-year-old grandmother, though, I'll stick to the old standby: "I spend 5 minutes finding "break" in my software, then 5 hours making the case why somebody should fix it."

 
 
Comment:    
by Bernard Homes 2/25/2004

1/ Nice article and fine description of our work. There was another description I liked from Robert Sabourin in his book 'I'm a bug' (ISBN 0968577407). 2/ I often describe my work as hunting (or fishing) for bugs, with the associated images. Exploratory testing = lone experienced trapper; Functional testing = net fishing (beware of size of the holes and what you bring up as different types of -unedible- fish ...); test planning = assigning hunters at different locations, ... (though I have not found a nice simile for performance testing). 3/ Where could I find the 'Software is Different' speech from Boris Beizer ?

Author's Response:
3/8/2004    
Beizer's paper is in the proceedings of the Quality Week '96 conference. It's well worth the read. You can find a reprint split across three issues of Quality Techniques Newsletter - see http://www.soft.com/News/TTN-Online/qtnapr01.html, http://www.soft.com/News/TTN-Online/qtnmay01.html, and http://www.soft.com/News/TTN-Online/qtnjun01.html.

 
 
Comment:    
by Amit Mathur 2/6/2004

Amazing, I always use to give up, when some one asked amout my job profile and I gave them discriptive answers, but still there faces showed I am not clear:). Well I will keep this answer as my next best answere. Many Thanks, Amit Mathur.

 
 
Comment:    
by Jenny Miller 1/21/2004

Great job! This article sums it up perfectly. In fact, I sent this to my husband and mom and dad to help them understand what I do every day. Sometimes it's not as easy as we think to explain the complexity of our job. My favorite part is the BASF slogan! Thanks for sharing --

 
 
Comment:    
by Gary Davis 1/14/2004

Actually, here is one peer who thinks you hit the nail on the head for answering those family members who give a damn about what we do - although they may be few and far between - most of my family is content with "I try to break software."

 
 
Comment:    
by kalyan rao 1/14/2004

My way of explaining what testing is : As a test engineer i do not brake things. Software always comes to me with many cracks in it.All iam doing is examining these cracks with the helps of tools,knowledge and industry practices..and reporting it back to the development teams. I define my job as Helping Software engineers not to lose their faces infront of customers and assisting them to clean-up the mess before the software steps out of the organaization. In the early stages of the life cycle I act as a 'co-builder' in assinging the development groups to 'Build in' the quality by reviewing the artifacts that are the basis for the...Read On

Author's Response:
1/14/2004    
Yes, good point about breaking things. Perhaps that idea would confuse novices, though it's certainly a fun image to share. The software comes to me already broken, in a static and hidden way, and I demonstrate the cracks dynamically, trying as hard as I can to escalate the cracks into total destruction of the running instance of the software (but settling for reporting only the cracks if need be).

 
 
Comment:    
by Robert Rose-Coutre 1/13/2004

I explain to relatives that I write two kinds of stories: I write stories about the way software is supposed to work. Then I write stories about the way it actually works. Then programmers fix the software to match the first story. Or else management changes the first story to match the software. (It's a great conversation starter!)

 
 
Comment:    
by Paul Carvalho 1/13/2004

This is a great article! I have many relatives like this, and in my experience you probably have too much information here. :) For most of my relatives who don't know what I do, I have to stop after the first few paragraphs - i.e. right up to "What do testers actually do?" One time, a cousin of mine who overheard my explanation blurted out: "Oh, I hate you guys!" To which my response was: "Let me guess - you're a programmer, right?" We had a good laugh over that. :)

 
 
Comment:    
by Ed King 1/13/2004

I like your description of being a tester. Nice, clean, and complete enough. I find, though, that this is at about the right level for an early (mostly CIS) student. When I am asked "What do you do?" by genuinely nontechnical friends, I respond very simply: I break things. There is a moment of stunned silence, after which the closest teen in the room usually responds "People pay you to break things? Oh, cool! I want THAT job!" It may not be the most complete description of the job, but it is good enough to start.

Author's Response:
1/13/2004    
That's a great way to say it in one sentence or less! I like to lean toward the stress testing side of things, which I enjoy the most, and say "I crash computers for a living, and I don't have to clean up the mess when I'm done." Definitely gets surprised responses. This is how my wife describes what I do to her friends.

 
 
Comment:    
by Gene Fellner 1/12/2004

Where to start? How about with that Jet City attitude toward defects: "It would take a tremendous amount of effort for the testers to be able to find most of the bugs, and that would make the software you buy cost a lot more, perhaps ten times as much, or more... [Y]ou're probably not willing to pay much more for software than you do now." Not true. My next computer will be one that runs OS-X instead of Windows, like the one my wife uses so happily. It's hard to put a dollar value on the exasperating inconvenience of incessant software failures and the major chunk of my life that I have to spend being a software mechanic. But I know it’s far...Read On

Author's Response:
1/12/2004    
I agree with you of course that there can be a large variance in quality from one development organization to another, even at the same level of R&D spending. That fact didn't quite make the cut when I was trying to craft a concise explanation. I'm not personally convinced that the CMMI (née CMM) is a necessary or sufficient recipe for getting happy customers, but the contexts I tend to work within don't overlap much with the industries that traditionally rely on the CMMI. I can't say that I know what a Jet City attitude is - please email me and help me improve my vocabulary.

 
 
Comment:    
by Bill Walton 1/12/2004

I agree with your opening comment that it's not easy to explain what a tester does, especially to non-technical folks. Your conversational style makes it more likely, I think, that they'll be interested / comfortable enough to ask questions rather than feeling overwhelmed by jargon that seems intended to intimidate. Good job.

 
 
Comment:    
by Gunasekarran Veerapillai 1/12/2004

The role of testers has much changed now. Instead of testing the already developed software, now they are very much involved in the initial stages of requirements gathering and specification. This helps to create the testable requirements that will avoid rework at later stage. The role of independent testing group have also emerged successfully whereby the developers are not entrusted the validation of their software. Testers as a separate entity started proving their identity in the Software Life Cycle. Testing group emerges as experts not only in systematic software testing but also critically evaluating the functionality of the system in...Read On

Author's Response:
1/12/2004    
Thanks for pointing out the artifacts that are earlier in the lifecycle that some testers are tasked to find bugs in. I realized I had made that omission when I looked at the article again this morning.

 
Back to Top



 
Ads By Google
What's This?
 
 



Home   |   Resources   |   Topics   |   Community   |   PowerPass



© 2010 StickyMinds.com. All rights reserved.
StickyMinds.com is a division of Software Quality Engineering.
Privacy Policy    Terms & Conditions    Link to StickyMinds.com    Feedback


ThoughtWorks




Agile Development Practices 

STARWEST