JiTTesting — AI가 코드를 쓰는 시대, 테스트는 누가 하나

10 min read
테스팅AIMetaJiTTesting에이전트
JiTTesting — AI가 코드를 쓰는 시대, 테스트는 누가 하나

테스트 코드를 작성하는 시간이 기능 코드를 작성하는 시간보다 길다는 건 흔한 불만이다. 그런데 AI 에이전트가 기능 코드를 몇 초 만에 생성하는 세상이 되면, 테스트의 병목은 더 심해진다. 코드는 쏟아지는데 테스트를 따라잡을 수가 없다. Meta Engineering이 공개한 **JiTTesting(Just-in-Time Testing)**은 이 문제에 대한 근본적인 접근이다. 테스트도 AI가 그때그때 만들어서 쓰고 버리면 어떨까?

전통적 테스팅의 구조적 한계

기존 테스트 방법론은 50년 이상 된 패러다임이다. 핵심 전제는 "사람이 코드를 작성하고, 사람이 테스트를 작성하고, 테스트를 계속 유지보수한다"는 것이다. 이 전제 위에서 단위 테스트, 통합 테스트, E2E 테스트 피라미드가 설계되었다.

문제는 에이전트 개발(Agentic Development)이 이 전제를 무너뜨린다는 것이다.

전통적 개발에이전트 개발
코드 작성 속도 느림코드 생성 속도 극도로 빠름
변경 범위 예측 가능변경 범위 예측 불가
수동 테스트 작성·유지테스트 유지보수가 병목
테스트가 코드보다 오래 산다코드가 테스트보다 빠르게 바뀐다

비유하면 이렇다. 기존에는 요리사가 새 메뉴를 만들 때마다 레시피 카드를 작성하고 파일함에 보관했다. 일주일에 메뉴가 하나 바뀌니까 관리할 수 있었다. 그런데 갑자기 매일 50개씩 새 메뉴가 쏟아진다면? 레시피 카드 시스템 자체가 무너진다.

[💡 잠깐! 이 용어는?] 에이전트 개발(Agentic Development): AI 에이전트가 코드 작성, PR 생성, 배포까지 자율적으로 수행하는 개발 방식이다. GitHub Copilot Workspace, Cursor, Claude Code 등이 이 범주에 속한다.


JiTTesting의 핵심 아이디어

JiTTesting은 테스트를 미리 작성하고 유지하는 게 아니라, 코드가 변경될 때마다 즉석에서 생성하고 실행한 뒤 폐기하는 방식이다. "Just-in-Time"이라는 이름 자체가 핵심을 말해준다. 비유하면 시험 문제를 학기 초에 만들어두는 게 아니라, 학생이 답안을 제출하는 그 순간에 맞춤형 문제를 출제하는 것이다.

6단계 파이프라인

  1. 코드 변경 감지: 새 코드가 리포지토리에 들어온다
  2. 의도 추론: LLM이 "이 변경이 뭘 하려는 건지" 파악한다
  3. 의도적 결함 주입(Mutation): 코드에 일부러 버그를 심는다
  4. 테스트 자동 생성: 주입된 결함을 잡아낼 테스트를 LLM이 생성한다
  5. 앙상블 평가(Ensemble Assessment): 여러 평가자가 노이즈를 걸러내고 진짜 이슈를 분류한다
  6. 리포트 전달: 문제가 발견된 경우에만 엔지니어에게 알린다

3단계의 의도적 결함 주입이 핵심이다. 코드에 일부러 버그를 넣어보고, 생성된 테스트가 이걸 잡아내는지 확인한다. 잡아내면 그 테스트는 유효한 것이고, 못 잡으면 테스트 자체가 약한 것이다. Meta는 이 접근을 Catching JiTTests라고 부른다.

[💡 잠깐! 이 용어는?] 뮤테이션 테스팅(Mutation Testing): 정상 코드에 의도적으로 작은 변경(뮤턴트)을 가해서, 기존 테스트가 이 변경을 감지하는지 확인하는 테스트 품질 측정 기법이다. "테스트를 테스트하는 테스트"라고 볼 수 있다.


전통적 테스트와 무엇이 다른가

기준전통적 테스트JiTTesting
생성 시점코드 작성 전/후 수동코드 변경 시 자동
유지보수수동 업데이트 필요유지보수 불필요 (일회용)
코드베이스 저장영구 보관생성 → 실행 → 폐기
변경 특화범용 테스트해당 변경에 맞춤 설계
오탐(false positive)코드 변경 시 깨지는 테스트앙상블 평가로 노이즈 필터링

기존 테스트 코드가 쓸모없어지는 건 아니다. 회귀 테스트, 통합 테스트, E2E 테스트는 여전히 필요하다. JiTTesting이 대체하려는 건 "새 변경사항이 기존 동작을 깨뜨리지 않는가"를 빠르게 확인하는 회귀 감지 영역이다.


