Page 187 - DCAP405_SOFTWARE_ENGINEERING
P. 187

Software Engineering




                    Notes          Using this expanded definition, there are a number of products of the software development
                                   process that should be tested including:

                                       Requirements models
                                       Analysis and design models
                                       Architectural models
                                       Individual components
                                       Integrated system code
                                   In fact, there should be a testing activity associated with each step in the development process.
                                   Adding the testing of models will find some faults earlier in the development process resulting
                                   in cheaper repair costs.
                                   Although these products most often will be tested to determine their correctness, testing may be
                                   used to investigate a variety of attributes including:
                                       Performance
                                       Usability

                                       Robustness
                                       Reusability
                                       Extensibility
                                       Flexibility.
                                   The testing perspective is an attitude that questions the validity of every product and utilizes a
                                   thorough search of the product to identify faults. Systematic algorithms and intuitive insights
                                   guide this search. It is this systematic search that makes testing a more powerful tool than
                                   reviews and inspections. A review will almost never find something that isn’t there. That is, a
                                   review typically only seeks to validate what is in the model and does not systematically search
                                   to determine if all the entities and relationships that should be there are. The testing perspective
                                   requires that a piece of software demonstrate that it is performing as its complete specification
                                   indicates that it should (and that there is no extra behavior). A product is tested to determine that
                                   it will do what it is supposed to do (a positive test). It should also be tested to ensure that it does
                                   not do what it is not supposed to do (a negative test). This leads to the need to define the
                                   parameters of the search.
                                   Test cases are created as part of the testing process to direct the search. A test case presents a
                                   context in which the software is to operate and a description of the behavior expected from the
                                   software within that context. In most traditional testing situations the context is an operational
                                   one in which the software is executed to determine its actual behavior.




                                     Notes  If the product under test is a model rather than actual code, the test case may contain
                                     a textual description of the context as well as some specific input values.

                                   The testing perspective may be adopted by the same person who developed the product under
                                   test or by another person who brings an independent view of the specification and the product.
                                   Developer-led testing is efficient since there is no learning curve on the product under test, but
                                   it can be less effective because the developer may not search as exhaustively as the independent
                                   tester. The completeness and clarity of the specification becomes very important when a second
                                   person becomes involved in the testing. If a tester is not given a specification, then any test result
                                   is correct!



          180                               LOVELY PROFESSIONAL UNIVERSITY
   182   183   184   185   186   187   188   189   190   191   192