mcpField
Q
qe-regression-testing

qe-regression-testing

github.com/proffesor-for-testingテスト・品質51989 回インストール今日更新
リポジトリ

qe-regression-testing について

ソフトウェアチーム向けの回帰テストスキルです。変更内容とリスクに基づくテスト選定、優先順での実行、実行の最適化、テストスイートの健全性監視を扱います。

主な機能

  1. 01変更とリスクに基づくテスト選定
  2. 02優先順でのテスト実行
  3. 03並列実行とシャーディング
  4. 04不安定さと実行時間の追跡
  5. 05段階的な回帰テスト計画

活用シーン

  1. 01コード変更後の回帰テスト選定
  2. 02リリース前の全体回帰テスト計画
  3. 03依存関係や環境の更新確認
  4. 04本番バグを回帰テストに追加

インストール

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

$npx skills add https://github.com/proffesor-for-testing/agentic-qe --skill qe-regression-testing

インストール後、Claude Code で/qe-regression-testingを入力して読み込まれたか確認します。

詳細

リグレッションテスト

<default_to_action> 変更によって既存の機能が損なわれていないことを確認する場合:

  1. 変更内容を分析する(git diff、影響分析)
  2. 変更内容とリスクに基づいてテストを選択する(すべてを実行しない)
  3. 優先順位順に実行する(スモーク → 選択的 → 全体)
  4. 実行を最適化する(並列実行、シャーディング)
  5. テストスイートの健全性を監視する(不安定さ、実行時間)

リグレッションテストのクイック戦略:

  • コミットごと:スモークテスト+変更したコードのテスト(5~10分)
  • 夜間:拡張リグレッションテスト(30~60分)
  • リリース前:全体のリグレッションテスト(2~4時間)

成功の重要要因:

  • 賢いテスト選択により、10%の時間でリグレッションの90%を検出できます
  • 不安定なテストは、節約できる時間よりも多くの時間を浪費します
  • 本番環境で発生したすべてのバグをリグレッションテストにします </default_to_action>

クイックリファレンスカード

使用するタイミング
  • コードを変更した後
  • リリース前
  • 依存関係を更新した後
  • 環境を変更した後
リグレッションテストの種類
種類タイミング範囲
修正型コードの変更なしテストスイート全体
段階的新機能既存+新規
選択的特定の変更変更箇所+依存箇所
全体大規模なリファクタリングすべて
テスト選択の戦略
戦略方法削減率
変更ベースGit diff の分析70~90%
リスクベース影響度に基づく優先順位付け50~70%
履歴ベース頻繁に失敗するテスト40~60%
時間予算ベース固定の時間枠変動

変更ベースのテスト選択

// Analyze changed files and select impacted tests
function selectTests(changedFiles: string[]): string[] {
  const testsToRun = new Set<string>();

  for (const file of changedFiles) {
    // Direct tests
    testsToRun.add(`${file.replace('.ts', '.test.ts')}`);

    // Dependent tests (via coverage mapping)
    const dependentTests = testCoverage[file] || [];
    dependentTests.forEach(t => testsToRun.add(t));
  }

  return Array.from(testsToRun);
}

// Example: payment.ts changed
// Runs: payment.test.ts, checkout.integration.test.ts, e2e/purchase.test.ts

リグレッションテストのピラミッド

         /\
        /  \  Full Regression (weekly)
       /    \  - All tests (2-4 hours)
      /------\
     /        \  Extended Regression (nightly)
    /          \  - Unit + integration + critical E2E (30-60 min)
   /------------\
  /              \  Quick Regression (per commit)
 /________________\  - Changed code + smoke tests (5-10 min)

CI/CD との統合

# .github/workflows/regression.yml
jobs:
  quick-regression:
    runs-on: ubuntu-latest
    timeout-minutes: 15
    steps:
      - name: Analyze changes
        id: changes
        uses: dorny/paths-filter@v2
        with:
          filters: |
            payment:
              - 'src/payment/**'
            auth:
              - 'src/auth/**'

      - name: Run affected tests
        run: npm run test:affected

      - name: Smoke tests (always)
        run: npm run test:smoke

  nightly-regression:
    if: github.event_name == 'schedule'
    timeout-minutes: 120
    steps:
      - run: npm test -- --coverage

最適化手法

// 1. Parallel execution
module.exports = {
  maxWorkers: '50%', // Use half CPU cores
  testTimeout: 30000
};

// 2. Sharding across CI workers
// npm test -- --shard=1/4

// 3. Incremental testing (only changed since last run)
// Track last run state, skip passing unchanged tests

// 4. Fast-fail on smoke
// Run critical tests first, abort if they fail

エージェント主導のリグレッションテスト

// Smart test selection
await Task("Regression Analysis", {
  pr: 1234,
  strategy: 'change-based-with-risk',
  timeBudget: '15min'
}, "qe-regression-risk-analyzer");

// Returns:
// {
//   mustRun: ['payment.test.ts', 'checkout.integration.test.ts'],
//   shouldRun: ['order.test.ts'],
//   canSkip: ['profile.test.ts', 'search.test.ts'],
//   estimatedTime: '12 min',
//   riskCoverage: 0.94
// }

// Generate regression test from production bug
await Task("Bug Regression Test", {
  bug: { id: 'BUG-567', description: 'Checkout fails > 100 items' },
  preventRecurrence: true
}, "qe-test-generator");

エージェント連携のヒント

メモリの名前空間
aqe/regression-testing/
├── test-selection/*     - Impact analysis results
├── suite-health/*       - Flakiness, timing trends
├── coverage-maps/*      - Test-to-code mapping
└── bug-regressions/*    - Tests from production bugs
フリートの連携
const regressionFleet = await FleetManager.coordinate({
  strategy: 'comprehensive-regression',
  agents: [
    'qe-regression-risk-analyzer',  // Analyze changes, select tests
    'qe-test-executor',             // Execute selected tests
    'qe-coverage-analyzer',         // Analyze coverage gaps
    'qe-quality-gate'               // Go/no-go decision
  ],
  topology: 'sequential'
});

関連スキル


覚えておくこと

リグレッションテストは、変更に対する保険です。 コードの変更にはすべてリスクがあります。賢いリグレッションテストは、変更内容に応じて重要な箇所をテストし、そのリスクを軽減します。

優れたリグレッションテストは、網羅的ではなく戦略的です。 毎回すべてをテストすることはできません。変更内容、リスク、時間予算に基づいて選択してください。

エージェントを活用する場合: qe-regression-risk-analyzer は、実行時間の10%で欠陥の90%を検出できる、インテリジェントなテスト選択を提供します。エージェントは本番環境のバグからリグレッションテストを自動生成します。

コメント