Page 291 - DCAP305_PRINCIPLES_OF_SOFTWARE_ENGINEERING
P. 291

Unit 14: Flow Based Testing Process



            A particular challenge is frequently the definition of the predictable result of a test; i.e., the   Notes
            identification  of  one  or  more  test  oracles  that  can  be  used  for  the  test.  In  identifying  the
            expected result, testers are concerned not only with outputs on the screen, but also with data
            and environmental post-conditions.
            If  the  test  basis  is  clearly  defined,  this  may  theoretically  be  simple.  However,  test  bases  are
            often vague, contradictory, lacking coverage of key areas,  or plain missing.  In such cases, a
            tester must have, or have access to, subject matter expertise. Also, even where the test basis is
            well specified, complex interactions of complex stimuli and responses can make the definition
            of expected results difficult, therefore a test oracle is essential. Test execution without any way
            to determine correctness of results has a very low added value or benefit, generating spurious
            incident reports and false confidence in the system.
            The activities described above may be applied to all test levels, though the test basis will vary.
            For example, user acceptance tests may be based primarily on the requirements specification,
            use cases and defined business processes, while component tests may be based primarily on
            low-level design specification.
            During the development of test conditions and test cases, some amount of documentation is
            typically performed resulting in test work products. A standard for such documentation is found
            in IEEE 829. This standard discusses the main document types applicable to test analysis and
            design, Test Design Specification and Test Case Specification, as well as test implementation.
            In practice the extent to which test work products are documented varies considerably. This
            can be impacted by, for example:

               1.  Project risks (what must/must not be documented)
               2.  The “value added” which the documentation brings to the project
               3.  Standards to be followed
               4.  Lifecycle model used (e.g. An agile approach tries to minimize documentation by ensuring
                 close and frequent team communication)
               5.  The requirement for traceability from test basis, through test analysis and design.

            14.4 Execution and Analysis

            Execution testing determines whether the system achieves the preferred level of proficiency in
            a production position. Execution testing can confirm response times, turnaround times, as well
            as design performance. The execution of a system can be tested in whole or in part, using the
            actual system or a simulated model of a system.
            14.4.1 Objectives

            Execution testing is used to determine whether the system can meet the specific performance
            criteria. The objectives of execution testing include:

               1.  Determine the performance of the system structure.
               2.  Verify the optimum use of hardware and software.
               3.  Determine the response time to online user requests.
               4.  Determine transaction processing turnaround time.

            14.4.2 How to Use?

            Execution testing can be conducted in any phase of the system development life cycle. The
            testing can evaluate a single aspect of the system, for example, a critical routine in the system,



                                             LOVELY PROFESSIONAL UNIVERSITY                                   285
   286   287   288   289   290   291   292   293   294   295   296