mcpField
L
ln-638-test-oracle-effectiveness-auditor

ln-638-test-oracle-effectiveness-auditor

github.com/levnikolaevichテスト・品質58469 回インストール2 日前に更新
リポジトリ

ln-638-test-oracle-effectiveness-auditor について

ln-638-test-oracle-effectiveness-auditorは、自動テストが実際の製品不具合を検出できるか評価する専門スキルです。アサーション、スナップショット、モック、利用可能なミューテーションテストの証拠を確認し、コードは修正せずに報告します。

主な機能

  1. 01弱いアサーションや欠落の検出
  2. 02振る舞いレベルのテストオラクル評価
  3. 03スナップショットのみのテストの確認
  4. 04過剰なモックの特定
  5. 05利用可能なミューテーションレポートの活用
  6. 06確認済み問題の採点と報告

活用シーン

  1. 01重要な製品ロジックのテスト監査
  2. 02回帰があっても通るテストの発見
  3. 03スナップショットやモック中心のテストスイートの確認
  4. 04テストアサーション改善の優先順位付け

インストール

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

$npx skills add https://github.com/levnikolaevich/claude-code-skills --skill ln-638-test-oracle-effectiveness-auditor

インストール後、Claude Code で/ln-638-test-oracle-effectiveness-auditorを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
audit_scoring.md
audit_summary_contract.md
audit_worker_core_contract.md
two_layer_detection.md
references/templates/
audit_worker_report_template.md

詳細

パス: ファイルパス(references/、../ln-*)は、このスキルディレクトリからの相対パスです。

テストオラクル有効性監査担当(L3 ワーカー)

タイプ: L3 ワーカー

テストオラクルが実際の製品の不具合を検出できるだけの意味を持つかを監査する、専門ワーカーです。

目的と範囲

  • テストオラクルの有効性(カテゴリ 9:中優先度)を監査します
  • コードを実行してもほとんど証明できていないテストを特定します
  • アサーションの強度、意味的なオラクルの品質、過剰なモック、脆弱なスナップショット、および利用可能な場合はミューテーションテストの証拠を確認します
  • STRENGTHEN_ORACLE、DELETE_WEAK_ORACLE、または ADD_MUTATION_EVIDENCE を出力します
  • 適合スコア(X/10)を算出します

入力

必ず読み込むこと: references/audit_worker_core_contract.md を読み込みます。

tech_stack、testFilesMetadata、codebase_root、output_dir を含む contextStore を受け取ります。

ワークフロー

検出ポリシー:2 層検出(候補のスキャン後、コンテキストで検証)を使用します。検証方法が曖昧な場合に限り、references/two_layer_detection.md を読み込みます。

  1. コンテキストの解析: contextStore から技術スタック、テストファイル一覧、codebase_root、output_dir を抽出します
  2. オラクルが弱い候補の検出(レイヤー 1): 自動テストをスキャンし、アサーションの欠如、曖昧なアサーション、スナップショットのみのテスト、過剰なモック、レポートが存在する場合はミューテーションテストの生存を検出します
  3. コンテキスト分析(レイヤー 2 -- 必須): 候補ごとに、次の点を確認します:
    • クラッシュせずに起動することだけを契約とする、意図的なスモークテストですか? -> 重大な動作を隠している場合を除き、重大度を下げるか、対象外とします
    • スナップショットに意味的なアサーションが併用されていますか? -> スナップショットのみであるという指摘は対象外とします
    • モックは境界で製品側の契約を検証していますか? -> 過剰なモックに関する指摘は対象外とします
    • ミューテーションの証拠がありませんか? -> オラクルがすでに弱い重大モジュールを除き、ミューテーションテストを必須としません
  4. 指摘事項の収集: 確認された問題ごとに、重大度、場所、作業量、アクション、推奨事項を記録します
  5. スコアの算出: 重大度ごとに違反数を数え、適合スコア(X/10)を算出します
  6. レポートの作成: references/templates/audit_worker_report_template.md に従って完全な Markdown レポートをメモリ上に作成し、単一の Write 呼び出しで {output_dir}/ln-638--global.md に書き込みます
  7. サマリーの返却: コーディネーターに最小限のサマリーを返します(出力形式を参照)

