**進め方:**
1. 変える観測可能な振る舞いと、維持する既存契約を特定する
2. 契約の所有者と、その所有者を import・呼び出し・直接参照する既存テストを確認する。ファイル名やテストが名乗る目的で除外せず、各assertionを観測可能な契約へ対応付ける。対応付けられないassertionの処置は、タスクで示されたテスト関連の判断基準に従う。その基準がある場合は、全assertionに契約への対応または基準が認める更新・削除の処置が付くまで次へ進まない。基準がない場合は、観測可能な契約だけで維持・更新・削除を決められないassertionを未対応として記録する
3. 成立する振る舞いと、一部だけを満たすもっともらしい誤実装を識別する最小の入力または状態を選ぶ。契約にない保存、ライフサイクル、統合、並行性の軸を作らない
4. 契約を直接観測する最小のテストを作る。実在する主要経路が単体境界を越える場合だけ統合テストを選ぶ
5. このtest-first工程ではテストを実行し、未実装のプロダクション動作を理由に失敗することを確認して、テスト設定・fixture・assertionの欠陥と区別する。実装後の確認条件として、意図した振る舞いが成功し、選んだ誤実装が意図した理由で失敗することを記録する。mutation確認は実装後に既存の隔離runnerがある場合だけ破棄可能なコピーで行い、この工程では実行しない
6. 完了前に所有テスト群を再確認する。適用可能なテスト関連の判断基準がある場合は、契約への対応または基準が認める処置のないassertionが残っていないことを確認する。基準がない場合は未対応assertionを明示する。誤実装を拒否する入力・状態とassertionの対応、未カバー理由、実行結果を作業結果に残す
