shift-left-testing について
開発工程の早い段階で品質チェックを行いたいチーム向けのテストスキルです。要件検証、TDD、CI テスト、リスク分析を扱い、エージェントを使った作業の調整方法も示します。
主な機能
- 01要件のテスト可能性チェック
- 02BDD シナリオの作成
- 03実装前のテスト作成
- 04コミットごとのテスト実行
- 05設計段階のリスク分析
- 06回帰テストの選定
活用シーン
- 01要件整理で受け入れ基準を改善
- 02新機能で TDD を導入
- 03Pull Request で単体テストを実行
- 04リスクに基づく回帰テストの優先順位付け
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ proffesor-for-testing/ agentic-qe --skill shift-left-testingインストール後、Claude Code で/shift-left-testingを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
evals/shift-left-testing.yamlschemas/output.jsonscripts/validate-config.json詳細
シフトレフトテスト
<default_to_action> 早期テストのプラクティスを実施する場合:
- コーディング前に要件を検証します(テスト容易性、BDD シナリオ)
- 実装前にテストを作成します(TDD)
- CI パイプラインで自動化します(コミットごとにテストを実行)
- 不具合はすぐに修正し、決して蓄積させません
シフトレフトのクイックレベル:
- レベル 1:PR ごとの単体テスト(開発者の責任)
- レベル 2:TDD の実践(コードより先にテスト)
- レベル 3:リファインメントでの BDD/Example Mapping(要件テスト)
- レベル 4:設計でのリスク分析(アーキテクチャテスト) </default_to_action>
クイックリファレンスカード
使用する場面
- 不具合のコストを削減する
- CI/CD パイプラインを実装する
- TDD の実践を始める
- 要件の品質を向上させる
シフトレフトのレベル
| レベル | プラクティス | タイミング |
|---|---|---|
| 1 | PR での単体テスト | マージ前 |
| 2 | TDD | 実装前 |
| 3 | BDD/Example Mapping | リファインメント中 |
| 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
エージェント支援によるシフトレフト
// 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 - 本番環境からのフィードバック
覚えておくこと
エージェントとともに: エージェントは要件のテスト容易性を検証し、仕様からテストを生成し、最適な回帰テストスイートを選択します。エージェントを活用して、一貫したシフトレフトのプラクティスを実施しましょう。
スキルの組み合わせ
- TDD の実践 → 具体的な TDD ガイダンスには
/tdd-london-chicagoを使用します - テストの生成 → AI を活用したテスト生成には
/qe-test-generationを使用します - CI/CD の品質 → パイプラインのセットアップには
/cicd-pipeline-qe-orchestratorを使用します
注意点
- 「シフトレフト」は「左側だけをテストする」という意味ではありません。本番環境のモニタリング(シフトライト)も引き続き必要です
- エージェントが要件を理解する前にテストを生成すると、誤った動作を対象にしたテストは、テストがないよりも悪い結果になります
- CI パイプラインのテストに 10 分以上かかるとフィードバックループが機能しなくなります。コミット段階のテストは 5 分未満に抑えましょう
- エージェントがテストとコードを同時に作成すると、TDD の規律が損なわれます。Red フェーズを分離してください
- 軽量な環境を用意せずにシフトレフトを進めても、ボトルネックが移るだけです。まず環境を改善してください
コメント
Markdown 対応