監査ルール

1. アサーションの強度

内容: アサーションがないテスト、曖昧なアサーションを使うテスト、または多くの壊れた実装でも通過するアサーションを使うテスト

検出方法:

  • expect、assert、should、またはフレームワーク固有の検証を使わずに、製品コードを呼び出すテスト
  • toBeTruthy、toBeDefined、not.toThrow のような曖昧なアサーションや、ドメイン値が重要なのにステータスのみを確認するアサーション
  • エラーの種類、メッセージ、または状態を検証しない例外テスト

レイヤー 2:

  • 重大な経路をカバーする唯一のテストである場合を除き、フレームワークが生成したスモークテストは対象外とします
  • 製品の契約が明示的に存在確認のみである場合、単純な存在確認の重大度を下げます

重大度: 重大なロジックでは高、それ以外では中

推奨事項: 実際のリグレッションで失敗するよう、製品固有の出力、状態遷移、副作用、発行イベント、または永続化されたデータをアサートします

作業量: S-M
アクション: STRENGTHEN_ORACLE。テストに製品の挙動を示す要素がない場合は DELETE_WEAK_ORACLE

2. 意味のあるオラクル

内容: 期待される結果が製品の動作と結び付いていないテスト

検出方法:

  • より豊かなドメイン動作を確認できるのに、オブジェクトの存在、配列の長さ、HTTP ステータス、描画されたコンテナーの存在、またはモック呼び出し回数しか確認しないアサーション
  • 独立したビジネスルールや既知の例ではなく、実装を反映した期待値

重大度: 中

推奨事項: 構造だけを確認するアサーションを、要件、例、フィクスチャ、またはゴールデンデータに基づく動作レベルのアサーションに置き換えます

作業量: S-M
アクション: STRENGTHEN_ORACLE

3. スナップショットのみのオラクル

内容: 保護対象の製品動作に対する意味的なアサーションがないスナップショットテスト

検出方法:

  • 近くに意味的なアサーションがない toMatchSnapshot、画像スナップショット、シリアライズされた JSON スナップショット、またはゴールデンファイル
  • 保護対象の動作を理解しなくても、スナップショットの更新を簡単に承認できる

レイヤー 2:

  • スナップショットが製品の契約であり、レビューの規律が文書化されている場合はスキップします
  • 重要なフィールドやユーザーに見える動作を検証する意味的なアサーションと組み合わせられている場合はスキップします

重大度: MEDIUM

推奨事項: スナップショットは二次的な証拠としてのみ保持します。重要な動作には意味的なアサーションを追加するか、独自のシグナルがないスナップショットのみのテストを削除します

作業量: S-M アクション: STRENGTHEN_ORACLE または DELETE_WEAK_ORACLE

4. 過剰なモック

内容: テスト対象のシステムや内部の協調コンポーネントを過剰にモックし、実際の動作を検証していないテスト

検出方法:

  • モックされた関数がテスト対象の関数でもある
  • アサーションの大半が、製品から見える出力や状態ではなくモックを検証している
  • 内部メソッドが、後でアサーションされる値とまったく同じ値にスタブ化されている

レイヤー 2:

  • 外部システムを分離しつつ、テストがローカルな製品動作を引き続きアサーションする場合、境界のモックは有効です
  • ln-635 の分離に関する指摘を重複させないでください。このチェックの対象は証明の強さであり、依存関係の制御ではありません

重大度: テストが重要なロジックをカバーしているように見えて、モックしか証明していない場合は HIGH、それ以外は MEDIUM

推奨事項: 実際のローカル動作を検証し、外部境界のみをモックします。実装上の呼び出しではなく、製品の契約をアサーションします

作業量: M アクション: STRENGTHEN_ORACLE

5. ミューテーション形式の証拠

