2021年10月25日 08時00分 公開
特集/連載

AtomicJar、Testcontainersで誰でも使える統合テスト環境を提供Java用エコシステムを拡張

Testcontainersの開発者によって創設されたAtomicJarは、Java用の統合テスト環境の構築を目指している。

[Adrian Bridgwater,Computer Weekly]

 AtomicJarはソフトウェア開発サイクル全体で統合テストを容易にすることを使命として掲げるスタートアップ企業だ。同社はTestcontainersとの統合テストを提供するJavaエコシステムのフレームワーク拡張を目指している。

 Testcontainersは「JUnit」をサポートするオープンソースのJavaライブラリであり、Dockerコンテナで一般的なデータベースやSelenium Webブラウザなどを実行する軽量で使い捨てのインスタンスを提供する。JUnitは、Smalltalk用単体テストフレームワーク「SUnit」をベースとするJava用の単体テストフレームワークだ。

 AtomicJarの創設チームには、Testcontainers開発者のリチャード・ノース氏(AtomicJar CTO:最高情報責任者)とセルゲイ・エゴロフ氏(AtomicJar共同設立者兼CEO)が含まれる。

iStock.com/SARINYAPINNGAM

 ノース氏はDeloitte Digitalのチーフエンジニア時代の2015年にTestcontainersを開発した。同氏は統合テストのセットアップが絶望的に複雑だと考えていた。一貫性のあるローカルセットアップの作成からデータベースの構成やその他の無数の問題まで、全てに対応しなければならない。コードをテストする方法を必要とする開発者にとって、これら全てが混乱を招き、負担が掛かり、苦労させられる原因となっていた。

 そこでTestcontainersだ。これにより、開発者はデータストアやデータベース(「Redis」「PostgreSQL」など)から「Apache Kafka」「RabbitMQ」「Selenium」などまで、全て「コンテナを使って」直接テストできるようになる。

 Testcontainersはリリースから1年足らずで既存の統合テストプロジェクト数を上回り、最も人気があるDockerベースの統合テストライブラリになった。

 「単体テストは問題ない。だが、特にデータベースや外部リソースを操作する場合は、統合テストを行わなければ運用環境にデプロイした後の動作がどうなるのか分からない。AtomicJarは、統合テストはやっていないという言い訳を許さないツールを提供したいと考えている。文字通り世界中の誰もがそうしたツールを使えるようになる」(エゴロフ氏)

 Oracleの「Developers Blog」によると、Testcontainersによってデータアクセス層の統合テストが容易になるという。開発者はPostgreSQL、「MySQL」「Oracle Database」のコンテナインスタンスを使って互換性をテストできる。しかも、複雑なセットアップは必要ない。

 「あまりにも長い間、統合テストが非常に重要な場合でも禁句のように扱われてきた。統合テストは、実行するのも正しく理解するのも難し過ぎた。統合テストを開発者が恐れるのではなく、テストしたいと考えるほど魅力的なものにしたいと考えている」(ノース氏)

ITmedia マーケティング新着記事

news147.jpg

DX遅れまくり業界における挑戦 アステラス製薬が“脱プロモーションサイト”に向けてやったこと
DXが遅れがちなヘルスケア領域だが、顧客(医療従事者と、その先にいる患者)のニーズに...

news127.jpg

業界特化型CDPソリューション「DOMA」 電通デジタルが提供開始
独自に構成したテンプレートを使って業界特化型の汎用パッケージを開発。迅速かつ低コス...

news107.jpg

マーケターこそ今知るべき「インクルージョン」について
世界的な広告会社のグローバルCMOにして社会活動家でもあるアシシュ・パラシャール氏が、...