Page 185 - DCAP405_SOFTWARE_ENGINEERING
P. 185

Software Engineering




                    Notes          didn’t work for previously. But its behavior on pre-error test cases that it passed before can no
                                   longer be guaranteed. To account for this possibility, testing should be restarted. The expense of
                                   doing this is often prohibitive.

                                       !
                                     Caution  Regardless of the limitations, testing is an integral part in software development.
                                     It is broadly deployed in every phase in the software development cycle.
                                   Typically, more than 50 percent of the development time is spent in testing. Testing is usually
                                   performed for the following purposes:
                                   11.1.1 To Improve Quality


                                   As computers and software are used in critical applications, the outcome of a bug can be severe.
                                   Bugs can cause huge losses. Bugs in critical systems have caused airplane crashes, allowed space
                                   shuttle missions to go awry, halted trading on the stock market, and worse. Bugs can kill. Bugs
                                   can cause disasters. The so-called year 2000 (Y2K) bug has given birth to a cottage industry of
                                   consultants and programming tools dedicated to making sure the modern world doesn’t come
                                   to a screeching halt on the first day of the next century. In a computerized embedded world, the
                                   quality and reliability of software is a matter of life and death.
                                   Quality means the conformance to the specified design requirement. Being correct, the minimum
                                   requirement of quality, means performing as required under specified circumstances.
                                   Debugging, a narrow view of software testing, is performed heavily to find out design defects
                                   by the programmer. The imperfection of human nature makes it almost impossible to make a
                                   moderately complex program correct the first time. Finding the problems and get them fixed, is
                                   the purpose of debugging in programming phase.

                                   11.1.2 For Verification & Validation (V&V)

                                   Just as topic Verification and Validation indicated, another important purpose of testing is
                                   verification and validation (V&V). Testing can serve as metrics. It is heavily used as a tool in the
                                   V&V process. Testers can make claims based on interpretations of the testing results, which
                                   either the product works under certain situations, or it does not work. We can also compare the
                                   quality among different products under the same specification, based on results from the same
                                   test.
                                   We can not test quality directly, but we can test related factors to make quality visible. Quality
                                   has three sets of factors – functionality, engineering, and adaptability. These three sets of factors
                                   can be thought of as dimensions in the software quality space. Each dimension may be broken
                                   down into its component factors and considerations at successively lower levels of detail. The
                                   table below illustrates some of the most frequently cited quality considerations.

                                                       Table 11.1: Typical Software Quality Factors

                                        Functionality (exterior   Engineering (interior quality)   Adaptability (future quality)
                                             quality)
                                     Correctness             Efficiency               Flexibility
                                     Reliability             Testability              Reusability
                                     Usability               Documentation            Maintainability
                                     Integrity               Structure






          178                               LOVELY PROFESSIONAL UNIVERSITY
   180   181   182   183   184   185   186   187   188   189   190