ソフトウェア開発の現場では、さまざまなツールが欠かせません。バージョン管理、ビルド自動化、静的解析、CI/CD、APIテストなど、開発プロセスを支える機能を持つツールが数多く登場しています。この記事では、そうしたツールの中から代表的なものを取り上げ、10問のクイズを通して、その特徴と用途を理解していきます。ソフトウェア開発に携わる方はもちろん、これからプログラミングを学ぼうとする方にも、開発現場の”常識”を知る良い機会となるでしょう。
Q1 : パッケージマネージャnpmの主な用途は?
npmはNode.jsのためのパッケージ管理ツールであり、JavaScriptやTypeScript向けの各種ライブラリ・フレームワークを管理するためのものです。Pythonのパッケージ管理にはpipが一般的です。AWSや画像処理自動化機能はありません。
Q2 : Jenkinsで「ジョブ」と言えば何を指すか?
Jenkinsにおける「ジョブ」は、ビルドやテスト、デプロイなどあらかじめ定義された一連の自動処理単位を指します。各ジョブは任意のトリガで実行されたりスケジュールされたりし、CI/CDの要です。
Q3 : Seleniumは何に用いられるツールか?
SeleniumはWebアプリケーションの自動テストを行うためのフレームワークです。ブラウザ操作を自動化してGUIテストをスクリプトで実行できます。ビルドやDBチューニングなどとは直接関係ありません。
Q4 : Postmanというツールの主な用途は?
PostmanはRESTful APIやGraphQL APIなどの開発、デバッグ、テストを効率よく行うためのツールです。APIエンドポイントへのリクエスト送信やレスポンス確認、テストケース作成などが簡単にできます。バージョン管理や画像編集機能はありません。
Q5 : Dockerの主要な用途はどれか?
Dockerはアプリケーションやサービスをコンテナにパッケージングし、どこでも同じ環境で実行できるようにするためのツールです。データベースやIDEの機能自体を持つわけではありませんが、これらもDockerイメージ内で構築することが可能です。
Q6 : Visual Studio Codeの拡張機能で実現できないものはどれ?
Visual Studio Code(VSCode)は様々な拡張機能で機能を拡張できますが、物理メモリ増設はソフトウェアの範囲外です。ターミナル統合やバージョン管理(Git連携)、レイアウトのカスタマイズは拡張で容易に可能です。
Q7 : GitHub Actionsはどんなサービスか?
GitHub Actionsは、GitHubリポジトリ内でCI/CDパイプラインを自動実行できるプラットフォームです。PushやPull Requestなどのイベントトリガーによりビルド、テスト、デプロイ作業を自動化します。GitHub自体はコードホスティングサービスですが、ActionsはCI/CD用機能です。
Q8 : 静的解析ツールのSonarQubeが分析するものはどれ?
SonarQubeはソースコードの静的解析を行い、バグやセキュリティ脆弱性、コードの品質(複雑さや重複など)を検出するツールです。主にJavaやJavaScript、Pythonなど多くの言語をサポートしています。UIの動作やサーバー、ネットワーク自体は関係ありません。
Q9 : Javaのビルド自動化ツールとして、標準的に広く使われているものはどれ?
MavenはXML形式のPOMファイルを利用して依存関係やビルド定義を管理する、Java界で非常によく使われているビルドツールです。AntやGradleも利用されていますが、標準性と依存管理の豊富さでMavenが主流です。Makeは主にC/C++で利用されます。
Q10 : オープンソースの分散型バージョン管理システムとして広く利用されているツールはどれ?
Gitは高速で分散型のバージョン管理システムとして登場し、現在多くのプロジェクトで標準的に利用されています。他のツール(Subversion、Mercurial、CVS)もバージョン管理システムではありますが、Gitが最も広く使われており、その分散構造が特徴です。またGitHubやGitLabなど多くのサービスに使われる事実上の業界標準です。
まとめ
いかがでしたか? 今回はソフトウェア開発ツールクイズをお送りしました。
皆さんは何問正解できましたか?
今回はソフトウェア開発ツールクイズを出題しました。
ぜひ、ほかのクイズにも挑戦してみてください!
次回のクイズもお楽しみに。