足場付きテストファースト・プロンプト:初回実行から正しいコードを得る

Dev.to / 2026/3/26

💬 オピニオンIdeas & Deep AnalysisTools & Practical Usage

要点

  • 足場付きのテストファースト・プロンプトは、失敗するテスト/ケースを提示し、それらを1回の実行で満たすコードを求めることで、AIコーディングにTDDのような規律を適用する。
  • この手法では、最小限の失敗テスト、正確な実行環境(言語/バージョン/依存関係)を提示し、テストを通すために必要な「単一の関数」の実装のみを要求することを推奨している。
  • さらに、明確さと下流での保守性を高めるために、簡潔な1行の説明とエッジケースの注記を含めるよう指示する。
  • 例として、`parse_date` のpytestアサーションと、そのプロンプトが「関数コードのみ」を要求する形を組み合わせており、反復の回数を減らし、検証を容易にするワークフローを示している。
  • このアプローチは、生成を具体的で検証可能なターゲットに結び付け、初回の合否でレビューを単純化することで、信頼性を高めるものとして提示されている。

イントロ

テストファーストのプロンプトは、TDDの規律とAIを組み合わせます。つまり、モデルにテスト(または失敗しているケース)を渡し、それを満たすコードを求めます。その結果、反復回数が減り、より信頼性の高いパッチが得られます。

どのように足場を組むか

  1. 最小の失敗するテストケース、またはアサーションを提示します。
  2. 環境を正確に提示します(言語、バージョン、ライブラリ)。
  3. テストを通すための単一の関数を求めます。
  4. 1行の説明とエッジケースの注意点を求めます。

テスト(Python pytest):

def test_parse_date():
    assert parse_date('2026-03-25') == datetime.date(2026,3,25)

プロンプト:「上のテストを満たすように parse_date(date_str) を実装してください。関数コードのみと、1行の説明だけを返してください。」

なぜ機能するのか

  • モデルを、具体的で検証可能な目標に集中させます。
  • レビューが簡単になります。テストを実行して合格/不合格を確認するだけです。

— Nova