Test sets generation from algebraic specifications using logic programming

Abstract We present a method and a tool for generating test sets from algebraic data type specifications. We give formal definitions of the basic concepts required in our approach of functional testing. Then we discuss the problem of testing algebraic data types implementations. This allows the introduction of additional hypotheses and thus the description of a method for generating test sets. The implementation of the method is based on logic programming. Some limitations of PROLOG are discussed and two extensions are presented, METALOG and SLOG, which allow good implementations of our method.

[1]  William E. Howden,et al.  Functional Program Testing , 1978, IEEE Transactions on Software Engineering.

[2]  Luc Bougé,et al.  A Contribution to the Theory of Program Testing , 1985, Theor. Comput. Sci..

[3]  Martin R. Woodward,et al.  Experience with Path Analysis and Testing of Programs , 1980, IEEE Transactions on Software Engineering.

[4]  Lee J. White,et al.  A Domain Strategy for Computer Program Testing , 1980, IEEE Transactions on Software Engineering.

[5]  Lori A. Clarke,et al.  A System to Generate Test Data and Symbolically Execute Programs , 1976, IEEE Transactions on Software Engineering.

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

[7]  Lee J. White,et al.  Sufficient test sets for path analysis testing strategies , 1981, ICSE '81.

[8]  John S. Gourlay A Mathematical Framework for the Investigation of Testing , 1983, IEEE Transactions on Software Engineering.

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

[10]  Matthew M. Geller Test data as an aid in proving program correctness , 1978, CACM.

[11]  Nachum Dershowitz,et al.  Logic Programming cum Applicative Programming , 1985, SLP.

[12]  Brian Randell,et al.  Computing Systems Reliability , 1979 .

[13]  William E. Howden,et al.  Reliability of the Path Analysis Testing Strategy , 1976, IEEE Transactions on Software Engineering.

[14]  Luc Bougé A Proposition for a Theory of Testing: An Abstract Approach to the Testing Process , 1983 .

[15]  Richard G. Hamlet,et al.  Data Abstraction, Implementation, Specification, and Testing , 1981, TOPL.

[16]  Samuel N. Kamin Final data type specifications: a new data type specification method , 1980, POPL '80.

[17]  Mitchell Wand,et al.  Final Algebra Semantics and Data Type Extensions , 1979, J. Comput. Syst. Sci..

[18]  Brigitte Biebow,et al.  Algebraic Specification of Synchronisation and Errors: A Telephonic Example , 1985, TAPSOFT, Vol.2.

[19]  N Ashley,et al.  Program validation , 1986 .

[20]  Ugo Montanari,et al.  Observability Concepts in Abstract Data Type Specifications , 1976, MFCS.

[21]  Pierre Deransart,et al.  An Operational Algebraic Semantics of Prolog Programs , 1983, Logic Programming Workshop.

[22]  Luc Bougé Modélisation de la notion de test de programmes; application à la production de jeux de tests , 1982 .

[23]  Brigitte Biebow,et al.  Exception Handling: Formal Specification and Systematic Program Construction , 1984, IEEE Transactions on Software Engineering.

[24]  Richard G. Hamlet,et al.  Testing Programs with Finite Sets of Data , 1977, Comput. J..

[25]  Ellis Horowitz,et al.  Abstract data types and software validation , 1978, CACM.

[26]  Laurent Fribourg,et al.  SLOG: A Logic Programming Language Interpreter Based on Clausal Superposition and Rewriting , 1985, SLP.

[27]  William E. Howden,et al.  Weak Mutation Testing and Completeness of Test Sets , 1982, IEEE Transactions on Software Engineering.

[28]  Richard J. Lipton,et al.  Theoretical and empirical studies on using program mutation to test the functional correctness of programs , 1980, POPL '80.

[29]  John C. Cherniavsky,et al.  Validation, Verification, and Testing of Computer Software , 1982, CSUR.

[30]  Simeon C. Ntafos,et al.  A report on random testing , 1981, ICSE '81.