情報処理安全確保支援士 2025年 春期 午前2 問22
問題文
アジャイル開発のプロジェクトで、ソースコードの品質を向上させるために、バグ、コードの重複、脆弱性につながるコードを自動で検出することができる OSS のツールを導入したい。導入する OSS として、最も適切なものはどれか。
選択肢
ア:Git
イ:Jenkins
ウ:Snort
エ:SonarQube(正解)
アジャイル開発におけるソースコード品質向上のためのOSSツール選択【午前2 解説】
要点まとめ
- 結論:ソースコードのバグや重複、脆弱性を自動検出するOSSツールとして最適なのはSonarQubeです。
- 根拠:SonarQubeは静的コード解析ツールで、多言語対応かつ品質ゲート設定が可能で、継続的インテグレーションにも適しています。
- 差がつくポイント:GitやJenkinsは管理・自動化ツール、Snortはネットワーク侵入検知であり、コード品質解析には不向きです。
正解の理由
SonarQubeはソースコードの静的解析を行い、バグやコードの重複、セキュリティ脆弱性を自動で検出します。アジャイル開発で頻繁にコードを変更する環境において、品質を継続的に保つために最適なOSSツールです。CI/CDパイプラインに組み込みやすく、開発者が早期に問題を発見・修正できるため、品質向上に直結します。
よくある誤解
Gitはバージョン管理ツール、JenkinsはCIツール、Snortはネットワーク監視ツールであり、コードの品質解析機能はありません。
解法ステップ
- 問題文から「バグ、コードの重複、脆弱性を自動検出できるOSSツール」を探す。
- 各選択肢の役割を整理する(Git=バージョン管理、Jenkins=CI、Snort=IDS)。
- 静的コード解析ツールとして有名なSonarQubeを選択肢から特定。
- アジャイル開発に適した品質管理ツールとしてSonarQubeが最適と判断。
選択肢別の誤答解説
- ア: Git
バージョン管理システムであり、コードの品質解析機能はありません。 - イ: Jenkins
継続的インテグレーションツールでビルドやテストの自動化は可能ですが、コードの静的解析自体は行いません。 - ウ: Snort
ネットワーク侵入検知システムであり、ソースコードの解析とは無関係です。 - エ: SonarQube
静的コード解析ツールとしてバグや重複、脆弱性を検出し、品質向上に役立ちます。
補足コラム
SonarQubeはJavaをはじめ多くのプログラミング言語に対応し、プラグインで機能拡張も可能です。CIツールと連携して品質ゲートを設定し、一定の品質基準を満たさないコードのマージを防ぐこともできます。アジャイル開発の短いサイクルで品質を保つために広く利用されています。
FAQ
Q: SonarQubeはどのようにCI/CDと連携しますか?
A: JenkinsやGitLab CIなどのCIツールからSonarQubeの解析を呼び出し、解析結果を品質ゲートとして利用できます。
A: JenkinsやGitLab CIなどのCIツールからSonarQubeの解析を呼び出し、解析結果を品質ゲートとして利用できます。
Q: Snortはなぜコード解析に使えないのですか?
A: Snortはネットワークパケットを監視し不正侵入を検知するツールであり、ソースコードの解析機能はありません。
A: Snortはネットワークパケットを監視し不正侵入を検知するツールであり、ソースコードの解析機能はありません。
関連キーワード: 静的コード解析、OSSツール、アジャイル開発、バグ検出、セキュリティ脆弱性、継続的インテグレーション、SonarQube

\ せっかくなら /
情報処理安全確保支援士を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

