Carleton University TR SCE-01-01- Version 4 Revised June 2002 1 A UML-Based Approach to System Testing Lionel Briand, Yvan Labiche Software Quality Engineering Laboratory Systems and Computer Engineering Department, Carleton University, 1125 Colonel By Drive, Ottawa, Canada, K1S 5B6 {briand, labiche}@sce.carleton.ca ABSTRACT System testing is concerned with testing an entire system based on its specifications. In the context of object-oriented, UML development, this means that system test requirements are derived from UML analysis artifacts such as use cases, their corresponding sequence and collaboration diagrams, class diagrams, and possibly Object Constraint Language (OCL) expressions across all these artifacts. Our goal here is to support the derivation of functional system test requirements, which will be transformed into test cases, test oracles, and test drivers once we have detailed design information. In this paper, we describe a methodology in a practical way and illustrate it with an example. In this context, we address testability and automation issues, as the ultimate goal is to fully support system testing activities with high-capability tools. Keywords: Testing of object-oriented systems, System testing, UML, Use Cases, Sequence Diagrams, Testability 1 INTRODUCTION System testing is concerned with testing an entire system based on its specifications, and involves several activities such as functional testing (testing from behavioral descriptions of the system) and performance testing (response time and resource utilization) [5]. In other words, the implementation under test is compared to its intended specification. In this article, we concentrate on functional system testing and we are thus interested in deriving test cases from the analysis stage [19]. In the context of object-oriented, UML development, this means that we use UML analysis artifacts to derive system test requirements, that is a precise specification of what test scenarios should be executed. For example, use cases, their corresponding sequence or collaboration diagrams, and class diagrams can be used as a source of relevant information for testing purposes.