Commenced in January 2007
Frequency: Monthly
Edition: International
Paper Count: 32131
Testing Object-Oriented Framework Applications Using FIST2 Tool: A Case Study

Authors: Jehad Al Dallal


An application framework provides a reusable design and implementation for a family of software systems. Frameworks are introduced to reduce the cost of a product line (i.e., a family of products that shares the common features). Software testing is a timeconsuming and costly ongoing activity during the application software development process. Generating reusable test cases for the framework applications during the framework development stage, and providing and using the test cases to test part of the framework application whenever the framework is used reduces the application development time and cost considerably. This paper introduces the Framework Interface State Transition Tester (FIST2), a tool for automated unit testing of Java framework applications. During the framework development stage, given the formal descriptions of the framework hooks, the specifications of the methods of the framework-s extensible classes, and the illegal behavior description of the Framework Interface Classes (FICs), FIST2 generates unitlevel test cases for the classes. At the framework application development stage, given the customized method specifications of the implemented FICs, FIST2 automates the use, execution, and evaluation of the already generated test cases to test the implemented FICs. The paper illustrates the use of the FIST2 tool for testing several applications that use the SalesPoint framework.

Keywords: Automated testing, class testing, FICs, FIST2, object-oriented framework, object-oriented testing.

Digital Object Identifier (DOI):

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


[1] K. Beck and R, Johnson, 1994. Patterns generated architectures, Proc. of ECOOP 94, 139-149.
[2] G. Froehlich, H.J. Hoover, L. Liu, and P.G. Sorenson, May 1997. Hooking into Object-Oriented Application Frameworks, Proc. 19th Int'l Conf. on Software Engineering, Boston, 491-501.
[3] G. Froehlich, 2002. Hooks: an aid to the reuse of object-oriented frameworks, Ph.D. Thesis, University of Alberta, Department of Computing Science.
[4] K. Saleh, A. Boujarwah and J. Al-Dallal, Jan 2002, "Anomaly detection in concurrent Java programs using dynamic data flow analysis", Journal of Information and Software Technology, Vol. 44, no 1, pp. 53-61.
[5] R. Binder, 1999. Testing object-oriented systems, Addison Wesley.
[6] T. Chow, 1978, Testing software design modeled by finite state machines, IEEE Transactions on Software Engineering, EE-4(3), 178- 187.
[7] J. Offutt and A. Abdurazik, October 1999, Generating tests from UML specifications, Second International Conference on the Unified Modeling Language (UML99), Fort Collins, CO, 416-429.
[8] K. Bogdanov and M. Holcombe, 2001, Statechart testing method for aircraft control systems, Software Testing, Verification and Reliability, 11(1), 39-54.
[9] A. Abdurazik, P. Ammann, W. Ding, and J. Offutt, September 2000, Evaluation of three specification-based testing criteria, Sixth IEEE International Conference on Engineering of Complex Computer Systems (ICECCS '00), Tokyo, Japan, 179-187.
[10] J. Al Dallal, 2002, Class-based testing of object-oriented framework interface classes, Ph.D. Thesis, University of Alberta, Department of Computing Science.
[11] L. Briand, Y. Labiche, and H. Sun, July 2002, Investigating the use of analysis contracts to support fault isolation in object-oriented code, International Symposium on Software Testing and Analysis ISSTA, Rome, Italy.
[12] C. Boyapati, S. Khurshid, and D. Marinov, Korat, July 2002: Automated Testing Based on Java Predicates, International Symposium on Software Testing and Analysis ISSTA, Rome, Italy.
[13] B. Meyer, 1992, Design by contracts, IEEE Computer, Vol. 25(10), 40- 52.
[14] Jcontract, July 2006, product= Jcontract, ParaSoft Corporation.
[15] Y. Cheon and G. Leavens, June 2002, A simple and practical approach to unit testing: the JML and JUnit way, Proc. of the 16th European Conference on Object-Oriented Programming (ECOOP2002), pp. 231- 254.
[16] iContract: the Java Design-by-Contract tool, July 2006, cooltools.html.
[17] G. Leavens, A. Baker, and C. Ruby, 1999, JML: a notation for detailed design. In H. Kilov, B. Rupe, and I. Simmonds, editors, behavioral specifications of Businesses and Systems, chapter 12, Kluwer, pp. 175- 188.
[18] G. Leavens, A. Baker, and C. Ruby, August 2001, Preliminary design of JML: a behavioral interface specification language for Java, TR 98- 06p, Iowa State University, Department of Computer Science.
[19] Junit, July 2006,
[20] Jtest, July 2006, product=Jtest, ParaSoft Corporation.
[21] P. Fenkam, H. Gall and M. Jazayeri, September 2002, Constructing corba-supported oracles for testing: a case study, Proc. of the 17th IEEE International Conference on Automated Software Applications (ASE-02), Edinburgh, UK, pp. 129-138.
[22] J. Al Dallal and P. Sorenson, September 2002, System testing for objectoriented frameworks using hook technology, Proc. of the 17th IEEE International Conference on Automated Software Applications (ASE-02), Edinburgh, UK, pp. 231-236.
[23] R. Binder, August 1996. Testing for reuse: libraries and frameworks, Object Magazine, 77-80.
[24] W. Tsai, Y. Tu, W. Shao, and E. Ebner, October, 1999. Testing extensible design patterns in object-oriented frameworks through scenario templates, 23rd Annual International Computer Software and Applications Conference, Phoenix, Arizona, pp. 166-171.
[25] Y. Wang, D. Patel, G. King, I. Court, G. Staples, M. Ross, and M. Fayad, March 2000, On built-in test reuse in object-oriented framework design, ACM Computing Surveys (CSUR), Vol. 32(1es), pp. 7-12.
[26] The SalesPoint framework v2.0 homepage, July 2006, http://wwwst.