- 필수 기능
- 시작하기
- Glossary
- 표준 속성
- Guides
- Agent
- 통합
- 개방형텔레메트리
- 개발자
- API
- Datadog Mobile App
- CoScreen
- Cloudcraft
- 앱 내
- 서비스 관리
- 인프라스트럭처
- 애플리케이션 성능
- APM
- Continuous Profiler
- 스팬 시각화
- 데이터 스트림 모니터링
- 데이터 작업 모니터링
- 디지털 경험
- 소프트웨어 제공
- 보안
- AI Observability
- 로그 관리
- 관리
지능형 테스트 러너는 Datadog의 테스트 영향 분석 솔루션입니다. 테스트 영향 분석 기술은 지난 수십 년 동안 많이 사용되어 온 기술입니다. 그러나 해당 기술은 대개 구현하기 어렵고 시간도 많이 걸립니다. 지능형 테스트 러너로 이러한 복잡한 과정을 간소화할 수 있도록 도와드립니다.
테스트 영향 분석 기술은 각 테스트를 테스트가 사용하는 리포지토리의 코드 파일 집합에 매핑합니다(테스트별로 코드 검사). 본 분석의 목표는 코드 변경의 영향을 받지 않는 테스트를 건너뛰는 것입니다. 이를 통해 CI에서 테스트에 소요되는 시간을 직접 줄일 수 있습니다.
극단적인 예로, README 파일의 오타만 변경하는 풀 리퀘스트가 있습니다. 해당 PR의 경우, 모든 테스트를 실행하는 것은 전혀 이득이 되지 않습니다. 오히려 테스트가 불완전하다면 CI가 실패하여 병합 전에 파이프라인을 여러 번 다시 시도해야 할 수도 있습니다. 이는 개발자와 CI 모두의 시간을 낭비하는 일입니다. 지능형 테스트 러너를 사용하면 README 파일을 변경하는 PR이 모든 테스트를 건너뛸 수 있습니다.
일부 테스트 선택 솔루션은 코드 검사 데이터에 의존하지 않고 기계 학습을 사용하여 이를 보완합니다. 본 시스템은 확률 방식으로 관련된 테스트를 추론하므로, 관련된 테스트를 놓쳐 기본 브랜치의 빌드 실패를 초래할 수 있습니다. 기계 학습 기반 기술은 일반적으로 제대로 작동하기까지 보다 오랜 기간의 데이터 수집이 필요합니다. 지능형 테스트 러너는 코드 검사의 기준이 수집되는 즉시 작동을 시작합니다.
다른 테스트 솔루션도 코드 검사를 활용하여 테스트 영향 분석을 산출하지만, 실행할 테스트를 평가할 때 마지막 커밋 차이값만 고려합니다. 예를 들어, 병합을 허용하는데 최신 커밋의 CI 상태만 고려하는 GitHub의 풀 리퀘스트 문제가 있습니다. 결과적으로 모든 커밋을 CI를 통해 실행해야 하거나 실행해야 할 테스트를 건너뛸 위험이 있습니다.
지능형 테스트 러너는 테스트 가시성 데이터와 함께 테스트별 코드 검사 정보를 활용하여 모든 관련 기존 커밋에서 이전 테스트를 검색합니다. 지능형 테스트 러너 설정은 대부분의 언어에서 원클릭으로 작동하며, 다른 방법보다 정확하고 정밀한 결과를 제공해 드립니다.
지능형 테스트 러너를 활성화하면 테스트별(또는 프레임워크에 따라 스위트별) 코드 검사 데이터가 명료하게 수집되어 Datadog으로 전송됩니다.
Datadog 백엔드는 이전 테스트 실행 데이터 검색에 해당 정보를 활용하여 특정 테스트를 건너뛸 수 있는지 결정합니다. Datadog에 검사 및 추적된 파일이 현재 커밋과 동일한 커밋에서 테스트를 통과한 기록이 있다면 해당 테스트를 건너뜁니다. 이는 코드 변경이 테스트에 영향을 미치지 않았다는 증거로 활용됩니다.
Datadog 라이브러리는 소스에서 건너뛸 수 없음으로 표시된 테스트를 건너뛸 수 있는 테스트 목록에서 삭제합니다. 이후에 테스트를 실행하나 테스트 프레임워크가 건너뛸 수 있는 테스트 목록에 있는 테스트를 건너뛰도록 합니다.
구체적인 예시를 살펴보겠습니다.
위의 다이어그램은 main
에서 분기되어 여러 개의 커밋이 존재하는 개발자 브랜치를 보여줍니다. 각 커밋에서 CI는 서로 다른 결과를 산출하는 두 가지 테스트(A와 B)를 실행 중입니다.