Page 246 -
P. 246

8.4   User testing  229



                                     Test          Test                        Test         Testing
                                    Criteria      Plan          Tests         Results       Report


                          Define         Plan         Derive         Run         Negotiate     Accept or
                        Acceptance    Acceptance    Acceptance    Acceptance    Test Results    Reject
                          Criteria      Testing        Tests         Tests                      System




                                       may  be  a  selected  group  of  customers  who  are  early  adopters  of  the  system.
                     Figure 8.11  The
                     acceptance testing  Alternatively, the software may be made publicly available for use by anyone who is
                     process           interested in it. Beta testing is mostly used for software products that are used in
                                       many different environments (as opposed to custom systems which are generally
                                       used in a defined environment). It is impossible for product developers to know and
                                       replicate all the environments in which the software will be used. Beta testing is
                                       therefore essential to discover interaction problems between the software and fea-
                                       tures of the environment where it is used. Beta testing is also a form of marketing—
                                       customers learn about their system and what it can do for them.
                                         Acceptance testing is an inherent part of custom systems development. It takes
                                       place after release testing. It involves a customer formally testing a system to decide
                                       whether or not it should be accepted from the system developer. Acceptance implies
                                       that payment should be made for the system.
                                         There are six stages in the acceptance testing process, as shown in Figure 8.11.
                                       They are:

                                       1.  Define acceptance criteria This stage should, ideally, take place early in the
                                          process before the contract for the system is signed. The acceptance criteria
                                          should be part of the system contract and be agreed between the customer and
                                          the developer. In practice, however, it can be difficult to define criteria so early
                                          in the process. Detailed requirements may not be available and there may be sig-
                                          nificant requirements change during the development process.
                                       2.  Plan acceptance testing This involves deciding on the resources, time, and
                                          budget for acceptance testing and establishing a testing schedule. The accep-
                                          tance test plan should also discuss the required coverage of the requirements and
                                          the order in which system features are tested. It should define risks to the testing
                                          process, such as system crashes and inadequate performance, and discuss how
                                          these risks can be mitigated.
                                       3.  Derive acceptance tests Once acceptance criteria have been established, tests
                                          have to be designed to check whether or not a system is acceptable. Acceptance
                                          tests should aim to test both the functional and non-functional characteristics
                                          (e.g., performance) of the system. They should, ideally, provide complete cover-
                                          age of the system requirements. In practice, it is difficult to establish completely
                                          objective acceptance criteria. There is often scope for argument about whether
                                          or not a test shows that a criterion has definitely been met.
   241   242   243   244   245   246   247   248   249   250   251