The Detouring Heuristics
发表于四月 28, 2012
One of the most important conceptions in testing is “test oracle”. An oracle is a heuristic mechanism by which we find problems (By Michael Bolton). Then what is heuristics? Again, by Michael Bolton:”Heuristic is a faulible way of soving a problem and making a decision.” There are many kinds of heuristics used in testing, like focusing heuristics and defocusing heuristics, branching and backtracking heuristics, etc. You can find more on James Bach’s blog website.
Every one can invent his/her own heuristics, if only this improves the testing. Here is one I invented and I called it “The detouring heuristics”.
During testing, when you want to trigger something to happen, but the current situation (maybe an abnormal situation caused by some bugs) prevents you from doing that, you will be actively thinking of different other ways trying to trigger that action.
It’s just like you will try to find other possible ways when you driving to the office in the rush hour. Maybe the route ahead is in a traffic jam, or there is an accident ahead, you will try other ways to get to your office.
For example, when I make a large word2007 file with 32767 pages (by the way, there is a bug here, the largest page number showed at the bottom of the page is -32768), I can’t see the page header and page footer, the system automatically only show its common view rather than the page view. But I need to check whether the page header and footer are right. So I try a variety of different ways, like trying to print the last page to see the print preview; try to insert another kind of page header format, etc. So now I’m using the detouring heuristics.
Another example, when I test the team label in a website, I try to search the team “MiniStar”. Since I know there is such a team (I found this team after all.), but I just can’t successfully search the result. I don’t know why. So I tried to search it from the “team search bar”, and from “testing label”, from the “team content searching”, and from the team owner’s team charge list, etc. Again, I’m using the detouring heuristics now.
Just like other heuristics, when you know you’re using a certain kind of heuristics during the process of your testing, you know your testing mind! And knowing your testing mind is the very first and the most important step in improving your testing effectiveness. I talked all about this point in my course “Knowing your testing mind.”