SYMBOLIC EXECUTION FOR DYNAMIC, EVOLUTIONARY TEST DATA GENERATION

Anastasis A. Sofokleous, Andreas S. Andreou, Antonis Kourras

Abstract

This paper combines the advantages of symbolic execution with search based testing to produce automatically test data for JAVA programs. A framework is proposed comprising two systems which collaborate to generate test data. The first system is a program analyser capable of performing dynamic and static program analysis. The program analyser creates the control flow graph of the source code under testing and uses a symbolic transformation to simplify the graph and generate paths as independent control flow graphs. The second system is a test data generator that aims to create a set of test cases for covering each path. The implementation details of the framework, as well as the relevant experiments carried out on a number of JAVA programs are presented. The experimental results demonstrate the efficiency and efficacy of the framework and show that it can outperform the performance of related approaches.

References

  1. Baresel, A., Binkley, D., Harman, M., & Korel, B. (2004). Evolutionary testing in the presence of loop-assigned flags: A testability transformation approach. Proceedings of the 2004 ACM SIGSOFT International Symposium on Software Testing and Analysis, Boston, Massachusetts, USA. 108-118.
  2. Baresel, A., & Sthamer, H. (2003). Evolutionary testing of flag conditions. Lecture Notes in Computer Science 2724: Proceedings of the Genetic and Evolutionary Computation Conference (GECCO 2003), Chicago, IL, USA. , 2724 2442-2454.
  3. Bertolino, A. (2007). Software testing research: Achievements, challenges, dreams. Proceedings of the 29th International Conference on Software Engineering (ICSE 2007): Future of Software Engineering (FOSE 7807), Minneapolis, MN, USA. , 0 85-103.
  4. Bottaci, L. (2002). Instrumenting programs with flag variables for test data search by genetic algorithms. Proceedings of the Genetic and Evolutionary Computation Conference, New York, USA. 1337- 1342.
  5. Frankl, P. G., & Weyuker, E. J. (1988). An applicable family of data flow testing criteria. IEEE Transactions on Software Engineering, 14(10), 1483-1498.
  6. Godefroid, P. (2007). Compositional dynamic test generation. Proceedings of the 34th ACM Symposium on Principles of Programming Languages (ACM SIGPLAN-SIGACT), Nice, France. 47-54.
  7. Godefroid, P., Klarlund, N., & Sen, K. (2005). DART: Directed automated random testing. Proceedings of the 2005 ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 7805), Chicago, IL, USA. 213-223.
  8. Kebbal, D. (2006). Automatic flow analysis using symbolic execution and path enumeration. Proceedings of the 2006 International Conference Workshops on Parallel Processing, Columbus, Ohio, USA. 397-404.
  9. King, J. C. (1976). Symbolic execution and program testing. Communications of the ACM, 19(7), 385-394.
  10. McMinn, P. (2004). Search-based software test data generation: A survey. Software Testing, Verification and Reliability, 14(2), 105-156.
  11. McMinn, P., Harman, M., Binkley, D., & Tonella, P. (2006). The species per path approach to SearchBased test data generation. Proceedings of the 2006 International Symposium on Software Testing and Analysis (ISSTA 2006), London, UK. 13-24.
  12. Pargas, R. P., Harrold, M. J., & Peck, R. R. (1999). Testdata generation using genetic algorithms. Journal of Software Testing, Verification and Reliability, 9(4), 263-282.
  13. Sen, K., Marinov, D., & Agha, G. (2005). CUTE: A concolic unit testing engine for C. Proceedings of the Joint 10th European Software Engineering Conference and 13th ACM SIGSOFT Symposium on the Foundations of Software Engineering, Lisbon, Portugal. 263-272.
  14. Soffa, M. L., Mathur, A. P., & Gupta, N. (2000). Generating test data for branch coverage. Proceedings of the 15th IEEE International Conference on Automated Software Engineering (ASE'00), Grenoble, France. 219.
  15. Sofokleous, A., & Andreou, A. (2007). Batch-optimistic test-cases generation using genetic algorithms. Proceedings of the 19th IEEE International Conference on Tools with Artificial Intelligence (ICTAI), Patra, Greece. 157-164.
  16. Sofokleous, A., & Andreou, A. (2008). Dynamic searchbased test data generation focused on data flow paths. Proceedings of the 10th International Conference on Enterprise Information Systems (ICEIS 2006), Barcelona, Spain. 27-35.
  17. Sofokleous, A. A., & Andreou, A. S. (2008). Automatic, evolutionary test data generation for dynamic software testing. The Journal of Systems & Software, 81(11), 1883-1898.
  18. Tillmann, N., & Schulte, W. (2006). Unit tests reloaded: Parameterized unit testing with symbolic execution. IEEE Software, 23(4), 38-47.
  19. Zhang, J., Xu, C., & Wang, X. (2004). Path-oriented test data generation using symbolic execution and constraint solving techniques. Proceedings of the Second International Conference on Software Engineering and Formal Methods, Beijing, China. , 28 242-250.
Download


Paper Citation


in Harvard Style

Sofokleous A., Andreou A. and Kourras A. (2009). SYMBOLIC EXECUTION FOR DYNAMIC, EVOLUTIONARY TEST DATA GENERATION . In Proceedings of the 11th International Conference on Enterprise Information Systems - Volume 1: ICEIS, ISBN 978-989-8111-84-5, pages 144-150. DOI: 10.5220/0001992701440150


in Bibtex Style

@conference{iceis09,
author={Anastasis A. Sofokleous and Andreas S. Andreou and Antonis Kourras},
title={SYMBOLIC EXECUTION FOR DYNAMIC, EVOLUTIONARY TEST DATA GENERATION},
booktitle={Proceedings of the 11th International Conference on Enterprise Information Systems - Volume 1: ICEIS,},
year={2009},
pages={144-150},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0001992701440150},
isbn={978-989-8111-84-5},
}


in EndNote Style

TY - CONF
JO - Proceedings of the 11th International Conference on Enterprise Information Systems - Volume 1: ICEIS,
TI - SYMBOLIC EXECUTION FOR DYNAMIC, EVOLUTIONARY TEST DATA GENERATION
SN - 978-989-8111-84-5
AU - Sofokleous A.
AU - Andreou A.
AU - Kourras A.
PY - 2009
SP - 144
EP - 150
DO - 10.5220/0001992701440150