内容: 本番環境の動作が変わっても失敗しないテストを検出するために、ミューテーションレポートまたは同等の証拠を使用します

検出方法:

  • ミューテーションレポートがある場合は、生存しているミュータントを、アサーションが弱いテストやモジュールに対応付けます
  • レポートがない場合は、すでに弱いオラクルのシグナルがあるテストを含み、ミューテーションチェックが有益な可能性のある重要なモジュールを特定します

重大度: ミューテーションの証拠がないことのみの場合は LOW、生存したミュータントが弱いアサーションを裏付ける場合は MEDIUM

推奨事項: 重要なローカルロジックに限って、ミューテーション形式の証拠を追加します。テストスイート全体にミューテーションテストを要求しないでください

作業量: M-L アクション: ADD_MUTATION_EVIDENCE

スコアリングアルゴリズム

必読: references/audit_scoring.md を読み込みます。

重大度の対応付け:

  • 重要な動作にオラクルがない、重要なロジックが過剰にモックされている → HIGH
  • 意味的なアサーションが弱い、スナップショットのみのテスト、生存したミュータント → MEDIUM
  • 弱いオラクルのシグナルがある重要なモジュールに対するミューテーションの証拠がない → LOW

出力形式

必読: references/templates/audit_worker_report_template.md を読み込みます。

references/audit_summary_contract.md に従って JSON サマリーを記述します。管理モードでは、呼び出し元が runId と summaryArtifactPath の両方を渡します。スタンドアロンモードでは、ワーカーが共通コントラクトに従って実行単位のアーティファクトパスを生成します。

{output_dir}/ln-638--global.md に、category: "Oracle Effectiveness" および次のチェックを含むレポートを記述します:assertion_strength、meaningful_oracle、snapshot_oracle、over_mocking、mutation_style_evidence。

references/audit_summary_contract.md に従ってサマリーを返します。

summaryArtifactPath がない場合は、スタンドアロンのランタイムサマリーを .hex-skills/runtime-artifacts/runs/{run_id}/evaluation-worker/{worker}--{identifier}.json に記述し、必要に応じて同じサマリーを構造化出力にもエコーします。

Report written: .hex-skills/runtime-artifacts/runs/{run_id}/audit-report/ln-638--global.md
Score: X.X/10 | Issues: N (C:N H:N M:N L:N)

重要なルール

すでに読み込まれている references/audit_worker_core_contract.md を適用してください。

  • 自動修正は禁止: 報告のみ
  • 独自の観点: オラクル/アサーションの有効性のみを監査してください。プロダクトとプラットフォームの焦点、E2E ジャーニーの価値、ポートフォリオの価値、カバレッジの不足、信頼性、手動でのエビデンス、構造は評価しないでください。
  • 変更を要求しない: すでにエビデンスが存在する場合、または重要なモジュールのオラクルが弱い場合を除き、ミューテーションテストを要求しないでください。
  • 対応必須: 各指摘では、STRENGTHEN_ORACLE、DELETE_WEAK_ORACLE、ADD_MUTATION_EVIDENCE のいずれかを使用してください。
  • 現実的な工数: S = 1 時間未満、M = 1〜4 時間、L = 4 時間超

完了の定義

すでに読み込まれている references/audit_worker_core_contract.md を適用してください。

  • contextStore の解析に成功(output_dir を含む)
  • アサーションの強さを確認
  • 意味のあるオラクルの品質を確認
  • スナップショットのみのオラクル候補を確認
  • 証明力の観点から過剰なモックを確認
  • 利用可能な場合はミューテーション形式のエビデンスを使用
  • レイヤー 2 のコンテキスト分析を適用
  • 重要度、場所、工数、対応、推奨事項を含む指摘を収集
  • ペナルティアルゴリズムを使用してスコアを算出
  • {output_dir}/ln-638--global.md にレポートを出力(単一の Write 呼び出しでアトミックに書き込み)
  • コントラクトに従って概要を出力

バージョン: 1.0.0 最終更新日: 2026-05-09

コメント