newsence
Show HN: Git bayesect – Bayesian Git bisection for non-deterministic bugs

Show HN: Git bayesect – Bayesian Git bisection for non-deterministic bugs

Hacker News·8 天前

Show HN: Git bayesect – Bayesian Git bisection for non-deterministic bugs...

git bayesect

貝氏 git 二分搜尋!

使用此工具來偵測事件發生機率的變化,例如:隔離出某個提交(commit),在該提交中,一個輕微不穩定的測試(flaky test)變得非常不穩定。

你不需要知道確切的機率(雖然你可以提供先驗機率),只需要知道在某個時間點、某個方向上發生了變化。

安裝

或:

運作原理

git_bayesect 使用貝氏推論來識別引入變化的提交。提交的選擇是透過貪婪最小化期望熵(greedy minimisation of expected entropy)來執行的,並在計算後驗機率時使用 Beta-Bernoulli 共軛技巧,使得處理未知的失敗率變得可行。

請參閱 https://hauntsaninja.github.io/git_bayesect.html 以獲取詳細報告。

用法

開始貝氏二分搜尋:

記錄當前提交的觀測結果:

或記錄特定提交的觀測結果:

檢查二分搜尋的整體狀態:

重設:

更多用法

設定特定提交的先驗機率:

根據檔案名稱設定所有提交的先驗機率:

根據提交訊息與差異(diff)中的文字設定所有提交的先驗機率:

獲取指令日誌以重建狀態:

撤銷最後一次觀測:

使用指令自動運行二分搜尋以進行觀測:

切換(Checkout)到最適合測試的提交:

演示

本儲存庫包含一個小型演示,供你嘗試使用:

https://github.com/hauntsaninja/git_bayesect