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
   6   7   8   9   10   11   12   13   14   15   16