Tuesday, September 21, 2010

Software bug and their common types

In programming, errors or flaws are of common occurrence, at least in the software or application development stage. The effect of the error is dependable on the magnitude of the error; while some errors are minor in nature, some can cause high levels of inconvenience to the user. In the field of web and software development, bugs are more common to occur because the codes are developed ingeniously and in a way, are new or different from what already exists. Bugs do occur in programming of software, general applications and web application development too. Various bug management and prevention techniques are employed by web & software development services to tackle bugs.

What is a software bug?

A software bug is a flaw, error, failure, fault or mistake in a program that compels it to produce undesired or incorrect results i.e. prevent it from functioning as it should. There are various reasons for software bugs to arise in a program. Majority of bugs arise from the human flaws, ignorance or mistakes done in the program̢۪s source code or in the design of the program. However, bugs can also arise due to incorrect code produced by the compilers.

Any program that contains a large number of bugs and has its functionality disrupted due to it is said to be buggy. Bug reports are reports detailing such bugs and are useful to identify and rectify the bug.

The common types of computer bugs


The common types of software bugs include:
* Bugs due to conceptual error: E.g. syntactically incorrect program, wrong or inappropriate design or concept employed.
* Math bugs: E.g. Division by zero, arithmetic overflow or underflow, lack of arithmetic precision due to rounding etc.
* Logic bugs: E.g. infinite loops and infinite recursion.
* Syntax bugs.
* Resource bugs: e.g. Buffer overflow, access violations, usage of an uninitialized variable.
* Co-programming bugs: E.g. concurrency errors, deadlock, race condition.
* Team-working bugs: E.g. non-matching of documentation and product, out-of-date comments etc.

Various measures have been taken by programmers worldwide to prevent human errors and thus, bugs to as minimal as possible. The last option left out is to debug the program on the occurrence of undesirable results.