Software testing techniques (2nd ed.)
Software testing techniques (2nd ed.)
Genetic programming: on the programming of computers by means of natural selection
Genetic programming: on the programming of computers by means of natural selection
ALIFE Proceedings of the sixth international conference on Artificial life
Foundations of genetic programming
Foundations of genetic programming
Art of Software Testing
Multi-Objective Optimization Using Evolutionary Algorithms
Multi-Objective Optimization Using Evolutionary Algorithms
Automated Debugging: Are We Close
Computer
Search-based software test data generation: a survey: Research Articles
Software Testing, Verification & Reliability
Proceedings of the 5th international conference on Generative programming and component engineering
A Logical Framework for Monitoring and Evolving Software Components
TASE '07 Proceedings of the First Joint IEEE/IFIP Symposium on Theoretical Aspects of Software Engineering
On the possibilities of (pseudo-) software cloning from external interactions
Soft Computing - A Fusion of Foundations, Methodologies and Applications
Coevolving programs and unit tests from their specification
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
New methods for competitive coevolution
Evolutionary Computation
Search based software testing of object-oriented containers
Information Sciences: an International Journal
CHARME'05 Proceedings of the 13 IFIP WG 10.5 international conference on Correct Hardware Design and Verification Methods
Automatically finding patches using genetic programming
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
A genetic programming approach to automated software repair
Proceedings of the 11th Annual conference on Genetic and evolutionary computation
Coevolutionary automated software correction
Proceedings of the 12th annual conference on Genetic and evolutionary computation
Evolutionary repair of faulty software
Applied Soft Computing
Evolving patches for software repair
Proceedings of the 13th annual conference on Genetic and evolutionary computation
Automated error correction of business process models
BPM'11 Proceedings of the 9th international conference on Business process management
Automated error localization and correction for imperative programs
Proceedings of the International Conference on Formal Methods in Computer-Aided Design
Search-based software engineering: Trends, techniques and applications
ACM Computing Surveys (CSUR)
Automated feedback generation for introductory programming assignments
Proceedings of the 34th ACM SIGPLAN conference on Programming language design and implementation
Using automated program repair for evaluating the effectiveness of fault localization techniques
Proceedings of the 2013 International Symposium on Software Testing and Analysis
Combining slicing and constraint solving for better debugging: the CONBAS approach
Advances in Software Engineering
An orchestrated survey of methodologies for automated software test case generation
Journal of Systems and Software
Repair with on-the-fly program analysis
HVC'12 Proceedings of the 8th international conference on Hardware and Software: verification and testing
Co-evolutionary automatic programming for software development
Information Sciences: an International Journal
Hi-index | 0.00 |
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.