ソースコードの品質向上|情報処理安全確保支援士試験 令和7年春期午前Ⅱ 問22
出典:令和7年春期 午前Ⅱ 問22
分野:システム開発技術 / 実装・構築
アジャイル開発のプロジェクトで,ソースコードの品質を向上させるために,バグ,コードの重複,脆弱性につながるコードを自動で検出することができるOSSのツールを導入したい。導入するOSSとして,最も適切なものはどれか。
- ア:Git
- イ:Jenkins
- ウ:Snort
- エ:SonarQube
TSUNAGARU-ADVICE
まず押さえたいこと
この問題では、開発支援ツールの名前を覚えるだけでなく、ソースコードを静的に解析して品質上の問題を見つけるツールを選ぶことが重要です。
迷ったときの判断軸
Gitはバージョン管理、Jenkinsはビルドやテストの自動化、Snortはネットワーク侵入検知に使われます。一方でSonarQubeは、バグ、コードの重複、脆弱性につながるコードなどを自動検出する静的解析ツールとして整理すると判断しやすくなります。
科目Bにつなげるために
科目Bでは、開発工程の中でどのツールをどの目的で使うのかを問われます。品質向上の文脈では、コード管理、CI/CD、侵入検知、静的解析の役割を切り分けることが重要です。※開発関連試験向け
SonarQubeは、ソースコードを静的解析し、バグ・コードの重複・脆弱性につながるコード・コードスメルなどを自動で検出できるOSSツールです。
アジャイル開発やCI/CDの流れに組み込み、継続的にコード品質を確認する用途で利用されます。
したがって、エが適切です。
❌他選択肢が誤りの理由ア:Git
⇒ソースコードの版管理ツールです。コードの重複や脆弱性を自動検出する静的解析ツールではありません。
イ:Jenkins
⇒CI/CDを実現する自動化サーバです。ビルドやテストの自動実行には使えますが、コード品質解析そのものを主目的とするツールではありません。
ウ:Snort
⇒ネットワーク型IDS/IPSです。ネットワーク上の不審な通信を検知するツールであり、ソースコード品質の解析ツールではありません。