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  >  Articles & Papers  >  Detail: Deception and Self-deception in Software Testing


Viewing Item 1 of 505


A StickyMinds.com Original
Article Picture
Deception and Self-deception in Software Testing

By Fiona Charles

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

Summary: Untruths about software testing are common. Managers, programmers, and other people on software projects don't always mean to deceive. Quite often, they fool themselves into believing what they want to believe. But sometimes they lie deliberately and even pressure testers to lie. And testers can also practice deceptions and self-deceptions of their own. In this week's column, Fiona Charles describes four categories of common deceptions and self-deceptions in testing and outlines what testers need to do to address them.


Rally Software
Have you heard any of these lately?
"The testers are finding too many bugs and holding up the project."

"Anyone can test. We just have to give them the right process to follow."

"Our test cases will provide complete system coverage."
Not one of these common statements about testing is true. At least one of them could have been said by a tester.

Delivering and promoting accurate communications about testing is essential to the tester's and test manager's job. We have a responsibility to dispel myths and misconceptions about good testing and what it can and cannot do. We must also be alert to and prepared to address distortions or attempts to spin the message about testing from any source—including ourselves.

Testing deceptions and self-deceptions often arise from excessive optimism—the triumph of hope over experience (or hope over hard data). Sometimes they come from people attempting to find a place to lay blame. Humans can fool themselves into believing all sorts of impossible things, and occasionally they even resort to deliberate lies. Exaggerating or downplaying risk, inflating test coverage, blaming testing for project delays when the product quality is poor, misrepresenting testing status and findings—these are only some of the kinds of deceptions and self-deceptions testers encounter on software projects.

Let's look at some more typical examples.

Deceptions Practiced on Testers
"The software is done. It's ready to test."
Every tester has heard this one, only to discover that the meaning of "done" and "test-ready" doesn't reflect what was in the project plan to get done by this date. Somehow, little things like unit tests—sometimes even finishing coding on some modules—have ceased to be requirements. The programmers made the date, so they're "done."

