LESSON 30分

ストーリー

田中VPoE
アーキテクチャ標準ができた。次は「品質」の標準化だ。コード品質、テスト品質、そしてコーディング規約を定める
あなた
コーディング規約はチームごとに決めればいいのでは?
田中VPoE
チーム内のスタイルはチームに任せていい。だが品質の「最低基準」は組織全体で統一すべきだ。「テストを一切書かないチーム」と「カバレッジ90%のチーム」が混在していたら、組織としての品質は保証できない
あなた
最低ラインを決めて、上はチームに任せるということですね
田中VPoE
そうだ。品質の床(フロア)を定義し、天井(シーリング)は設けない。全チームが最低限の品質を担保しつつ、より高い品質を目指すチームの自主性を尊重する

品質標準の設計

品質の4つの柱

内容標準化レベル
テスト品質テストカバレッジ、テスト戦略Should
コード品質複雑度、重複、依存関係Should
セキュリティ品質脆弱性スキャン、静的解析Must
運用品質可観測性、デプロイメント、SLOShould

テスト品質標準

テストピラミッドの標準化

テストピラミッド(推奨比率):

        ┌─────┐
        │ E2E │ 10%
        │     │ ← 重要なユーザーシナリオのみ
       ─┴─────┴─
      ┌─────────┐
      │Integration│ 30%
      │          │ ← API境界、DB連携
     ─┴──────────┴─
    ┌──────────────┐
    │  Unit Tests  │ 60%
    │              │ ← ビジネスロジック中心
    └──────────────┘

テスト品質の基準値

指標最低基準(Must)推奨値(Should)備考
ユニットテストカバレッジ60%80%ビジネスロジック層は80%必須
インテグレーションテスト主要APIパスをカバー全APIパスをカバーハッピーパス + 主要エラーパス
E2Eテストクリティカルパス主要ユーザーシナリオ過度なE2Eテストは避ける
テストの実行時間CI/CDで10分以内5分以内遅いテストは開発速度を低下させる
テストの独立性テスト間に順序依存なし-並列実行可能であること

テスト品質のアンチパターン

アンチパターン問題対策
テストのないコード品質保証ができないPR時にカバレッジチェックを必須化
脆いテスト(Flaky Test)CIの信頼性低下Flaky Testの自動検出と修正ルール
過度なモックテストが実装に密結合統合テストとのバランスを取る
E2Eテスト偏重遅い、不安定テストピラミッドの比率を遵守

コード品質標準

静的解析の標準化

ツールカテゴリ言語推奨ツール標準化レベル
リンターTypeScriptESLintShould
リンターGogolangci-lintShould
リンターPythonRuffShould
フォーマッタTypeScriptPrettierMay
フォーマッタGogofmtMust(Go標準)
フォーマッタPythonBlackMay
型チェックTypeScripttsc —strictShould
型チェックPythonmypyShould
セキュリティ全言語Trivy / SnykMust

コード複雑度の基準

指標基準値ツール説明
循環的複雑度関数あたり10以下ESLint, golangci-lint分岐の複雑さの指標
認知的複雑度関数あたり15以下SonarQube人間の理解コストの指標
関数の行数50行以下(推奨)リンター長すぎる関数は分割
ファイルの行数300行以下(推奨)リンター長すぎるファイルは分割
コードの重複5%以下SonarQube, jscpdDRY原則の遵守

セキュリティ品質標準

セキュリティチェックの必須化

チェック項目タイミングツール例標準化レベル
依存関係の脆弱性スキャンCI/CDTrivy, DependabotMust
SAST(静的アプリケーションセキュリティテスト)CI/CDSonarQube, SemgrepMust
シークレット検出pre-commitgitleaks, truffleHogMust
コンテナイメージスキャンCI/CDTrivy, Snyk ContainerMust
DAST(動的テスト)ステージングOWASP ZAPShould
ライセンスチェックCI/CDFOSSA, license-checkerShould

セキュリティ品質ゲート

セキュリティ品質ゲート(CIで自動チェック):

PR作成時:
├── SAST: Critical/High の脆弱性がゼロであること ← Must
├── シークレット検出: 機密情報がコードに含まれないこと ← Must
└── 依存関係: 既知のCritical CVEがゼロであること ← Must

マージ時:
├── 上記すべて + High CVEの対応計画があること
└── セキュリティレビューが完了していること(重要な変更の場合)

リリース時:
├── コンテナイメージスキャン通過
└── セキュリティチェックリストの完了

運用品質標準

デプロイメント標準

項目基準標準化レベル
デプロイ頻度週1回以上Should
デプロイ方式ローリングアップデートまたはBlue/GreenShould
ロールバック5分以内にロールバック可能Must
デプロイパイプライン手動ステップなし(完全自動化)Should
ステージング検証本番デプロイ前にステージングで検証Must

ヘルスチェック・可観測性標準

項目基準標準化レベル
ヘルスチェックエンドポイント/health を実装Must
メトリクスRED(Rate, Errors, Duration)メトリクスを出力Should
トレーシング分散トレースIDの伝播Should
アラートエラー率・レイテンシのアラート設定Must

「品質基準は”床”であって”天井”ではない。全チームが最低限の品質を保ちつつ、より高い品質を目指すチームを称える文化を作ろう」 — 田中VPoE


まとめ

ポイント内容
品質の4つの柱テスト、コード、セキュリティ、運用
テスト品質テストピラミッドの比率、カバレッジ基準、実行時間制限
コード品質静的解析の必須化、複雑度の基準値
セキュリティ品質CI/CDでの自動スキャン必須化、品質ゲート
運用品質デプロイ自動化、ロールバック、ヘルスチェック

チェックリスト

  • 品質の4つの柱を理解した
  • テストピラミッドと品質基準値を理解した
  • コード品質の静的解析ツールと基準を理解した
  • セキュリティ品質ゲートの設計方法を理解した
  • 運用品質(デプロイ・可観測性)の基準を理解した

次のステップへ

次は演習「技術標準ドキュメントを設計しよう」に進みます。Step 2で学んだ範囲設計、言語戦略、アーキテクチャ標準、品質標準を統合した実践演習です。


推定読了時間: 30分