Chair for Applied Software Engineering Lehrstuhl für Angewandte Softwaretechnik

Home  |  Home  |  Changes  |  Index  |  Search Prentice Hall  |  Pearson UK  |  Pearson Studium  |  Search

Chapter 11: Testing

thin bridge
  • Lecture on Testing (ppt)
  • Lecture on System and Integration Testing (ppt)
  • Artwork (ppt)

Abstract

Testing is the process of finding differences between the expected behavior specified by system models and the observed behavior of the implemented system. Unit testing finds differences between the object design model and its corresponding component. Structural testing finds differences between the system design model and a subset of integrated subsystems. Functional testing finds differences between the use case model and the system. Finally, performance testing finds differences between nonfunctional requirements and actual system performance. When differences are found, developers identify the defect causing the observed failure and modify the system to correct it. In other cases, the system model is identified as the cause of the difference, and the model is updated to reflect the state of the system.

From a modeling point of view, testing is the attempt to show that the implementation of the system is inconsistent with the system models. The goal of testing is to design tests that exercise defects in the system and to reveal problems. This activity is contrary to all other activities we described in previous chapters: analysis, design, implementation, communication, and negotiation are constructive activities. Testing, however, is aimed at breaking the system. Consequently, testing is usually accomplished by developers that were not involved with the construction of the system.

In this chapter, we first emphasize the importance of testing. We provide a bird’s-eye view of the testing activities, we describe in more detail the concepts of fault, erroneous state, failure, and test, and then we describe the testing activities that result in the plan, design, and execution of tests. We conclude this chapter by discussing management issues related to testing. We emphasize functional testing techniques, as they are generally better understood and applicable to a wide range of situations. We cover selected testing techniques for nonfunctional requirements (e.g., usability testing) and refer to the literature for specialized cases (e.g., testing real-time systems).

 

OOSE: Chapter11 .
Edit | Attach | Printable | Raw View | Backlinks: Web, All Webs | History:  | More topic actions
r0 - 02 Oct 2003 - 10:18:17 - AllenDutoit
Copyright © 1999-2009 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding the website? Send feedback