Page 224 -
P. 224

Chapter 8   Software testing  207




                                                Input Test Data     I e              Inputs Causing
                                                                                     Anomalous
                                                                                     Behavior


                                                            System





                     Figure 8.1 An              Output Test Results  O e             Outputs Which Reveal
                     input-output model                                              the Presence of
                     of program testing                                              Defects
                                       Barry Boehm, a pioneer of software engineering, succinctly expressed the difference
                                       between them (Boehm, 1979):

                                         ‘Validation: Are we building the right product?’
                                         ‘Verification: Are we building the product right?’

                                         Verification and validation processes are concerned with checking that software
                                       being developed meets its specification and delivers the functionality expected by the
                                       people paying for the software. These checking processes start as soon as requirements
                                       become available and continue through all stages of the development process.
                                         The aim of verification is to check that the software meets its stated functional and
                                       non-functional requirements. Validation, however, is a more general process. The aim
                                       of validation is to ensure that the software meets the customer’s expectations. It goes
                                       beyond simply checking conformance with the specification to demonstrating that the
                                       software does what the customer expects it to do. Validation is essential because, as
                                       I discussed in Chapter 4, requirements specifications do not always reflect the real
                                       wishes or needs of system customers and users.
                                         The ultimate goal of verification and validation processes is to establish confi-
                                       dence that the software system is ‘fit for purpose’. This means that the system must
                                       be good enough for its intended use. The level of required confidence depends on the
                                       system’s purpose, the expectations of the system users, and the current marketing
                                       environment for the system:

                                       1.  Software purpose The more critical the software, the more important that it is
                                          reliable. For example, the level of confidence required for software used to con-
                                          trol a safety-critical system is much higher than that required for a prototype
                                          that has been developed to demonstrate new product ideas.
                                       2.  User expectations Because of their experiences with buggy, unreliable software,
                                          many users have low expectations of software quality. They are not surprised
                                          when their software fails. When a new system is installed, users may tolerate
   219   220   221   222   223   224   225   226   227   228   229