What is a bug? Why do bugs occur?
A software bug may be defined as a coding error that causes an
unexpected defect, fault, flaw, or imperfection in a computer program.
In other words, if a program does not perform as intended, it is most
likely a bug.
There are bugs in software due to unclear or constantly changing
requirements, software complexity, programming errors, timelines,
errors in bug tracking, communication gap, documentation errors,
deviation from standards etc.
· 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 be linked to the other
modules or components in the software. Overlooking such issues causes
bugs.
· 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, re-opened, not
accepted, ignored etc goes on increasing.
|