Generating State-Based Testing Models for Object-Oriented Framework Interface Classes
Commenced in January 2007
Frequency: Monthly
Edition: International
Paper Count: 33104
Generating State-Based Testing Models for Object-Oriented Framework Interface Classes

Authors: Jehad Al Dallal, Paul Sorenson

Abstract:

An application framework provides a reusable design and implementation for a family of software systems. Application developers extend the framework to build their particular applications using hooks. Hooks are the places identified to show how to use and customize the framework. Hooks define the Framework Interface Classes (FICs) and the specifications of their methods. As part of the development life cycle, it is required to test the implementations of the FICs. Building a testing model to express the behavior of a class is an essential step for the generation of the class-based test cases. The testing model has to be consistent with the specifications provided for the hooks. State-based models consisting of states and transitions are testing models well suited to objectoriented software. Typically, hand-construction of a state-based model of a class behavior is expensive, error-prone, and may result in constructing an inconsistent model with the specifications of the class methods, which misleads verification results. In this paper, a technique is introduced to automatically synthesize a state-based testing model for FICs using the specifications provided for the hooks. A tool that supports the proposed technique is introduced.

Keywords: Framework interface classes, hooks, state-basedtesting, testing model.

Digital Object Identifier (DOI): doi.org/10.5281/zenodo.1079180

Procedia APA BibTeX Chicago EndNote Harvard JSON MLA RIS XML ISO 690 PDF Downloads 1227

References:


[1] K. Beck and R, Johnson. Patterns generated architectures, Proc. of ECOOP 94, 1994, 139-149.
[2] G. Froehlich. Hooks: an aid to the reuse of object-oriented frameworks, Ph.D. Thesis, University of Alberta, Department of Computing Science, 2002.
[3] Y. Cheon and G. Leavens, A simple and practical approach to unit testing: the JML and JUnit way, Proc. of the 16th European Conference on Object-Oriented Programming (ECOOP2002), June 2002, pp. 231- 254.
[4] R. Binder. Testing object-oriented systems, Addison Wesley, 1999.
[5] J. Offut and A. Abdurazik, Generating tests from UML specifications, Second International Conference on the Unified Modeling Language (UML99), Fort Collins, CO, October 1999, 416-429.
[6] A. Abdurazik, P. Ammann, W. Ding, and J. Offutt, Evaluation of three specification-based testing criteria, Sixth IEEE International Conference on Engineering of Complex Computer Systems (ICECCS '00), Tokyo, Japan, September 2000, 179-187.
[7] L. Briand, Y. Labiche, and H. Sun, Investigating the use of analysis contracts to support fault isolation in object-oriented code, International Symposium on Software Testing and Analysis ISSTA, Rome, Italy, July 2002.
[8] B. Baudry, Y. LeTraon, and J.-M. Jézéquel, Robustness and diagnosability of OO-systems designed by contracts, Proceedings of Metrics'01, London, UK, April 2001.
[9] B. Meyer, Design by contracts, IEEE Computer, 1992, Vol. 25(10), 40- 52.
[10] Jcontract, http://www.parasoft.com/jsp/products/home.jsp?product=Jcontract, ParaSoft Corporation, July 2006.
[11] iContract: the Java Design-by-Contract tool, http://www.javaworld.com/javaworld/jw-02-2001/jw-0216- cooltools.html, July 2006.
[12] G. Leavens, A. Baker, and C. Ruby, Preliminary design of JML: a behavioral interface specification language for Java, TR 98-06p, Iowa State University, Department of Computer Science, August 2001.
[13] G. Leavens, A. Baker, and C. Ruby, JML: a notation for detailed design. In H. Kilov, B. Rupe, and I. Simmonds, editors, behavioral specifications of Businesses and Systems, chapter 12, Kluwer, 1999, pp. 175-188.
[14] Junit, http://junit.sourceforge.net/, July 2006.
[15] C. Boyapati, S. Khurshid, and D. Marinov, Korat: Automated Testing Based on Java Predicates, International Symposium on Software Testing and Analysis ISSTA, Rome, Italy, July 2002.
[16] Jtest, http://www.parasoft.com/jsp/products/home.jsp?product=Jtest, ParaSoft Corporation, July 2006.
[17] J. Offutt and J. Pan, Automatically detecting equivalent mutants and infeasible paths, The Journal Of Software Testing, Verification, and Reliability, 7(3), September 1997, pp 165-192.
[18] A. Beugnard, J.-M. Jézéquel, N. Plouzeau, and D. Watkins, Making components contract aware, IEEE Computer, 13(7), July 1999.