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% 줄인 것을 확인할 수 있었다.