ある DevOps チームは CodeBuild でユニットテスト・統合テスト・コードカバレッジ計測を実行しています。テスト合格率とコードカバレッジのトレンドを長期的に追跡し、不安定なテスト(フレーキーテスト:実行のたびに結果が変わる信頼性の低いテスト)を特定して、テスト合格率が閾値を下回った際にアラートを受け取る仕組みを最小限の追加インフラで構築したいと考えています。最も適切なソリューションはどれですか?
CodeBuild テストレポートは JUnit XML・Cucumber JSON・Clover XML 等の形式をネイティブサポートし、buildspec.yml の reports セクションに数行追加するだけで自動集計されます。テスト合格率・実行時間・フレーキーテストのトレンドをコンソールで可視化でき、追加インフラなしで通知も実現できます。 選択肢A(CloudWatch Logs メトリクスフィルター)は不正解です。ログから FAILED キーワードをカウントする方法では、フレーキーテストの特定やカバレッジトレンドの追跡ができず、CodeBuild テストレポートより精度が低くなります。 選択肢B(CodeBuild テストレポート + CloudWatch アラーム)が正解です。buildspec.yml の reports セクションにレポートグループを定義するだけでテスト合格率・カバレッジ・フレーキーテストを自動集計でき、CodeBuild が自動発行する CloudWatch メトリクスにアラームを設定することで追加インフラなしで閾値通知を実現できます。 選択肢C(S3 + Athena + Grafana)は不正解です。Grafana の構築・維持が必要で追加インフラのコストが高く、最小限の追加インフラという要件を満たしません。 選択肢D(Step Functions + DynamoDB + Lambda + SNS)は不正解です。複数のコンポーネントを追加で管理する必要があり、最小限の追加インフラという要件を満たしません。