Incremental Test Selection for Specification-Based Unit Testing of Object-Oriented Software Based on Formal Specifications

We propose a test case selection methodology for object-oriented software. This methodology is based on formal specifications and is aimed at verifying the correctness of method interaction of an object or a cluster of objects. The essence of this methodology is to select test cases by a reduction process. The exhaustive test set, the reference for correctness, is transformed into a practicable test set by applying hypotheses to the objects. We present a set of hypotheses specific to object-oriented systems. Regularity hypotheses are m:n generalizations of the unit behaviour and provides for specifying the shape of test cases. Uniformity hypotheses are 1:n generalizations. Used in conjunction with subdomain decomposition, they guarantee a coverage of the specification. Incrementallity hypotheses take advantage of the subtyping and subclassing relationships to justify the reuse of test cases.

[1]  Alfred Strohmeier,et al.  The Problematics of Testing Object-Oriented Software , 1970 .

[2]  S. L. Gerhart,et al.  Toward a theory of test data selection , 1975, IEEE Transactions on Software Engineering.

[3]  Peter P. Chen The Entity-Relationship Model: Towards a unified view of Data , 1976 .

[4]  John V. Guttag,et al.  Abstract data types and the development of data structures , 1977, CACM.

[5]  Tsun S. Chow,et al.  Testing Software Design Modeled by Finite-State Machines , 1978, IEEE Transactions on Software Engineering.

[6]  Glenford J. Myers,et al.  Art of Software Testing , 1979 .

[7]  Elaine J. Weyuker,et al.  Theories of Program Testing and the Application of Revealing Subdomains , 1980, IEEE Transactions on Software Engineering.

[8]  Robin Milner,et al.  A Modal Characterisation of Observable Machine-Behaviour , 1981, CAAP.

[9]  Boris Beizer,et al.  Software Testing Techniques , 1983 .

[10]  Michael A. Hennell,et al.  Assessing a class of software tools , 1984, ICSE '84.

[11]  Luca Cardelli,et al.  On understanding types, data abstraction, and polymorphism , 1985, CSUR.

[12]  Elaine J. Weyuker,et al.  Axiomatizing software test data adequacy , 1986, IEEE Transactions on Software Engineering.

[13]  Jack C. Wileden Incremental development and iteration in the software process , 1986, ISPW.

[14]  Laurent Fribourg,et al.  Test sets generation from algebraic specifications using logic programming , 1986, J. Syst. Softw..

[15]  Barbara Liskov,et al.  Data Abstraction and Hierarchy , 1987 .

[16]  Peter Wegner Dimensions of object-based language design , 1987, OOPSLA 1987.

[17]  Elaine J. Weyuker,et al.  The evaluation of program-based software test data adequacy criteria , 1988, CACM.

[18]  Stanley B. Zdonik,et al.  Inheritance as an Incremental Modification Mechanism or What Like Is and Isn't Like , 1988, ECOOP.

[19]  Luca Cardelli,et al.  A Semantics of Multiple Inheritance , 1984, Information and Computation.

[20]  M. Young,et al.  Rethinking the Taxonomy of Fault Detection Techniques , 1989, 11th International Conference on Software Engineering.

[21]  Grady Booch,et al.  Object-Oriented Analysis and Design with Applications , 1990 .

[22]  René Lalement,et al.  Logique, réduction, résolution , 1990 .

[23]  Grady Booch,et al.  The design of the C++ Booch Components , 1990, OOPSLA/ECOOP '90.

[24]  Gary T. Leavens,et al.  Reasoning about object-oriented programs that use subtypes , 1990, OOPSLA/ECOOP '90.

[25]  William R. Cook,et al.  Mixin-based inheritance , 1990, OOPSLA/ECOOP '90.

[26]  Thomas J. Cheatham,et al.  Testing object-oriented software systems , 1990, CSC '90.

[27]  D. J. Robson,et al.  Object-oriented programming-the problems of validation , 1990, Proceedings. Conference on Software Maintenance 1990.

[28]  Grady Booch,et al.  Object-Oriented Design with Applications , 1990 .

[29]  Gail E. Kaiser,et al.  Adequate testing and object-oriented programming , 1990 .

[30]  Ruth Breu,et al.  Algebraic Specification Techniques in Object Oriented Programming Environments , 1991, Lecture Notes in Computer Science.

[31]  William E. Lorensen,et al.  Object-Oriented Modeling and Design , 1991, TOOLS.

