関数名を揃えたら、テストは緑のまま、差し替えたはずの印字処理が本物のまま動いていた。名前で縛った差し替えは名前が変わると効かなくなる。インスタンス委譲の導入(Introduce Instance Delegator)で、差し替えを渡すオブジェクトで決める形にします。
組み立てた途端に本番の帳簿ファイルを開いてしまうクラスは、そのままではテストできない。コンストラクタのパラメータ化(Parameterize Constructor)で、依存を外から渡しても渡さなくても動く形にします。
郵便番号の引き当てがテストのたびに外部へ問い合わせてしまう。取り込んだ関数には local が届かない――呼び出しの抽出とオーバーライド(Extract and Override Call)でテスト用のサブクラスに差し替えます。
呼ばれている箇所が数えきれない処理に、出入りをすべて記録する決まりができた。包みメソッド(Wrap Method)で呼ばれる側だけを変え、呼び出し元は1行も変えずにログを効かせます。
既存の在庫クラスはコンストラクタで帳簿ファイルを開くため、テストの中で組み立てられない。判定ロジックを芽生やしクラス(Sprout Class)として別に起こし、既存クラスからは委譲するだけにします。
既存の配達料計算に遠方割増を足したい。既存関数に直接書き足さず、新しい処理を芽生やしメソッド(Sprout Method)として別に作り、既存には呼び出し1行だけを足します。
差し替える場所が無いように見える Perl コードでも、パッケージ境界そのものが継ぎ目(Seam)になる。シンボルテーブルを local でテストの間だけ差し替え、本体を書き換えずに税率計算を確かめます。
変更の影響がどこまで届くか分からないとき、全部をテストする前に影響スケッチ(Effect Sketch)で響く先を図に描き、テストを置く場所を絞ります。
仕様書もテストも無い古い Perl コードを触る前に、今出ている出力をそのまま期待値にして固定する。Perl のコアモジュールだけで仕様化テスト(Characterization Test)を書きます。
提供終了の通告で乗り換えが必要なのに動いているものを止められない問題を、新旧並走と通す割合の段階移行(Parallel Run)で解決し、標準ライブラリだけで実装し確かめます。
引き継ぎ書を作ろうとして、指示書がどこにも一元管理されていないと気づいた。散らばったプロンプトに版・所有者・変更理由を持たせ、資産として渡せる形にするPrompt Registryを解説します。
外部監査に三か月前の判定根拠を求められても、同じ入力から同じ答えは再現できない。入力・版・パラメータ・出力を紐づけて残すAudit Trailで、答えでなく道筋を残す設計を解説します。
設備点検日報の異常検知は動いてもエラーも出ません。先月、見逃しが1件だけ見つかりました。フラグ率をEWMAで継続監視するDrift Watchで、静かな品質劣化を可視化します。
EC通販の注文抽出で住所欄を直したら、無関係な商品コードと数量が崩れました。新旧2版を同じ代表例に通すDifferential Testingで、劣化した項目だけを特定します。
アパレルECの商品説明生成で、指示書の2版のどちらが良いか社内で二週間対立。決定的チェックとLLM-as-Judgeを階層化した評価ハーネスで、代表例を同じ基準で測り直します。