mcpField
Q
qe-shift-left-testing

qe-shift-left-testing

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

qe-shift-left-testing について

qe-shift-left-testingは、要件や設計から実装、CIまで、開発の早い段階にテストを取り入れるチーム向けのスキルです。TDD、BDD、リスク分析、自動テストに加え、エージェントによる要件検証とテスト生成を扱います。

主な機能

  1. 01要件のテスト容易性を検証
  2. 02実装前にテストを作成
  3. 03CIでテストを自動化
  4. 04テストピラミッドの適用
  5. 05設計リスクの分析
  6. 06仕様からテストを生成

活用シーン

  1. 01要件の詳細化時に内容を確認
  2. 02コーディング前にTDDを実践
  3. 03コミットごとに自動テストを実行
  4. 04アーキテクチャ設計時にリスクを評価

インストール

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

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

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

詳細

シフトレフトテスト

<default_to_action> 早期テストの実践を導入する際は、次の手順に従ってください。

  1. コーディング前に要件を検証します(テスト可能性、BDD シナリオ)
  2. 実装前にテストを作成します(TDD のレッド・グリーン・リファクタリング)
  3. CI パイプラインで自動化します(コミットごとにテストを実行)
  4. テストピラミッドに従います。ユニットテストを多く(70%)、統合テストをいくつか(20%)、E2E テストを少なく(10%)します
  5. 不具合はすぐに修正し、決して溜め込まないようにします

シフトレフトのクイックレベル:

  • レベル 1:各 PR でユニットテストを実施(開発者の責任)
  • レベル 2:TDD を実践(コードより先にテストを作成)
  • レベル 3:リファインメントで BDD/例のマッピングを実施(要件のテスト)
  • レベル 4:設計でリスク分析を実施(アーキテクチャのテスト)

成功に不可欠な要素:

  • 要件で見つかった不具合のコストは 1 倍、本番環境で見つかった不具合のコストは 100 倍です
  • すべてのコミットで自動テストを実行する必要があります
  • 品質は組み込むものであり、テストで作り込むものではありません </default_to_action>

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

使用する場面
  • 不具合のコストを削減するとき
  • CI/CD パイプラインを導入するとき
  • TDD の実践を始めるとき
  • 要件の品質を改善するとき
フェーズ別の不具合コスト
フェーズ相対コスト例
要件1xドキュメントの修正:30 分
設計5x再設計:数時間
開発10xコードの修正:1 日
テスト20x修正と再テスト:2 日
本番環境100xホットフィックス+ロールバック+調査
テストピラミッド
       /\        E2E (10%) - Critical user journeys
      /  \
     /    \      Integration (20%) - Component interactions
    /      \
   /________\    Unit (70%) - Fast, isolated, comprehensive
シフトレフトのレベル
レベル実践内容タイミング
1PR でユニットテストを実施マージ前
2TDD実装前
3BDD/例のマッピングリファインメント中
4リスク分析設計中

レベル 1:すべての PR でテストを実施

# CI pipeline - tests run on every commit
name: CI
on: [push, pull_request]
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: npm ci
      - run: npm run test:unit
      - run: npm run test:integration
      - run: npm run lint

  quality-gate:
    needs: test
    steps:
      - name: Coverage Check
        run: npx coverage-check --min 80
      - name: No New Warnings
        run: npm run lint -- --max-warnings 0

レベル 2:TDD の実践

// Red: Write failing test first
test('calculates discount for orders over $100', () => {
  const order = new Order([{ price: 150 }]);
  expect(order.discount).toBe(15); // 10% off
});

// Green: Minimal implementation
class Order {
  get discount() {
    return this.total > 100 ? this.total * 0.1 : 0;
  }
}

// Refactor: Improve while keeping green

レベル 3:リファインメントで BDD を実施

# Example mapping before coding
Feature: Loyalty Discount
  Scenario: Gold member gets 15% discount
    Given a customer with "gold" membership
    When they checkout with $200 in cart
    Then discount applied is $30
    And order total is $170

  Scenario: New customer gets no discount
    Given a customer with no membership
    When they checkout with $200 in cart
    Then no discount is applied

レベル 4:設計でリスク分析を実施

// During architecture review
await Task("Risk Analysis", {
  phase: 'design',
  component: 'payment-service',
  questions: [
    'What happens when payment gateway times out?',
    'How do we handle duplicate submissions?',
    'What if inventory changed during checkout?'
  ]
}, "qe-requirements-validator");

// Output: Testability requirements, failure mode tests

エージェントを活用したシフトレフト

// Validate requirements testability
await Task("Requirements Validation", {
  requirements: userStories,
  check: ['INVEST-criteria', 'testability', 'ambiguity'],
  generateBDD: true
}, "qe-requirements-validator");

// Generate tests from requirements
await Task("Generate Tests", {
  source: 'requirements',
  types: ['unit', 'integration', 'e2e'],
  coverage: 'comprehensive'
}, "qe-test-generator");

// Smart test selection for changes
await Task("Select Regression Tests", {
  changedFiles: prFiles,
  algorithm: 'risk-based',
  targetReduction: 0.7  // 70% time savings
}, "qe-regression-risk-analyzer");

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

メモリの名前空間
aqe/shift-left/
├── requirements/*       - Validated requirements
├── generated-tests/*    - Auto-generated tests
├── coverage-targets/*   - Coverage goals by component
└── pipeline-results/*   - CI/CD test history
エージェント群の連携
const shiftLeftFleet = await FleetManager.coordinate({
  strategy: 'shift-left',
  agents: [
    'qe-requirements-validator',     // Level 3-4
    'qe-test-generator',             // Level 2
    'qe-regression-risk-analyzer'    // Smart selection
  ],
  topology: 'sequential'
});

関連スキル


覚えておくこと

早いほど低コストです。 要件の不具合のコストは 1 倍、本番環境の不具合のコストは 100 倍です。テストピラミッドは、ユニットテスト 70%、統合テスト 20%、E2E テスト 10%です。すべてのコミットでテストを実行します。TDD は品質を組み込みます。

エージェントを活用する場合: エージェントは要件のテスト可能性を検証し、仕様からテストを生成し、最適な回帰テストスイートを選択します。エージェントを活用して、シフトレフトの実践を一貫して導入してください。

コメント