We've all heard plenty of others. Here are some common ones:
"We didn't change anything significant. You don't need to test." [Although nobody did an impact analysis, and we don't actually know what might break.]

"The infrastructure upgrade [that includes the operating system, the database engine, and the compiler version] will be transparent to the applications. You'll only need to do a sanity test."

"You only need three weeks for testing." [Because the code is late and we cut three weeks from the test schedule.]
Are programmers, project managers, and others lying when they say these things? Quite possibly not, but if not, they've certainly fooled themselves into believing what they want to believe.

Deceptions about Testers and Testing
Sometimes deceptions appear at a higher level, in what managers, project managers, and programmers say about testers and testing. Often, those untruths reflect what they actually believe:
"The testers don't know what they're doing." [They estimated it would take two weeks, but found incomplete code and so many bugs it has taken six, and they're not done yet.]

"Our mature test process employs all the industry best practices." [Major bugs frequently bring production systems down, but we have all the "right" testing documentation.]

"Total test automation will make testing much faster and more efficient, and we can save on expensive labor costs." [We haven't thought about who will design the automated tests, and we have no idea what it will take to maintain them.]
Deceptions Testers are Pressured to Practice
Testing can be the first place where cracks in a project appear. The light we shine on product quality isn't always welcome, especially when it illuminates a midden full of problems.

Managers who have been hiding ongoing quality issues, or deceiving themselves into not seeing them, can be thrown into a panic by test results that show poor product quality. Some will be tempted to skew the results they report upwards, putting strong pressure on testers to misreport their findings—to show testing progress or product quality as better than it is:
"We have to get creative about these numbers." [And paint a false picture.]

"We can call more of these tests passed." [Although they have failed, or perhaps not even been run.]

"The rest of the project is status green. Testing needs to be green, too." [Though it clearly isn't.]
These are some of the things testers will hear from managers who want them to lie.

Deceptions Practiced by Testers
Testers are no more immune than anyone else to temptations to fool ourselves and others about testing. We can easily succumb to the belief that we are doing the right thing—or the only possible thing—when we have blinkered ourselves to other possibilities. And we too like to believe that:
"We're going to make it!" [Whatever "it" is—often an impossible date with impossible scope.]
Have you ever exaggerated the testing risks to get the time you thought you'd need for testing? Or padded your estimates because you "knew" you'd need contingency you couldn't get into the schedule otherwise? How about overplaying test coverage or inflating the efficacy of your team's ability to find bugs with your testing process?

Or maybe you downplayed a material fact. At a workshop I conducted recently on testing deceptions, testers said they frequently ignored bugs that were "out of [their] scope," saving time in reporting by convincing themselves that these bugs weren't important enough to bite somebody sometime.

Testers' deceptions are no less damaging—to the software and themselves—than any other kinds of deception.

What Can We Do about Testing Deceptions?
In every case, the answer is the same: Ascertain the facts, and tell the truth. That's simple to say, but of course it isn't always easy to do. Combating the self-deceptions of others can be particularly difficult. And people, especially managers, can have a lot invested in what they've said. But we have to try.

Here are some steps to help avoid deceptions:
  • Find out the facts, preferably before a deception occurs. Those facts might be about the software quality, the pros and cons of test automation and the various options available, or why the product quality is holding up the testing—and therefore holding up the project.
  • Present the facts straightforwardly and unemotionally.
  • Never give in to pressure to lie.
  • Be scrupulous in our own thinking and communications about testing. That means being open about our thinking and planning, and reporting the risks and problems we find.
Testers are paid to provide information about software quality. It's our job to tell the truth about testing and to see that misconceptions aren't proliferated.

What's your experience with deceptions or self-deceptions in testing? Have you ever fooled yourself—or maybe even consciously deceived? Have you had to address deceptions proffered by others? How would you advise your fellow-testers to deal with deceptions?


About the Author
Fiona Charles is a Toronto-based test consultant and manager with thirty years of experience in software development and integration projects. Fiona is the editor of The Gift of Time, featuring essays by consultants and managers of various professions about what they've learned from Gerald M. Weinberg. Through her company, Quality Intelligence, Inc., Fiona works with clients in diverse industries to design and implement pragmatic test and test management practices that match their unique business challenges. Her experiential workshops facilitate tester learning by doing, either on the job or at conferences. Contact Fiona via her Web site at www.quality-intelligence.com.

Back to Top
 
 

Member Comments
Add Your CommentExpand Comments
 
Comment:    
by Madeleine Sherratt 7/5/2010

After having read the article one question sprung immediately to mind: which is more dangerous to the testing effort; deception or self-deception? My instinct, as always, is to reflect on the self!

Sartre: ". . . the one to whom the lie is told and the one who lies are one and the same person."

Ridiculous as it sounds, I have caught myself at it too many times. The reason I catch myself lying to myself is very simple. It is to escape something fearful; a choice. And choice comes with responsibility. And responsibility is frightening especially on a large project. A serious problem occurs when everyone is at the...Read On

 
 
Comment:    
by Peter Hawkins 6/8/2009

Hi,

It is a tremendous validation of the pressures that we face as test professionals and a significant reason for the over-run and failure of projects. A good friend of mine said that the deception and self deception that we encounter in our professional lives as testers is symptomatic of the success at any cost attitude that has, in part, led to the current economic crisis that we all currently face. The constant pressure on those who identify risks their severity and likely impact, the bullying of those who are deemed "negative" can often make those in our profession as well as similar professions feel somewhat marginalised. ...Read On

Author's Response:
6/10/2009    
Hi Peter. Thanks for your comments. I think your friend has a good point about deception and self-deception being symptomatic of the greater ethical problem in society. We want too much, too fast. And too many of us can't tolerate delay or uncertainty.

 
 
Comment:    
by Modesto Hernandez 6/5/2009

Fiona, I learned from a common friend of ours that regardless of what (deceiving) "games" are played in a project, everyone has options to join in or not give in to pressure to participate in the deceptions. That's what I share with other testers in my teams.

Also, regardless of how the project team chooses to deceive itself about the quality of the product they are delivering, the customer is the ultimate judge.

"You can fool some of your CUSTOMERS all of the time, and all of your CUSTOMERS some of the time, but you cannot fool all of your CUSTOMERS all of the time."

Author's Response:
6/5/2009    
Hi Modesto. Thanks for your comments. Jerry Weinberg (I assume that’s who you’re referring to) is exactly right. We always have options about whether or not to participate. And deceptions about quality rarely convince our customers or anyone else for long.

To me, the key is awareness. People fool themselves in all sorts of ways, but one of them is in not developing the habit of questioning their own or others’ assumptions, premises, and conclusions. We need to be constantly on the watch for too-easy answers—which often turn out to be self-serving and short-sighted. And we have to be careful not to get sucked into groupthink. (It's not a requirement for a "good team player".)

But we also need to be prepared with facts to combat deceptions that are imposed on us by other people, like managers who are convinced that total test automation is the answer to all of the company’s testing problems, or programmer leads who complain loudly that testing is holding up the project. In those cases, it isn’t nearly enough to exercise our options and refuse to play the deception game. It’s a good start, though.


 
 
Comment:    
by Dorothy Graham 6/3/2009

So true, Fiona - alas!

As human beings, we have an amazing capacity to deceive ourselves, which is quite scary. It is normally based on fear, in the workplace these days, often on fear of losing our job if we don't "play the game". Our deceptions are "cognitive illusions" - like the optical illusions that can fool our eyes.

A great book that explains how the brain fools itself is "Vital Lies, Simple Truths" by Daniel Goleman.

Author's Response:
6/3/2009    
Dorothy, thanks for your comment and especially for the Goleman book reference. I think deceptions are often triggered also by management’s quest for certainty when certainty isn’t possible. Pushed for answers they can’t honestly give, many people will fool themselves into believing they really can give management what it’s demanding, and come up with false certainties to fulfill that demand.

 
 
Comment:    
by Ed Weller 6/2/2009

Nice summary of all the nasty things we do to our projects.

There is another self-deception practiced (often unintentionally) by developers, testers, and management: We must get the product out by xxx "to survive", and as a result all data is looked at(rationalized) with rose colored glasses. Although there is no evil intent when this happens, there sure are evil consequences.

I always get wry amusement when delays in shipping are blamed on test (I spent 10 years in test - part as a manager) when a simple backlog chart would clearly indicate what the problem is.

Author's Response:
6/3/2009    
Thanks for your comment, Ed. The survival myth is indeed a potent one, with pernicious effects that I’ve seen on several projects.

A backlog chart or a survey report like the one I described in “Surveying the Terrain” should be all that’s needed to show what’s really going on. That’s why it’s important for testers and test managers to keep these kinds of records up-to-date, and have them ready to show when people start getting silly and blaming test for release delays.


 
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


Seapine




STARWEST 

Agile Development Practices