TestSprite CLI: 코딩 에이전트가 만든 코드를 실제 앱에서 검증하는 테스트 도구

TestSprite CLI 소개

코딩 에이전트는 몇 분 만에 코드를 쏟아내지만, 그 코드가 실제로 동작하는지 확인하는 속도는 그만큼 빨라지지 않았습니다. TestSprite CLI는 이 간극을 겨냥한 도구입니다. 코딩 에이전트가 만든 코드를 목(mock)이 아니라 실제로 실행 중인 앱을 상대로 사용자처럼 조작해 보고, 무엇이 깨졌는지를 에이전트가 곧바로 읽고 고칠 수 있는 형태로 되돌려 줍니다.

TestSprite 자체는 프론트엔드와 백엔드를 클라우드에서 실제 제품 대상으로 테스트하는 AI 테스트 플랫폼이고, 이 저장소는 그 플랫폼을 터미널과 코딩 에이전트의 손에 쥐여 주는 공식 CLI입니다. 핵심은 에이전트가 코드를 배포하기 전에 스스로 동작을 검증하고, 실패한 결과가 대시보드를 뒤질 필요 없이 하나의 자기완결적인 번들(one self-consistent bundle) 로 돌아온다는 점입니다. 사람도 같은 인터페이스를 터미널이나 CI에서 그대로 사용할 수 있습니다.

본 게시물에서는 TestSprite CLI가 코딩 에이전트를 위해 어떻게 설계됐는지, 테스트 생성부터 재실행까지 이어지는 검증 루프가 어떻게 돌아가는지, 그리고 설치와 기본 사용법을 정리합니다.

TestSprite CLI가 코딩 에이전트를 위해 설계된 이유

일반적인 테스트 러너와 달리 TestSprite CLI는 출력과 동작 방식이 코딩 에이전트가 소비하기 좋은 형태로 맞춰져 있습니다. 저자는 다음 다섯 가지를 그 이유로 정리하고 있습니다.

  • 실제 사용자처럼 테스트합니다: 클라우드의 실제 브라우저나 API를 상대로 실제 클릭, 실제 이동, 실제 단언(assertion)을 수행합니다. 목이 아닙니다.
  • 에이전트에 맞춘 출력: test failure get 명령은 실패한 단계와 그 앞뒤 단계, 스크린샷, DOM 스냅샷, 테스트 소스, 원인 가설, 권장 수정 대상을 하나의 번들 로 돌려줍니다. 이 모든 항목은 같은 snapshotId 를 공유하며, CLI는 서로 다른 두 실행의 데이터를 섞는 것을 거부합니다. 에이전트가 짜깁기된 맥락 위에서 추론하는 일을 막기 위한 설계입니다.
  • 한 번의 실행이 아니라 루프: create → run → failure get → fix → rerun 의 각 단계는 버려지지 않고 쌓입니다.
  • 스크립트 친화적이고 결정적: 안정적인 --output json 계약, 예측 가능한 종료 코드(exit code), 그리고 정형 데이터로 전체 코드 경로를 오프라인에서 실행해 보는 --dry-run 을 제공합니다.
  • 에이전트 온보딩이 명령 한 줄: testsprite agent install claude 는 코딩 에이전트가 루프를 스스로 몰 수 있도록 준비된 스킬 파일을 저장소에 넣어 줍니다.

특히 두 번째 항목이 이 도구의 성격을 잘 보여줍니다. 실패 결과를 사람이 보기 좋은 리포트가 아니라, 에이전트가 한 번에 읽어 원인을 짚고 수정 지점을 특정할 수 있는 단일 자료로 만든다는 점이 일반적인 테스트 도구와의 차이입니다.

TestSprite CLI의 검증 루프 동작 방식

동작의 뼈대는 코딩 에이전트가 코드를 바꿀 때마다 던지는 하나의 질문입니다. 이 동작은 이미 테스트 모음(suite)에 덮여 있는가?

  • 아직 덮여 있지 않으면 testsprite test create 로 새 동작을 서술하고 실행합니다.
  • 이미 덮여 있으면 testsprite test rerun 으로 기존 테스트를 재실행해, 예전에 동작하던 것이 조용히 깨지지 않았는지 확인합니다.
  • 무언가 실패하면 testsprite test failure get 으로 하나의 자기완결적 번들을 받아, 에이전트가 코드를 고치고 다시 실행합니다.