현실적으로 어디에 쓸 수 있나

JiTTesting은 아직 Meta 내부 연구 단계다. 바로 npm install 해서 쓸 수 있는 오픈소스 도구는 아니다. 하지만 아이디어 자체는 이미 적용 가능한 범위가 있다.

실험해볼 수 있는 접근

  1. PR에 LLM 기반 테스트 리뷰 추가: PR이 올라오면 변경된 코드에 대해 LLM이 "이 변경에서 깨질 수 있는 시나리오"를 생성하고 코멘트로 남기는 봇
  2. 뮤테이션 테스팅 도입: Stryker(JavaScript), mutmut(Python) 같은 기존 뮤테이션 테스팅 도구를 CI에 넣어서 기존 테스트의 품질을 측정
  3. AI 코드 리뷰 파이프라인: 에이전트가 생성한 코드를 다른 LLM이 검증하는 "이중 검증" 구조 도입
접근난이도효과
PR 코멘트 봇낮음코드 리뷰 보조
뮤테이션 테스팅 CI중간테스트 품질 정량 측정
LLM 이중 검증높음에이전트 코드의 안전장치

한계와 열린 질문

JiTTesting이 만능은 아니다. 몇 가지 열린 질문이 남아 있다.

  • LLM의 테스트 품질: LLM이 생성한 테스트 자체가 정확하지 않으면 전체 파이프라인이 무의미하다. "테스트를 생성하는 AI를 테스트하는 건 누구인가"라는 재귀적 문제다.
  • 비용: 매 커밋마다 LLM을 호출하면 API 비용이 선형으로 증가한다. 대형 모노레포에서는 비용 제어가 중요하다.
  • 비결정적 결과: 같은 코드 변경에 대해 LLM이 매번 다른 테스트를 생성할 수 있다. 앙상블 평가가 이를 완화하지만 완벽하지는 않다.

정리

  • AI 에이전트가 코드를 쓰는 속도가 빨라지면서, 테스트 유지보수가 새로운 병목이 됐다
  • JiTTesting은 테스트를 미리 만들어두는 대신 변경 시점에 즉석 생성 → 실행 → 폐기하는 패러다임이다
  • 의도적 결함 주입 + LLM 테스트 생성 + 앙상블 평가의 3단 구조가 핵심이다
  • 아직 연구 단계이지만, 뮤테이션 테스팅이나 LLM 기반 PR 리뷰를 현재 파이프라인에 추가하는 것만으로도 비슷한 효과를 낼 수 있다

참고:

관심 있을 만한 포스트

VS Code 팀의 AI 에이전트 병렬화 — 월간 릴리스를 주간으로 만든 워크플로우

VS Code 팀이 월간 릴리스에서 주간 릴리스로 전환한 비결. 에이전트 세션 병렬화, 자동화 파이프라인, 품질 게이트 설계 전반을 공개했다.

VS CodeAI

회의론자의 전향 — Steve Yegge가 그리는 AI 에이전트 시대의 생존 지도

실리콘밸리 베테랑 Steve Yegge가 말하는 AI 에이전트 시대의 핵심 주장과 엔지니어에게 주는 시사점을 정리한다.

AI에이전트

Claude Code 에이전트 팀 — 여러 AI가 협업하는 새로운 방식

Claude Code의 에이전트 팀을 정리했다. 설정법, 사용 사례, 10만 줄 C 컴파일러 구축 실전 사례, 훅을 활용한 품질 관리, 토큰 비용 분석까지 다룬다.

Claude CodeAI

코드를 치는 손에서 지시를 내리는 입으로 — Spotify가 AI 개발을 증명한 방법

Spotify가 내부 AI 시스템 Honk과 Claude Code를 활용해 개발 워크플로우를 근본적으로 바꾼 사례를 분석한다.

SpotifyAI

Long-Distance NES — VS Code Copilot이 커서 너머까지 코드를 고치는 방법

VS Code Copilot의 Next Edit Suggestions가 파일 전체로 확장되면서, 멀리 떨어진 코드도 자동으로 제안하는 기술적 배경을 분석한다.

VS CodeCopilot

Cursor Cloud Agents — 퇴근해도 코드를 짜는 AI 개발자가 등장했다

Cursor가 발표한 Cloud Agents는 독립 VM에서 코드 작성, 브라우저 테스트, PR 제출까지 자율적으로 수행하는 AI 에이전트다.

CursorCloud Agents

Claude Code 원격 제어 — 커피 마시면서 코딩시키는 시대가 열렸다

Claude Code의 Remote Control 기능으로 스마트폰에서 로컬 코딩 세션을 제어할 수 있게 되었다.

Claude CodeRemote Control

새벽 3시의 탐조등 — Google SRE가 Gemini CLI로 장애를 잡는 법

Google Cloud SRE 팀이 Gemini CLI를 장애 대응 워크플로우에 통합한 방법, 효과, 한계를 분석한다.

SREGoogle