Page 188 - DCAP405_SOFTWARE_ENGINEERING
P. 188

Unit 11: Testing Strategies




          11.1.4 Problems in Testing                                                            Notes

               Software Testing is a critical element of Software Quality Assurance
               It represents the ultimate review of the requirements, specification, the design and the
               code.

               It is the most widely used method to ensure Software Quality.
               For most software, exhaustive testing is not possible.

               Many organizations spend 40-50% of development time in testing.
               Testing is the most expensive way to remove defects during software development.
               Problems in testing are one of the major contributors to cost and scheduled overruns.

          11.1.5 Testing Objectives


          Which ones should we test?

          One of the most intense arguments in testing object-oriented systems is whether detailed
          component testing is worth the effort. That leads me to state an obvious (at least in my mind)
          axiom: Select a component for testing when the penalty for the component not working is
          greater than the effort required to test it. Not every class will be sufficiently large, important or
          complex to meet this test so not every class will be tested independently.
          There are several situations in which the individual classes should be tested regardless of their
          size or complexity:
               Reusable components: Components intended for reuse should be tested over a wider
               range of values than a component intended for a single focused use.

               Domain components: Components that represent significant domain concepts should be
               tested both for correctness and for the faithfulness of the representation.
               Commercial components: Components that will be sold, as individual products should be
               tested not only as reusable components but also as potential sources of liability.

          11.1.6 Scope of Software Testing

          A primary purpose for testing is to detect software failures so that defects may be uncovered and
          corrected. This is a non-trivial pursuit. Testing cannot establish that a product functions properly
          under all conditions but can only establish that it does not function properly under specific
          conditions. The scope of software testing often includes examination of code as well as execution
          of that code in various environments and conditions as well as examining the quality aspects of
          code: does it do what it is supposed to do and do what it needs to do. In the current culture of
          software development, a testing organization may be separate from the development team.
          There are various roles for testing team members.



             Did u know? What is the role of information derived from the software testing?
             Information derived from software testing may be used to correct the process by which
             software is developed.






                                           LOVELY PROFESSIONAL UNIVERSITY                                   181
   183   184   185   186   187   188   189   190   191   192   193