An Improved Technique of Fitness Evaluation for Automated Test Data Generation

테스트 데이터 자동 생성을 위한 적합도 평가 방법의 효율성 향상 기법

  • 이선열 (부산대학교 컴퓨터공학과) ;
  • 최현재 (부산대학교 컴퓨터공학과) ;
  • 정연지 (부산대학교 컴퓨터공학과) ;
  • 배정호 (부산대학교 컴퓨터공학과) ;
  • 김태호 (한국전자통신연구원 임베디드SW플랫폼연구팀) ;
  • 채흥석 (부산대학교 컴퓨터공학과)
  • Received : 2010.05.13
  • Accepted : 2010.10.25
  • Published : 2010.12.15

Abstract

Many automated dynamic test data generation technique have been proposed. The techniques evaluate fitness of test data through executing instrumented Software Under Test (SUT) and then generate new test data based on evaluated fitness values and optimization algorithms. Previous researches and experiments have been showed that these techniques generate effective test data. However, optimization algorithms in these techniques incur much time to generate test data, which results in huge test case generation cost. In this paper, we propose a technique for reducing the time of evaluating a fitness of test data among steps of dynamic test data generation methods. We introduce the concept of Fitness Evaluation Program (FEP), derived from a path constraint of SUT. We suggest a test data generation method based on FEP and implement a test generation tool, named ConGA. We also apply ConGA to generate test cases for C programs, and evaluate efficiency of the FEP-based test case generation technique. The experiments show that the proposed technique reduces 20% of test data generation time on average.

테스트 데이터를 자동으로 생성하기 위한 동적 테스트 데이터 생성에 관한 많은 연구가 이루어졌다. 동적 테스트 데이터 생성 방법은 가공 테스트 대상 프로그램(SUT; Software Under Test)을 실행시켜 기존의 테스트 데이터의 적합도를 평가하고, 평가된 적합도 값과 최적의 알고리즘을 이용하여 새로운 테스트 데이터를 생성하는 방법이다. 최근에 전역 최적화 알고리즘을 이용한 동적 테스트 데이터 생성에 관한 많은 연구가 이루어져 왔고, 이 알고리즘을 통해서 테스트 대상 프로그램 (SUT)의 커버리지를 높일 수 있는 데이터를 생성할 수 있다는 것이 실험적으로 밝혀졌다. 그러나 최적화 알고리즘은 오랜 연산 시간이 필요하기 때문에, 이를 이용한 방법은 테스트 데이터를 생성하기 위해 많은 시간이 걸린다는 단점이 있다. 본 논문에서는 최적화 알고리즘을 이용한 동적 테스트 데이터 생성의 시간을 줄이기 위하여, 최적화 알고리즘의 절차 중 적합도 평가 시간을 줄이는 방법을 제안한다. 이를 위하여 SUT의 테스트 목표 경로로 부터 생성된 적합도 평가 프로그램(FEP)을 정의하고, 가공 SUT 실행하는 대신 소개된 FEP를 이용한 적합도 평가 방법을 제안하고 'ConGA'라는 도구를 구현한다. 그리고 C언어로 작성된 프로그램을 'ConGA'를 이용하여, 테스트 데이터 생성 효율성을 확인하였다. 이 실험을 통하여 제안된 방법이 기존의 방법보다 테스트 데이터 생성에 걸린 시간을 평균적으로 약 20% 줄인 것을 확인할 수 있었다.

Keywords

References

  1. B. Beizer. Software Testing Techniques. International Thomson Computer Press, 1990.
  2. Man Xiao, Mohamed El-Attar, Marek Reformat, "Empirical evaluation of optimìzation algorithms when used in goal-oriented automated test data generation techniques," Empir Software Eng., vol. 12, pp.183-239, 2007. https://doi.org/10.1007/s10664-006-9026-0
  3. KOREL, B, "Automated software test generation," IEEE Trans. Softw. Eng., vol.16, no.8, pp.870-879, 1990. https://doi.org/10.1109/32.57624
  4. P. M. S. Bueno and M. Jino, "Identifìcation of potentially infeasible program paths by monitoring the search for test data," in Proceedings of the fifteenth IEEE international conference on Automated Software Engineering (ASE '00), pp.209-218, 2000.
  5. Y. Zhan and J. A. Clark, "Search-based mutation testing for Simulink models," in Proceedings of the Genetic and Evolutionary Computation Conference (GECCO '05), Washington DC, USA: ACM, 2005.
  6. Michael CC, McGraw G, Schatz MA., "Generating software test data by evolution," IEEE Transactions On Software Engineering, vol.27, no.12, pp.1085-1110, 2001. https://doi.org/10.1109/32.988709
  7. E. Alba and F. Chicano, "Observations in using parallel and sequential evolutionary algorithms for automatic software testing," Computers ond Operations Research, vol.35, no.10, pp.3161-3183, 2008. https://doi.org/10.1016/j.cor.2007.01.016
  8. Y. Zhan and J. A. Clark, "The state problem for test generation in Simulink," in Proceedings of the Genetic ond Evolutionary Computation Conference (GECCO '06), Seattle, Washington, USA: ACM, 2006.
  9. Wang, H.-C, "A Hybrid Genetic Algorithm for Automatic Test Data Generation," Master's thesis, National Sun Yat-sen University, Department of Information Management, Taiwan, China, 2006.
  10. E. M. H. Alison Watkins, "Evolutionary test data generation: a comparison of fitness functions," Software: Practice and Experience, vol.36, pp.95-116, 2006. https://doi.org/10.1002/spe.684
  11. S. Ali, L. C. Briand, H. Hemmati, and K. R. Panesar-Walawege, "A systematic review of the application and empirical investigation of search based test-case generation," IEEE Transactions on Software Engineering, Accepted for future publication. https://doi.org/10.1109/TSE.2009.52
  12. T. Shiba, T. Tsuchiya, and T. Kikuno, "Using artificial life techniques to generate test cases for combinatorial testing," in Proceedings of the 28th Annual International Computer Software and Applications Conference (COMPSAC '04), pp.72-77, 2004.
  13. R. Sagarna and J. A. Lozano, "Scatter search in software testing, comparison and collaboration with estimation of distribution algorithms," Euro pean Journal of Operational Research, vol.169, no.2, pp.392-412, 2006 https://doi.org/10.1016/j.ejor.2004.08.006
  14. Sagama R., and Lozano J. A., "On the performance of Estimation of Distribution Algorithms applied to software testing." Applied Artificial Intelligence, vol.19 no.5, pp.457-489, 2005. https://doi.org/10.1080/08839510590917861