[32]  Martin Gogolla,et al.  Objects and their Specification , 1991, COMPASS/ADT.

[33]  Nuno Guimarães Building generic user interface tools: an experience with multiple inheritance , 1991, OOPSLA 1991.

[34]  Bertrand Meyer,et al.  Eiffel: The Language , 1991 .

[35]  Marie-Claude Gaudel,et al.  Software testing based on formal specifications: a theory and a tool , 1991, Softw. Eng. J..

[36]  Gordon S. Blair,et al.  Object-oriented languages, systems and applications , 1991 .

[37]  Bertrand Meyer,et al.  Applying 'design by contract' , 1992, Computer.

[38]  Norman Wilde,et al.  Maintenance Support for Object-Oriented Programs , 1992, IEEE Trans. Software Eng..

[39]  John D. McGregor,et al.  Incremental testing of object-oriented class structures , 1992, ICSE '92.

[40]  Marc Roper,et al.  Software testing: A selected annotated bibliography , 1992, Softw. Test. Verification Reliab..

[41]  David P. Tegarden,et al.  Effectiveness of traditional software metrics for object-oriented systems , 1992, Proceedings of the Twenty-Fifth Hawaii International Conference on System Sciences.

[42]  Yves Crouzet,et al.  An experimental evaluation of formal testing and statistical testing , 1992 .

[43]  John D. McGregor,et al.  Object-oriented software development - engineering software for reuse , 1992, VNR computer library.

[44]  Ed Seidewitz Object-oriented programming with mixins in Ada , 1992, ALET.

[45]  D. J. Robson,et al.  State-Based Testing and Inheritance , 1993 .

[46]  Daniel G. Bobrow,et al.  Book review: The Art of the MetaObject Protocol By Gregor Kiczales, Jim des Rivieres, Daniel G. and Bobrow(MIT Press, 1991) , 1991, SGAR.

[47]  D. J. Robson,et al.  A Suite of Tools for the State- Based Testing of Object- Oriented Programs , 1993 .

[48]  Gail C. Murphy,et al.  Engineering software with objects , 1993 .

[49]  Norman Wilde,et al.  Maintaining object-oriented software , 1993, IEEE Software.

[50]  D. J. Robson,et al.  The Testing of Object-Oriented Programs , 1993 .

[51]  Alan Snyder,et al.  The essence of objects: concepts and terms , 1993, IEEE Software.

[52]  Jeannette M. Wing,et al.  Specifications and their use in defining subtypes , 1993, OOPSLA '93.

[53]  Pascale Le Gall Les algebres etiquetees : une semantique pour les specifications algebriques fondee sur une utilisation systematique des termes. application au test de logiciel avec traitement d'exceptions , 1993 .

[54]  Donald Firesmith Testing Object-Oriented Software , 1993, TOOLS.

[55]  Ivar Jacobson,et al.  Object-oriented software engineering - a use case driven approach , 1993, TOOLS.

[56]  Marie-Claude Gaudel,et al.  Using algebraic specifications in software testing: A case study on the software of an automatic subway , 1993, J. Syst. Softw..

[57]  Jeannette M. Wing,et al.  A New Definition of the Subtype Relation , 1993, ECOOP.

[58]  D. J. Robson,et al.  Guidance for the Testing of Object-Oriented Programs , 1993 .

[59]  John D. McGregor,et al.  Integrated object-oriented testing and development processes , 1994, CACM.

[60]  Chris Dollin,et al.  Object-oriented development: the fusion method , 1994 .

[61]  Alfred Strohmeier,et al.  Open Issues in Testing Object-Oriented Software , 1994 .

[62]  Gabriel Eckert,et al.  Improving object-oriented analysis , 1994, Inf. Softw. Technol..

[63]  Robert M. Poston,et al.  Automated testing from object models , 1994, CACM.

[64]  Alexandre Petrenko,et al.  Protocol testing: review of methods and relevance for software testing , 1994, ISSTA '94.

[65]  Gregg Rothermel,et al.  Selecting regression tests for object-oriented software , 1994, Proceedings 1994 International Conference on Software Maintenance.

[66]  Gary T. Leavens,et al.  Subtyping, Modular Specification, and Modular Verification for Applicative Object-Oriented Programs , 1994 .

[67]  Phyllis G. Frankl,et al.  The ASTOOT approach to testing object-oriented programs , 1994, TSEM.

