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: Is There a Problem Here?


Viewing Item 1 of 1335


A StickyMinds.com Original

Is There a Problem Here?

By Michael Bolton

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

Summary: Suppose you were testing an application that you had never seen before with no time to prepare, no specification, no documentation, no reference programs, no prepared test cases, no test plan, and no other person to talk to. How do you know that what you are seeing is a bug?


Infosys
Suppose you were testing an application that you had never seen before with no time to prepare, no specification, no documentation, no reference programs, no prepared test cases, no test plan, and no other person to talk to. Can you test the product, recognize potential bugs, and assess their significance? I can.

This is the true story of how I tested a Web application without any preparation or test data--only the dates have been changed. Suppose today is June 1. I'm trying to book a flight to Europe for a conference that starts on October 22. I go to my airline’s Web site. The default departure date shown is June 8, a week from today; the default return date is June 15, one week later. I click the calendar icon. A calendar pops up showing the months of June and July. I navigate to the month of October, choose 21--the day before the conference--and close the calendar. The departure date now shows as October 21. I click the calendar icon for the return flight. The calendar shows June and July. I'm surprised.

I pause for a moment and ask, "Why am I surprised?" Is there a problem here? On a moment's reflection, I recognize a principle: Return dates for a round trip should be later than the departure date, and the calendar that the site offers should reflect that. I'm irritated. I click the "next month" link several times until I see October and November again. I choose November 3 as my return date--no point in going to Europe without touring for a few days after the conference. The return date now says November 3.

The return flight from Europe leaves at 3:00 p.m. and puts me back in Toronto at 5:00 p.m. I'm surprised again. I pause again and ask, "Is there a problem here?" I realize that because of time zone differences, an eight-hour flight appears to take only two hours. No problem. Then I remember that the same phenomenon works in reverse; flights to Europe are overnight, so I'm going to arrive in Europe early in the morning of October 22, the day the conference starts, but because of the red-eye flight, I'll be exhausted. I need to leave a day earlier, so I click the departure date's calendar again. It displays June and July. I'm surprised again.

Why am I surprised? Is there a problem here? My mental model suggests that the pop-up calendar should match the currently selected departure date. I click several times until I see October in the calendar. I'm annoyed again. I select October 20 as my departure date, dismiss the calendar, and click the button to search for available flights. The screen is replaced by another that says "Please wait while we find flights to fit your request." That screen stays there a long time--ten, twenty, thirty seconds. I'm impatient.

Why am I impatient? Problem or no problem? I don't know yet. I'd feel a little more reassured if there were some evidence of progress. Finally, a list of flights appears with a departure date of October 20 and a return date of October 27. I'm shocked. I never selected October 27 as my return date. I'm puzzled.

Why am I shocked and puzzled? Is there a problem here? I realize that when I changed my departure date, the software set my return date to exactly one week later. Is that what really happened? I'm curious. I navigate back to the date selection page, set the return date to November 3, and click Search. After another long delay, a list of itineraries appears with flights departing October 20 and (this time) returning November 3.

I look at the list. There are sixteen itineraries from which to choose. I don't understand how they're ordered. I'm confused. Why? Problem or no problem? After a little looking--I have to scroll to the bottom of the list--I see a very small set of radio buttons that allows me to rank the list by price, schedule, or price and schedule. Those buttons could be more prominent. I'm annoyed. Again.

Why annoyed? The people who designed and developed this site have been less than helpful at anticipating reasonable things that I might want to do. I click "Schedule." The 6:00 p.m. outbound flight is just the one I want. The return flight is at 10:00 a.m., and in the other itineraries, I can see an afternoon flight that I'd prefer. None of the other itineraries offers the same morning flight, though. There is apparently a link by which I can select outbound and inbound flights separately. I click the morning flight link that says "Choose this flight," anticipating a chance to choose inbound flights. I'm confronted with a page that says "No flights match your request." I'm flabbergasted. I'm amused. I'm curious. I go back to the previous page and click all of the "Choose this flight" links. Every one returns "No flights match your request." I'm frustrated. I'm getting angry. I also notice that there's a link at the top of the page that says "Canadian point of sale." I'm in Toronto; couldn't the software have sniffed my IP address and offered the Canadian site by default? I click the link, and I'm taken to the homepage for the site. Everything that I've done so far has been forgotten, and I have to start over from scratch. I'm furious.

Why am I furious? Is there a problem here? You bet. There are a lot of problems with this site, and my emotions are the first indicators. At every turn the site is delaying, confusing, frustrating, and annoying me--and amusing me, albeit not in a good way. Had I been a developer or tester of the site, I might have felt embarrassment, too.

A bug is something that bugs somebody who matters. Testers can't be sure that something will bug someone, and so we must apply heuristics--useful but fallible ways of solving a problem or making a decision. Oracles--heuristic principles or mechanisms by which we might recognize a bug--include comparable programs, documents, mathematical principles, personal experience, and people--"live oracles."

Emotional reactions are associated with a psychological and physiological phenomenon called "arousal," which is the state of becoming alert or awake. For good testers, emotional reactions are oracles--trigger heuristics that wake us up to the possibility of a problem. Although emotional reactions don't come with a guarantee, they can often aid our decisions about the existence or the significance of a problem.

