Download Developing Effective Websites: A Project Manager`s Guide Roy
Transcript
Quality Assurance Testing 147 TYPES OF TESTING Several kinds of testing are appropriate for websites, including the following: • • • • • functionality testing (i.e., unit, integration, regression, compatibility) layout testing load testing link testing usability testing (see Chapter 9) Functionality Testing Functionality testing refers to the testing of programmatic features and is most appropriate for sites of higher complexity that contain features such as database access, dynamic page generation, and Java applets, namely features that require actual programming (rather than HTML page building). Unit Testing Functionality testing should start at the source, namely by the programmers who write the code. When programmers test their own code, module by module, it is referred to as unit testing. Each programmer tests his or her own modules thoroughly and does not start a new module before testing and fixing the previous one. The programmer tests not simply by running the code a few times to see if it works, but rather by feeding the code common, uncommon, and even unexpected inputs to make sure it handles them correctly and does not malfunction. This technique is the most cost-effective and efficient testing method and is a way of promoting “quality at the source.” Programmers who are willing and able to thoroughly test their own code module by module, after each is written, generally find defects faster than other testers and are able to fix them in the shortest time. Unit testing stops problems before they can crop up in other modules, and it prevents other testers from having to spend time finding, isolating, and documenting these defects, then retesting for them later (regression testing) to make sure they were fixed. Requiring programmers to thoroughly test their own code can be difficult to enforce, however, for several reasons. First, most programmers like to write code, not test it. Some see testing as monotonous work that is not part of their job. Second, programmers are often under extreme pressure to produce usable code as fast as possible. Therefore, the emphasis is often on quantity rather than quality. If programmers are on a tight schedule, there is little chance they will want to spend “extra” time thoroughly testing their own code instead of logging the completion of that module and starting work on a new feature.