AutoRestTest at the SBFT 2026 Tool Competition
의미론적 의존성 그래프, 다중 에이전트 강화 학습, 그리고 대규모 언어 모델을 결합한 도구인 AutoRestTest는 1시간의 테스트 예산 내에서 11개의 API에 걸친 결함 탐지 및 작업 처리를 효과적으로 수행함으로써 SBFT 2026 REST 리그의 세 가지 평가 부문 모두에서 1위를 차지했습니다.
원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기
당신이 수천 가지의 서로 다른 아이템을 판매하는 거대하고 자동화된 자판기를 테스트하려고 한다고 상상해 보세요. 이 기계는 복잡한 메뉴(API)를 가지고 있으며, 당신에게는 이 기계의 설계도나 내부를 열 수 있는 열쇠가 없습니다(블랙박스 테스트). 당신의 목표는 다양한 버튼 조합을 눌러서 기계가 고장 나거나, 잘못된 물건을 내뱉거나, 혹은 멈춰버리는지 확인하는 것입니다.
이것이 바로 AutoRestTest가 컴퓨터 시스템인 REST API를 위해 수행하는 작업입니다. 최근 SBFT 2026에서 열린 "REST 리그"라는 대회에서, 이 도구는 매우 똑똑하고 지치지 않는 로봇 테스터처럼 활약하며 모든 카테고리에서 1위를 차지했습니다.
작동 원리를 쉬운 개념으로 나누어 설명하면 다음과 같습니다:
1. 지도: "의미론적 속성 의존성 그래프 (Semantic Property Dependency Graph)"
API 메뉴를 문자들의 거대하고 엉클어진 그물이라고 생각해 보세요. 어떤 버튼들은 서로 연결되어 있습니다. 예를 들어, "장바구니에 담기"를 누르려면 먼저 "아이템 선택"을 눌렀어야 합니다. 만약 순서가 틀리면 기계는 혼란에 빠질 수 있습니다.
AutoRestTest는 이러한 연결 관계의 지도를 구축합니다. 이 도구는 메뉴를 읽고 이름과 의미를 바탕으로 어떤 버튼들이 서로 "친구"인지 파악하는 스마트한 시스템을 사용합니다. 테스트를 진행하면서, 이 도구는 발견한 새로운 연결 관계를 바탕으로 지도를 실시간으로 업데이트하며 학습합니다. 이를 통해 논리적으로 맞지 않는 버튼을 누르는 데 시간을 낭비하지 않도록 보장합니다.
2. 팀: 네 명의 특화된 에이전트
한 명의 로봇이 모든 것을 하려고 하는 대신, AutoRestTest는 네 명의 특화된 에이전트로 구성된 팀(스포츠 팀의 각 포지션처럼)을 사용합니다:
- 오퍼레이션 에이전트 (The Operation Agent): 메뉴의 어떤 버튼을 다음에 누를지 결정합니다.
- 파라미터 에이전트 (The Parameter Agent): 어떤 설정(예: "대형" vs "소형")을 켜거나 끌지 결정합니다.
- 밸류 에이전트 (The Value Agent): 슬롯에 넣을 실제 데이터(예: 이름이나 숫자 입력)를 만들어냅니다.
- 디펜던시 에이전트 (The Dependency Agent): 지도를 주시하며 팀이 연결 관계의 규칙을 잘 따르고 있는지 확인합니다.
이 에이전트들은 **강화 학습(Reinforcement Learning)**이라는 학습법을 사용합니다. 이는 강아지를 훈련시키는 것과 비슷합니다:
- 기계가 "성공" 메시지(2xx)를 보내면, 팀은 간식(보상)을 받습니다.
- 기계가 멈추거나 오류(5xx)를 발생시키면, 팀은 오류를 찾아내는 것이 목적이므로 이 또한 간식을 받습니다!
- 기계가 단순히 "이해할 수 없다"라고 말하면, 팀은 가벼운 "안 돼"라는 피드백을 받습니다.
시간이 흐름에 따라, 팀은 어떤 버튼 조합이 오류를 찾거나 작동을 성공시킬 가능성이 높은지 학습하게 됩니다.
3. 두뇌: 대규모 언어 모델 (LLM)
빈칸을 채우기 위해(예: 사용자의 이름이나 날짜 형식이 무엇인지) 이 도구는 **대규모 언어 모델(LLM)**을 사용합니다. 이것을 비즈니스 문맥을 잘 알고 있는 매우 박식한 조수라고 상상해 보세요.
무작로 아무 숫자나 넣는 대신, 이 조수는 메뉴를 살펴보고 "이것은 항공권 예약 시스템이므로, 날짜는 '2026-04-12'와 같은 형태여야 합니다"라고 말합니다. 이 도구는 테스트를 시작하기 전에 이러한 현실적인 값들을 미리 생성해 두어, 실제 경주 중에 컴퓨터가 생각하느라 시간을 허비하지 않도록 합니다. 이 덕분에 테스트는 믿을 수 없을 정도로 빠르고 효율적입니다.
4. 결과: 경주에서의 승리
대회에서 AutoRestTest는 다섯 개의 다른 최상위 테스트 도구들과 맞붙었습니다. 이들에게는 11개의 서로 다른 실제 시스템과 317개의 서로 다른 오퍼레이션(버튼)을 1시간 동안 테스트할 시간이 주어졌습니다.
- 결함 탐지 (Fault Detection): AutoRest же, 시스템당 평균 67개의 고유한 오류를 찾아냈습니다. 그다음으로 뛰어난 도구는 약 25개만을 찾아냈습니다. 이는 2.5배 이상 더 나은 성과입니다.
- 효율성: 이 도구는 다른 도구들보다 훨씬 빠르게 오류를 찾아냈습니다.
- 비용: 실행 비용이 놀라울 정도로 저렴하여, 시스템당 테스트당 약 $0.02밖에 들지 않았습니다.
하나의 결함
논문은 이 도구가 완벽하지 않았음을 인정합니다. 항공권 검색과 관련된 특정 테스트에서, 모든 텍스트가 특정 형식(UTF-8)으로 작성되었다고 가정했기 때문에 도구가 충돌했습니다. 이는 영어를 완벽하게 구사하지만 다른 억양으로 말하는 사람을 만나면 당황하는 번역가와 같습니다. 저자들은 향후 버전에서 이를 수정할 계획입니다.
요약
AutoRestTest는 고도로 조직화되고 스스로 학습하는 탐정단과 같습니다. 규칙의 지도를 그리고, 네 명의 전문가로 업무를 분담하며, 스마트한 조수를 활용해 현실적인 시나리오를 예측하고, 모든 성공과 실패로부터 학습합니다. 그 결과는 어떠할까요? 이 도구는 다른 어떤 도구보다 더 많은 버그를, 더 빠르게, 더 저렴하게 찾아냈습니다.
연구 분야의 논문에 파묻히고 계신가요?
연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.