Saturday, June 09, 2007

Bug or Enhancement?

Here is a question for you: If you have a report - it can be a report about anything. Where there are enough records for the report to have multiple pages everything is fine - headers and footers are correct, page numbering is correct, there are exactly the number of pages required to show the data, etc. However, if there is only enough data for one page, then the report always prints two pages. The headers and footers are correct. The page number on page one says 1 of 2 and he page number on the second page says 2 of 2; but page two is completely blank except for the header and the footer information. Get the picture?

So let's say you want to change the report so that only one page prints when there is just enough data for the first page. Would you call this request to change the report enhancement request or a bug report?

I've been asking this question to several people. Here are the answers I've received:

A senior director of quality (that's not me) said a bug.
A software engineer / developer said a bug.
An administrative assistant with no IT background said a bug.
A naturalist said a bug.
A licenced, practicing MSW with no IT background said a bug.
A seven year old said a bug.
I say a bug.

It seems we have a consensus building around a bug. Right? Wrong!

I spent more than an hour arguing this point with a group of approximately 24 senior software quality engineers and their managers. Here is their rational... There is no requirement that explicitly states the report shall have just enough pages to print the data required on the report. Therefore, the second page of the report is a feature and changing that feature is an enhancement request.

My counter argument is that there is no requirement that the report be exactly two pages. There IS a requirement that report be CORRECT. The blank second page adds no value, is confusing because the user may be expecting data on the page, if you purchased any commercial software package that printed extra pages you would automatically assume the software was defective. Therefore, there is an implied requirement stemming from the "shall be correct" requirement that there will not be extra pages and therefore this is a bug.

I finally gave up... they agreed to make sure the report printed the way I wanted it printed but they never really understood why. The darned thing is still being called an enhancement. At this point, all I care about is having the report print correctly.

As an aside, I discovered another scary little fact. Here is another test for you... If you have a requirement that a field could only contain certain numbers - for example let's say the only valid values for this field were 1 through 10. How would you validate that this field were working correctly?

If I were writing the test cases I would check the following values: 0, 1, 2, 9, 10, and 11. It is commonly know in the software industry that in this type of situation the boundaries are the most areas where mistakes occur. I would test 0 and 11 to ensure the appropriate error messages are displayed. The other values I would test to ensure they were accepted as required.

During my little report discussion I discovered that the senior software engineers in question do not test 0 and 11 because there is no requirement for 0 and 11. The requirement is 1 - 10 so they do not see the value in testing 0 and 11.

If this weren't my life I wouldn't believe me!

1 Comments:

Blogger kate said...

Sounds like those senior techie types were suffering from a serious case of CYA.
My condolences! I'm glad that, in the end, they did what you wanted. Frustrating, though!

12:25 PM  

Post a Comment

<< Home