← 최신 논문
💻 computer science

Thinking More, Harnessing Better: State Machine Guided Harness Automatic Generation with Project Digestion and Workflow Decomposition

SynapseFlow는 상태 머신 기반의 워크플로우 분해와 데이터 흐름 인지형 함수 집합을 활용하여 기존 LLM 기반 방식의 한계를 극복하고, 실제 소프트웨어 프로젝트에서 현저히 높은 브랜치 커버리지와 버그 탐지율을 달성하는 혁신적인 자동 테스트 하네스 생성기입니다.

원저자: Xing Zhang, Zikang Huang, Gang Yang, CongChong Wang, Lu Liu, Bin Yin, Mingyi Wang, Ziquan Zhao, Min Li, Zhenyu Chen, Bo Wu, Lingyun Ying

게시일 2026-07-09
📖 4 분 읽기☕ 가벼운 읽기

원저자: Xing Zhang, Zikang Huang, Gang Yang, CongChong Wang, Lu Liu, Bin Yin, Mingyi Wang, Ziquan Zhao, Min Li, Zhenyu Chen, Bo Wu, Lingyun Ying

원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기

당신이 거대하고 복잡한 성(소프트웨어 프로그램) 속에 숨겨진 함정을 찾으려고 노력하고 있다고 상상해 보십시오. 함정을 찾는 가장 좋은 방법은 "퍼저(fuzzer, 자동화된 테스터)" 군단을 보내 모든 벽, 바닥, 문을 찔러보는 것입니다. 하지만 성이 너무 커서 퍼저들은 그저 눈을 감고 헤맬 수 없습니다. 그들에게는 정확히 어떤 문을 어떤 순서로 열어야 하는지 알려줄 가이드가 필요합니다.

컴퓨터 보안의 세계에서 이 가이드를 **"퍼즈 하네스(Fuzz Harness)"**라고 부릅니다. 이는 환경을 설정하고 퍼저에게 "여기서 시작해서, 그다음에 이걸 하고, 그다음 저걸 해라"라고 지시하는 작은 코드 조각입니다.

문제는 이 가이드를 손으로 직접 작성하는 것이 매우 어렵고 느리다는 점입니다. 최근에는 과학자들이 이 가이드를 자동으로 작성하기 위해 **AI(대규모 언어 모델)**를 사용하기 시작했습니다. 하지만 교과서는 읽었지만 연습은 하지 않은 학생처럼, AI는 자주 혼란에 빠집니다. 존재하지 않는 문을 만들어내거나, 꼭 열어야 할 문을 잊어버리거나, 순서를 틀리기도 합니다. 이는 결국 망가지거나 쓸모없는 가이드를 만듭니다.

여기에 SynapseFlow라는 새로운 도구가 등장했습니다. SynapseFlow를 전체 가이드를 한 번에 쓰려고 노력하는 단일 AI가 아니라, 엄격하고 단계적인 프로세스 속에서 함께 협력하는 전문 설계사와 편집가 팀이라고 생각하십시오.

SynapseFlow가 어떻게 작동하는지 쉬운 비유를 통해 설명하겠습니다.

1. "데이터 흐름 지도" (적절한 방 찾기)

가이드를 쓰기 전에, 성 안의 어떤 방들이 서로 연결되어 있는지 알아야 합니다.

  • 기존 방식: 다른 AI 도구들은 "아마 이 방이 저 방과 연결되어 있지 않을까?"라고 추측하거나 단순한 문 목록만 살펴보았습니다. 그들은 깊은 연결 고리를 놓치곤 했습니다.
  • SynapseFlow 방식: 이 도구는 **구조적 흐름 그래프(Structural Flow Graph)**를 구축합니다. 모든 방을 점으로, 방들을 잇는 복도를 선으로 그려 지도를 그린다고 상상해 보십시오. 이 도구는 '데이터'(예: 열쇠나 패키지)가 정문에서부터 복도를 지나 주방을 거쳐 최종적으로 지하실에 도착할 때까지 정확히 어떻게 이동하는지 추적합니다.
  • 결과: 이를 통해 방들을 **"함수 트리플릿(Function Triplet)"**으로 그룹화합니다. 이것은 완벽하고 독립적인 투어 코스가 됩니다: 입구(Input)에서 시작하여, 처리 과정(Process)을 거쳐, 출구(Cleanup)에서 끝나는 경로입니다. 이를 통해 가이드가 해당 특정 투어에 실제로 필요한 방들만을 포함하도록 보장합니다.