각 실행 결과는 지속되는 테스트 모음에 쌓이므로, 프로젝트가 커질수록 커버리지가 함께 누적됩니다. 저자는 이 모음을 두고 어떤 컨텍스트 윈도우보다도 큰, 지금까지 올바르게 통과시킨 모든 요구사항의 기록이라고 표현합니다. 클라우드 쪽은 의도적으로 블랙박스로 두어, 에이전트는 의도를 서술하고 결과를 읽기만 할 뿐 테스트가 내부적으로 어떻게 구동됐는지는 알 필요가 없습니다.

TestSprite CLI 설치 및 사용법

Node.js 20.19+, 22.13+, 또는 24+ 가 필요합니다. 전역 설치 없이 npx @testsprite/testsprite-cli 로도 실행할 수 있습니다.

npm install -g @testsprite/testsprite-cli
testsprite setup

testsprite setup 은 API 키를 입력받아 검증하고, 사용하는 코딩 에이전트(claude, cursor, cline, windsurf, antigravity, codex 등)에 검증 루프 스킬을 설치합니다. 명령 하나로 에이전트가 자기 작업을 스스로 검증하도록 배선되는 셈입니다. CI나 온보딩 스크립트 같은 비대화형 환경에서는 다음처럼 사용합니다.

TESTSPRITE_API_KEY=sk-... testsprite setup --from-env --yes --agent claude

이후 루프는 코딩 에이전트가 스스로 돌립니다. 저자가 제시한 예시 세션은 다음과 같습니다.

# 1 — 보장하고 싶은 동작을 서술하고 실행한 뒤 대기
testsprite test create --project proj_8f0f6 --type frontend \
  --plan-from ./checkout-flow.plan.json --run --wait --output json
#   → 종료 코드 1: 실행 실패

# 2 — 하나의 자기완결적 실패 번들을 가져옴
testsprite test failure get test_3a9f21c7 --out ./.testsprite/failure

# 3 — 에이전트가 번들을 읽고 코드를 고친 뒤 다시 실행
testsprite test rerun test_3a9f21c7 --wait --output json
#   → 종료 코드 0: 통과. 이 테스트는 이제 지속되는 테스트 모음에 남습니다.

TestSprite CLI의 명령어 구성

명령어는 역할별 그룹으로 나뉩니다. 시작점은 언제나 setup 입니다.

그룹 대표 명령 하는 일
Setup setup API 키 설정, 검증, 에이전트 검증 스킬 설치를 한 번에
Auth auth status / auth remove 활성 프로필의 사용자·키·스코프 확인 및 제거
Read test get, test failure get, test failure summary 프로젝트·테스트 조회, 실패 번들 및 한 화면짜리 요약 카드 확인
Write test create, test create-batch, test code put 테스트 생성(플랜 파일 기반 일괄 생성 포함), 생성 코드 교체
Run test run, test rerun, test wait 새 실행 트리거(--wait 로 종료까지 블록), 저렴한 재실행, 특정 실행 대기
Agent agent install / agent list 코딩 에이전트 대상 추가·조회(순수 로컬 동작)

각 명령의 모든 플래그와 예시, 프로필 설정, 종료 코드 규칙은 저장소의 DOCUMENTATION.md 에 정리되어 있습니다. 참고로 저자는 CoderCup 이라는 공개 리더보드에서 TestSprite를 심판으로 두고 프론티어 코딩 에이전트들이 같은 앱을 같은 규칙으로 만들게 했을 때, 가장 저렴한 모델이 가장 비싼 모델의 절반 비용으로 89%라는 가장 높은 정확도를 기록했다고 주장합니다. 이 수치는 저자가 제시한 리더보드 결과이므로 그대로 인용해 둡니다.

TestSprite CLI의 라이선스

TestSprite CLI는 Apache-2.0 라이선스로 공개되어 있어 개인 및 상업적 목적으로 자유롭게 사용할 수 있습니다. 다만 CLI가 연결되는 TestSprite 클라우드 플랫폼은 별도의 API 키가 필요한 유료 서비스라는 점은 구분해 둘 필요가 있습니다.

:house: TestSprite CLI 공식 홈페이지

:books: TestSprite CLI 문서 사이트

https://www.testsprite.com/docs

:github: TestSprite CLI 프로젝트 GitHub 저장소

더 읽어보기




이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. :hugs:

:pytorch:파이토치 한국 사용자 모임:south_korea:이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일:love_letter:로 보내드립니다! 텔레그램(Telegram)이나 Slack/Discord/Teams/Dooray/GoogleChat 등으로도 새 글 알림을 받으실 수 있습니다. :smiley:

:wrapped_gift: 아래:down_right_arrow:쪽에 좋아요:+1:를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ :star_struck: