ABSTRACT
There has been little attention to search based test data generation in the presence of pointer inputs and dynamic data structures, an area in which recent concolic methods have excelled. This paper introduces a search based testing approach which is able to handle pointers and dynamic data structures. It combines an alternating variable hill climb with a set of constraint solving rules for pointer inputs. The result is a lightweight and efficient method, as shown in the results from a case study, which compares the method to CUTE, a concolic unit testing tool.
- lp solve. web page: http://tech.groups.yahoo.com/group/lp solve/.Google Scholar
- Cristian Cadar and Dawson R. Engler. Execution generated test cases: How to make systems code crash itself. In Model Checking Software, 12th International SPIN Workshop, San Francisco, CA, USA, August 22-24, 2005, Proceedings, volume 3639 of Lecture Notes in Computer Science, pages 2--23. Springer, 2005. Google ScholarDigital Library
- Richard A. Demillo and A. Jefferson Offutt. Experimental results from an automatic test case generator. ACM Transactions on Software Engineering and Methodology, 2(2):109--127, April 1993. Google ScholarDigital Library
- Patrice Godefroid. Compositional dynamic test generation. In Martin Hofmann and Matthias Felleisen, editors, POPL, pages 47--54. ACM, 2007. Google ScholarDigital Library
- Patrice Godefroid, Nils Klarlund, and Koushik Sen. DART: directed automated random testing. ACM SIGPLAN Notices, 40(6):213--223, June 2005. Google ScholarDigital Library
- Mark Harman. The current state and future of search based software engineering. In IEEE Computer Society Press, Future of Software Engineering 2007, Los Alamitos, California, USA, 2007, 2007. Google ScholarDigital Library
- Mark Harman and Phil McMinn. A theoretical & empirical analysis of evolutionary testing and hill climbing for structural test data generation. In David S. Rosenblum and Sebastian G. Elbaum, editors, ISSTA, pages 73--83. ACM, 2007. Google ScholarDigital Library
- Kobi Inkumsah and Tao Xie. Evacon: A framework for integrating evolutionary and concolic testing for object-oriented programs. In Proc. 22nd IEEE/ACM International Conference on Automated Software Engineering (ASE 2007), pages 425--428, November 2007. Google ScholarDigital Library
- B.F. Jones, H.-H. Sthamer, and D.E. Eyres. Automatic structural testing using genetic algorithms. The Software Engineering Journal, 11:299--306, 1996.Google ScholarCross Ref
- B.F. Jones, H.-H. Sthamer, and D.E. Eyres. Automatic structural testing using genetic algorithms. The Software Engineering Journal, 11:299--306, 1996.Google ScholarCross Ref
- Sarfraz Khurshid, Corina S. Pasareanu, and Willem Visser. Generalized symbolic execution for model checking and testing. In Hubert Garavel and John Hatcliff, editors, TACAS, volume 2619 of Lecture Notes in Computer Science, pages 553--568. Springer, 2003. Google ScholarDigital Library
- J. C. King. Symbolic execution and program testing. Communications of the ACM, 19(7):385--394, July 1976. Google ScholarDigital Library
- B. Korel. Automated software test data generation. IEEE Transactions on Software Engineering, 16(8):870--879, 1990. Google ScholarDigital Library
- Rupak Majumdar and Koushik Sen. Hybrid concolic testing. In ICSE, pages 416--426. IEEE Computer Society, 2007. Google ScholarDigital Library
- Phil McMinn. Search-based software test data generation: A survey. Software Testing, Verification and Reliability, 14(2):105--156, June 2004. Google ScholarDigital Library
- Christoph C. Michael, Gary McGraw, and Michael Schatz. Generating software test data by evolution. IEEE Trans. Software Eng, 27(12):1085--1110, 2001. Google ScholarDigital Library
- George C. Necula, Scott McPeak, Shree P. Rahul, and Westley Weimer. CIL: Intermediate language and tools for analysis and transformation of C programs. Lecture Notes in Computer Science, 2304:213--??, 2002. Google ScholarDigital Library
- R. P. Pargas, M. J. Harrold, and R. R. Peck. Test-data generation using genetic algorithms. The Journal of Software Testing, Verification and Reliability, 9:263--282, 1999.Google ScholarCross Ref
- Koushik Sen and Gul Agha. CUTE and jCUTE: Concolic unit testing and explicit path model-checking tools. In CAV, volume 4144 of Lecture Notes in Computer Science, pages 419--423. Springer, 2006. Google ScholarDigital Library
- Paolo Tonella. Evolutionary testing of classes. In George S. Avrunin and Gregg Rothermel, editors, ISSTA, pages 119--128. ACM, 2004. Google ScholarDigital Library
- Joachim Wegener, Andr´e Baresel, and Harmen Sthamer. Evolutionary test environment for automatic structural testing. Information and Software Technology Special Issue on Software Engineering using Metaheuristic Innovative Algorithms, 43(14):841--854, 2001.Google Scholar
- S. Xanthakis, C. Ellis, C. Skourlas, A. Le Gall, S. Katsikas, and K. Karapoulios. Application of genetic algorithms to software testing (Application des algorithmes génétiques au test des logiciels). In 5th International Conference on Software Engineering and its Applications, pages 625--636, Toulouse, France, 1992.Google Scholar
Index Terms
- Handling dynamic data structures in search based testing
Recommendations
An automated test data generation method for void pointers and function pointers in C/C++ libraries and embedded projects
AbstractAutomated test data generation for unit testing C/C++ functions using concolic methods is well-known for improving software quality while reducing human testing effort. However, there have been only a few researches related to ...
Concolic testing
ASE '07: Proceedings of the 22nd IEEE/ACM International Conference on Automated Software EngineeringConcolic testing automates test input generation by combining the concrete and symbolic (concolic) execution of the code under test. Traditional test input generation techniques use either (1) concrete execution or (2) symbolic execution that builds ...
Grey-box concolic testing on binary code
ICSE '19: Proceedings of the 41st International Conference on Software EngineeringWe present grey-box concolic testing, a novel path-based test case generation method that combines the best of both white-box and grey-box fuzzing. At a high level, our technique systematically explores execution paths of a program under test as in ...
Comments