ABSTRACT
This paper proposes the use of genetic algorithms as shrinkers for shrinking the counterexamples generated by QuickChick, a property-based testing framework for Coq. The present study incorporates the flexibility and versatility of evolutionary algorithms into the realm of rigorous software development, in particular, making the results of property-based testing observable and comprehensible for human. The program code for merge sort is investigated as a showcase in the study. Due to the lack of similar proposals in the literature, random sample is used to compete with the proposal for comparison. The experimental results indicate that the proposed genetic algorithm outperforms random sample. Moreover, the minimal counterexamples, through which programmers are able to pinpoint the program mistakes with ease, can be successfully obtained by using genetic algorithms as shrinkers.
- Bernhard K. Aichernig and Richard Schumi. 2016. Property-Based Testing with FsCheck by Deriving Properties from Business Rule Models. In 2016 IEEE Ninth International Conference on Software Testing, Verification and Validation Workshops (ICSTW). 219--228.Google Scholar
- Clara Benac Earle, Lars-Åke Fredlund, and John Hughes. 2016. Automatic Grading of Programming Exercises Using Property-Based Testing. In Proceedings of the 2016 ACM Conference on Innovation and Technology in Computer Science Education (ITiCSE '16). ACM, New York, NY, USA, 47--52. Google ScholarDigital Library
- Koen Claessen and John Hughes. 2000. QuickCheck: A Lightweight Tool for Random Testing of Haskell Programs. In Proceedings of the Fifth ACM SIGPLAN International Conference on Functional Programming (ICFP '00). ACM, New York, NY, USA, 268--279. Google ScholarDigital Library
- Maxime Dénès, Catalin Hritcu, Leonidas Lampropoulos, Zoe Paraskevopoulou, and Benjamin C Pierce. 2014. QuickChick: Property-based testing for Coq. In The Coq Workshop.Google Scholar
- The Coq development team. 2004. The Coq proof assistant reference manual. LogiCal Project, http://coq.inria.fr Version 8.0.Google Scholar
- Georges Gonthier. 2008. Formal proof---the four-color theorem. Notices of the AMS 55, 11 (2008), 1382--1393.Google Scholar
- Ronghui Gu, Zhong Shao, Hao Chen, Xiongnan Wu, Jieung Kim, Vilhelm Sjöberg, and David Costanzo. 2016. CertiKOS: An Extensible Architecture for Building Certified Concurrent OS Kernels. In Proceedings of the 12th USENLX Conference on Operating Systems Design and Implementation (OSDI'16). USENLX Association, Berkeley, CA, USA, 653--669. htfp://dl.acm.org/citation.cfm?id=3026877.3026928 Google ScholarDigital Library
- Xavier Leroy. 2006. Formal certification of a compiler back-end, or: programming a compiler with a proof assistant. In 33rd ACM symposium on Principles of Programming Languages. ACM Press, 42--54. Google ScholarDigital Library
Index Terms
- Genetic algorithms as shrinkers in property-based testing
Recommendations
Neural network crossover in genetic algorithms using genetic programming
AbstractThe use of genetic algorithms (GAs) to evolve neural network (NN) weights has risen in popularity in recent years, particularly when used together with gradient descent as a mutation operator. However, crossover operators are often omitted from ...
Optimization of software testing using genetic algorithms
MACMESE'09: Proceedings of the 11th WSEAS international conference on Mathematical and computational methods in science and engineeringThis paper presents the study of optimization of software testing techniques by using Genetic Algorithms (GAs) and a sufficient testing convergence condition of GAs is presented. Some new categories of genetic codes are applied in some problem ...
Using messy genetic algorithms for solving the winner determination problem
GECCO '10: Proceedings of the 12th annual conference companion on Genetic and evolutionary computationThe paper presents a study on the application of messy genetic algorithms for the winner determination problem in the combinatorial auction realm. Messy genetic algorithms operate explicitly on building blocks in order to obtain good solutions. Since ...
Comments