無限ノック › DOP 練習問題一覧 › 問題
DOPSDLC の自動化

あるチームはCodeBuildでJUnit形式の単体テストを実行しています。テストの合格率の推移、不安定なテスト(フレーキーテスト:実行のたびに結果が変わる不安定なテスト)の特定、および失敗テストの詳細をCodeBuildコンソールから直接確認できるようにしたいと考えています。外部のテスト管理ツールを導入せずにこれを実現する最適な方法を選択してください。

A
CodeBuildのビルドログをCloudWatch Logsに転送し、Logs Insightsクエリでテスト失敗パターンを正規表現で抽出してCloudWatchダッシュボードに表示する
CloudWatch Logs Insightsで正規表現を使ってログからテスト失敗パターンを抽出する方法は、ログを後処理する手法です。テストレポートとしての機能が限定的で、合格率トレンド・フレーキーテスト特定などCodeBuildネイティブ機能の方が効率的で、複雑性が高く不適切です。
B
buildspec.ymlのreportsセクションにJUnit XMLレポートファイルのパスを指定してテストレポートグループを設定し、CodeBuildのテストレポート機能でビルド間のトレンドを追跡する
✓ 正解
CodeBuildのreportsセクションにJUnit XMLパスを指定すると、ネイティブテストレポート機能が自動的にテストメトリクスを集計します。合格率の時系列トレンド・失敗詳細・フレーキーテスト特定がCodeBuildコンソールから直接可能で、追加インフラ不要かつ管理が簡単です。
C
テスト結果のXMLファイルをS3に保存し、AWS GlueクローラーでAthenaクエリ可能なカタログを作成してQuickSightでダッシュボードを構築する
S3+Glue+Athena+QuickSightの構成はテストレポート表示まで複数のサービスを組み合わせる必要があり、セットアップと保守の負荷が高いです。CodeBuildネイティブ機能で十分な情報が得られるため、過剰なアーキテクチャです。
D
テスト完了後にLambda関数を起動してJUnitレポートをパースしDynamoDBに結果を保存し、API Gateway経由で可視化する
Lambda関数でJUnitレポートをパースしDynamoDB保存する方式は、カスタムコード開発が必要でCodeBuildネイティブ機能より開発コストと保守負荷が高くなります。既に用意されている機能を活用すべきです。

解説

選択肢AはCloudWatch Logs Insightsを使用して正規表現でテスト失敗パターンを抽出する方法は、目的に対して過剰な複雑性を招きます。CodeBuildのネイティブ機能を使わずに外部システムへ依存するため非効率です。 選択肢BはCodeBuildのネイティブテストレポート機能は、buildspec.ymlのreportsセクションでJUnit XML・Cucumber JSON・Visual Studio TRX形式を指定するだけで利用できます。テストの合格率・失敗テスト詳細・時系列トレンドをCodeBuildコンソールから直接確認でき、フレーキーテスト(不安定テスト)も識別可能です。追加インフラ不要でCI/CDに組み込めるネイティブソリューションとして最適です。 選択肢CはS3+Athena+QuickSightの構成は外部ツールへの依存度が高く、構築・運用コストが大きすぎます。 選択肢DはLambda関数による手動実装は開発コストと保守負荷が大きく、CodeBuildネイティブ機能の方が効率的です。

ドメイン別正答率・予想スコアでリアルタイムに実力把握

無限ノックでDOPを徹底対策。全問AI生成のオリジナル問題。

無料で演習を始める →
← DOP の問題一覧に戻る