Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article

TACCLE: a methodology for object-oriented software testing at the class and cluster levels

Published: 01 January 2001 Publication History

Abstract

Object-oriented programming consists of several different levels of abstraction, namely, the algorithmic level, class level, cluster level, and system level. The testing of object-oriented software at the algorithmic and system levels is similar to conventional program testing. Testing at the class and cluster levels poses new challenges. Since methods and objects may interact with one another with unforeseen combinations and invocations, they are much more complex to simulate and test than the hierarchy of functional calls in conventional programs. In this paper, we propose a methodology for object-oriented software testing at the class and cluster levels. In class-level testing, it is essential to determine whether objects produced from the execution of implemented systems would preserve the properties defined by the specification, such as behavioral equivalence and nonequivalence. Our class-level testing methodology addresses both of these aspects. For the testing of behavioral equivalence, we propose to select fundamental pairs of equivalent ground terms as test cases using a black-box technique based on algebraic specifications, and then determine by means of a white-box technique whether the objects resulting from executing such test cases are observationally equivalent. To address the testing of behavioral nonequivalence, we have identified and analyzed several nontrivial problems in the current literature. We propose to classify term equivalence into four types, thereby setting up new concepts and deriving important properties. Based on these results, we propose an approach to deal with the problems in the generation of nonequivalent ground terms as test cases. Relatively little research has contributed to cluster-level testing. In this paper, we also discuss black-box testing at the cluster level. We illustrate the feasibility of using contract, a formal specification language for the behavioral dependencies and interactions among cooperating objects of different classes in a given cluster. We propose an approach to test the interactions among different classes using every individual message-passing rule in the given Contract specification. We also present an approach to examine the interactions among composite message-passing sequences. We have developed four testing tools to support our methodology.

References