2. "조립 라인" (단계별 가이드 작성)

AI에게 10페이지짜리 가이드 전체를 한 번에 쓰라고 요청하는 대신(이는 환각 현상이나 실수를 유발합니다), SynapseFlow는 이 작업을 조립 라인처럼 네 가지 작고 관리 가능한 작업으로 나눕니다.

  • 1단계: 사서(The Librarian): AI가 코드를 읽고 관련된 각 함수에 대한 간단한 "사용 설명서"를 작성합니다. 아직 코드를 쓰는 것이 아니라, 각 부분이 무엇을 하는지 설명만 합니다.
  • 2단계: 벽돌공(The Bricklayer): AI가 작은 코드 조각들(예: "문을 열고 주방으로 걸어가는 방법")을 완벽하게 작성합니다.
  • 3단계: 건축가(The Builder): AI가 이 작은 조각들을 엮어서 전체 가이드의 초안을 만듭니다.
  • 4단계: 검사관(The Inspector): AI가 최종 초안을 다듬습니다. 퍼저의 속도를 늦출 수 있는 것들(불필요한 로그 기록 등)을 제거하고 표준 형식에 맞는지 확인합니다.

3. "되돌리기 버튼" (롤백 메커니즘)

이것이 바로 핵심 비법입니다. 만약 4단계(최종 다듬기)에서 AI가 실수를 한다면, 기존 방식은 그냥 포기하거나 고장 난 코드를 "수정"하려다 상황을 더 악화시키곤 합니다.

SynapseFlow에는 단계적 롤백(Staged Rollback) 시스템이 있습니다.

  • 블록 쌓기를 하고 있다고 상상해 보십시오. 맨 위의 블록이 떨어졌을 때, 전체 탑을 무너뜨리는 것이 아니라 맨 위 블록만 빼내고 그 아래 블록을 확인한 뒤 다시 시도하는 것과 같습니다.
  • 만약 최종 가이드가 컴파일되지 않으면(작동하지 않으면), SynapseFlow는 자동으로 3단계로 롤백하여 초안을 수정하고 4단계를 다시 시도합니다. 만약 여기서도 실패하면 2단계로 돌아갑니다.
  • 이는 AI가 잘못된 아이디어의 굴레에 갇히는 것을 방지하며, 최종 결과물이 견고함을 보장합니다.

결과: 성공했는가?

연구진은 25개의 실제 소프트웨어 프로젝트(이미지 라이브러리, 데이터베이스, 네트워크 도구 등)를 대상으로 SynapseFlow를 테스트하고 기존의 가장 우수한 AI 도구들과 비교했습니다.

  • 더 나은 커버리지: SynapseFlow의 가이드는 다른 도구들보다 3~4배 더 많은 코드를 탐색했습니다. 다른 도구들이 놓친 경로를 찾아냈습니다.
  • 더 많은 버그 발견: 경쟁 도구들보다 버그를 1.5~1.7배 더 많이 발생시켰습니다.
  • 실제 발견: 가장 중요한 점은, SynapseFlow가 이 유명한 프로그램들에서 7개의 새로운 미발견 버그를 찾아냈다는 것입니다. 이 중 5개는 공식적인 "CVE" 번호(보안 취약점에 부여되는 고유 ID)를 받을 만큼 심각한 수준이었으며, 이는 수년간 숨겨져 있던 실제 위험한 결함임을 의미합니다.

요약하자면

SynapseFlow는 혼란스러운 추측 게임에서 정밀 유도 투어로 업그레이드하는 것과 같습니다.

  • 지도(데이터 흐름)를 사용하여 방문해야 할 정확한 방을 압니다.
  • 조립 라인(단계적 분해)을 사용하여 가이드를 조각별로 구축합니다.
  • 안전망(롤백)을 사용하여 처음부터 다시 시작하지 않고도 즉시 실수를 바로잡습니다.

이 논문은 심층적인 코드 분석과 구조화되고 오류에 강한 워크플로우를 결려함으로써, 마침 finally AI가 깊고 숨겨진 버그를 실제로 찾아낼 수 있는 신뢰할 수 있는 고품질 보안 테스트를 작성할 수 있게 된다고 결론짓습니다.

연구 분야의 논문에 파묻히고 계신가요?

연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.

Digest 사용해 보기 →