CloudBees Smart Tests로 CI 테스트 우선순위화하기
CloudBees Smart Tests의 예측적 테스트 선택, LLM 분석, 동적 병렬화와 CI/CD 통합 방식, 도입 시 확인할 운영 조건을 정리한다.
2026-08-14 · 최초 발행 2026-04-17
테스트 전체 실행이 CI 병목이 될 때
코드 변경이 늘어날수록 CI/CD 파이프라인에서 수만 건의 테스트를 매번 전부 실행하는 방식은 병목이 된다. CloudBees는 2026년 4월 CloudBees Smart Tests를 정식 출시했고, 머신러닝 기반 예측적 테스트 선택(Predictive Test Selection)으로 실행 대상을 줄이고 우선순위를 정하는 접근을 제시했다.
이 플랫폼은 조직의 테스트 이력 데이터를 학습한 모델로 코드 변경과 관련성이 높은 테스트를 골라낸다. 실패 가능성이 높은 테스트를 먼저 실행하고, 불필요하다고 판단한 테스트는 건너뛰어 피드백 루프를 짧게 만드는 구조다. CloudBees는 이를 AI 코드 생성 환경에서 증가하는 변경량을 CI가 처리하도록 돕는 테스트 인텔리전스 도구로 위치시킨다.
이력 데이터가 선택 결과로 돌아오는 흐름
테스트 결과 메타데이터와 코드 변경 이력은 지속적으로 수집된다. 이를 바탕으로 조직 전용의 지도 학습(Supervised Learning) 모델이 소스 코드와 테스트 실패의 연관 패턴을 학습하고, 실행 이력·테스트 특성·변경 특성·환경별 플레이버(Flavor)를 종합해 테스트 순위를 만든다. 이후 속도, 커버리지, 균형이라는 목표에 맞춰 실행할 서브셋을 구성한다.
LLM 분석과 실패 진단을 연결하는 방식
2026년 업데이트에는 대규모 언어 모델(LLM)을 사용하는 분석 기능이 추가됐다. 소스 코드와 테스트 파일을 함께 분석해 코드 구조 및 컴포넌트 관계를 파악하고, 커밋에서 변경 파일과 테스트 파일의 유사도를 계산해 영향받는 테스트를 식별한다. 기존의 빈도 기반 알고리즘에 의미론적 이해를 더해 예측 정확도를 높이는 방식이다.
실패가 발생한 뒤에는 GenAI가 대량의 오류 로그를 요약하고, 근본 원인(Root Cause)별로 실패를 그룹화한다. 불안정한 Flaky Test도 탐지해 분석 과정의 노이즈를 낮춘다.
속도와 커버리지 사이에서 선택하는 정책
CloudBees Smart Tests는 실행 시간, 커버리지, 신뢰성의 우선순위에 따라 다음 전략을 제공한다.
| 전략 | 동작 | 적합한 상황 |
|---|---|---|
| Speed Optimization | 총 실행 시간 최소화에 집중 | 빠른 피드백이 최우선인 개발 브랜치 |
| Coverage Optimization | 최소 테스트 볼륨으로 적절한 커버리지 확보 | 리소스 제약이 큰 환경 |
| Smart Optimization | 속도와 신뢰성을 자동으로 균형 조절 | 범용 프로덕션 파이프라인 |
Zero Input Subsetting은 수동 설정 없이 서브셋을 선택한다. 예측적 선택만으로 운영하기 어렵다면 규칙 기반 필터링을 함께 적용하는 하이브리드 방식도 사용할 수 있다.
병렬 노드의 편차를 줄이는 동적 분할
Dynamic Parallelization은 고정된 방식으로 테스트를 분할할 때 생기는 실행 시간 편차를 줄이는 기능이다. 과거 실행 시간 데이터를 분석해 균등한 크기의 병렬 실행 단위(Bin)를 동적으로 만들고, 각 병렬 노드의 실행 시간 편차를 최소화한다. Long-Running Test Detection으로 느린 테스트를 찾아 병목을 사전에 식별하는 역할도 한다.
기존 CI에 연결할 수 있는 범위
CloudBees Smart Tests는 CI-agnostic 아키텍처를 내세운다. Jenkins는 네이티브 플러그인으로 연동하며, GitHub Actions에서는 OIDC 인증 기반 워크플로우를 지원한다. GitLab CI는 CLI로 통합하고, 그 밖의 CI/CD 프레임워크도 CLI 기반으로 연결할 수 있다.
| 카테고리 | 지원 항목 |
|---|---|
| 빌드 도구 | Maven, Gradle, Bazel, Ant |
| 테스트 프레임워크 | Jest, pytest, nose, RSpec, Go Test, GoogleTest |
| 언어 | Java, JavaScript, Python, Go, Ruby, C++, .NET, Perl |
통합은 CLI로 테스트 결과를 제출하고 실행 서브셋을 요청하는 구조다. 파이프라인에 4줄의 코드 추가로 1시간 이내 설정을 완료할 수 있으며, GitHub OIDC 또는 토큰리스 인증도 지원한다. 멀티 팀과 멀티 레포지토리 환경의 통합 관리도 대상에 포함된다.
제시된 도입 성과와 고객 사례
CloudBees가 제시한 성과 지표는 실패 탐지 속도 40-80% 향상, 테스트 실행 시간 최대 80% 단축, 빌드 시간 40% 감소, 대규모 조직 기준 월 2,000시간 이상의 개발자 시간 절감이다.
| 고객 | 도입 전 | 도입 후 | 핵심 지표 |
|---|---|---|---|
| GoCardless (글로벌 결제, 연 $35B+) | 300분 이상 테스트, 6만 개 유닛 테스트 | 48분으로 단축 | 머신 시간 50% 절감, 첫 달 8,500시간 절약 |
| 글로벌 자동차 제조사 | 하드웨어 큐 대기 시간 과다 | 대폭 단축 | 물리 하드웨어 비용 절감, 병렬화 효율 개선 |
| DevOps 데이터 플랫폼 기업 | 프리커밋 6시간, 회귀 테스트 수일 | 프리커밋 2시간, 회귀 수시간 | 프리커밋 66%, 회귀 80% 시간 단축 |
구매 모델과 운영 전 검토할 지점
서비스는 SaaS 클라우드 네이티브 모델이며 AWS Marketplace에서 구매할 수 있다. 가격은 Git 커미터 기준 사용자당 $120/년, 테스트 스위트당 $15,000/년이다. 무료 CI Waste Assessment 평가 서비스가 제공되며, 단일 레포지토리에서 파일럿을 진행한 뒤 점진적으로 확대할 수 있다.
도입 시에는 초기 학습에 필요한 테스트 이력 데이터가 충분한지 확인해야 한다. 서브셋에서 제외한 테스트가 실제로 안전한지에 대한 신뢰도를 모니터링하고, 필요하면 규칙 기반 필터링을 병행하는 편이 낫다. CI-agnostic 구조라도 기존 테스트 병렬화 전략과 충돌하는지 사전 검증이 필요하다. 테스트 볼륨이 적은 소규모 프로젝트에서는 ROI가 제한적일 수 있다.