플레이키 테스트 신호 예산 관리
플레이키 테스트는 가끔 실패하는 테스트가 아닙니다. 더 정확히는 팀이 CI 신호를 믿지 못하게 만드는 테스트입니다. 한두 번은 재실행으로 넘길 수 있지만, 반복되면 실패 알림 전체가 배경 소음이 됩니다. 결국 진짜 회귀도 “또 테스트 문제겠지”라는 말 속에 묻힙니다.
재시도는 치료가 아니라 완충재다
CI에서 테스트를 자동 재시도하는 것은 나쁘지 않습니다. 네트워크 순간 오류나 브라우저 타이밍 문제를 흡수할 수 있습니다. 하지만 재시도 성공을 최종 성공으로만 기록하면 불안정성이 사라진 것처럼 보입니다. 실제로는 신호 품질이 낮아진 상태입니다.
좋은 시스템은 다음을 따로 기록합니다.
- 첫 실행 실패율
- 재시도 후 성공률
- 같은 테스트의 반복 실패 패턴
- 특정 브랜치나 환경에서만 발생하는지 여부
재시도는 빌드를 살릴 수 있지만, 테스트 신뢰도는 별도로 관리해야 합니다.
신호 예산을 둔다
모든 테스트가 100% 안정적이면 좋겠지만 현실적인 비용이 있습니다. 그래서 팀 단위로 허용 가능한 플레이키 예산을 정하는 방식이 유용합니다. 예를 들어 핵심 회귀 테스트는 첫 실행 성공률 99% 이상, E2E 전체 묶음은 97% 이상처럼 기준을 나눌 수 있습니다.
예산을 넘은 테스트는 자동으로 격리하거나 소유자에게 이슈를 생성합니다. 중요한 점은 실패한 사람을 탓하는 것이 아니라, 불안정한 신호가 전체 파이프라인을 오염시키지 않게 하는 것입니다.
격리는 삭제가 아니다
플레이키 테스트를 바로 삭제하면 잠재적인 버그 신호도 사라집니다. 대신 격리 큐로 옮기고, 릴리스 게이트에는 포함하지 않되 별도 대시보드에서 계속 실행하는 방식이 낫습니다. 이렇게 하면 개발 흐름을 막지 않으면서도 원인을 추적할 수 있습니다.
운영 체크리스트
- 테스트별 첫 실행 성공률을 추적한다.
- 재시도 성공을 별도 지표로 남긴다.
- 플레이키 테스트에 소유자와 만료일을 붙인다.
- 격리된 테스트도 계속 실행해 데이터를 모은다.
- 핵심 테스트 묶음은 더 엄격한 신뢰도 기준을 적용한다.
테스트의 가치는 실패할 때 드러납니다. 실패 신호를 믿을 수 있어야 팀은 빠르게 움직일 수 있고, 플레이키 예산 관리는 그 믿음을 유지하는 현실적인 방법입니다.
Continue Reading
다음으로 읽기 좋은 글
릴리스 후보 테스트 컷라인 설계
모든 테스트를 다 돌리는 것과 안전하게 배포하는 것은 다릅니다. 릴리스 후보에서 어떤 테스트를 통과 기준으로 삼아야 할지 정리합니다.
🧪 TestFlaky Test 분류와 대응 플레이북
Flaky test를 분류하고 격리하고 근본 원인을 해결해 CI 신뢰도를 지키는 실전 가이드입니다.
⚙️ Backend비동기 작업 API의 멱등성과 상태 제어
긴 작업을 HTTP 요청 하나로 끝내지 않고 작업 생성, 재시도, 취소, 결과 조회까지 안정적으로 설계하는 방법을 정리합니다.
📱 Mobile모바일 Crash Budget 운영법
모바일 안정성은 단순히 크래시를 줄이는 것이 아니라, 어느 수준까지 허용하고 언제 출하를 멈출지 결정하는 운영 문제입니다.
다음 탐색