An empirical study of the reliability of UNIX utilities
Communications of the ACM
A methodology for controlling the size of a test suite
ACM Transactions on Software Engineering and Methodology (TOSEM)
A safe, efficient regression test selection technique
ACM Transactions on Software Engineering and Methodology (TOSEM)
Testing object-oriented systems: models, patterns, and tools
Testing object-oriented systems: models, patterns, and tools
Modernizing Legacy Systems: Software Technologies, Engineering Process and Business Practices
Modernizing Legacy Systems: Software Technologies, Engineering Process and Business Practices
Genetic Search with Approximate Function Evaluation
Proceedings of the 1st International Conference on Genetic Algorithms
Fitness Distance Correlation as a Measure of Problem Difficulty for Genetic Algorithms
Proceedings of the 6th International Conference on Genetic Algorithms
Whole program Path-Based dynamic impact analysis
Proceedings of the 25th International Conference on Software Engineering
Leveraging field data for impact analysis and regression testing
Proceedings of the 9th European software engineering conference held jointly with 11th ACM SIGSOFT international symposium on Foundations of software engineering
Introduction to Evolutionary Computing
Introduction to Evolutionary Computing
An Empirical Comparison of Dynamic Impact Analysis Algorithms
Proceedings of the 26th International Conference on Software Engineering
Chianti: a tool for change impact analysis of java programs
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
A comprehensive survey of fitness approximation in evolutionary computation
Soft Computing - A Fusion of Foundations, Methodologies and Applications
Scalable statistical bug isolation
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
diffX: an algorithm to detect changes in multi-version XML documents
CASCON '05 Proceedings of the 2005 conference of the Centre for Advanced Studies on Collaborative research
Evolutionary unit testing of object-oriented software using strongly-typed genetic programming
Proceedings of the 8th annual conference on Genetic and evolutionary computation
TimeAware test suite prioritization
Proceedings of the 2006 international symposium on Software testing and analysis
Proceedings of the 5th international conference on Generative programming and component engineering
Search Algorithms for Regression Test Case Prioritization
IEEE Transactions on Software Engineering
The Daikon system for dynamic detection of likely invariants
Science of Computer Programming
An empirical study of incorporating cost into test suite reduction and prioritization
Proceedings of the 2009 ACM symposium on Applied Computing
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
Automatically patching errors in deployed software
Proceedings of the ACM SIGOPS 22nd symposium on Operating systems principles
A study of cross-validation and bootstrap for accuracy estimation and model selection
IJCAI'95 Proceedings of the 14th international joint conference on Artificial intelligence - Volume 2
Optimal sampling and speed-up for genetic algorithms on the sampled OneMax problem
GECCO'03 Proceedings of the 2003 international conference on Genetic and evolutionary computation: PartII
Representations and operators for improving evolutionary software repair
Proceedings of the 14th annual conference on Genetic and evolutionary computation
A systematic study of automated program repair: fixing 55 out of 105 bugs for $8 each
Proceedings of the 34th International Conference on Software Engineering
Current challenges in automatic software repair
Software Quality Control
Evolutionary algorithms using cluster patterns for timetabling
Intelligent Decision Technologies
Hi-index | 0.00 |
Evolutionary methods have been used to repair programs automatically, with promising results. However, the fitness function used to achieve these results was based on a few simple test cases and is likely too simplistic for larger programs and more complex bugs. We focus here on two aspects of fitness evaluation: efficiency and precision. Efficiency is an issue because many programs have hundreds of test cases, and it is costly to run each test on every individual in the population. Moreover, the precision of fitness functions based on test cases is limited by the fact that a program either passes a test case, or does not, which leads to a fitness function that can take on only a few distinct values. This paper investigates two approaches to enhancing fitness functions for program repair, incorporating (1) test suite selection to improve efficiency and (2) formal specifications to improve precision. We evaluate test suite selection on 10 programs, improving running time for automated repair by 81%. We evaluate program invariants using the Fitness Distance Correlation (FDC) metric, demonstrating significant improvements and smoother evolution of repairs