qe-shift-left-testing について
qe-shift-left-testingは、要件や設計から実装、CIまで、開発の早い段階にテストを取り入れるチーム向けのスキルです。TDD、BDD、リスク分析、自動テストに加え、エージェントによる要件検証とテスト生成を扱います。
主な機能
- 01要件のテスト容易性を検証
- 02実装前にテストを作成
- 03CIでテストを自動化
- 04テストピラミッドの適用
- 05設計リスクの分析
- 06仕様からテストを生成
活用シーン
- 01要件の詳細化時に内容を確認
- 02コーディング前にTDDを実践
- 03コミットごとに自動テストを実行
- 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> 早期テストの実践を導入する際は、次の手順に従ってください。
- コーディング前に要件を検証します(テスト可能性、BDD シナリオ)
- 実装前にテストを作成します(TDD のレッド・グリーン・リファクタリング)
- CI パイプラインで自動化します(コミットごとにテストを実行)
- テストピラミッドに従います。ユニットテストを多く(70%)、統合テストをいくつか(20%)、E2E テストを少なく(10%)します
- 不具合はすぐに修正し、決して溜め込まないようにします
シフトレフトのクイックレベル:
- レベル 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
シフトレフトのレベル
| レベル | 実践内容 | タイミング |
|---|---|---|
| 1 | PR でユニットテストを実施 | マージ前 |
| 2 | TDD | 実装前 |
| 3 | BDD/例のマッピング | リファインメント中 |
| 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'
});
関連スキル
- tdd-london-chicago - TDD の実践
- holistic-testing-pact - プロアクティブなテスト
- cicd-pipeline-qe-orchestrator - パイプライン統合
- shift-right-testing - 本番環境からのフィードバック
覚えておくこと
早いほど低コストです。 要件の不具合のコストは 1 倍、本番環境の不具合のコストは 100 倍です。テストピラミッドは、ユニットテスト 70%、統合テスト 20%、E2E テスト 10%です。すべてのコミットでテストを実行します。TDD は品質を組み込みます。
エージェントを活用する場合: エージェントは要件のテスト可能性を検証し、仕様からテストを生成し、最適な回帰テストスイートを選択します。エージェントを活用して、シフトレフトの実践を一貫して導入してください。
コメント
Markdown 対応