핵심 개념
FuSeBMC-AI는 기계 학습 기술을 활용하여 프로그램의 다양한 특징을 추출하고, 지지 벡터 기계와 신경망 모델을 사용하여 하이브리드 접근법의 최적 구성을 예측합니다. FuSeBMC-AI는 경계 모델 검사와 퍼징을 백엔드 검증 엔진으로 활용하며, 특정 경우에 기본 구성보다 우수한 성능을 보이면서도 리소스 소비를 줄일 수 있습니다.
초록
FuSeBMC-AI는 FuSeBMC v4.2.1을 기반으로 구축되었습니다. 먼저 소스 코드를 분석하여 학습과 엔진 기능 향상에 영향을 미치는 특징을 추출하고 저장합니다. 이 특징들은 ML 모델에서 최적 점수를 예측하는 데 사용됩니다. 그 후 FuSeBMC-AI는 권장 구성으로 대상 프로그램을 실행합니다.
FuSeBMC-AI는 배열과 루프를 포함하는 프로그램에 효과적인 처리를 위해 특정 값이 필요하다는 점을 인식하고, 엔진 성능의 효과와 한계에 영향을 미칠 수 있는 특징을 식별하는 데 중점을 두었습니다. SV-Comp 벤치마크를 데이터셋으로 사용하여 다양한 시나리오를 고려하고 반복을 최소화하면서 ML 모델을 학습 및 테스트했습니다.
FuSeBMC-AI는 결정 트리 분류, 지지 벡터 분류, 신경망 회귀 모델을 사용하여 FuSeBMC-AI 엔진에 대한 최적의 플래그를 예측합니다. 이를 통해 각 프로그램 범주에 가장 적합한 플래그 값을 결정할 수 있습니다. 실험 결과, FuSeBMC-AI는 "ControlFlow", "Hardware", "Loops", "Software Systems BusyBox MemSafety" 범주에서 기본 FuSeBMC 구성보다 우수한 성능을 보였으며, 리소스 사용량도 약 3% 감소했습니다.
통계
FuSeBMC-AI는 "ControlFlow" 범주에서 리소스 사용량을 약 86% 줄였습니다.
FuSeBMC-AI는 "XCSP" 범주에서 리소스 사용량을 약 41% 줄였습니다.
FuSeBMC-AI는 "Software Systems BusyBox MemSafety" 범주에서 커버리지를 4% 높였습니다.
FuSeBMC-AI는 "Hardware" 범주에서 커버리지를 1.2% 높였습니다.
FuSeBMC-AI는 "Termination-Main ControlFlow" 범주에서 리소스 사용량을 84% 줄였습니다.
인용구
"FuSeBMC-AI는 프로그램의 다양한 특징을 추출하고 ML 모델을 사용하여 하이브리드 접근법의 최적 구성을 예측합니다."
"FuSeBMC-AI는 경계 모델 검사와 퍼징을 백엔드 검증 엔진으로 활용하며, 특정 경우에 기본 구성보다 우수한 성능을 보이면서도 리소스 소비를 줄일 수 있습니다."