Launch HN: Canary (YC W26) – 코드를 이해하는 AI QA
요약
Canary는 코드베이스를 이해하고 Pull Request(PR)의 변경 사항이 사용자 워크플로우에 미치는 영향을 자동으로 테스트하는 AI 에이전트입니다. 변경 사항의 의도를 파악하여 엔드 투 엔드(E2E) 테스트를 생성 및 실행하며, 테스트 결과와 녹화 영상을 PR에 직접 제공하여 배포 전 결함 발견을 돕습니다.
핵심 포인트
- 코드베이스의 라우트, 컨트롤러, 검증 로직을 분석하여 변경 사항의 의도를 파악함
- PR 생성 시 프리뷰 앱을 대상으로 실제 사용자 흐름을 점검하는 자동화된 테스트 수행
- 테스트 결과를 영상과 함께 PR 댓글로 제공하며, 생성된 테스트를 회귀 테스트 세트로 전환 가능
- 단일 모델의 한계를 극복하기 위해 소스 코드, DOM, 시각적 검증 등 다양한 모달리티를 활용하는 멀티모달 접근 방식 채택
- 코드 검증을 위한 최초의 벤치마크인 QA-Bench v0 발표
안녕하세요 HN! 저희는 Aakash와 Viswesh이며, Canary(https://www.runcanary.ai)를 만들고 있습니다. 저희는 코드베이스를 읽고, 풀 리퀘스트 (Pull Request, PR)가 실제로 무엇을 변경했는지 파악하며, 영향을 받는 모든 사용자 워크플로우 (User Workflow)에 대해 테스트를 생성하고 실행하는 AI 에이전트 (AI Agents)를 구축합니다.
Aakash와 저는 이전에 Windsurf, Cognition, 그리고 Google에서 AI 코딩 도구들을 만들었습니다. AI 도구들은 모든 팀의 배포 속도를 높여주었지만, 머지 (Merge) 전에 실제 사용자 행동을 테스트하는 사람은 아무도 없었습니다. PR은 점점 커졌고, 리뷰는 여전히 파일 차이점 (Diffs) 내에서 이루어졌으며, 깔끔해 보이는 변경 사항이 운영 환경 (Production)에서 결제 (Checkout), 인증 (Auth), 그리고 과금 (Billing) 기능을 망가뜨리곤 했습니다. 저희는 이를 직접 목격했습니다. 저희는 그 간극을 메우기 위해 Canary를 시작했습니다. 작동 방식은 다음과 같습니다:
Canary는 코드베이스에 연결하여 앱이 어떻게 구축되었는지(라우트 (Routes), 컨트롤러 (Controllers), 검증 로직 (Validation Logic))를 이해하는 것으로 시작합니다. 사용자가 PR을 푸시하면 Canary가 차이점 (Diff)을 읽고 변경 사항 뒤에 숨겨진 의도를 파악한 다음, 프리뷰 앱 (Preview App)을 대상으로 테스트를 생성 및 실행하여 실제 사용자 흐름 (User Flows)을 엔드 투 엔드 (End-to-End)로 점검합니다. Canary는 테스트 결과와 무엇이 변경되었는지 보여주는 녹화 영상을 PR에 직접 댓글로 남기며, 예상대로 작동하지 않는 부분을 표시합니다. 또한 PR 댓글을 통해 특정 사용자 워크플로우 테스트를 트리거할 수도 있습니다.
PR 테스트 외에도, PR에서 생성된 테스트를 회귀 테스트 세트 (Regression Suites)로 옮길 수 있습니다. 또한 테스트하고 싶은 내용을 일반적인 영어로 프롬프트 (Prompt)를 입력하여 테스트를 생성할 수도 있습니다. Canary는 코드베이스로부터 전체 테스트 세트를 생성하고, 이를 스케줄링하여 지속적으로 실행합니다. 저희의 건설 기술 (Construction Tech) 고객 중 한 곳은 청구 (Invoicing) 흐름에서 납부 금액이 원래 제안된 총액과 약 $1,600 정도 차이가 나는 문제가 있었습니다. Canary는 릴리스 전에 해당 청구 흐름의 회귀 (Regression) 문제를 잡아냈습니다.
이것은 단일 파운데이션 모델 (Foundation Model) 제품군만으로는 스스로 해낼 수 있는 일이 아닙니다. QA (Quality Assurance)는 소스 코드, DOM/ARIA, 디바이스 에뮬레이터 (Device Emulators), 시각적 검증 (Visual Verifications), 화면 녹화 분석, 네트워크/콘솔 로그, 라이브 브라우저 상태 등 매우 다양한 모달리티 (Modalities)를 아우르기 때문에, 단일 모델이 이 모든 분야에 특화되기는 어렵습니다. 또한 테스트를 안정적으로 실행하기 위해서는 커스텀 브라우저 플릿 (Browser Fleets), 사용자 세션, 휘발성 환경 (Ephemeral Environments), 온디바이스 팜 (On-device Farms) 및 데이터 시딩 (Data Seeding)이 필요합니다. 게다가 코드 변경으로 인한 2차 효과 (Second-order effects)를 포착하려면, 일반적인 해피 패스 (Happy path) 테스트 흐름에서는 나타나지 않는 다양한 유형의 사용자들에 걸쳐 애플리케이션을 여러 가지 가능한 방식으로 망가뜨려 보는 특화된 하네스 (Harness)가 필요합니다.
우리가 목적에 맞게 구축한 QA 에이전트가 얼마나 잘 작동하는지 측정하기 위해, 코드 검증을 위한 최초의 벤치마크인 QA-Bench v0를 발표했습니다. 실제 PR (Pull Request)이 주어졌을 때, AI 모델이 영향을 받는 모든 사용자 워크플로우를 식별하고 관련 테스트를 생성할 수 있을까요? 우리는 Grafana, Mattermost, Cal.com, Apache Superset의 실제 PR 35개를 대상으로 GPT 5.4, Claude Code (Opus 4.6), Sonnet 4.6과 비교하여 우리의 목적 특화 QA 에이전트를 테스트했으며, 측정 기준은 관련성 (Relevance), 커버리지 (Coverage), 일관성 (Coherence)의 세 가지 차원이었습니다. 커버리지 (Coverage) 부분에서 격차가 가장 컸습니다. Canary는 GPT 5.4보다 11포인트, Claude Code보다 18포인트, Sonnet 4.6보다 26포인트 앞서 나갔습니다. 전체 방법론과 리포지토리별 세부 분석 내용은 벤치마크 보고서를 참조해 주세요: https://www.runcanary.ai/blog/qa-bench-v0
제품 데모는 여기서 확인하실 수 있습니다: https://youtu.be/NeD9g1do_BU
코드 검증 작업을 하고 계시거나 이를 다르게 측정하는 방법에 대해 고민 중인 분들의 피드백을 환영합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 HN OpenAI Codex의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기