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

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

2021年10月25日 08時00分 公開
[Adrian BridgwaterComputer 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」のコンテナインスタンスを使って互換性をテストできる。しかも、複雑なセットアップは必要ない。

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

Copyright © ITmedia, Inc. All Rights Reserved.

From Informa TechTarget

お知らせ
米国TechTarget Inc.とInforma Techデジタル事業が業務提携したことが発表されました。TechTargetジャパンは従来どおり、アイティメディア(株)が運営を継続します。これからも日本企業のIT選定に役立つ情報を提供してまいります。

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

news066.jpg

Metaに潰されないために残された生き残りの道は?――2025年のSNS大予測(Snapchat編)
若年層に人気のSnapchatだが、大人にはあまり浸透していない。一方で、AR(拡張現実)開...

news150.jpg

「猛暑」「米騒動」「インバウンド」の影響は? 2024年に最も売り上げが伸びたものランキング
小売店の推定販売金額の伸びから、日用消費財の中で何が売れたのかを振り返るランキング...

news110.jpg

Netflixコラボが止まらない 「イカゲーム」シーズン2公開で人気爆上がり必至のアプリとは?
Duolingoは言語学習アプリとNetflixの大人気ドラマを結び付けたキャンペーンを展開。屋外...