テスト戦略
テスト戦略に関するベストプラクティスと手法の一覧です。各プラクティスの基本概念、メリット、課題、実装方法を解説します。
テストピラミッド
intermediateユニットテスト、統合テスト、E2Eテストの適切な比率を示すモデル。低コストで高速なテストを基盤に、段階的により包括的なテストを構築する階層構造。
メリット
- 高速フィードバック
- コスト効率
- 信頼性の確保
主要原則
- 70% ユニット
- 20% 統合
- 10% E2E
関連ツール
Jest, Selenium, Cypress, TestNG
テスト駆動開発
intermediate機能実装前にテストを先に作成し、テストが通るように実装を進める開発手法。Red-Green-Refactorサイクルによって品質とコードの設計を改善する。
メリット
- コード品質向上
- 設計の改善
- リファクタリング安全性
主要原則
- Red: 失敗テスト作成
- Green: 最小実装
- Refactor: 改善
関連ツール
JUnit, RSpec, Mocha, Pytest
契約テスト
advancedサービス間の通信インターフェースの仕様を契約として定義し、プロバイダーとコンシューマーが独立してテストできる手法。マイクロサービス間の統合品質を保証する。
メリット
- 独立開発
- 早期統合問題発見
- API互換性保証
主要原則
- 消費者主導
- 契約共有
- 双方向検証
関連ツール
Pact, Spring Cloud Contract, Specmatic, Postman
カオスエンジニアリング
advanced本番環境で意図的に障害を発生させ、システムの回復力と耐性を検証・向上させる手法。予期しない障害に対するシステムの信頼性を高める。
メリット
- システム回復力向上
- 障害対応能力強化
- 信頼性の検証
主要原則
- 仮説の定義
- 最小限の影響
- 継続的実験
関連ツール
Chaos Monkey, Gremlin, Litmus, Chaos Toolkit
シフトレフトテスト
intermediateテストを開発プロセスの早い段階に移すことで、問題を早期発見し、修正コストを削減する手法。品質を最初から組み込む文化を促進する。
メリット
- 早期バグ発見
- 修正コスト削減
- 品質向上
主要原則
- 早期統合
- 自動化優先
- 継続的フィードバック
関連ツール
SonarQube, ESLint, Checkmarx, Veracode