単体テストツール「Google Test」とは?その役割を解説
高度なシステムやアプリケーションを開発するとなると、一つ一つのプログラムが正しく動作するのかを確認するのも困難になってくるものです。そのような作業を効率化するために存在するのが単体テストツールの「Google Test」で、Googleの公式フレームワークを誰でも自由に活用することができます。
この記事では、そんなGoogle Testの役割や導入の流れについて、周辺知識と合わせて紹介します。
目次:
- OSSとは
- 単体テストツールについて
- Google Testとは
- Google Test以外の単体テストツール
- Google Test導入の流れ
- まとめ
OSSとは
Google Testは、OSSの単体テストツールの一種とされていますが、正しく理解するにはそもそもOSSが何かを理解しておく必要があるでしょう。
OSSはOpen Source Softwareの略称で、オープンソースで使えるソフト全般を指す言葉です。ソフトの作成者が無償でソフト本体を公開しているだけでなく、そのソースコードも公開しているため、誰でも自由にソースを改変したり、アレンジして自分のオリジナルアプリに組み込んだりすることが許可されています。
OSSとして普及しているソフトの多くは非常に信頼性が高く、エンジニアの開発負担解消などにもつながることから、個人はもちろん、企業においても正式に採用されるケースが少なくありません。OSSを使いこなせるようオープンソースの技術に慣れておいたり、実際に業務で採用したりすることは、業務効率化や新しいプロジェクトの足がかりにつながるでしょう。
単体テストツールについて
そんなOSSの一種として挙げられるのが、単体テストツールです。単体テストツールとは、その名の通り単体テスト(ユニットテスト)を実行するためのツールで、主にプログラマなどの間で使われています。
単体テストツールの役割
単体テストは、プログラムが構成している小さい単位に細分化し、それぞれのユニットが正しく動作するかどうかを検証する取り組みです。
単体テストは、デバッガーを使って一つ一つのプログラムを確認したりする方法でも実行は可能ですが、とにかく手間がかかるため、効率的な方法ではありません。そこで登場するのが単体テストツールで、指定のプログラムをテストにかけるだけで、テストを自動で実施してくれます。また、テスト環境は一度構築すると、何度も自由にテストを実行できるため、再現性の確保やテストの負担を回避する上では非常に重要です。
単体テストツールはなぜ必要なのか
上でも紹介したように、単体テストそのものは必ずしもツールを使う必要がないため、ツールを使わずに実施するエンジニアもいるものです。ただ、大規模なプロジェクトに携わったり、多くのコーディング業務が今後発生する場合、早いうちから単体テストツールの活用に慣れておくことをおすすめします。
というのも、単体テストは手動で行う場合、エンジニアにかかる時間的、身体的負担が大きくなるため、本来のコーディング業務に割く時間を確保できない問題が出てくる可能性があるためです。
多くの企業では人材不足やDX需要の拡大に伴い、エンジニアの確保が満足に進んでいません。少しでも多くの業務を効率化することで現場負担を削減しなければなりませんが、単体テストツールの活用は、業務削減へ大いに役立つでしょう。
Google Testとは
Google Testは、そんな業務削減効果をもたらしてくれる単体テストツールの一種です。Googleが公式にGithub上で提供しており、英語版のマニュアルはもちろん、日本語版のマニュアルも公開されているので、日本人でも扱いやすいのが特徴です。
また、Google Testが便利なのは無料で使うことができるツールである点も挙げられます。単体テストツールは、オープンソースのものであれ、無料で使えるのは当たり前ですが、中には有償の製品も少なくありません。Google Testは無料とはいえ、質の高いパフォーマンスと信頼性が期待でき、安心して導入することができるでしょう。
対応言語としては、主にC++言語を想定しており、C++のコーディングが多数発生する現場で活躍します。逆に言えば、C++以外の言語での運用を想定している場合、Google Test以外の環境構築が必要になる点は注意しましょう。
Google Test以外の単体テストツール
Google Test以外にも、無料で使えるOSSの単体テストツールはいくつかの種類が存在します。
Unity(+CMock)
Unity(+CMock)は、Google Test同様Github上で公開されているフレームワークの一種です。「Unity」という名前がついていますが、ゲームエンジンのUnityとの特別な関係性はなく、主にC言語を使った単体テストを実行する際に用いられています。
名前にもある通り、こちらのツールはCMockと呼ばれるモック機能との連携に対応しているのが特徴です。モック機能は、呼び出し関数に応じた値を返すための仕組みを指します。
C言語の知識のみで運用ができるツールのため、複数の言語を使い分ける負担が発生しない点は便利なところです。
CppUTest
CppUTestも、Github上で公開されているオープンソースの単体テストツールです。比較的知名度の高いツールであるため、Google Testほどではないものの、比較的日本語でも情報を探しやすいのが特徴です。
Google Test同様、C++言語環境をベースに構築しているため、C++との相性が良い単体テストツールですが、C言語関数向けのモックインターフェースも備えており、汎用性にも優れます。
Google Test導入の流れ
それでは実際に、Google Testを導入する際の流れについて確認しておきましょう。Googleテストを導入するための方法としては、主にGoogle Testを手動でダウンロードの上ビルドしたり、Google Testをプロジェクト内にコピーの上で利用するといった方法が挙げられます。
ただ、最も推奨されているのはCMakeを使ったビルドです*1。CMakeはコンパイラに依存することなくビルドを実行するためのソフトで、以下のページよりインストールすることができます。
公式サイト:https://cmake.org/
CMakeをインストールして立ち上げたのち、続いてFetchContentというモジュールを起動します。Google Testのインストールは、以下のコマンドを入力し実行することで可能です。
include(FetchContent)
FetchContent_Declare(
googletest
URL https://github.com/google/googletest/archive/refs/tags/release-1.12.0.zip
)
Google TestのURLについては、公式サイトを確認して最新のものをインストールできるよう、適宜変更してください。
これにてGoogle Testの運用準備は完了です。
まとめ
この記事では、Google Testの役割や運用の準備方法について、解説しました。Google Testをはじめとする単体テストツールの導入は、エンジニアの負担軽減や業務効率化の観点からも重要性が高いため、積極的な活用をおすすめします。
Google Testはポピュラーな単体テストツールであるため、単体テストの必要が生じた場合には、気軽に導入してみると良いでしょう。
建設・土木業界向け 5分でわかるCAD・BIM・CIMの ホワイトペーパー配布中!
CAD・BIM・CIMの
❶データ活用方法
❷主要ソフトウェア
❸カスタマイズ
❹プログラミング
についてまとめたホワイトペーパーを配布中
▼キャパの公式Twitter・FacebookではITに関する情報を随時更新しています!
参考:
*1 Github「google test」
https://github.com/google/googletest/blob/main/googletest/README.md