On the automation of fixing software bugs

Created by W.Langdon from gp-bibliography.bib Revision:1.3872

  author =       "Andrea Arcuri",
  title =        "On the automation of fixing software bugs",
  booktitle =    "ICSE Companion '08: Companion of the 30th
                 international conference on Software engineering",
  year =         "2008",
  pages =        "1003--1006",
  address =      "Leipzig, Germany",
  publisher_address = "New York, NY, USA",
  publisher =    "ACM",
  note =         "Doctoral symposium session",
  keywords =     "genetic algorithms, genetic programming, co-evolution,
                 SuA, SBSE",
  isbn13 =       "978-1-60558-079-1",
  URL =          "http://delivery.acm.org/10.1145/1380000/1370223/p1003-arcuri.pdf",
  DOI =          "doi:10.1145/1370175.1370223",
  size =         "4 pages",
  abstract =     "Software Testing can take up to half of the resources
                 of the development of new software. Although there has
                 been a lot of work on automating the testing phase,
                 fixing a bug after its presence has been discovered is
                 still a duty of the programmers. Techniques to help the
                 software developers for locating bugs exist though, and
                 they take name of Automated Debugging. However, to our
                 best knowledge, there has been only little attempt in
                 the past to completely automate the actual changing of
                 the software for fixing the bugs. Therefore, in this
                 paper we propose an evolutionary approach to automate
                 the task of fixing bugs. The basic idea is to evolve
                 the programs (e.g., by using Genetic Programming) with
                 a fitness function that is based on how many unit tests
                 they are able to pass. If a formal specification of the
                 buggy software is given, more sophisticated fitness
                 functions can be designed. Moreover, by using the
                 formal specification as an oracle, we can generate as
                 many unit tests as we want. Hence, a co-evolution
                 between programs and unit tests might take place to
                 give even better results. It is important to know that,
                 to fix the bugs in a program with this novel approach,
                 a user needs only to provide either a formal
                 specification or a set of unit tests. No other
                 information is required.",
  notes =        "p1006 {"}We are building our prototype on top of our
                 previous system for AP{"} \cite{Arcuri:2007:ASE}

                 also known as \cite{1370223}

                 Doctoral Symposium of the IEEE International Conference
                 in Software Engineering",

Genetic Programming entries for Andrea Arcuri