Page 264 - DCAP305_PRINCIPLES_OF_SOFTWARE_ENGINEERING
P. 264

Principles of Software Engineering



                   Notes         13.1.3 Errors
                                 One  common  definition  of  a  software  error  is  a  mismatch  between  the  program  and  its
                                 specification. A mismatch between the program and its specification is an error in the program
                                 if and only if the specification exists and is correct. A software error is present for when the
                                 program does not do what its end user reasonability expects to do.

                                 Categories of Software Errors
                                    •  User interface errors, such as output errors, incorrect user messages
                                    •  Function errors
                                    •  Defect hardware
                                    •  Incorrect program version
                                    •  Testing errors
                                    •  Requirements errors
                                    •  Design errors
                                    •  Documentation errors
                                    •  Architecture errors
                                    •  Module interface errors
                                    •  Performance errors
                                    •  Error handling
                                    •  Boundary related errors
                                    •  Logic errors

                                    •  calculation errors
                                    •  State based behaviour errors
                                    •  Communication errors
                                    •  Program structure errors, such as control flow errors
                                 Most programmers are rather cavalier about scheming the quality of the software they write.
                                 They bang out some code, run it through some fairly obvious ad hoc tests, and if it seems okay,
                                 they are done. While this approach may work all right for small, personal programs, it does not
                                 cut the mustard for professional software development. Modern software engineering practices
                                 include considerable effort directed toward software quality assurance and testing. The idea, of
                                 course, is to produce completed software systems that have a high probability of satisfying the
                                 customer’s needs. There are two ways to deliver software free of errors. The first is to prevent
                                 the introduction of errors in the first place. And the second is to identify the bugs lurking in
                                 our code, seek them out, and destroy them. Obviously, the first method is superior. A big part
                                 of software quality comes from doing a good job of defining the requirements for the system
                                 we are building and designing a software solution that will satisfy those requirements. Testing
                                 concentrates on detecting those errors that creep in despite our best efforts to keep them out.

                                 13.1.4 Fault
                                 A software fault is an erroneous portion of a software system which may cause failures to occur
                                 if it is run in a particular state, or with particular inputs. There are many universal statements
                                 that a tester will come across in the course of their career, some true Testing can only prove
                                 the presence of faults and not their absence, and some false “Developers must not test their
                                 own code”, Such statements may well be paraphrased quotes, the original source may not be
                                 known or presented, and the quote may be taken out of its original context. But they will be



        258                               LOVELY PROFESSIONAL UNIVERSITY
   259   260   261   262   263   264   265   266   267   268   269