Testing Object-Oriented Software
David Kung and Pei. Hsia (University of Texas at Arlington)
Abstract: Software testing is an important software quality assurance activity. Its objective is to uncover as many errors as possible with a minimum cost. A successful test should show that a program contains bugs rather than that it works fine. Since software testing consumes 40%-80% of the development costs, how to reduce its cost and improve its quality has always been a big challenge to the software engineering community. OO software testing has to deal with new problems introduced by the powerful new features of OO languages. OO features (such as encapsulation, inheritance, polymorphism, and dynamic binding) provide visible benefits in software design and programming. However, these new features also raise challenging problems in the software testing and maintenance phases. In order to ensure that the benefits of OO programming are fully realized, we need to uncover new OO testing techniques and processes. The objectives of this tutorial are to study of the state of the art and the state of the practice of OO software testing. The tutorial is aimed at introducing the participants the field and expose them the OO software testing problems, effective and efficient OO software testing approaches, models, methods, techniques and tools. The participants will practice some of the techniques to typical OO programs.
Outline: Software quality assurance, software testing, the OO paradigm, why OO testing?, OO testing problems, OO test models & methods, Object state behavior testing, OO test criteria & metrics, test case & test data generation, OO regression testing, OO test tools
Architecture-Based Performance and Reliability Analysis of Software Systems
S. Gokhale (University of California, Riverside), K. Trivedi (NC State), E. Wong (Bellcore)
Abstract: This tutorial is particularly intended for practitioners and managers interested in applying techniques to analyze the performance and reliability of software systems based on their architecture. These approaches will aid in evaluating competing architectural alternatives as well as assessing the impact of individual components on the overall reliability and performance of the application in the design phase. They can also be instrumental in identifying performance and reliability bottlenecks in the design and operational phase of the software. The background is elementary probability and statistics.
Outline: Models for architecture based performance and reliability assessment of software, parametrization of analytical models characterizing the system behavior.