[1]
BERNOT, G., GAUDEL, M.-C., AND MARRE, B. 1991. Software testing based on formal specifications: A theory and a tool. Softw. Eng. J. 6, 6 (Nov.), 387-405.
[2]
BORBA, P. AND GOGUEN, J. A. 1994. An operational semantics for FOOPS. In Proceedings of the International Workshop on Information Systems: Correctness and Reusability (IS-CORE '94, Amsterdam), R. J. Wieringa and R. B. Feenstra, Eds.
[3]
BOUGE, L., CHOQUET, N., FRIBOURG, L., AND GAUDEL, M.-C. 1986. Test sets generation from algebraic specifications using logic programming. J. Syst. Softw. 6, 343-360.
[4]
BREU, R. 1991. Algebraic Specification Techniques in Object-Oriented Programming Environments. Springer-Verlag, New York, NY.
[5]
BREU, R. AND BREU, M. 1993. Abstract and concrete objects: An algrebraic design method for object-based systems. In Algebraic Methodology and Software Technology: Proceedings of 3rd International Conference (AMAST '93), M. Nivat, C. Rattray, T. Rus, and G. Scollo, Eds. Springer-Verlag, Berlin, Germany, 343-348.
[6]
CHEN, H. Y. 1987. The heuristic search algorithm A*LP for logic programs. In Proceedings of the 2nd International Symposium on Intelligent System Methodologies. 51-65.
[7]
CHEN, H. Y. AND TSE, T. H. 2000. Prototypes and initial experimentation on the tools of the TACCLE methodology. http://www.csis.hku.hk/~tse/Papers/staccSupp.pdf.
[8]
CHEN, H. Y. AND WAH, B. 1987. The "rid-redundant" procedure in C-Prolog. In Proceedings of the 2nd International Symposium on Intelligent System Methodologies. 71-83.
[9]
CHEN, H. Y., TSE, T. H., CHAN, F. T., AND CHEN, T. Y. 1998. In black and white: An integrated approach to class-level testing of object-oriented programs. ACM Trans. Softw. Eng. Methodol. 7, 3, 250-295.
[10]
CLARKE, E. M. AND WING, J. M. 1996. Formal methods: State of the art and future directions. ACM Comput. Surv. 28, 4, 626-643.
[11]
CLOCKSIN, W. F. AND MELLISH, C. S. 1994. Programming in Prolog. 4th ed. Springer-Verlag, Berlin, Germany.
[12]
DOONG, R.-K. AND FRANKL, P. G. 1991. Case studies on testing object-oriented programs. In Proceedings of the Symposium on Testing, Analysis, and Verification (TAV4, Victoria, British Columbia, Oct. 8-10), W. Howden, Chair. ACM Press, New York, NY, 165-177.
[13]
DOONG, R.-K. AND FRANKL, P. G. 1994. The ASTOOT approach to testing object-oriented programs. ACM Trans. Softw. Eng. Methodol. 3, 2 (Apr.), 101-130.
[14]
FIEDLER, S. P. 1989. Object-oriented unit testing. Hewlett-Packard J. 40, 4, 69-74.
[15]
FRANKL, P. G. AND DOONG, R.-K. 1990. Tools for testing object-oriented programs. In Proceedings of 8th Pacific Northwest Conference on Software Quality. 309-324.
[16]
GOGUEN, J. A. AND MALCOLM, G. 2000. A hidden agenda. Theor. Comput. Sci. 245, 1, 55-101.
[17]
GOGUEN, J. A. AND MESEGUER, J. 1987. Unifying functional, object-oriented and relational programming with logical semantics. In Research Directions in Object-Oriented Programming, B. Shriver and P. Wegner, Eds. MIT Press Series in Computer Systems. MIT Press, Cambridge, MA, 417-478.
[18]
GUTTAG, J. V. AND HORNING, J. J., EDS. 1993. Larch: Languages and Tools for Formal Specification. Springer-Verlag, New York, NY.
[19]
HARROLD, M. J., MCGREGOR, J. D., AND FITZPATRICK, K. J. 1992. Incremental testing of object-oriented class structures. In Proceedings of the 14th International Conference on Software Engineering (ICSE '92, Melbourne, Australia, May 11-15), T. Montgomery, Chair. ACM Press, New York, NY, 68-80.
[20]
HELM, R., HOLLAND, I. M., AND GANGOPADHYAY, D. 1990. Contracts: Specifying behavioral compositions in object-oriented systems. In Proceedings of the Joint ACM European Conference on Object-Oriented Programming: Systems, Languages, and Applications (OOPSLA/ECOOP '90, Ottawa, Canada, Oct. 21-25), N. Meyrowitz, Ed. ACM Press, New York, NY, 169-180.
[21]
JENG, B. AND WEYUKER, E. J. 1994. A simplified domain-testing strategy. ACM Trans. Softw. Eng. Methodol. 3, 3 (July), 254-270.
[22]
JORGENSEN, P. C. AND ERICKSON, C. 1994. Object-oriented integration testing. Commun. ACM 37, 9 (Sept.), 30-38.
[23]
KUNG, D. C. H., GAO, J. Z., HSIA, P., TOYOSHIMA, Y., AND CHEN, C. 1995. A test strategy for object-oriented programs. In Proceedings of the 19th Annual International Conference on Computer Software and Applications (COMPSAC '95). IEEE Computer Society Press, Los Alamitos, CA, 239-244.
[24]
KUNG, D. C. H., SUCHAK, N., HSIA, P., TOYOSHIMA, Y., AND CHEN, C. 1994. On object state testing. In Proceedings of the 18th Annual International Conference on Computer Software and Applications (COMPSAC '94). IEEE Computer Society Press, Los Alamitos, CA, 222-227.
[25]
PERRY, D. E. AND KAISER, G. E. 1990. Adequate testing and object-oriented programming. J. Object Oriented Program. 2, 5 (Jan./Feb.), 13-19.
[26]
SMITH, M. D. AND ROBSON, D. J. 1992. A framework for testing object-oriented programs. J. Object Oriented Program. 5, 3 (June), 45-53.
[27]
TURNER,C. D. AND ROBSON, D. J. 1993a. Guidance for the testing of object-oriented programs. TR-2/93. University of Durham, Durham, UK.
[28]
TURNER, C. D. AND ROBSON, D. J. 1993b. State-based testing and inheritance. TR-1/93. University of Durham, Durham, UK.
[29]
TURNER, C. D. AND ROBSON, D. J. 1995. A state-based approach to the testing of class-based programs. Software: Concepts and Tools 16, 3, 106-112.
[30]
WEYUKER, E J. 1986. Axiomatizing software test data adequacy. IEEE Trans. Softw. Eng. SE-12, 12 (Dec.), 1128-1138.
[31]
WHITE, L. J. AND COHEN, E. I. 1980. A domain strategy for computer program testing. IEEE Trans. Softw. Eng. SE-6, 3, 247-257.

Cited By

View all
  • (2023)“Testing Can Be Formal Too”: 30 Years LaterThe French School of Programming10.1007/978-3-031-34518-0_2(17-45)Online publication date: 11-Oct-2023
  • (2022)Automatic Detection of Interaction Errors2022 IEEE/ACIS 20th International Conference on Software Engineering Research, Management and Applications (SERA)10.1109/SERA54885.2022.9806754(47-53)Online publication date: 25-May-2022
  • (2022)Discovering boundary values of feature-based machine learning classifiers through exploratory datamorphic testingJournal of Systems and Software10.1016/j.jss.2022.111231187:COnline publication date: 1-May-2022
  • Show More Cited By

Recommendations

Reviews

Edward D. Ordorica

Chen, Tse and Chen write an article on a new methodology for testing called TACCLE (Testing at the Class and Cluster Levels). They have an interesting insight into object oriented testing. The article details a method for testing the interactions between related objects properties and methods, what they call a cluster. A specification language called Contract is used to describe the interactions between objects. The introduction gives a brief background into what testing at the cluster level is. It also mentions some of the problems with other research that has been done in this area. The article then briefly describes testing using fundamental equivalent pairs. For more information on this subject, the reader is directed to other research done by Chen et al. The main focus of this paper is on testing using nonequivalent terms. The article goes into great detail describing how the TACCLE methodology can be used. Several examples are given to illustrate the concepts. Opinion: The article is well written. It has a blend of technical information with a lot of easy to follow examples. It has simple implementation examples (a stack, a queue, and bank accounts) which make it easy to follow the points that are being made. Purpose: The purpose of this work is to continue research in the field of software testing, with an emphasis in object oriented testing. This work is intended for anyone who is conducting research in this field. The ideas in the article are helpful in generating test cases for software. A background in computer science is necessary to understand the algebraic specifications in this article.

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.

Comments

Information & Contributors

Information

Published In

cover image ACM Transactions on Software Engineering and Methodology
ACM Transactions on Software Engineering and Methodology  Volume 10, Issue 1
Jan. 2001
143 pages
ISSN:1049-331X
EISSN:1557-7392
DOI:10.1145/366378
Issue’s Table of Contents

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 January 2001
Published in TOSEM Volume 10, Issue 1

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. algebraic specifications
  2. contact specifications
  3. message passing
  4. object-oriented programming
  5. software testing

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)22
  • Downloads (Last 6 weeks)1
Reflects downloads up to 09 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2023)“Testing Can Be Formal Too”: 30 Years LaterThe French School of Programming10.1007/978-3-031-34518-0_2(17-45)Online publication date: 11-Oct-2023
  • (2022)Automatic Detection of Interaction Errors2022 IEEE/ACIS 20th International Conference on Software Engineering Research, Management and Applications (SERA)10.1109/SERA54885.2022.9806754(47-53)Online publication date: 25-May-2022
  • (2022)Discovering boundary values of feature-based machine learning classifiers through exploratory datamorphic testingJournal of Systems and Software10.1016/j.jss.2022.111231187:COnline publication date: 1-May-2022
  • (2022)Object-Oriented Software Testing: A ReviewProceedings of International Conference on Information Technology and Applications10.1007/978-981-16-7618-5_40(461-467)Online publication date: 21-Apr-2022
  • (2021)Syntax‐based metamorphic relation prediction via the bagging frameworkExpert Systems10.1111/exsy.1290239:6Online publication date: 15-Dec-2021
  • (2020)Automation of Datamorphic Testing2020 IEEE International Conference On Artificial Intelligence Testing (AITest)10.1109/AITEST49225.2020.00017(64-72)Online publication date: Aug-2020
  • (2017)Formal methods for software testing (invited paper)2017 International Symposium on Theoretical Aspects of Software Engineering (TASE)10.1109/TASE.2017.8285622(1-3)Online publication date: Sep-2017
  • (2017)Generating test case for algebraic specification based on Tabu search and genetic algorithmCluster Computing10.1007/s10586-016-0681-720:1(277-289)Online publication date: 1-Mar-2017
  • (2016)Automated Integration Testing Using Logical ContractsIEEE Transactions on Reliability10.1109/TR.2015.249468565:3(1205-1222)Online publication date: Sep-2016
  • (2016)Monic Testing of Web Services Based on Algebraic Specifications2016 IEEE Symposium on Service-Oriented System Engineering (SOSE)10.1109/SOSE.2016.45(24-33)Online publication date: Mar-2016
  • Show More Cited By

View Options

Get Access

Login options

Full Access

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media