Skip to main content

An Evolutionary Approach for Performing Structural Unit-Testing on Third-Party Object-Oriented Java Software

  • Chapter
Nature Inspired Cooperative Strategies for Optimization (NICSO 2007)

Abstract

Evolutionary Testing is an emerging methodology for automatically generating high quality test data. The focus of this paper is on presenting an approach for generating test cases for the unit-testing of object-oriented programs, with basis on the information provided by the structural analysis and interpretation of Java bytecode and on the dynamic execution of the instrumented test object. The rationale for working at the bytecode level is that even when the source code is unavailable, insight can still be obtained and used to guide the search-based test case generation process. Test cases are represented using the Strongly Typed Genetic Programming paradigm, which effectively mimics the polymorphic relationships, inheritance dependences and method argument constraints of object-oriented programs.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 129.00
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 169.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 169.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Vincenzi, A.M.R., Delamaro, M.E., Maldonado, J.C., Wong, W.E.: Establishing structural testing criteria for java bytecode. Softw. Pract. Exper. 36(14) (2006) 1513–1541

    Article  Google Scholar 

  2. Mantere, T., Alander, J.T.: Evolutionary software engineering, a review. Appl. Soft Comput. 5(3) (2005) 315–331

    Article  Google Scholar 

  3. McMinn, P.: Search-based software test data generation: A survey. Software Testing, Verification and Reliability 14(2) (2004) 105–156

    Article  Google Scholar 

  4. McMinn, P., Holcombe, M.: The state problem for evolutionary testing (2003)

    Google Scholar 

  5. Tonella, P.: Evolutionary testing of classes. In: ISSTA ’04: Proceedings of the 2004 ACM SIGSOFT international symposium on Software testing and analysis, New York, NY, USA, ACM Press (2004) 119–128

    Chapter  Google Scholar 

  6. Liu, X., Wang, B., Liu, H.: Evolutionary search in the context of object-oriented programs. In: MIC’05: Proceedings of the Sixth Metaheuristics International Conference. (2005)

    Google Scholar 

  7. Wappler, S., Lammermann, F.: Using evolutionary algorithms for the unit testing of object-oriented software. In: GECCO’05: Proceedings of the 2005 conference on Genetic and evolutionary computation, New York, NY, USA, ACM Press (2005) 1053–1060

    Chapter  Google Scholar 

  8. Seesing, A., Gro, H.G.: A genetic programming approach to automated test generation for object-oriented software. ITSSA 1(2) (2006) 127–134

    Google Scholar 

  9. Arcuri, A., Yao, X.: Search based testing of containers for object-oriented software. Technical Report CSR-07-3 (2007)

    Google Scholar 

  10. Wappler, S., Wegener, J.: Evolutionary unit testing of object-oriented software using strongly-typed genetic programming. In: GECCO’06: Proceedings of the 8th annual conference on Genetic and evolutionary computation, New York, NY, USA, ACM Press (2006) 1925–1932

    Chapter  Google Scholar 

  11. Wappler, S., Wegener, J.: Evolutionary Unit Testing Of Object-Oriented Software Using A Hybrid Evolutionary Algorithm. In: CEC’06: Proceedings of the 2006 IEEE Congress on Evolutionary Computation, IEEE (2006) 851–858

    Google Scholar 

  12. Montana, D.J.: Strongly typed genetic programming. Technical Report #7866, 10 Moulton Street, Cambridge, MA 02138, USA (7 1993)

    Google Scholar 

  13. Kropp, N.P., Jr., P.J.K., Siewiorek, D.P.: Automated robustness testing of off-the-shelf software components. In: Symposium on Fault-Tolerant Computing. (1998) 230–239

    Google Scholar 

  14. Harman, M., Hassoun, Y., Lakhotia, K., McMinn, P., Wegener, J.: The impact of input domain reduction on search-based test data generation. In: ESEC-FSE’07: Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering, New York, NY, USA, ACM Press (2007) 155–164

    Chapter  Google Scholar 

  15. Kinneer, A., Dwyer, M., Rothermel, G.: Sofya: A flexible framework for development of dynamic program analysis for java software. Technical Report TR-UNL-CSE-2006-0006, University of Nebraska, Lincoln (4 2006)

    Google Scholar 

  16. Luke, S. ECJ 16: A Java evolutionary computation library. http://cs.gmu.edu/~eclab/projects/ecj/ (2007)

  17. Koza, J.R.: Genetic Programming: On the Programming of Computers by Means of Natural Selection (Complex Adaptive Systems). The MIT Press (December 1992)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2008 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Ribeiro, J.C., Zenha-Rela, M., de Vega, F.F. (2008). An Evolutionary Approach for Performing Structural Unit-Testing on Third-Party Object-Oriented Java Software. In: Krasnogor, N., Nicosia, G., Pavone, M., Pelta, D. (eds) Nature Inspired Cooperative Strategies for Optimization (NICSO 2007). Studies in Computational Intelligence, vol 129. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-78987-1_34

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-78987-1_34

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-78986-4

  • Online ISBN: 978-3-540-78987-1

  • eBook Packages: EngineeringEngineering (R0)

Publish with us

Policies and ethics