본 논문에서는 테스트 대상 프로그램에 맞춰 기호 실행의 파라미터를 자동으로 조정하는 프로그램 적응형 기술을 제안한다. 현대의 기호 실행 도구들은 실제 프로그램 테스트를 효과적으로...
본 논문에서는 테스트 대상 프로그램에 맞춰 기호 실행의 파라미터를 자동으로 조정하는 프로그램 적응형 기술을 제안한다. 현대의 기호 실행 도구들은 실제 프로그램 테스트를 효과적으로 수행하기 위해 다양한 외부 파라미터를 제공하지만, 최적의 테스트 결과를 얻기 위해 사용자가 수많은 파라미터를 직접 조정해야 하는 점은 도구의 활용도를 제한하고 사용 편의성을 저해한다. 최근 이러한 파라미터 조정 과정을 자동화하려는 여러 시도가 있었으나, 기존 기술은 여전히 반자동적이며 비적응적이다. 즉, 여전히 많은 수동 개입이 필요하고, 대상 프로그램에 적합한 파라미터를 동적으로 식별하거나 적절한 값을 자동으로 설정하지 못한다.
본 논문의 목표는 기호 실행 도구의 파라미터 조정 과정을 완전히 자동화함으로써, 그 성능을 극대화하는 것이다. 이를 위해 본 기술은 먼저 기호 실행 도구 내 사용 가능한 모든 파라미터를 자동으로 식별하고, 각 파라미터가 도구에 미치는 영향을 분석한다. 이후, 특화된 알고리즘을 통해 유망한 파라미터를 반복적으로 선택하고, 각 파라미터의 샘플 공간을 구성한 후, 샘플 공간 내에서 확률적으로 값을 생성한다.
본 기술은 대표적인 기호 실행 도구인 KLEE 위에 구현되었으며, 12개의 오픈소스 C 프로그램을 대상으로 평가되었다. 실험 결과, 본 기술은 기존의 반자동 및 수동 튜닝 방식에 비해 각각 평균 10% 및 73% 더 높은 분기 커버리지를 달성했으며, 총 11개의 오류를 발견하였다.