* Unclear software requirements are due to miscommunication as to what the software should
or shouldn’t do. In many occasions, the customer may not be completely clear as to how the
product should ultimately function. This is especially true when the software is a developed for
a completely new product. Such cases usually lead to a lot of misinterpretations from any or
both sides.
* Constantly changing software requirements cause a lot of confusion and pressure both on the
development and testing teams. Often, a new feature added or existing feature removed can
* Also, fixing a bug in one part/component of the software might arise another in a different or same component. Lack of foresight in anticipating such issues can cause serious problems and
increase in bug count. This is one of the major issues because of which bugs occur since
developers are very often subject to pressure related to timelines; frequently changing
requirements, increase in the number of bugs etc.
* Designing and re-designing, UI interfaces, integration of modules, database management all
these add to the complexity of the software and the system as a whole.
Fundamental problems with software design and architecture can cause problems in
programming. Developed software is prone to error as programmers can make mistakes too.
As a tester you can check for, data reference/declaration errors, control flow errors, parameter
errors, input/output errors etc.
* Rescheduling of resources, re-doing or discarding already completed work, changes in
hardware/software requirements can affect the software too. Assigning a new developer to the
project in midway can cause bugs. This is possible if proper coding standards have not been
followed, improper code documentation, ineffective knowledge transfer etc. Discarding a
portion of the existing code might just leave its trail behind in other parts of the software;
overlooking or not eliminating such code can cause bugs. Serious bugs can especially occur
with larger projects, as it gets tougher to identify the problem area.
* Programmers usually tend to rush as the deadline approaches closer. This is the time when
most of the bugs occur. It is possible that you will be able to spot bugs of all types and
severity.
* Complexity in keeping track of all the bugs can again cause bugs by itself. This gets harder
when a bug has a very complex life cycle i.e. when the number of times it has been closed, reopened,not accepted, ignored etc goes on increasing.
This article is copyright
Source: http://egrovesystems.articlealley.com/definition-of-software-bug-why-its-occur--by-egrove-systems-1716940.html