Software testing techniques (2nd ed.)
Software testing techniques (2nd ed.)
Object-oriented software construction (2nd ed.)
Object-oriented software construction (2nd ed.)
Automated program flaw finding using simulated annealing
Proceedings of the 1998 ACM SIGSOFT international symposium on Software testing and analysis
Genetic Algorithms in Search, Optimization and Machine Learning
Genetic Algorithms in Search, Optimization and Machine Learning
Generating Software Test Data by Evolution
IEEE Transactions on Software Engineering
Evolutionary testing of classes
ISSTA '04 Proceedings of the 2004 ACM SIGSOFT international symposium on Software testing and analysis
DART: directed automated random testing
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
Using evolutionary algorithms for the unit testing of object-oriented software
GECCO '05 Proceedings of the 7th annual conference on Genetic and evolutionary computation
Evolutionary unit testing of object-oriented software using strongly-typed genetic programming
Proceedings of the 8th annual conference on Genetic and evolutionary computation
Proceedings of the 2007 international symposium on Software testing and analysis
Experimental assessment of random testing for object-oriented software
Proceedings of the 2007 international symposium on Software testing and analysis
Predicting software complexity by means of evolutionary testing
Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering
Hi-index | 0.00 |
It is estimated that 80% of software development cost is spent on detecting and fixing defects. To tackle this issue, a number of tools and testing techniques have been developed to improve the existing testing framework. Although techniques such as static analysis, random testing and evolutionary testing have been used to automate the testing process, it is not clear what is the best approach. Previous research on evolutionary testing has mainly focused on procedural programming languages with code coverage as the main optimization parameter. In this work, we present an approach that combines a genetic algorithm with static analysis to automatically test Eiffel classes using the number of faults found as the optimization parameter. A total of 115 experiments on 22 Eiffel classes were executed to evaluate the effectiveness of evolutionary testing compared to the results obtained by running a random test case generator for 15, 30 and 60 minutes. The results show a genetic algorithm combined with static analysis can considerably increase the number of faults found compared to a random testing approach. In some cases, evolutionary testing found more faults in 15 minutes than a random testing strategy found in 60 minutes.