Friday, 13 June 2008

What’s a Software Bug?

If you ask this question to a software developer, you might get the answer …

"One man’s bug is another man’s feature"

Not everyone’s a software developer though, some people actually pay money for software and are called “customers”. Customers take a different view. They might say:

"This bug makes me not want to buy your software"

… or, perhaps worse …

"I wish I’d never bought this software"

There is a class of problem which everyone will agree is a bug – software developers and customers. These problems usually involve software crashing or refusing to run. To summarise, there are two main types of software bug or problem:-

  1. Something doesn’t work the way the user expects (or wants).
  2. Under certain conditions the software crashes and stops working.

By performing thorough testing of software before releasing it to customers, the number both types of problem can be minimised. If you want to sell software, conducting a proper and thorough testing phase prior to every release is essential.

To reduce the likelihood of the different types of software issues, different types of testing need to be performed.

To eliminate type 1, detailed step-by-step testing of the software needs to be performed. For small software development products or teams, thorough black box testing should suffice. This means that all features of the software should be exercised with a range of possible data and inputs to see if any problems occur.

To eliminate type 2, beta testing must be performed. Beta testing involves asking people outside the development team (or even company) to evaluate the features to see how useful and usable they are.

No comments: