Thursday, February 14, 2008

Bug of the month?

Some software defects are tough to discover. Others are difficult to describe. Yet some defects are just delightful.

After a week of convincing a programmer that the user should know when the software he is working on cannot perform one of its important functions, he went ahead and created an error message. However, the error message was rather laconic and, I should say, self contradicting: it said "Error: OK". When the Test Engineer raised objections regarding the contents of the error message, the response was even more puzzling: the developer claimed that he had been told to output system's original error message, which he did...


Technorati tags: ,

Wednesday, February 13, 2008

Logic in Life and Software

Logic is a great thing. Arguably, the anchor of our mental health. Think about it: the logic, and mathematics as its subsection, describe the world the one and only way it can be. 2+2 is always 4; we cannot imagine a world in which 2+2 is 3, 5 or !@#$%.

Many things, though, are not bound by logic. One of them is the content of our speech. Recently one of the presidential candidates (guess who?) suggested that the government much track illegal immigrants. This statement triggered a loud applause of his excited audience, so this remarkable man continued his line of wisdom with the following: if the government cannot track illegal immigrants, this task should be outsourced to FedEx or UPS. After all, they track millions of packages every day... Even if we leave aside the moral aspects of this comparison, after a second or two of applying our innate capacity for logical thinking to this comparison we would see that the suggestion for the government to track illegal immigrants is akin to a statement that UPS and FedEx should track packages that have never been delivered through them.

Unfortunately, software requirements are as free from logical constraints as speech is. Throughout my career in software Quality Assurance and Testing I was confronted with requirements that contradict each other and even themselves.

The point of QA is not only to catch defects when they make it into a code. If we wish to be called Analysts and not Testers, we should conduct Requirements Reviews, apply our logic and try to find contradictions before they make it into the code. It’s usually quite simple: after all, there is a difference between QA Analyst and a cheering crowd :).




Technorati tags: , ;, , ,