[68]  Dorothea Beringer Limits of Seamlessness in Object Oriented Software Development , 1994, TOOLS.

[69]  Bertrand Meyer,et al.  Reusable Software: The Base Object-Oriented Component Libraries , 1994 .

[70]  Didier Buchs,et al.  Testing Ada Abstract Data Types Using Formal Specifications , 1994, Ada-Europe.

[71]  David Chenho Kung,et al.  Class Firewall, Test Order, and Regression Testing of Object-Oriented Programs , 1995, J. Object Oriented Program..

[72]  Mourad Badri,et al.  Vers une stratégie de tests unitaires et d'intégration des classes dans les applications orientées objet , 1995 .

[73]  Bertrand Meyer Object success - a manager's guide to object orientation, its impact on the corporation, and its u , 1995 .

[74]  David J. Robson,et al.  A State-Based Approach to the Testing of Class-Based Programs , 1995, Softw. Concepts Tools.

[75]  Alfred Strohmeier,et al.  Advanced Object-Oriented Programming with Ada 95 , 1995 .

[76]  Didier Buchs,et al.  Structured Algebraic Nets with Object-Orientation , 1995 .

[77]  Stéphane Barbey,et al.  Ada 95 as implementation language for object-oriented designs , 1995, TRI-Ada '95.

[78]  Claus Lewerentz,et al.  Formal Development of Reactive Systems , 1995, Lecture Notes in Computer Science.

[79]  Yves Crouzet,et al.  Software Statistical Testing , 1995 .

[80]  Heinz Schmidt,et al.  Object test coverage using finite state machines , 1995 .

[81]  Stéphane Barbey Testing Ada 95 Object-Oriented Programs , 1995, Ada-Europe.

[82]  Cécile Péraire,et al.  Issues and Theory for Unit Testing of Object-Oriented Software , 1996 .

[83]  Bertrand Meyer The many faces of inheritance: a taxonomy of taxonomy , 1996, Computer.

[84]  Pascale Thévenod-Fosse,et al.  Software error analysis: a real case study involving real faults and mutations , 1996, ISSTA '96.

[85]  Dorothea Beringer,et al.  Modelling Global Behaviour in Object-Oriented Analysis: Scenarios, Use Cases and Interaction Diagrams , 1996 .

[86]  Tsong Yueh Chen,et al.  On Some Characterisation Problems of Subdomain Testing , 1996, Ada-Europe.

[87]  Cécile Péraire,et al.  A Theory of Specification-Based Testing for Object-Oriented Software , 1996, EDCC.

[88]  Robert V. Binder,et al.  Testing object‐oriented software: a survey , 1996 .

[89]  Nathalie Gaertner,et al.  Mod? lisation objet avec uml , 1997 .

[90]  Nicolas Guelfi,et al.  Comparison of Object-Oriented Formal Methods , 1997 .

[91]  Nicolas Guelfi,et al.  CO-OPN/2: a concurrent object-oriented formalism , 1997 .

[92]  Jarle Hulaas,et al.  AN INCREMENTAL PROTOTYPING METHODOLOGY FOR DISTRIBUTED SYSTEMS BASED ON FORMAL SPECIFICATIONS , 1997 .

[93]  Arnd Poetzsch-Heffter,et al.  Specification and verification of object-oriented programs , 1997 .

[94]  Hélène Waeselynck,et al.  Towards a statistical approach to testing object-oriented programs , 1997, Proceedings of IEEE 27th International Symposium on Fault Tolerant Computing.

[95]  Kendall Scott,et al.  UML distilled - applying the standard object modeling language , 1997 .

[96]  Agnes Arnould Test a partir de specifications de structures bornees : une theorie du test, une methode de selection, un outil d'assistance a la selection , 1997 .

[97]  Olivier Biberstein CO-OPN/2: An Object-Oriented Formalism for the Specification of Concurrent Systems , 1997 .

[98]  Brian Marick Book Reviews: The Craft of Software Testing: Subsystem Testing Including Object-Based and Object-Oriented Testing, Brian Maxick , 1994, SOEN.

[99]  John Hunt,et al.  Testing Object Oriented Systems , 1998 .

[100]  Alessandro Orso Integration Testing of Object-Oriented Software , 1998 .

[101]  Raymond A. Paul,et al.  Object‐oriented integration testing , 1999, Ann. Softw. Eng..