개념
False Alarm이란
CI가 "실패"라고 표시했지만, 실제로는 코드에 문제가 없는 경우를 False Alarm(거짓 경보)이라 한다. 모듈 7(레슨 3), 모듈 10(레슨 4), 모듈 13(레슨 6)에서 계속 다뤄온 플래키 테스트가 False Alarm의 대표적인 원인이다.
"양치기 소년" 효과
CI가 자주 잘못된 이유로 실패하면, 팀은 실패 알림을 볼 때마다 "어차피 또 플래키겠지"라고 생각하며 진짜 문제도 무시하게 된다. 이건 모듈 11(레슨 4)에서 배운 자동화 부채의 가장 위험한 형태다 — 안전망이 있다는 착각 속에, 실제로는 아무도 신뢰하지 않는 장식이 되어버린다.
False Alarm이 쌓이면:
CI 실패 알림 → "또 그거겠지" → 확인 없이 재시도 버튼 클릭
→ 진짜 실패도 같은 방식으로 처리됨 → 결함이 그대로 배포됨False Alarm을 줄이는 전략
1. 근본 원인을 고친다 (가장 우선)
모듈 13(레슨 6)에서 배운 네 가지 관점(로케이터·대기·환경· 애플리케이션 비결정성)으로 플래키 테스트를 진단하고 고치는 것이 가장 확실한 방법이다.
2. 격리(Quarantine)한다
당장 원인을 못 찾은 플래키 테스트는, 품질 게이트(레슨 4)에서 제외하고 별도로 모니터링한다. 이러면 이 테스트 하나 때문에 전체 파이프라인이 막히지 않으면서도, "이 테스트를 나중에 고쳐야 한다"는 사실 자체는 잊히지 않는다.
격리하지 않으면: 플래키 테스트 하나가 매번 전체 배포를 막음
격리하면: 격리 목록에 남겨두고 정기적으로 검토·수정3. 재시도는 마지막 수단으로, 신중하게
모듈 13(레슨 6)에서 배운 것처럼 재시도는 근본 해결책이 아니지만, 현실적으로 완전히 안 쓸 수는 없다. 다만 "몇 번 재시도했는지"를 기록하고 추적해서, 재시도가 잦은 테스트를 우선 수정 대상으로 삼는 규율이 필요하다.
4. 신호와 소음을 분리해서 보고한다
CI 결과를 볼 때 "전체 통과율"만 보지 않고, **"격리된 테스트를 제외한 핵심 스위트의 통과율"**을 따로 봐야 한다. 격리된 테스트의 실패가 전체 지표에 섞이면, 진짜 신호(핵심 기능의 실패)가 소음에 묻힌다.
False Alarm 관리도 하나의 지표다
모듈 6(레슨 5)에서 배운 품질 지표처럼, **"이번 달 격리된 테스트 개수", "재시도로 통과한 비율"**같은 지표를 추적하면, CI 신뢰도가 개선되고 있는지 악화되고 있는지 객관적으로 볼 수 있다.
실무에서 왜 필요한가
"우리 CI는 원래 절반은 실패해요"라는 말이 팀에서 당연하게 받아들여진다면, 그 CI는 사실상 아무 역할도 못 하고 있는 것이다. False Alarm을 체계적으로 줄이는 QA는, CI/CD를 "귀찮은 관문"에서 "믿을 수 있는 안전망"으로 되돌려, 팀 전체가 자동화 결과를 다시 신뢰하게 만드는 핵심적인 역할을 한다.
실습 과제
과제 1 — 상황별 대응 전략 선택하기 (10분)
다음 두 상황에 각각 "즉시 고치기"와 "격리 후 추적" 중 어느 전략이 더 적합할지 판단하고 이유를 적는다.
- 원인이 명확한(로케이터 문제) 플래키 테스트 하나
- 원인을 알 수 없고, 재현도 잘 안 되는 플래키 테스트
과제 2 — 지표 설계하기 (10분)
CI 신뢰도를 추적하기 위한 지표를 2가지 이상 설계하고, 각 지표가 악화되면 무엇을 신호로 볼 수 있는지 설명한다.
자가 체크리스트
- False Alarm이 왜 "양치기 소년" 효과를 만드는지 설명할 수 있다
- False Alarm을 줄이는 네 가지 전략(근본 수정·격리·신중한 재시도·신호 분리)을 설명할 수 있다
- 격리가 왜 근본 해결의 대안이 아니라 임시 조치인지 설명할 수 있다
- CI 신뢰도를 추적하는 지표를 설계할 수 있다
흔한 실수
- 모든 플래키 테스트를 그냥 재시도로만 처리하고 격리하지 않는다. 파이프라인이 계속 느려지고, 문제가 계속 방치된다.
- 격리한 테스트를 격리 목록에 넣어두고 다시는 들여다보지 않는다. 격리는 임시 조치이지 영구적인 방치가 아니다.
- 전체 통과율만 보고 격리된 테스트의 영향을 구분하지 않는다. 진짜 신호와 알려진 소음을 분리해서 봐야 정확한 판단이 가능하다.
참고 자료
- Martin Fowler — Eradicating Non-Determinism in Tests — 플래키 테스트와 False Alarm 관리를 다룬 대표 아티클
- Google Testing Blog — Flaky Tests 관련 아티클 — 대규모 조직의 플래키 테스트 관리 사례