skip to main content
10.1145/1321631.1321693acmconferencesArticle/Chapter ViewAbstractPublication PagesaseConference Proceedingsconference-collections
poster

Coevolving programs and unit tests from their specification

Authors Info & Claims
Published:05 November 2007Publication History

ABSTRACT

Writing a formal specification before implementing a program helps to find problems with the system requirements. The requirements might be for example incomplete and ambiguous. Fixing these types of errors is very difficult and expensive during the implementation phase of the software development cycle. Although writing a formal specification is usually easier than implementing the actual code, writing a specification requires time, and often it is preferred, instead, to use this time on the implementation.

In this paper we introduce for the first time a framework that might evolve any possible generic program from its specification. We use the Genetic Programming to evolve the programs, and at the same time we exploit the specifications to coevolve sets of unit tests. Programs are rewarded on how many tests they do not fail, whereas the unit tests are rewarded on how many programs they make fail. We present and analyse four different problems on which this novel technique is successfully applied.

References

  1. A. Agapitos and S. M. Lucas. Evolving modular recursive sorting algorithms. In Proceedings of the European Conference on Genetic Programming (EuroGP), pages 301--310, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. S. G. Ficici. Solution Concepts in Coevolutionary Algorithms. PhD thesis, Brandeis University, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. W. D. Hillis. Co-evolving parasites improve simulated evolution as an optimization procedure. Physica D, 42(1--3):228--234, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. J. H. Holland. Adaptation in Natural and Artificial Systems, second edition. MIT Press, Cambridge, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. E. D. Jong and J. Pollack. Ideal evaluation from coevolution. Evolutionary Computation, 12(2):159--192, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. J. R. Koza. Genetic Programming: On the Programming of Computers by Means of Natural Selection. The MIT Press, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. S. Luke. Issues in Scaling Genetic Programming: Breeding Strategies, Tree Generation, and Code Bloat. PhD thesis, University of Maryland, 2000.Google ScholarGoogle Scholar
  8. P. McMinn. Search-based software test data generation: A survey. Software Testing, Verification and Reliability, 14(2):105--156, June 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. G. Myers. The Art of Software Testing. Wiley, New York, 1979. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. J. Paredis. Coevolving cellular automata: Be aware of the red queen. In T. Bäck, editor, Proceedings of the Seventh International Conference on Genetic Algorithms (ICGA97), San Francisco, CA, 1997. Morgan Kaufmann.Google ScholarGoogle Scholar
  11. C. Rich and R. C. Waters. Automatic programming: myths and prospects. Computer, 21(8):40--51, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. N. J. Tracey. A Search-Based Automated Test Data Generation Framework for Safety-Critical Software. PhD thesis, University of York, 2000.Google ScholarGoogle Scholar

Index Terms

  1. Coevolving programs and unit tests from their specification

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in
    • Published in

      cover image ACM Conferences
      ASE '07: Proceedings of the 22nd IEEE/ACM International Conference on Automated Software Engineering
      November 2007
      590 pages
      ISBN:9781595938824
      DOI:10.1145/1321631

      Copyright © 2007 ACM

      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 5 November 2007

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • poster

      Acceptance Rates

      Overall Acceptance Rate82of337submissions,24%

      Upcoming Conference

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader