A fault model for subtype inheritance and polymorphism

Although program faults are widely studied, there are many aspects of faults that we still do not understand, particularly about OO software. In addition to the simple fact that one important goal during testing is to cause failures and thereby detect faults, a full understanding of the characteristics of faults is crucial to several research areas. The power that inheritance and polymorphism brings to the expressiveness of programming languages also brings a number of new anomalies and fault types. This paper presents a model for the appearance and realization of OO faults and defines and discusses specific categories of inheritance and polymorphic faults. The model and categories can be used to support empirical investigations of object-oriented testing techniques, to inspire further research into object-oriented testing and analysis, and to help improve design and development of object-oriented software.

[1]  Antero Taivalsaari,et al.  On the notion of inheritance , 1996, CSUR.

[2]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[3]  Barbara Liskov,et al.  Program Development in Java - Abstraction, Specification, and Object-Oriented Design , 1986 .

[4]  Larry J Morell,et al.  A Theory of Fault-Based Testing , 1990, IEEE Trans. Software Eng..

[5]  A. Jefferson Offutt,et al.  Constraint-Based Automatic Test Data Generation , 1991, IEEE Trans. Software Eng..

[6]  Roger T. Alexander,et al.  Testing the polymorphic relationships of object-oriented programs , 2001 .

[7]  Jeannette M. Wing,et al.  A behavioral notion of subtyping , 1994, TOPL.

[8]  Larry Joe Morell A theory of error-based testing , 1983 .

[9]  Edward V. Berard,et al.  Issues in the testing of object-oriented software , 1994, Proceedings of ELECTRO '94.

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

[11]  Vi Andrew Jefferson Offutt,et al.  Automatic test data generation , 1988 .

[12]  James M. Bieman,et al.  Coping with Java Programming Stress , 2000, Computer.

[13]  David Chenho Kung,et al.  Testing Object-Oriented Software , 1998 .

[14]  David Lorge Parnas,et al.  Abstract types defined as classes of variables , 1976, SIGMOD 1976.

[15]  Richard G. Hamlet,et al.  Theoretical comparison of testing methods , 1989, TAV3.

[16]  Victor R. Basili,et al.  A Validation of Object-Oriented Design Metrics as Quality Indicators , 1996, IEEE Trans. Software Eng..

[17]  A. Jefferson Offutt,et al.  A semantic model of program faults , 1996, ISSTA '96.

[18]  R. Ibba,et al.  Structure-based clustering of components for software reuse , 1993, 1993 Conference on Software Maintenance.