An Automated Approach to Inheritance and Polymorphic Testing using a VDM++ Specification

The use of formal methods is growing with the rapidly increasing applications of safety-critical systems in such fields as aviation, medicine, railways etc. The benefits of using formal methods are not limited to avoidance of specification errors and elimination of ambiguities only - a formal specification also provides a sound basis for generating test suites. However, most of the work in this area has focused on unit testing only. In object-oriented paradigm, inheritance and polymorphism are powerful features, yet they present new challenges to the testers. In this paper, the authors present a novel approach to automated generation of test cases from a VDM++ specification. The authors base the testing technique on Offutt et al.'s fault model for subtype inheritance and polymorphic testing.

[1]  Edmund M. Clarke,et al.  Formal Methods: State of the Art and Future Directions Working Group Members , 1996 .

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

[3]  Bruno Legeard,et al.  A Comparison of the BTT and TTF Test-Generation Methods , 2002, ZB.

[4]  Jan van Katwijk,et al.  Application and benefits of formal methods in software development , 1992, Softw. Eng. J..

[5]  Thomas Santen,et al.  Automating Test Case Generation from Z Specifications with Isabelle , 1997, ZUM.

[6]  Richard Atterer Automatic Test Data Generation From VDM-SL Specifications , 2000 .

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

[8]  Bruno Legeard,et al.  Generation of test sequences from formal specifications: GSM 11‐11 standard case study , 2004, Softw. Pract. Exp..

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

[10]  John Dawes,et al.  The VDM-SL Reference Guide , 1991 .

[11]  A. Jefferson Offutt,et al.  A fault model for subtype inheritance and polymorphism , 2001, Proceedings 12th International Symposium on Software Reliability Engineering.

[12]  Robert V. Binder,et al.  Testing Object-Oriented Systems: Models, Patterns, and Tools , 1999 .

[13]  Sarfraz Khurshid,et al.  Korat: automated testing based on Java predicates , 2002, ISSTA '02.

[14]  Ling Liu,et al.  A framework for specification-based class testing , 2002, Eighth IEEE International Conference on Engineering of Complex Computer Systems, 2002. Proceedings..

[15]  Paul Strooper,et al.  From Object‐Z specifications to ClassBench test suites , 2000 .

[16]  A. J. Offutt Software testing: from theory to practice , 1997, Proceedings of COMPASS '97: 12th Annual Conference on Computer Assurance.

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

[18]  David A. Carrington,et al.  A Framework for Specification-Based Testing , 1996, IEEE Trans. Software Eng..

[19]  Boris Beizer,et al.  Rebuttal of the book review by R. Whitty of ‘Software Testing Techniques’ (2nd edn) , 1994, Softw. Test. Verification Reliab..

[20]  Christophe Meudec,et al.  Automatic generation of software test cases from formal specifications , 1998 .

[21]  Cliff B. Jones,et al.  Systematic software development using VDM , 1986, Prentice Hall International Series in Computer Science.