The process of exploring uncovered area and reconstructing testing environment is required to improve coverage in concolic testing. However, reconstructed environment is different from user to user and its validity is also unreliable because there isn't proper guideline nor formal standard to refer to. To solve this problem, we define uncovered branch types and introduce guideline per type to improve coverage in concolic testing for C program. In order to check effectiveness of the guidelines, we showed coverage improvement by testing industrial automobile SW and applying guidelines. As a result, applying guidelines on target files which achieved coverage under 90% increased the test coverage from 43% to 97%. To quickly analyze testing result in experiment, we developed and utilized CROWN, the concolic testing tool for C program, and then we were able to successfully finish the case study for large industrial automobile SW. Considering concolic testing depends on testing environment set by user, we expect our guidelines to be valuable indicator and to be highly applicable even to real world in light of its effective coverage improvement in the industrial automobile SW.
Concolic 테스팅에서 커버리지 향상을 위해서는 미달성 영역을 탐색하고 테스팅 환경을 재구축하는 과정이 필요하다. 하지만 이를 위한 가이드라인이나 정형화된 기준이 없어서 재구축한 환경이 사용자에 따라 다르고, 타당한지도 검증할 수 없는 문제가 존재한다. 이를 해결하고자 본 연구에서는 미달성 분기들을 유형별로 나누고, C 대상 Concolic 테스팅을 통해 유형별 분기를 달성하기 위한 가이드라인을 소개한다. 가이드라인의 효과를 알아보기 위해 상용 자동차 SW를 대상으로 테스팅을 수행한 뒤 가이드라인을 적용하여 효과적으로 테스트 커버리지를 향상할 수 있었다. 결과적으로 90%미만의 커버리지를 기록한 상용 SW 모듈의 일부 파일들을 대상으로 가이드라인을 적용하여 기존 43%에서 97%으로 커버리지를 향상했다. 가이드라인 적용 시 테스팅 결과를 빨리 분석하기 위해서 자체 개발한 C 대상 Concolic 테스팅 도구 CROWN을 사용했으며 이로인해 사례 연구를 성공적으로 마칠 수 있었다. 사용자가 구축한 테스팅 환경에 따라 영향을 크게 받는 Concolic 테스팅 특성상 본 논문에서 제안한 구체적 가이드라인은 중요한 지표로서 사용될 수 있으며 상용 자동차 SW에 대해 성공적인 결과를 보인 만큼 실제 환경에서도 그 활용성이 높을 것이라 예상한다.