Skip to content

品質保証

本ドキュメントは、TASHIKAプラットフォームの品質保証に関する要件を定義します。

NOTE

IPA 6大項目に直接対応しない横断的な品質要件です。 パフォーマンス目標値は PE-001 を参照してください。


QA-001: パフォーマンス監視 (Performance Monitoring)

Performance Budget(性能予算)

指標閾値強制方法
LCP≤ 1.5秒CI/CD パイプラインで自動計測。基準超過でマージをブロック
INP≤ 200ms同上
CLS≤ 0.1同上
API P95 レスポンスタイムPE-001 各カテゴリ準拠APM アラート
バンドルサイズ(JS)≤ 300KB(gzip後、初期ロード分)CI/CD で計測。増加時にレビュー必須

負荷テスト

テスト種別実施頻度内容
ベースライン負荷テストリリースごと通常時想定のRPSで全主要APIのレスポンスタイムを検証
ピーク負荷テスト月次(12月〜1月は週次)1月ピーク想定(通常の10倍RPS)でシステム全体の耐性を検証
スパイクテスト四半期ごと瞬間的な急増(通常の20倍)に対するオートスケーリングの動作を検証
ソークテスト四半期ごと長時間(24時間+)の持続負荷でメモリリーク・コネクションプール枯渇を検出

QA-002: テスト戦略 (Testing Strategy)

カバレッジ目標

テストレベルカバレッジ目標
ユニットテストBackend ≥ 90%, Frontend ≥ 80%
統合テスト主要APIエンドポイント 100%
E2Eテスト主要ユーザーフロー 100%
アクセシビリティテスト全画面

QA-003: 可観測性 (Observability)

三本柱

要件
ログ(Logs)構造化ログによるイベント記録。全ログに TraceId, TenantId, UserId を付与
メトリクス(Metrics)CPU、メモリ、RPS、レスポンスタイム、キュー深度、エラー率の時系列記録
トレース(Traces)フロントエンド → API → DB クエリまでの一気通貫の分散トレーシング
フロントエンドエラー(Frontend Errors)クライアントサイドの未捕捉例外・エラー境界での捕捉エラーの自動収集・集約

アラート体系

重要度条件例通知先応答目標
Sev1(緊急)サービス全停止、データ不整合検出オンコール担当者への即時通知15分以内に応答開始
Sev2(重大)API エラー率 > 5%、レスポンスタイム SLA 違反運用チームへの即時通知30分以内に応答開始
Sev3(警告)CPU > 80%持続、キュー滞留 > 100件監視チャネルへの通知次営業日対応
Sev4(情報)デプロイ完了、証明書期限30日前情報チャネルへの通知計画的に対応

障害分析

  • 全リクエストに TraceId を付与し、障害発生時 5分以内 に根本原因(RCA)の特定に着手できる体制を構築
  • ユーザーに表示されるエラー画面には TraceId を含め、サポート問い合わせ時の迅速な調査を可能にする

フロントエンドエラー追跡

クライアントサイドで発生するエラーを自動収集し、サーバーサイドの可観測性と統合する。

追跡対象:

エラー種別追跡方法
未捕捉例外window.onerror / unhandledrejectionTypeError、ReferenceError
Error Boundary 捕捉エラーReact Error Boundary の componentDidCatchレンダリングエラー
API エラーTanStack Query の onError コールバック4xx/5xx レスポンス
チャンク読み込みエラー動的 import() の rejectChunkLoadError(デプロイ後の古いチャンク参照)

メタデータ要件:

各エラーイベントには以下のメタデータを付与する:

  • traceId: バックエンドの分散トレースと紐付け可能な一意識別子
  • userId / tenantId: ユーザー・テナントの特定(マイナンバー等の機密情報は含めない)
  • portal: エラーが発生したポータル(employee / admin / agency / system
  • route: 発生画面のルートパス
  • userAgent: ブラウザ・OS 情報
  • release: アプリケーションのリリースバージョン

QA-004: サプライチェーンセキュリティ (Supply Chain Security)

SBOM (Software Bill of Materials)

  • ビルドごとにソフトウェア部品表(SPDX形式)を自動生成
  • 既知の脆弱性(CVE)が含まれていないか自動スキャン
  • Critical / High の CVE が検出された場合、マージをブロック

依存関係管理

対象ポリシー
サーバーサイド依存ライブラリ週次で脆弱性の自動スキャン。セキュリティアップデートは即日対応
フロントエンド依存ライブラリ同上
コンテナベースイメージビルド時にスキャン。既知の脆弱性がある場合はビルド失敗
ライセンスコピーレフト(GPL等)のライブラリの混入を自動検出・ブロック

QA-005: SLO / エラーバジェット (Service Level Objectives)

SLO 定義

SLI (指標)SLO (目標)計測期間
可用性(成功リクエスト率)≥ 99.9%30日ローリング
レイテンシ(API P95)≤ 各カテゴリ目標値30日ローリング
エラー率(5xx)≤ 0.1%30日ローリング
正確性(税計算一致率)100%年度単位

エラーバジェット運用

  • 月間エラーバジェット = 100% − SLO(可用性の場合 0.1% = 約43分/月)
  • エラーバジェット残量が 50%以下 になった場合: 新機能リリースを凍結し、信頼性改善に専念
  • エラーバジェット残量が 0% になった場合: ポストモーテムを実施し、再発防止策を完了するまでリリース凍結

QA-006: コード品質ゲート (Code Quality Gates)

PRマージ条件(全て必須)

  • [ ] 全テスト通過(ユニット + 統合 + E2E)
  • [ ] カバレッジ閾値達成(Backend ≥ 90%, Frontend ≥ 80%)
  • [ ] 静的解析 Quality Gate 通過(バグ0件、脆弱性0件、コードスメル上限以内)
  • [ ] Linter/Formatter チェック通過
  • [ ] 型チェック通過
  • [ ] バンドルサイズ上限以内
  • [ ] セキュリティスキャン通過
  • [ ] レビュー1名以上承認