We sometimes depend on logical and objective assessments of software at the expense of other ways of thinking--ways that include feeling. Most of the results that this system is returning are functionally correct, but that correctness doesn't matter when there are problems that interfere with the customers' goals. If we engaged emotions and empathy more often and more consciously, they would point us rapidly to things that are important to people. Try testing a program while simply pretending that we have some skin in the game.

Our customers constantly find bugs in our systems without any preparation, documentation, reference programs, or live oracles. Customers test the product by using it, and they recognize bugs and assess their significance and the associated value of our products. They can do that. So can we. {end}

Have you noticed your own emotional reactions as you're testing--or using--software or Web sites? Do you have a story about them?

Join the conversation below or start a new one in the Member Comments section.


About the Author
Michael Bolton lives in Toronto and teaches heuristics and exploratory testing in Canada, the United States, and other countries. He is co-author, with James Bach, of Rapid Software Testing and a regular contributor to Better Software magazine. Contact Michael at mb@developsense.com.

Back to Top
 
 

Member Comments
Add Your CommentExpand Comments
 
Comment:    
by David Oliver 1/28/2008

Hi Michael,
Thanks for the article.
Guess I'm not the only person to see those things.
David Oliver



 
 
Comment:    
by Atulesh Kumar 1/3/2008

I feel it is result of "Job Done Vs Job Done SMARTLY".
Work should be done keeping End-user in mind and it should give the comfortness. It happens and happend, Software Testers has reported the defect and rejected by the Developer because it has programmed that way.
In this case the developer has done his duty to develope the website and as per his/her code, the pop-up works fine. But if it is done smartly, you would not have faced such problem.
Thanks.

 
 
Comment:    
by Robert Vanderwall 1/1/2008

This article was well written and enjoyable. However, it seems to encourage testers to use emotion over logic. Emotional responses to violations in internal models can certainly be useful, however that response is predicated on the tester having such an internal model. Mr. Bolton was fortunate in that the application under test, even though it had no requirements, was familiar and he had a solid well grounded internal model already constructed. Many testers are not so fortunate.

Let me give an example from my own experience. I've been a SW tester for about 20 years, now, and many years ago, we were building a product based on...Read On

Author's Response:
1/2/2008    
>Thanks Michael, for a well written thought-provoking article.

And thank you, Robert, for some thought-provoking comments, as well as the kind words.

>This article was well written and enjoyable. However, it seems to encourage testers to use emotion over logic.

Can you identify where it says that?

>Emotional responses to violations in internal models can certainly be useful, however that response is predicated on the tester having such an internal model. Mr. Bolton was fortunate in that the application under test, even though it had no requirements, was familiar and he had a solid well grounded internal model already constructed. Many testers are not so fortunate.

In an actual test project, this isn't merely a matter of good luck. It also has a great deal to do with testers' management--and self-management. In my teaching and consulting, I've observed many occasions in which management focuses testers entirely on the functional correctness of the software, and not at all on other aspects of the system. Testers often make this imposition on themselves, too. As a group, toolsmiths in particular seem to vulnerable to this kind of self-imposed blindness.

Moreover, the online application that I was testing--an airline reservation system--did not have "no requirements". It had no written requirements document, available to me. It certainly had requirements, the foremost of which was to allow me to purchase a ticket quickly, easily, and conveniently. Some statement to that effect probably occurred as a preamble to the actual written requirements document--but was that statement tested? If it was tested, did anyone act on the testers' observations?

>In this application was a calculated field and when the testers looked at the field, it seemed reasonable. When the customer looked at the field, they thought it was correct as well. After several months in the field, we discovered that the field was, in fact, incorrect and had cost the company thousands of dollars. The problem was that we had no authoritative reference for the calculation. The customer had only a weak understanding of the calculation.

Yes. That's why I said that test oracles "include comparable programs, documents, mathematical principles, personal experience, and people--'live oracles.'" (That's my emphasis, there.) I also said "Although emotional reactions don't come with a guarantee, they can often aid our decisions about the existence or the significance of a problem." That's "aid", not "replace".

>While I certainly don't suggest that every (or even many) projects need heavy weight requirements documents, I do suggest that the formality cannot simply be discarded without some adequate substitute.

If you can point out the place where I suggest that other sources of oracles should be rejected, I'd appreciate it. I don't believe I suggested such a thing, and I'm puzzled that you would make the inference. It's not an uncommon kind of inference, but I still don't understand the thought process that leads to it. For example, one correspondent inferred from my last column that I was attacking documentation, when I was in fact attacking quantitative measures of things that can't be counted usefully.

>In summary, I agree with Boltons assertion that emotional responses can be helpful guides, but that the article inadequately relied the importance of strong domain knowledge.

Here's the puzzle that I'm trying to figure out: we can read volume after volume after volume of testing literature (and believe me, I've done it), and refers incessantly to functional correctness, domain expertise, falsifiability, and the like . The amount of attention paid to the human side of the equation--heuristics, emotions, usefulness, value--asymptotically approaches zero. I've never heard a complaint from anyone--except from a handful of students of Jerry Weinberg--about that imbalance. Why not?

Again, I do appreciate your comments.

---Michael B.


 
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