mcpField
P
planning-oracle-to-postgres-migration-integration-testing

planning-oracle-to-postgres-migration-integration-testing

github.com/githubテスト・品質40.5k1.8k 回インストール今日更新
リポジトリ

planning-oracle-to-postgres-migration-integration-testing について

単一プロジェクトのデータベースアクセスコードを分析し、Oracle から PostgreSQL への移行に向けた実行可能な結合テスト計画を作成するスキルです。移行リスクに応じて対象を優先付けし、テキスト値やタイムスタンプの挙動も含めてテスト箇所を対応付けます。

主な機能

  1. 01単一プロジェクトのDBアクセス対象の一覧化
  2. 02移行リスクに基づく優先順位付け
  3. 03テストケースとシードデータの提案
  4. 04Oracle と PostgreSQL の動作差の確認
  5. 05DBアクセス箇所とテストカバレッジの対応付け

活用シーン

  1. 01repository や DAO の移行テスト計画
  2. 02Oracle 固有のDB機能のテスト優先付け
  3. 03DBアクセス箇所全体の結合テスト整理

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/github/awesome-copilot --skill planning-oracle-to-postgres-migration-integration-testing

インストール後、Claude Code で/planning-oracle-to-postgres-migration-integration-testingを入力して読み込まれたか確認します。

詳細

Oracle から PostgreSQL への移行における統合テスト計画

単一の対象プロジェクトを分析し、統合テストが必要なデータアクセス関連の成果物を特定したうえで、体系的で実行可能なテスト計画を作成します。

ワークフロー

Progress:
- [ ] Step 1: Identify data access artifacts
- [ ] Step 2: Classify testing priorities
- [ ] Step 3: Write the testing plan

ステップ 1:データアクセス関連の成果物を特定する

対象プロジェクトのみを範囲とします。データベースと直接やり取りするクラスやメソッド(リポジトリ、DAO、ストアドプロシージャーの呼び出し元、CRUD 操作を実行するサービス層)を見つけます。

ステップ 2:テストの優先度を分類する

移行リスクに基づいて成果物を順位付けします。単純な CRUD よりも、Oracle 固有の機能(refcursor、TO_CHAR、暗黙的な型変換、NO_DATA_FOUND)を使用するメソッドを優先します。

ステップ 3:テスト計画を作成する

次の内容を含む Markdown 形式の計画を作成します。

  • テスト可能な成果物とメソッドシグネチャの一覧
  • 成果物ごとに推奨するテストケース
  • シードデータの要件
  • 検証すべき Oracle と PostgreSQL の既知の動作の違い
  • すべてのデータベース接点に少なくとも 1 つのテストケース(または、リスクの高いメソッドについて妥当性を説明したテストケース群)が割り当てられていることを保証するカバレッジ対応表

推奨するテストケースを定義する際は、次の内容を明示的に含めます。

  • 空文字列と NULL/値が指定されていない場合の両方におけるテキストパラメーターの動作。
  • 往復変換と比較の動作を含む、日時/タイムゾーンに関するアサーション。
  • 変換先の列が timestamp without time zone または timestamp(0) を使用するケースと、タイムゾーンの適用に関する明示的な想定。

出力

計画を次の場所に作成します。.github/oracle-to-postgres-migration/Reports/{TARGET_PROJECT} Integration Testing Plan.md

主な制約

  • 単一プロジェクトの範囲 — 対象プロジェクト内の成果物のみをテスト計画に含めます。
  • データベースとのやり取りのみ — データベースにアクセスしないビジネスロジックは対象外とします。
  • Oracle を正とする — PostgreSQL と比較するため、Oracle で期待される動作をテストで記録します。
  • 複数接続のハーネスは使用しない — 移行したアプリケーションはコピーして名前を変更する(例:MyApp.Postgres)ため、各インスタンスは 1 つのデータベースを対象とします。

コメント