テスト計画
本ドキュメントは、TASHIKAプラットフォームのテスト計画を定義します。テストレベル別の方針・ツール・責務、およびドメイン固有のテスト戦略を体系的に整理します。
NOTE
カバレッジ目標・品質ゲートなどの 品質要件 は QA-002 テスト戦略 を参照してください。 本ドキュメントは要件をどのように達成するかを設計レベルで定義するものです。
テストピラミッド概要
テストレベル別の方針
| テストレベル | カバレッジ目標 | ツール | 責務 | 詳細 |
|---|---|---|---|---|
| ユニットテスト | Backend ≥ 90%, Frontend ≥ 80% | xUnit, Vitest | ビジネスロジック、税計算コア、コンポーネント | ドメイン層, アプリケーション層, フロントエンド |
| 統合テスト | 主要APIエンドポイント 100% | Testcontainers, Vitest | API→DB、外部サービス連携 | インフラストラクチャ層 |
| E2Eテスト | 主要ユーザーフロー 100% | Playwright | 従業員確認フロー、管理者承認フロー、代行事業者フロー | フロントエンド |
| アクセシビリティテスト | 全画面 | axe-core | WCAG 2.2 AA 準拠 | フロントエンド |
| ビジュアルリグレッション | 主要画面 | Chromatic (Optional) | UIの意図しない変更検出 | フロントエンド |
各レベルの役割
- ユニットテスト: 最もフィードバックが速く、税計算コアの正確性を保証する基盤。純粋関数の参照透過性を活かし、外部依存なしでテスト可能
- 統合テスト: PostgreSQL RLS によるテナント分離、EF Core のクエリ生成、外部API連携など、コンポーネント間の境界を検証
- E2Eテスト: ユーザー視点での主要業務フローの動作を保証。数を絞り、安定性を重視
- アクセシビリティテスト: 自動テスト(axe-core)と CI 統合により、アクセシビリティの回帰を防止
- ビジュアルリグレッション: UIコンポーネントの意図しない視覚的変更を検出(Optional)
レイヤー別テスト詳細
| ドキュメント | 内容 |
|---|---|
| ドメイン層テスト | パイプライン、カテゴリ判定、ゴールデンテスト、プロパティテスト、境界値、年度横断 |
| アプリケーション層テスト | CQRS ハンドラー、バリデーション、ライフサイクル遷移、スナップショット、カスケード再計算 |
| インフラストラクチャ層テスト | DB統合、RLS、マイグレーション、外部API、マイナンバー暗号化 |
| フロントエンドテスト | コンポーネント単体、E2E、アクセシビリティ、ビジュアルリグレッション |
| ゴールデンテスト | 国税庁計算例との完全一致検証、テストケース、品質目標 |
負荷テスト
負荷テストの種別・頻度は品質要件として定義されている。
→ 負荷テストの種別・頻度は QA-001 パフォーマンス監視 負荷テスト 参照
実施方針
| テスト種別 | 詳細方針 |
|---|---|
| ベースライン負荷テスト | 通常時想定RPSで全主要APIのレスポンスタイムが PE-001 の各カテゴリ目標値を満たすことを検証 |
| ピーク負荷テスト | 1月ピーク想定(通常の10倍RPS)でシステム全体が安定動作することを検証。DBコネクションプール、キャッシュヒット率、キュー深度をモニタリング |
| スパイクテスト | 瞬間的な急増(通常の20倍)に対してオートスケーリングが適切に動作し、エラー率が許容範囲内に収まることを検証 |
| ソークテスト | 24時間以上の持続負荷でメモリリーク、コネクションプール枯渇、ログ肥大化等の長期運用問題を検出 |
CI/CD パイプラインにおけるテスト
PRマージ条件は品質要件として定義されている。
→ PRマージ条件の詳細は QA-006 コード品質ゲート 参照
パイプラインの各ステージ
| ステージ | 実行内容 | 失敗時の動作 |
|---|---|---|
| Lint / Format | ESLint, StyleCop, Prettier | マージブロック |
| 型チェック | tsc --noEmit | マージブロック |
| ユニットテスト + カバレッジ | xUnit, Vitest + カバレッジ閾値チェック | マージブロック |
| 統合テスト | Testcontainers + PostgreSQL | マージブロック |
| E2Eテスト | Playwright(主要フロー) | マージブロック |
| アクセシビリティ | axe-core(全画面) | マージブロック |
| セキュリティスキャン | Trivy, Dependabot | Critical/High でマージブロック |
| バンドルサイズ | gzip後 ≤ 300KB | 増加時にレビュー必須 |