Abstract
Object-oriented frameworks are designed to provide functionality common to a variety of applications. Developers use these frameworks in building their own specialized applications, often without having the source code of the original framework. Unfortunately, the interactions between the framework components and the new application code can lead to behaviors that could not be predicted even if valid black-box specifications were provided for the framework components. What is needed are grey-box specifications that include information about sequences of method calls made by the original framework code. Our focus is on how to test frameworks against such specifications, which requires the ability to monitor such method calls made by the framework during testing. The problem is that without the source code of the framework, we cannot resort to code instrumentation to track these calls. We develop an approach that allows us to do this, and demonstrate it on a simple case study.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Alexander, R., Offutt, J.: Criteria for testing polymorphic relationships. In: Int. Symp. on Softw. Reliability Eng., pp. 15–23 (2000)
Barnett, M., Grieskamp, W., Kerer, C., Schulte, W., Szyperski, C., Tilmann, N., Watson, A.: Serious specifications for composing components. In: 6th ICSE Workshop on Component-based Software Engineering, pp. 1–6 (2003)
Binder, R.: Testing Object-Oriented Systems. Addison-Wesley, Reading (1999)
Booch, G., Rumbaugh, J., Jacobson, I.: The Unified Modeling Language User Guide. Addison-Wesley, Reading (1999)
Buchi, M., Weck, W.: The greybox approach: when blackbox specifications hide too much. Technical Report TUCS TR No. 297, Turku Centre for Computer Science (1999), available at http://www.tucs.abo.fi/
Chen, M.-H., Kao, H.M.: Testing object-oriented programs — an integrated approach. In: Int. Symp. on Softw. Reliability Eng., pp. 73–83 (1999)
Cheon, Y., Leavens, G.: A simple and practical approach to unit testing: The JML and JUnit way. In: Magnusson, B. (ed.) ECOOP 2002. LNCS, vol. 2374, pp. 231–255. Springer, Heidelberg (2002)
Duran, J., Ntafos, S.: An evaluation of random testing. IEEE Trans. on Software Eng. 10, 438–444 (1984)
Fayad, M.E., Schmidt, D.C.: Special issue on object oriented application frameworks. Comm. of the ACM 40 (October 1997)
Froehlich, G., Hoover, H., Liu, L., Sorenson, P.: Hooking into object-oriented application frameworks. In: Proc. of 1997 Int. Conf. on Software Engineering, pp. 141–151. ACM, New York (1997)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable OO Software. Addison-Wesley, Reading (1995)
Hamlet, D., Taylor, R.: Partition testing does not inspire confidence. IEEE Trans. on Software Eng. 16(12), 1402–1411 (1990)
Johnson, R., Foote, B.: Designing reusable classes. Journal of OOP 1, 26–49 (1988)
Jones, C.: Systematic Software Development Using VDM. Prentice-Hall, Englewood Cliffs (1990)
Liskov, B., Wing, J.: A behavioral notion of subtyping. ACM Trans. on Prog. Lang. and Systems 16, 1811–1841 (1994)
Marinov, D., Khurshid, S.: TestEra: A novel framework for automated testing of Java programs. In: Proc. of 16th ASE. IEEE, Los Alamitos (2001)
McDaniel, R., McGregor, J.D.: Testing the polymorphic interactions between classes. Technical Report 94-103, Dept. of Computer Sc., Clemson University (1994)
Meyer, B.: Object-Oriented Software Construction. Prentice-Hall, Englewood Cliffs (1997)
Owicki, S., Gries, D.: An axiomatic proof technique for parallel programs. Acta Informatica 6(1), 319–340 (1976)
Pree, W.: Meta patterns: a means for capturing the essentials of reusable OO design. In: Tokoro, M., Pareschi, R. (eds.) ECOOP 1994. LNCS, vol. 821, pp. 150–162. Springer, Heidelberg (1994)
Rountev, A., Milanova, A., Ryder, B.: Fragment class analysis for testing of polymorphism in Java software. In: Int. Conf. on Softw. Eng., pp. 210–220 (2003)
Soundarajan, N., Fridella, S.: Framework-based applications: From incremental development to incremental reasoning. In: Frakes, W.B. (ed.) ICSR 2000. LNCS, vol. 1844, pp. 100–116. Springer, Heidelberg (2000)
Weyuker, E.: Testing component-based software: A cautionary tale. IEEE Software 15(5), 54–59 (1998)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2004 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Tyler, B., Soundarajan, N. (2004). Black-Box Testing of Grey-Box Behavior. In: Petrenko, A., Ulrich, A. (eds) Formal Approaches to Software Testing. FATES 2003. Lecture Notes in Computer Science, vol 2931. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-24617-6_1
Download citation
DOI: https://doi.org/10.1007/978-3-540-24617-6_1
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-20894-5
Online ISBN: 978-3-540-24617-6
eBook Packages: Springer Book Archive