Page 245 -
P. 245

228   Chapter 8   Software testing


                              8.4 User testing


                                    User or customer testing is a stage in the testing process in which users or customers
                                    provide input and advice on system testing. This may involve formally testing a sys-
                                    tem that has been commissioned from an external supplier, or could be an informal
                                    process where users experiment with a new software product to see if they like it and
                                    that it does what they need. User testing is essential, even when comprehensive sys-
                                    tem and release testing have been carried out. The reason for this is that influences
                                    from the user’s working environment have a major effect on the reliability, perfor-
                                    mance, usability, and robustness of a system.
                                       It is practically impossible for a system developer to replicate the system’s work-
                                    ing environment, as tests in the developer’s environment are inevitably artificial. For
                                    example, a system that is intended for use in a hospital is used in a clinical environ-
                                    ment where other things are going on, such as patient emergencies, conversations
                                    with relatives, etc. These all affect the use of a system, but developers cannot include
                                    them in their testing environment.
                                       In practice, there are three different types of user testing:


                                    1.  Alpha testing, where users of the software work with the development team to
                                        test the software at the developer’s site.
                                    2.  Beta testing, where a release of the software is made available to users to allow
                                        them to experiment and to raise problems that they discover with the system
                                        developers.

                                    3.  Acceptance testing, where customers test a system to decide whether or not it is
                                        ready to be accepted from the system developers and deployed in the customer
                                        environment.

                                       In alpha testing, users and developers work together to test a system as it is being
                                    developed. This means that the users can identify problems and issues that are not
                                    readily apparent to the development testing team. Developers can only really work
                                    from the requirements but these often do not reflect other factors that affect the prac-
                                    tical use of the software. Users can therefore provide information about practice that
                                    helps with the design of more realistic tests.
                                       Alpha testing is often used when developing software products that are sold as
                                    shrink-wrapped systems. Users of these products may be willing to get involved in
                                    the alpha testing process because this gives them early information about new sys-
                                    tem features that they can exploit. It also reduces the risk that unanticipated changes
                                    to the software will have disruptive effects on their business. However, alpha testing
                                    may also be used when custom software is being developed. Agile methods, such as
                                    XP, advocate user involvement in the development process and that users should
                                    play a key role in designing tests for the system.
                                       Beta testing takes place when an early, sometimes unfinished, release of a soft-
                                    ware system is made available to customers and users for evaluation. Beta testers
   240   241   242   243   244   245   246   247   248   249   250