Page 11 - SOFTWARE TESTING & QUALITY ASSURANCE
P. 11
Software Testing and Quality Assurance
Some of the common types of software bugs include the following:
1. Bugs due to conceptual error
Incorrect usage of syntax in the program, misspelled keywords, using wrong or
improper design or concept.
2. Math bugs
Divide by zero error, overflow or underflow, lack of precision in arithmetic
values due to incorrect rounding or truncation of decimal values.
3. Logical bugs
Infinite loops, infinite recursion, applying wrong logic, incorrect usage of jump
or break conditions.
4. Resource bugs
Stack or buffer overflow, access violations, using variables that are not
initialized.
5. Co-programming bugs
Concurrency errors, deadlock, race condition.
6. Team working bugs
Out of date comments, non-matching of documentation or files, linking the
program to incorrect files.
Reasons for Occurrence of a Bug
Bugs can occur in a program due to many reasons. Some of the common reasons that may cause bugs in
software are:
1. Human Factor: The developer who develops the software is human and there is always a chance
that some error, incorrect usage of logic or syntax or improper linking of files might occur. Since
the entire software development process involves humans, it is prone to errors.
2. Communication Failure: The lack of communication or communicating incorrect information
during the various phases of software development will also lead to bugs. Lack of
communication can happen during various stages of Software Development Life Cycle
(Requirements, Design, Development, Testing, and Modification). Many bugs occur due to lack
of communication when a developer tries to modify software developed by another developer.
The requirements defined in the initial phase of the Software Development
Life Cycle may not be properly communicated to the team that handles the
design of the software. The design specifications that reach the development
team may be incorrect, which could lead to occurrence of bugs in the software.
3. Unrealistic Development Timeframe: Sometimes developers work under tight schedules, with
limited or insufficient resources, and unrealistic project deadlines. Compromises are made in the
requirements or design of the software in order to meet the delivery requirements. Most of the
time, it leads to wrong understanding of the requirements, inefficient design, improper
development, and inadequate testing.
4. Poor Design Logic: During complex software development, some amount of R&D and
brainstorming has to be done to develop a reliable design. It is also important to choose the right
components, products and techniques for software development and testing during the design
phase. If there is any lack of proper understanding in the technical feasibility of the components,
products, or techniques in the development process, it may cause bugs in the software that is
being developed.
4 LOVELY PROFESSIONAL UNIVERSITY