Abstract
Component-based development makes heavy use of Object Oriented features which have motivated a major re-evaluation of software testing strategies. This chapter introduces the basic concepts of software testing focusing on the state-of-the-art and on the state-of-the-practice of this relevant area in the context of component-based software development.
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
Harrold, M.J.: Testing: A roadmap. In: 22th International Conference on Software Engineering (2000)
Chow, T.S.: Testing software design modelled by finite-state machines. IEEE Transactions on Software Engineering 4, 178–187 (1978)
Harel, D.: Statecharts: A visual formalism for complex systems. Science of Computer Programming 8, 231–274 (1987)
Freedman, R.S.: Testability of software components. IEEE Transactions on Software Engineering 17, 553–564 (1991)
Szyperski, C.: Component Software Beyond Object-Oriented Programming. Addison-Wesley, Reading (1998)
Matena, V., Stearns, B.: Applying Enterprise JavaBeans: Component-Based Development for the J2EE Platform, 2nd edn. Addison-Wesley, Reading (2001)
Microsoft: COM: Delivering on the promises of component technology. web page (2002), Available on-line at: http://www.microsoft.com/com/ (February 1, 2002)
Gimenes, I.M.S., Barroca, L., Huzita, E.H.M., Carnielo, A.: The process of component development by examples. In: VIII Regional Scholl of Informatics, Porto Alegre, RS, Brazil, pp. 1–32 (2000) (in Portuguese)
Werner, C.M., Braga, R.M.: Component-based development. Brazilian Symposium on Software Engineering 2000 (2000) (in Portuguese)
McDaniel, R., McGregor, J.D.: Testing polymorphic interactions between classes. Technical Report TR-94-103, Clemson University (1994)
Beizer, B.: Software Testing Techniques, 2nd edn. Van Nostrand Reinhold Company, New York (1990)
Zhu, H., Hall, P., May, J.: Software unit test coverage and adequacy. ACM Computing Surveys 29, 366–427 (1997)
Weyuker, E.J.: Testing component-based software: A cautionary tale. IEEE Software 15, 54–59 (1998)
Binder, R.V.: Testing Object-Oriented Systems: Models, Patterns, and Tools, vol. 1. Addison Wesley Longman, Inc., Amsterdam (1999)
Linnenkugel, U., Müllerburg, M.: Test data selection criteria for (software) integration testing. In: First International Conference on Systems Integration, Morristown, NJ, pp. 709–717 (1990)
Pressman, R.S.: Software Engineering - A Practitioner’s Approach., 5th edn. McGraw-Hill, New York (2000)
IEEE: IEEE standard glossary of software engineering terminology. Standard 610.12-1990 (R2002). IEEE Computer Society Press (2002)
Harrold, M.J., Rothermel, G.: Performing data flow testing on classes. In: Second ACM SIGSOFT Symposium on Foundations of Software Engineering, New York, pp. 154–163. ACM Press, New York (1994)
Perry, D.E., Kaiser, G.E.: Adequate testing and object-oriented programming. Journal on Object-Oriented Programming 2, 13–19 (1990)
Arnold, T.R., Fuson, W.A. In: a perfect world. Communications of the ACM 37, 78–86 (1994)
Howden, W.E.: Software Engineering and Technology: Functional Program Testing and Analysis. McGrall-Hill Book Co., New York (1987)
Offutt, A.J., Irvine, A.: Testing object-oriented software using the category-partition method. In: 17th International Conference on Technology of Object-Oriented Languages and Systems, Santa Barbara, CA, pp. 293–304 (1995)
Thevenod-Fosse, P., Waeselynck, H.: STATEMATE applied to statistical software testing. In: International Symposium on Software Testing and Analysis, Cambridge, MA, pp. 99–109. ACM Press, New York (1993)
Whittaker, J.A., Thomason, M.: A markov chain model for statistical software testing. IEEE Transactions on Software Engineering 20, 812–824 (1994)
Whittaker, J.A.: Stochastic software testing. Annals of Software Engineering 4, 115–131 (1997)
Banks, D., Dashiell, W., Gallagher, L., Hagwood, C., Kacker, R., Rosenthal, L.: Software testing by statistical methods. Technical Report NISTIR 6129, NIST - National Institute of Standards and Technology (1998)
Hoffman, D., Strooper, P.: A case study in class testing. In: CASCON 1993, pp.472-482. IBM Toronto Laboratory (1993)
Turner, C.D., Robson, D.J.: The state-based testing of object-oriented programs. In: Conference on Software Maintenance, Montreal Quebec, Canada, pp. 302–310. IEEE Computer Society Press, Los Alamitos (1993)
Kung, D., Gao, J., Hsia, P., Toyoshima, Y., Chen, C.: On regression testing of object-oriented programs. The Journal of Systems and Software 32, 21–40 (1996)
McGregor, J.D., Korson, T.D.: Integrated object-oriented testing and development process. Communications of the ACM 37, 59–77 (1994)
Hoffman, D., Strooper, P.: Classbrench: A framework for automated class testing. Software Practice and Experience 27, 573–597 (1997)
Frankl, F.G.: The Use of Data Flow Information for the Selection and Evaluation of Software Test Data. PhD thesis, Universidade de New York, New York, NY (1987)
Ntafos, S.C.: A comparison of some structural testing strategies. IEEE Transactions on Software Engineering 14, 868–873 (1988)
Rapps, S., Weyuker, E.J.: Selecting software test data using data flow information. IEEE Transactions on Software Engineering 11, 367–375 (1985)
Ostrand, T.J., Weyuker, E.J.: Using data flow analysis for regression testing. In: Sixth Annual Pacific Northwest Software Quality Conference, Portland – Oregon (1988)
Hartmann, J., Robson, D.J.: Techniques for selective revalidation. IEEE Software 7, 31–36 (1990)
Veevers, A., Marshall, A.: A relationship between software coverage metrics and reliability. Software Testing, Verification and Reliability 4, 3–8 (1994)
Varadan, G.S.: Trends in reliability and test strategies. IEEE Software 12, 10 (1995)
Chaim, M.L.: Program Debugging Based on Structural Testing Information. Doctoral dissertation, Scholl of Computer Science and Electrical Engineering, UNI-CAMP, Campinas, SP, Brazil (2001) (in Portuguese)
Myers, G.J.: The Art of Software Testing. Wiley, New York (1979)
Herman, P.M.: A data flow analysis approach to program testing. Australian Computer Journal 8, 92–96 (1976)
Laski, J.W., Korel, B.: A data flow oriented program testing strategy. IEEE Transactions on Software Engineering 9, 347–354 (1983)
Rapps, S., Weyuker, E.J.: Data flow analysis techniques for program test data selection. In: 6th International Conference on Software Engineering, Tokio, Japan, pp. 272–278 (1982)
Ntafos, S.C.: On required element testing. IEEE Transactions on Software Engineering 10, 795–803 (1984)
Maldonado, J.C.: Potential-Uses Criteria: A Contribution to the Structural Testing of Software. Doctoral dissertation, DCA/FEE/UNICAMP, Campinas, SP, Brazil (1991) (in Portuguese)
Harrold, M.J., Soffa, M.L.: Interprocedural data flow testing. In: Third Testing, Analysis, and Verification Symposium, pp. 158-167 (1989)
Harrold, M.J., Soffa, M.L.: Selecting and using data for integration test. IEEE Software 8, 58–65 (1991)
Vilela, P.R.S.: Integration Potencial-Uses Criteria: Definition and Analysis. Doctoral dissertation, DCA/FEEC/UNICAMP, Campinas, SP, Brazil (1998) (in Portuguese)
DeMillo, R.A., Lipton, R.J., Sayward, F.G.: Hints on test data selection: Help for the practicing programmer. IEEE Computer 11, 34–43 (1978)
Budd, T.A.: Computer Program Testing. In: Mutation Analysis: Ideas, Example, Problems and Prospects. North-Holland Publishing Company, Amsterdam (1981)
Friedman, A.D.: Logical Design of Digital Systems. Computer Science Press, Rockville (1975)
Delamaro, M.E., Maldonado, J.C., Mathur, A.P.: Interface mutation: An approach for integration testing. IEEE Transactions on Software Engineering 27, 228–247 (2001)
Fabbri, S.C.P.F., Maldonado, J.C., Masiero, P.C., Delamaro, M.E.: Mutation analysis applied to validate specifications based on petrinets. In: FORTE 1995 - 8th IFIP Conference on Formal Descriptions Techniques for Distribute Systems and Communication Protocols, Montreal, Canada, pp. 329–337 (1995)
Simão, A.S., Maldonado, J.C.: Mutation based test sequence generation for Petri nets. In: III Workshop of Formal Methods, João Pessoa (2000)
Fabbri, S.C.P.F.: The Mutation Analysis in the Context of Reactive Systems: a Constribution on the Establishment of Validation and Testing Strategies. Doctoral dissertation, IFSC-USP, São Carlos, SP, Brazil (1996) (in Portuguese)
Sugeta, T.: Proteum-rs/st: A tool to support the validation of statecharts based on mutation analysis. Master’s thesis, ICMC-USP, São Carlos, SP, Brazil (1999) (in Portuguese)
Fabbri, S.C.P.F., Maldonado, J.C., Masiero, P.C., Delamaro, M.E.: Mutation analysis based on finite state machines. In: XI Brazilian Symposium on Computer Networks, Campinas, SP, Brazil, pp. 407–425 (1993) (in Portuguese)
Fabbri, S.C.P.F., Maldonado, J.C., Masiero, P.C., Delamaro, M.E.: Mutation analysis testing for finite state machines. In: 5th International Symposium on Software Reliability Engineering (ISSRE 1994), Monterey, CA, pp. 220–229 (1944)
Probert, R.L., Guo, F.: Mutation testing of protocols: Principles and preliminary experimental results. In: IFIP TC6 - Third International Workshop on Protocol Test Systems, North-Holland, pp. 57–76 (1991)
Souza, S.R.S., Maldonado, J.C., Fabbri, S.C.P.F., Lopes de Souza, W.: Mutation testing applied to estelle specifications. Software Quality Journal 8, 285–301 (1999)
Kim, S., Clark, J.A., Mcdermid, J.A.: The rigorous generation of Java mutation operators using HAZOP. In: 12th International Conference on Software & Systems Engineering and their Applications (ICSSEA 1999) (1999)
Ma, Y.S., Kwon, Y.R., Offutt, J.: Inter-class mutation operators for Java. In: 13th International Symposium on Software Reliability Engineering - ISSRE 2002, Annapolis, MD (2002)
Ghosh, S., Mathur, A.P.: Interface mutation. Software Testing, Verification and Reliability 11, 227–247 (2001); Eric Wong, W. (ed.) Special Issue: Mutation 2000 - A Symposium on Mutation Testing
Sridhanan, B., Mundkur, S., Mathur, A.P.: Non-intrusive testing, monitoring and control of distributed corba objects. In: TOOLS 33 - 33rd International Conference on Technology of Object-Oriented Languages, Mont-saint-Michel, France, pp. 195–206 (2000)
Delamaro, M.E., Pezzè, M., Vincenzi, A.M.R., Maldonado, J.C.: Mutant operators for testing concurrent Java programs. In: Brazilian Symposium on Software Engineering 2001, Rio de Janeiro, RJ, Brazil, pp. 272–285 (2001)
Gönenç, G.: A method for design of fault-detection experiments. IEEE Transactions on Computers 19, 551–558 (1970)
Sabnani, K.K., Dahbura, A.: Protocol test generation procedure. Computer Networks and ISDN Systems 15, 285–297 (1988)
Fujiwara, S., Bochmann, G.V., Khendek, F., Amalou, M., Ghedamsi, A.: Test selection based on finite state models. IEEE Transactions on Software Engineering 17 (1991)
Beydeda, S., Gruhn, V.: An integrated testing technique for component-based software. In: AICCSA ACS/IEEE International Conference on Computer Systems and Applications, Beirut, Libanon, pp. 328–334. IEEE Computer Society Press, Los Alamitos (2001)
Harrold, M.J., Liang, D., Sinha, S.: An approach to analyzing and testing component-based systems. In: First International ICSE Workshop on Testing Distributed Component-Based Systems, Los Angeles, CA (1999)
Rosenblum, D.S.: Adequate testing of component-based software. Technical Report UCI-ICS-97-34, University of California, Irvine, CA (1997)
Ural, H., Yang, B.: A structural test selection criterion. Information Processing Letters 28, 157–163 (1988)
Martins, E., Toyota, C.M.: Construction of autotestable classes. In: VIII Symposion of Fault Tolerance Computation, Campinas, SP, pp. 196–209 (1999) (in Portuguese)
Rosa, A.C.A., Martins, E.: Using a reflexive architecture to validate object-oriented applications by fault injection. In: Workshop on Reflexive Programming in C++ and Java, Vancouver, Canada, pp. 76–80 (1998)
Orso, A., Harrold, M.J., Rosenblum, D., Rothermel, G., Do, H., Soffa, M.L.: Using component metacontent to support the regression testing of component-based software. In: IEEE International Conference on Software Maintenance (ICSM 2001), Florence, Italy, pp. 716–725. IEEE Computer Society Press, Los Alamitos (2001)
Edwards, S.H.: Toward reflective metadata wrappers for formally specified software components. In: OOPSLA 2001 Workshop on Specification and Verification of Component-Based Systems. ACM Press, New York (2001)
Harrold, M.J., McGregor, J.D., Fitzpatrick, K.J.: Incremental testing of object-oriented class structures. In: 14th International Conference on Software Engineering, Los Alamitos, CA, pp. 68–80. IEEE Computer Society Press, Los Alamitos (1992)
Gao, J.: Tracking component-based software. Technical report, San Jose State University (San Jose, CA)
Voas, M, Gao, J.: Certifying off-the shelf-components. IEEE Computer 31, 53–59 (1998)
Binder, R.V.: Modal testing strategies for OO software. Computer 29, 97–99 (1996)
Binder, R.V.: The free approach to testing object-oriented software: An overview. Pgina WWW (1996), Available on-line at, http://www.rbsc.com/pages/FREE.html [01-20-2003]
Kim, S., Clark, J.A., Mcdermid, J.A.: Class mutation: Mutation testing for object-oriented programs. In: FMES (2000)
Edwards, S.H.: A framework for practical, automated black-box testing of component-based software. Software Testing, Verification and Reliability 11, 97–111 (2001)
Wang, Y., King, G., Wickburg, H.: A method for built-in tests in component-based software maintenance. In: Third European Conference on Software Maintenance and Reengineering, Amsterdam, Netherlands, pp. 186–189. IEEE Computer Society Press, Los Alamitos (1999)
Soundarajan, N., Tyler, B.: Testing components. In: OOPSLA 2001 Workshop on Specification and Verification of Component-Based Systems, Tampa, Florida, pp. 4–9. ACM Press, New York (2001)
Rosa, A.C.A., Martins, E.: Using a reflexive architecture to validate object-oriented applications by fault injection. In: Workshop on Reflexive Programming in C++ and Java, Vancouver, Canada, pp. 76–80 (1998), Available on-line at http://www.dc.unicamp.br/~eliane
Edwards, S.H.: Black-box testing using flowgraphs: An experimental assessment of effectiveness and automation potential. Software Testing, Verification and Reliability 10, 249–262 (2000)
Zhao, J.: Dependence analysis of java bytecode. In: 24th IEEE Annual International Computer Software and Applications Conference (COMPSAC 2000), Taipei, Taiwan, pp. 486–491. IEEE Computer Society Press, Los Alamitos (2000)
Zhao, J., Xiang, L., Nishimi, K., Harada, T.: Understanding java bytecode using kafer. In: 20th IASTED International Conference on Applied Informatics (AI 2002), Innsbruck, Austria. ACTA Press (2002)
Vincenzi, A.M.R., Delamato, M.E., Maldonado, J.C., Wong, W.E., Simão, A.S.: Jabá-aJavabytecode analyzer. In: XVI Brazilian Symposium on Software Engineering, Gramado, RS, Brazil, pp. 414-419 (2002)
McGregor, J.D.: Parallel architecture for component testing. Journal of Object-Oriented Programming 10, 10–14 (1997), Available on-line at http://www.cs.clemson.edu/~nmc/columns.html [01-06-2003]
Bhor, A.: Component testing strategies. Technical Report UCI-ICS-02-06, Dept. of Information and Computer Science - University of California, Irvine - California (2001), Available on-line at http://www.ics.uci.edu/~abhor/ [01-06-2003]
Bundell, G.A., Lee, G., Morris, J., Parker, K., Lam, P.: A software component verification tool. In: International Conference on Software Methods and Tools (SMT 2000), Wollongong, Australia (2000)
Corporation, P.: Using design by contract to automate java software and component testing. web page (2002), Avaliable on-line http://www.parasoft.com/ [01-20-2003]
Beck, K., Gamma, E.: JUnit cookbook. web page (2002), Avaliable on-line: http://www.junit.org/ [01-20-2003]
Edge, T.: Glass JAR toolkit. web page, Available on-line, at (2002), http://www.testersedge.com/gjtk/ [01-20-2003]
Agrawal, H.: Dominators, super blocks, and program coverage. In: Proceedings of the 21st Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL 1994), Portland, OR, pp. 25–34 (1994)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2003 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Vincenzi, A.M.R., Maldonado, J.C., Delamaro, M.E., Spoto, E.S., Wong, W.E. (2003). Component-Based Software: An Overview of Testing. In: Cechich, A., Piattini, M., Vallecillo, A. (eds) Component-Based Software Quality. Lecture Notes in Computer Science, vol 2693. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-45064-1_6
Download citation
DOI: https://doi.org/10.1007/978-3-540-45064-1_6
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-40503-0
Online ISBN: 978-3-540-45064-1
eBook Packages: Springer Book Archive