Page 28 - SOFTWARE TESTING & QUALITY ASSURANCE
P. 28

Unit 2: Fundamentals of Software Testing



               Axiom 4
               The more bugs you find, the more bugs there are.
               Bugs in real life and bugs in software are very much alike. They come in groups and when you happen
               to accidentally notice one of them, there are possibilities of finding another one very soon. Most often a
               tester finds a bug only after long hours of testing, and when he/she encounters one of the bugs, he/she
               would soon find another one too.
               The reason for finding bugs at frequent intervals could be due to programmer’s errors, where mistakes
               often are repeated or different programmers handling a module may have different habits of coding.
               Bugs are considered to be the tip of the ice berg but  can cause huge problems to architecture of the
               software. However, the inverse of the same is also very true. If you do not find a bug, it is clear that
               there are indeed no bugs and that the software has indeed been written well.
               Axiom 5

               Not all bugs found will be fixed.
               The reality about software testing is that, in spite of all the effort put in to find a bug, it might not be
               fixed. Hence, it is required that software testers to have good judgmental skills and make trade-offs,
               risk-based decisions for every bug they find.

               The reasons why all bugs cannot be fixed are:
                     (a)  There’s  Not  Enough  Time:  Every project has several software features where only few
                         people are involved in coding and testing and hence it becomes difficult to adhere to
                         stringent time schedules to complete assigned tasks.
                     (b)  It's  Really  Not a  Bug:  A  bug found need not be a bug but  could turn out to be  its
                         characteristic feature. There are possibilities of mistaking features as bugs.
                     (c)   It's Too Risky to Fix: Most often, it has been found that it is indeed very risky to fix bugs.
                         One should first fix the bug which might cause other bugs to appear and it is also necessary
                         to ensure that last moment  changes of software do not  occur  during the release of  a
                         product.
                     (d)  It's Just Not Worth it: Some of the bugs which affect the fringe features are dismissed.
               Axiom 6
               It is difficult to say when a bug is indeed a bug.
               We need to analyze the following:
                     (a)  When a problem in the software is not discovered - is it a bug?
                     (b)  Is it necessary for a bug to be observable?


               Did you Know?   The bugs which remain undiscovered and exist in a system for over a period of time
                             may exist for more than one version and there are also possibilities of the bug being
                             identified after the release. This is known as latent bug.  A latent bug does not cause
                             damage for some time, however; they reveal themselves at a later point of time.

                                  The Y2K problem is the best example of a latent bug. Initially the beginning of
                                  the year was allocated with only two numeric fields, when it actually required
                                  four numeric fields. This problem existed as a latent bug in the system without
                                  causing any damage; however the problem was identified and fixed before the
                                  year 2000.








                                        LOVELY PROFESSIONAL UNIVERSITY                           21
   23   24   25   26   27   28   29   30   31   32   33