回帰テスト
かつて動いていたものが今も動くことを確かめるテスト。つまりリグレッションは単なるバグではなく、以前は正しかった挙動の欠陥である。
最も価値が高いのは、報告されたバグに対して書くものだ。まず失敗するテストを書き、欠陥を直し、緑になるのを確認する。そのテストはまさにその再発を防ぐために残り続け、積み重なってCIで毎回のpushごとに走るスイートになる。手法にはスナップショットテストやゴールデンマスターテストがあり、出力を保存済みの参照ファイルと比較する。強力だが、なぜ変わったのかを理解せず参照ファイルを更新してしまう誘惑に負けやすい。いったんリグレッションが紛れ込んだら、原因のコミットを見つける最速の手段は git bisect である。