メインコンテンツまでスキップ

Unit Testing Strategy by Gradle Module

Issue #415 対応: 各Gradleプロジェクト単位の単体テスト戦略とガイドライン


📋 全モジュール一覧・テスト戦略

🎯 優先度別分類 (全20モジュール)

PriorityModule責任範囲カバレッジ目標テスト対象
🔴 Criticalidp-server-coreOAuth/OIDC プロトコル実装85%Validator, Handler, Service層
🔴 Criticalidp-server-platform共通基盤・暗号化80%JOSE/JWT, JSON処理, Utils
🔴 Criticalidp-server-use-casesアプリケーションユースケース80%ビジネスフロー, ドメインサービス
🟡 Highidp-server-authentication-interactors認証方式実装75%Password, Email, WebAuthn, MFA
🟡 Highidp-server-control-plane管理API・テナント管理70%CRUD操作, 権限制御
🟢 Mediumidp-server-core-extension-fapiFAPI拡張仕様70%FAPI Baseline/Advanced準拠
🟢 Mediumidp-server-core-extension-cibaCIBA仕様70%Backchannel認証フロー
🟢 Mediumidp-server-core-extension-pkcePKCE仕様70%Code Challenge/Verifier
🟢 Mediumidp-server-core-extension-verifiable-credentialsVC仕様70%証明書発行・検証
🟢 Mediumidp-server-core-extension-idaIdentity Assurance70%verified_claims処理
🟢 Mediumidp-server-webauthn4j-adapterWebAuthn統合60%FIDO2認証処理
🟢 Mediumidp-server-email-aws-adapterAWS SES統合60%メール送信処理
🟢 Mediumidp-server-notification-fcm-adapterFCM統合60%プッシュ通知処理
🟢 Mediumidp-server-notification-apns-adapterAPNs統合60%iOS通知処理
🟢 Mediumidp-server-federation-oidcOIDC連携60%外部IdP統合
🟢 Mediumidp-server-security-event-frameworkセキュリティイベント基盤65%イベント処理・配信
🟢 Mediumidp-server-security-event-hooksセキュリティフック65%Webhook・通知連携
🔵 Lowidp-server-core-adapterコアアダプター50%Repository実装
🔵 Lowidp-server-databaseDB スキーマ・マイグレーション40%Flyway, RLS動作確認
🔵 Lowidp-server-springboot-adapterSpring Boot統合50%REST API, DI設定

📈 段階的実装計画 (8週間)

Phase 1: Foundation (Week 1-2) - 35 test classes

ModuleTest ClassesFocus Area
idp-server-platform15JOSE/JWT, JSON処理, 暗号化
idp-server-core20OAuth/OIDCバリデーター, ハンドラー

Target: Core modules reach 40% coverage

Phase 2: Business Logic (Week 3-4) - 30 test classes

ModuleTest ClassesFocus Area
idp-server-use-cases12ユースケース, ドメインサービス
idp-server-authentication-interactors18認証方式, MFA処理

Target: Business modules reach 60% coverage

Phase 3: Management & Extensions (Week 5-6) - 27 test classes

ModuleTest ClassesFocus Area
idp-server-control-plane15管理API, テナント管理
Extension modules (FAPI, CIBA, PKCE, VC, IDA)12プロトコル拡張仕様

Target: All critical paths covered

Phase 4: Integration & Adapters (Week 7-8) - 18 test classes

ModuleTest ClassesFocus Area
Adapter modules (WebAuthn, Email, FCM, APNs)10外部サービス統合
Spring Boot integration8REST API, 設定管理

Target: Overall project reaches 65-75% coverage


🎯 テスト品質基準

English Test Naming Convention

// ✅ Recommended Pattern
@Test
void should_{expected_result}_when_{condition}()

@ParameterizedTest
void should_throw_{exception}_when_{invalid_condition}()

Module-Specific Test Focus

🔴 Critical Modules

  • Pure unit tests for business logic
  • Integration tests for protocol compliance
  • Security-focused tests for crypto functions

🟡 High Priority Modules

  • Authentication flow tests with various scenarios
  • Management API tests with access control validation

🟢 Medium Priority Modules

  • Extension protocol tests for RFC compliance
  • Adapter integration tests with external service mocks

🔵 Low Priority Modules

  • Configuration tests for Spring Boot integration
  • Migration tests for database schema changes

🚀 成功指標

カバレッジ目標 (Module Type別)

  • Critical (Core Business): 75-85%
  • High (Auth & Management): 70-80%
  • Medium (Extensions & Adapters): 60-70%
  • Low (Infrastructure): 40-60%
  • 全体目標: 65-75%

品質指標

  • Test Execution Time: <5 minutes (all unit tests)
  • Test Stability: >99% success rate (flaky tests <1%)
  • Build Success Rate: >95%
  • CI/CD Integration: Automated coverage reporting

実装工数見積もり

  • Total Test Classes: ~110 classes
  • Total Implementation: 8 weeks
  • Weekly Target: 13-14 test classes
  • Daily Target: 2-3 test classes

📊 モジュール依存関係マップ

🔴 idp-server-core
├── 🔴 idp-server-platform (foundation)
└── 🔴 idp-server-use-cases
├── 🟡 idp-server-authentication-interactors
├── 🟡 idp-server-control-plane
├── 🟢 Extension modules (FAPI, CIBA, PKCE, VC, IDA)
├── 🟢 Adapter modules (WebAuthn, Email, FCM, APNs)
└── 🔵 Infrastructure modules (Database, Spring Boot)

テスト戦略: 依存関係の下位モジュールから上位に向けて段階的に実装

この戦略により、idp-serverは全20モジュールを体系的にカバーし、各層の責任に応じた最適なテスト品質を実現します。