Skip to content

テスト計画

本ドキュメントは、TASHIKAプラットフォームのテスト計画を定義します。テストレベル別の方針・ツール・責務、およびドメイン固有のテスト戦略を体系的に整理します。

NOTE

カバレッジ目標・品質ゲートなどの 品質要件QA-002 テスト戦略 を参照してください。 本ドキュメントは要件をどのように達成するかを設計レベルで定義するものです。


テストピラミッド概要

テストレベル別の方針

テストレベルカバレッジ目標ツール責務詳細
ユニットテストBackend ≥ 90%, Frontend ≥ 80%xUnit, Vitestビジネスロジック、税計算コア、コンポーネントドメイン層, アプリケーション層, フロントエンド
統合テスト主要APIエンドポイント 100%Testcontainers, VitestAPI→DB、外部サービス連携インフラストラクチャ層
E2Eテスト主要ユーザーフロー 100%Playwright従業員確認フロー、管理者承認フロー、代行事業者フローフロントエンド
アクセシビリティテスト全画面axe-coreWCAG 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 コード品質ゲート 参照

パイプラインの各ステージ

PR パイプライン失敗失敗失敗失敗失敗失敗Critical/High増加マージブロックレビュー必須Lint / FormatESLint, StyleCop,Prettier型チェックtsc --noEmitユニットテスト+ カバレッジxUnit, Vitest統合テストTestcontainers+ PostgreSQLE2E テストPlaywrightアクセシビリティaxe-coreセキュリティスキャンTrivy, Dependabotバンドルサイズgzip後 ≤ 300KB
PR パイプライン失敗失敗失敗失敗失敗失敗Critical/High増加マージブロックレビュー必須Lint / FormatESLint, StyleCop,Prettier型チェックtsc --noEmitユニットテスト+ カバレッジxUnit, Vitest統合テストTestcontainers+ PostgreSQLE2E テストPlaywrightアクセシビリティaxe-coreセキュリティスキャンTrivy, Dependabotバンドルサイズgzip後 ≤ 300KB
ステージ実行内容失敗時の動作
Lint / FormatESLint, StyleCop, Prettierマージブロック
型チェックtsc --noEmitマージブロック
ユニットテスト + カバレッジxUnit, Vitest + カバレッジ閾値チェックマージブロック
統合テストTestcontainers + PostgreSQLマージブロック
E2EテストPlaywright(主要フロー)マージブロック
アクセシビリティaxe-core(全画面)マージブロック
セキュリティスキャンTrivy, DependabotCritical/High でマージブロック
バンドルサイズgzip後 ≤ 300KB増加時にレビュー必須