Reggae: Automated Test Generation for Programs Using Complex Regular Expressions
- 1 November 2009
- conference paper
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
- p. 515-519
- https://doi.org/10.1109/ase.2009.67
Abstract
Test coverage such as branch coverage is commonly measured to assess the sufficiency of test inputs. To reduce tedious manual efforts in generating high-covering test inputs, various automated techniques have been proposed. Some recent effective techniques include Dynamic Symbolic Execution (DSE) based on path exploration. However, these existing DSE techniques cannot generate high-covering test inputs for programs using complex regular expressions due to large exploration space; these complex regular expressions are commonly used for input validation and information extraction. To address this issue, we propose an approach, named Reggae, to reduce the exploration space of DSE in test generation. In our evaluation, we apply Reggae on various input-validation programs that use complex regular expressions. Empirical results show that Reggae helps a test-generation tool generate test inputs to achieve 79% branch coverage of validators, improved from 29% achieved without the help of Reggae.Keywords
This publication has 9 references indexed in Scilit:
- HAMPIPublished by Association for Computing Machinery (ACM) ,2009
- Fitness-guided path exploration in dynamic symbolic executionPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2009
- Dynamic test input generation for web applicationsPublished by Association for Computing Machinery (ACM) ,2008
- Dynamic test input generation for database applicationsPublished by Association for Computing Machinery (ACM) ,2007
- JPF–SE: A Symbolic Execution Extension to Java PathFinderPublished by Springer Science and Business Media LLC ,2007
- EXEPublished by Association for Computing Machinery (ACM) ,2006
- CUTEPublished by Association for Computing Machinery (ACM) ,2005
- DARTPublished by Association for Computing Machinery (ACM) ,2005
- Symbolic execution and program testingCommunications of the ACM, 1976