A Framework for Specification-Based Testing

Test templates and a test template framework are introduced as useful concepts in specification-based testing. The framework can be defined using any model-based specification notation and used to derive tests from model-based specifications-in this paper, it is demonstrated using the Z notation. The framework formally defines test data sets and their relation to the operations in a specification and to other test data sets, providing structure to the testing process. Flexibility is preserved, so that many testing strategies can be used. Important application areas of the framework are discussed, including refinement of test data, regression testing, and test oracles.

[1]  David A. Carrington,et al.  Test template framework: a specification-based testing case study , 1993, ISSTA '93.

[2]  Hans-Martin Hörcher,et al.  Improving Software Tests Using Z Specifications , 1995, ZUM.

[3]  David A. Carrington,et al.  Deriving modular designs from formal specifications , 1993, SIGSOFT '93.

[4]  Jeffrey M. Voas,et al.  Faults on its sleeve: amplifying software reliability testing , 1993, ISSTA '93.

[5]  P. A. V. Hall,et al.  Relationship between specifications and testing , 1991 .

[6]  Stuart H. Zweben,et al.  Analysis and Refinement of Software Test Data Adequacy Properties , 1991, IEEE Trans. Software Eng..

[7]  Debra J. Richardson,et al.  Specification-based test oracles for reactive systems , 1992, International Conference on Software Engineering.

[8]  Lori A. Clarke,et al.  Partition Analysis: A Method Combining Testing and Verification , 1985, IEEE Transactions on Software Engineering.

[9]  David Carrington,et al.  Deriving Software Test Cases from Formal Specifications , 1991 .

[10]  Jan K. Pachl,et al.  A notation for specifying test selection criteria , 1990, PSTV.

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

[12]  David A. Carrington,et al.  Test templates: a specification-based testing framework , 1993, Proceedings of 1993 15th International Conference on Software Engineering.

[13]  Ian J. Hayes,et al.  Specification directed module testing , 1986, IEEE Transactions on Software Engineering.

[14]  Richard A. Kemmerer,et al.  Testing Formal Specifications to Detect Design Errors , 1985, IEEE Transactions on Software Engineering.

[15]  Simeon C. Ntafos,et al.  An Evaluation of Random Testing , 1984, IEEE Transactions on Software Engineering.

[16]  Elaine J. Weyuker,et al.  Automatically Generating Test Data from a Boolean Specification , 1994, IEEE Trans. Software Eng..

[17]  Jeremy Dick,et al.  Automating the Generation and Sequencing of Test Cases from Model-Based Specifications , 1993, FME.

[18]  Elaine J. Weyuker,et al.  Analyzing Partition Testing Strategies , 1991, IEEE Trans. Software Eng..

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

[20]  John B. Goodenough,et al.  Toward a theory of test data selection , 1975 .

[21]  J. Michael Spivey,et al.  The Z notation - a reference manual , 1992, Prentice Hall International Series in Computer Science.

[22]  Jonathan P. Bowen,et al.  ZUM '95: The Z Formal Specification Notation , 1995, Lecture Notes in Computer Science.

[23]  Andrew S. Tanenbaum,et al.  In defense of program testing or correctness proofs considered harmful , 1976, SIGP.

[24]  William E. Howden,et al.  A functional approach to program testing and analysis , 1986, IEEE Transactions on Software Engineering.

[25]  Susan Stepney Testing as Abstraction , 1995, ZUM.

[26]  William E. Howden,et al.  Functional program testing and analysis , 1986 .

[27]  P.A.V. Hall,et al.  Towards testing with respect to formal specification , 1988 .

[28]  Edsger W. Dijkstra,et al.  Structured programming , 1972, A.P.I.C. Studies in data processing.

[29]  David A. Carrington,et al.  A Tale of Two Paradigms: Formal Methods and Software Testing , 1994, Z User Workshop.

[30]  Richard G. Hamlet Theoretical comparison of testing methods , 1989 .

[31]  William C. Hetzel,et al.  The complete guide to software testing , 1984 .

[32]  Thomas J. Ostrand,et al.  Automatic generation of test scripts from formal test specifications , 1989 .

[33]  Philip Alan Stocks,et al.  Applying formal methods to software testing , 1993 .

[34]  Marc J. Balcer,et al.  The category-partition method for specifying and generating fuctional tests , 1988, CACM.