This paper describes the project Quality-for-ASIS, aiming at the development of an extensive testing facility for ASIS implementations. First the specific problems and requirements are presented. After a section about the basic concepts of ASIS and after a short introduction to testing, the designs and implementations for testing important subsets of ASIS are described. Finally, adequacy coverage statistics for a test set based on the ACVC compiler validation suite are provided.
The current strategies for testing object-oriented software all lack the formal basis which is necessary to perform this task efficiently. We propose the adaptation to object-oriented software of an existing theory of testing for stateless ADTs, to find errors in a class by checking that its implementation meets its specification. We present shortly in an informal way an object-oriented language, CO-OPN/2, in which language we will write the specification. We introduce a notion of test that takes into account the possible and impossible sequences of call of class methods. We examine the black-box test procedure, and give techniques to select a finite and pertinent test set from an exhaustive test set, including all the possible behaviors of the class under test, by applying test reduction hypothesis. We also study the construction of an oracle, the procedure that analyses the results of the tests, adapted to object-oriented software.
The purpose of this paper is to present an experiment with formal methods for the black-box testing of reusable abstract data types (ADTs). We propose to test a family of software components by re-engineering a formal specification from an existing Ada implementation, using algebraic specifications. From this well-defined basis, we generate test sets automatically, by constructing an exhaustive set of formulae that prove the property preservations of a program with respect to its specifications, and by reducing this set to a finite size by applying reduction hypotheses. Once the selection of a finite test set has been performed, we show how to build the oracle, the decision procedure for the success or the failure of a test set. Finally, we discuss the advantages of test sets generated from the formal specification over those defined by a programmer, based on his intuitive understanding of the behavior of the ADT.
We show some of the specific problems for testing software introduced by the object-oriented features of Ada 95, and focus on specificationbased testing, since this strategy is the key strategy for testing object-oriented software. We present a theory for testing software by refinement of an exhaustive test set into a finite test set using three reduction hypothesis. We also show how the Oracle problem can be partially solved using some particular features of Ada 95.
The purpose of this work is to evaluate, by means of a case study, our formal testing method for object-oriented software. For this purpose we propose the development of an object-oriented application of realistic size, addressing all the phases of the software life-cycle: requirements, analysis, design, formal description, implementation and testing. Analysis and design are performed with the Fusion method, formal description with the CO-OPN language, implementation with Ada 95 and test selection with our testing method. The description of the production cell case study and Fusion models are presented in technical report EPFL-DI 98/298. This report presents the formal description and testing phase.
The purpose of this work is to evaluate, by means of a case study, our formal test- ing method for object-oriented software. For this purpose we propose the development of an object-oriented application of realistic size, addressing all the phases of the software life- cycle: requirements, analysis, design, formal description, implementation and testing. Anal- ysis and design are performed with the Fusion method (4), formal description with the CO- OPN language (1), implementation with Ada 95 and test selection with our testing method. The case study chosen for this experiment is the production cell, originally defined in (6).
This paper studies testing in an object-oriented (OO) development process. It is based on the production cell case study. A control program for the production cell has been developed using both the Fusion method, for OO analysis and design, and the formal notation CO-OPN, as an intermediate between the OO design and an implementation in Ada 95. The paper describes the application of a statistical testing method, developed at LAAS, where test inputs are derived from the OO analysis documents, and the application of a formal testing method, developed at EPFL, where test inputs are derived from CO-OPN descriptions. Then various problems which have appeared during the case study are reported. They mainly concern controllability and observability issues and caused some iteration and backtrack on OO analysis and design. The paper concludes by sketching a notion of OO design for testability.
We propose a method of test selection based on formal specifications, for specification-based testing of object-oriented software. This method is based on rigorous theoretical foundations. To limit the size of test sets, we present several hypotheses specific to object-oriented systems, used to reduce an exhaustive test set into a pertinent test set. Regularity hypotheses are used to constrain the shape of test cases while uniformities, with or without subdomain decomposition, are used to limit the values of the variables appearing in the test cases. Care is taken to provide a method for which operational techniques can be implemented.
The purpose of this work is to evaluate, by means of a case study, our formal testing method for object-oriented software. For this purpose we propose the development of an object-oriented application of realistic size, addressing all the phases of the software life-cycle: requirements, analysis, design, formal description, implementation and testing. Analysis and design are performed with the Fusion method, formal description with the CO-OPN language, implementation with Ada 95 and test selection with our testing method. This report presents the description of the production cell case study and Fusion models. The formal description and testing phase are presented in technical report EPFL-DI 98/299.
During the revision of Ada, the rules for object-oriented programming were carefully reviewed and tried on small examples. However, Ada 95 has now been put to use in “real” projects. Two years ago, a panel entitled “early experiences with Ada 9X program organization” described first experiences with Ada 95 using the beta version of a compiler. The goal of this panel is to renew this discussion, now that the language definition is complete, that more complete development environments have found their way to the programmer, and especially that we have more experience with its features.
Article Free Access Share on Ada 95 as implementation language for object-oriented designs Author: Stéphane Barbey Swiss Federal Institute of Technology, Software Engineering Laboratory, 1015 Lausanne Ecublens, Switzerland Swiss Federal Institute of Technology, Software Engineering Laboratory, 1015 Lausanne Ecublens, SwitzerlandView Profile Authors Info & Claims TRI-Ada '95: Proceedings of the conference on TRI-Ada '95: Ada's role in global markets: solutions for a changing complex worldNovember 1995 Pages 212–225https://doi.org/10.1145/376503.376572Online:01 November 1995Publication History 3citation204DownloadsMetricsTotal Citations3Total Downloads204Last 12 Months3Last 6 weeks0 Get Citation AlertsNew Citation Alert added!This alert has been successfully added and will be sent to:You will be notified whenever a record that you have chosen has been cited.To manage your alert preferences, click on the button below.Manage my AlertsNew Citation Alert!Please log in to your account Save to BinderSave to BinderCreate a New BinderNameCancelCreateExport CitationPublisher SiteeReaderPDF
Ada 9X refines the Ada 83 concept of class and introduces class-wide types to support run-time polymorphism. We study how the Ada definition of class compares to other definitions of this term. We examine how run-time polymorphism is introduced in Ada 9X, how it relates to the different concepts of subtype, and how it compares with other forms of polymorphism. We also discuss the different uses of class-wide types, mainly as a means for dynamic binding (dispatching). However, since Ada 9X has adhered to the philosophy of building blocks, class-wide entities can be used for other purposes than dispatching. These uses are idioms that every programmer should be aware of. Some of these idioms are presented here. We also examine how classes are integrated with generics.
Alfred Strohmeier合作论文数Swiss Federal Institute of Technology in Lausanne
Department of Computer Science
Software Engineering Laboratory
the University of Neuchatel10