Generating State-Based Testing Models for Object-Oriented Framework Interface Classes
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.
[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.
[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.
@article{"International Journal of Information, Control and Computer Sciences:61452", author = "Jehad Al Dallal and Paul Sorenson", title = "Generating State-Based Testing Models for Object-Oriented Framework Interface Classes", 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.", volume = "2", number = "4", pages = "1254-7", }