---
title: "git bayesect — flaky 테스트도 추적하는 베이지안 git bisect"
published: 2026-03-28T20:32:01.000Z
canonical: https://jeff.news/article/1488
---
# git bayesect — flaky 테스트도 추적하는 베이지안 git bisect

git bisect의 베이지안 버전으로, 비결정적 버그의 원인 커밋을 확률적으로 추적하는 CLI 도구. Beta-Bernoulli 켤레 사전분포를 활용해 실패율을 모르는 상태에서도 추론 가능.

- `git bisect`의 베이지안 버전 — 비결정적(flaky) 버그를 확률적으로 추적하는 도구
  - 일반 `git bisect`는 "이 커밋에서 버그 있음/없음" 이분법이라, 간헐적으로 터지는 테스트에는 무력함
  - `git_bayesect`는 "이 커밋에서 실패 확률이 변했다"를 감지함 — 약간 flaky하던 테스트가 매우 flaky해진 커밋을 찾아줌
- 내부적으로 베이지안 추론(Bayesian inference)을 사용
  - 커밋 선택은 기대 엔트로피의 그리디 최소화(greedy minimisation of expected entropy)로 수행
  - 사후 확률(posterior) 계산에 Beta-Bernoulli 켤레 사전분포(conjugacy) 트릭을 써서, 실패율을 모르는 상태에서도 추론이 가능
  - 사전 확률(prior)을 직접 안 줘도 되지만, 원하면 커밋별/파일명별/커밋메시지별로 설정 가능

> [!TIP]
> flaky 테스트 때문에 git bisect 포기한 경험 있으면 바로 써볼 만함. `git bayesect run <command>`로 자동 bisection도 지원

- CLI 사용법이 `git bisect`와 거의 동일한 구조
  - `git bayesect start`로 시작, `git bayesect observe good/bad`로 관측 기록
  - `git bayesect run <command>`로 완전 자동화 가능
  - `git bayesect undo`로 마지막 관측 취소, `git bayesect log`로 상태 재구성
- 커밋별 사전 확률을 파일명이나 diff 텍스트 기반으로 설정할 수 있음
  - 특정 파일을 건드린 커밋에 높은 prior를 주면 탐색 효율이 올라감

## 핵심 포인트

- flaky 테스트처럼 비결정적 버그의 원인 커밋 추적
- 베이지안 추론 + 기대 엔트로피 최소화로 커밋 선택
- 사전 확률을 파일명/diff 기반으로 설정 가능
- git bisect와 유사한 CLI 인터페이스

## 인사이트

CI에서 flaky test 때문에 고통받는 팀이라면 bisect 포기하지 말고 이 도구를 시도해볼 만함. 확률적 접근이라는 발상 전환이 핵심.
