agent-qa 소개: 실행 메모리를 갖춘 오픈소스 에이전시 QA 하니스
전통적인 자동화 품질 보증(QA) 접근 방식은 경직된 스크립트를 작성하고, 깨지기 쉬운 셀렉터를 다루며, UI 요소가 몇 픽셀만 이동해도 바로 깨지는 테스트를 고치느라 수많은 시간을 소비하는 취약한 사이클을 포함합니다. 애플리케이션이 복잡해짐에 따라 이러한 테스트의 유지 보수 비용이 그 가치를 초과하는 경우가 많습니다.
Vostride의 agent-qa는 테스트에 에이전시 접근 방식을 도입함으로써 이를 해결하고자 합니다. 자연어 테스트 정의와 정교한 실행 메모리 시스템을 결합하여 QA를 정적인 스크립팅 작업에서 제품과 함께 진화하는 동적이고 자체 복구 가능한 프로세스로 전환합니다.
자연어 테스트 작성
agent-qa의 핵심은 인간 언어로 테스트를 정의할 수 있다는 점입니다. 복잡한 Playwright 또는 Selenium 스크립트를 작성하는 대신, 개발자는 YAML을 사용해 평범한 영어로 테스트를 작성할 수 있습니다. 예를 들어 Linear에서 이슈 생성을 검증하는 테스트는 다음과 같이 작성될 수 있습니다:
- Create issue 아이콘을 클릭합니다.
- Create issue 모달이 표시되는지 확인합니다.
- "Issue title" 입력 필드에 "Fix mobile login"을 입력합니다.
- Team 셀렉터에서 "Engineering"을 선택합니다.
- Create issue 버튼을 클릭합니다.
에이전트는 보이는 역할, 라벨 및 현재 화면 상태를 기반으로 작동하므로 이러한 지시를 동적으로 해석할 수 있습니다. 이는 하드코딩된 CSS 셀렉터나 XPath가 필요 없게 만들어, UI가 약간 변경되더라도 테스트가 크게 견고해집니다.
실행 메모리의 힘
agent-qa의 가장 혁신적인 기능 중 하나는 Execution Memory입니다. 대부분의 AI 기반 테스트 도구는 매 실행을 빈 캔버스로 취급해 에이전트가 매번 탐색 모델과 UI 패턴을 다시 발견하도록 강요합니다. 반면 agent-qa는 제품, 스위트 및 테스트 관찰을 통해 지식 베이스를 구축합니다.
메모리 작동 방식
에이전트가 테스트를 실행하면서 "계약"과 관찰을 수집합니다. 예를 들어, "Sidebar 그룹은 Docs와 Projects 사이를 전환해도 계속 표시된다"는 것을 학습할 수 있습니다. 이 메모리는 이후 실행에 주입되어 에이전트가 다음을 할 수 있게 합니다:
- 중복 방지: 작업 공간을 탐색하는 과정을 건너뛰기.
- 정확도 향상: 확인된 패턴(예: 명령 팔레트가 정확한 제목 검색을 필요로 함)을 사용해 일반적인 함정을 피하기.
- 실패 감소: 특정 요소(예: 페이지 툴바)가 특정 동작 후에만 나타난다는 것을 인식해, 숨겨진 요소를 실패로 표시하는 것을 방지하기.
자체 복구 및 성능 최적화
자동화 테스트를 괴롭히는 "불안정성"에 대응하기 위해, agent-qa는 Self-Healing Execution을 구현합니다. 클릭이나 입력과 같은 하위 동작이 실패하면 에이전트는 즉시 테스트를 실패시키지 않고, UI를 다시 관찰하고 동일한 실행 내에서 동일한 목표를 달성할 대체 경로를 찾으려 시도합니다.
이러한 에이전시 기능이 과도한 지연이나 비용을 초래하지 않도록, 플랫폼에는 Smart Cache가 포함됩니다. 유사한 후속 실행에서 검증된 액션 플랜을 재사용함으로써, agent-qa는 플래너 작업과 토큰 사용량을 줄여 실행 속도를 최대 5배 가속화한다고 보고됩니다(예: 42초 실행을 8초로 단축).
개발자 중심 인프라
LLM에 의해 구동되지만, agent-qa는 전문 소프트웨어 개발 라이프사이클(SDLC)에 맞게 설계되었습니다:
- 버전 관리: 테스트, 설정 및 훅은 코드로 저장되어 Pull Request를 통해 차이점 확인 및 리뷰가 가능합니다.
- 샌드박스 훅: 사용자는 Node, Bun, Python 또는 Bash 훅을 격리된 Docker 컨테이너에서 실행해 픽스처를 준비하거나, API를 호출하거나, 상태를 정리할 수 있습니다.
- LLM 무관: 시스템은 OpenAI, Anthropic, Gemini 및 Ollama나 LM Studio와 같은 로컬 모델을 포함한 다양한 제공자를 지원합니다.
- 머신 리더블: MCP(Model Context Protocol)와 특정 스킬을 통해 다른 코딩 에이전트가 스키마를 발견하고 자동으로 실패를 트리아지할 수 있습니다.
결론
UI와 어떻게 상호작용할지를 넘어 무엇을 원하는 결과인지에 초점을 맞춤으로써, agent-qa는 포괄적인 테스트 스위트를 유지하는 마찰을 크게 줄입니다. 현재는 프론트엔드와 모바일 인터랙션에 중점을 두고 있지만, 실행 메모리와 자체 복구 메커니즘의 통합은 보다 견고하고 자율적인 품질 보증을 위한 청사진을 제공합니다.