APIテスト自動化におけるツールの最適解。AIによるデータ作成や現場定着まで含めた取り組みの全貌 ソフトウェアテスト自動化カンファレンス2025 登壇レポート 

2026/04/28

2025年12月6日、ソフトウェアテストの自動化に特化したカンファレンス「ソフトウェアテスト自動化カンファレンス2025」が開催されました。 

SHIFTからは、Karate+Database RiderによるAPI自動テスト導入工数をCline+GitLab MCPを使って2割削減を目指す!」と題したセッションにてAIアジャイル開発部の髙橋 一生が登壇しました。 

企業のDX推進に伴い、レガシーシステムの刷新は多くの現場で急務となっています。

しかし、品質を担保する「テスト自動化」の領域においては、技術選定の難しさと実装工数の増大という二重の壁が立ちはだかります。 

特に、APIテストにおいて見落とされがちなDB検証の難しさと、工数の大半を占めるデータ作成の負荷。

これらの課題に対し、髙橋はKarateとDatabase Riderという技術選定、そして生成AIによる効率化で挑みました。 

本記事では、イベントで語られた戦略的な取り組みの舞台裏をレポートします。 

同イベントに登壇した大築のイベントレポートも、ぜひご一読ください。

関連コンテンツ

  • AIアジャイル開発部 髙橋 一生

    中小SIerにてバックエンド開発のPLやリードを経験した後、個人での創作活動や実証実験プロジェクトを経てSHIFTへ入社。現在は大規模プロジェクトにおけるテスト自動化基盤の構築や、AIを活用した開発プロセスの効率化を推進している。

目次

DB検証までカバーするAPIテストの最適解。「Karate」と「Database Rider

今回ご紹介するのは、足掛け5年に及ぶウォーターフォール開発のプロジェクトにて、疎結合なレイヤードアーキテクチャへの移行に伴い、SHIFTの自動化アーキテクトである私が取り組んだAPIテスト自動化の事例です。

このプロジェクトは、開発規模が月に30~40人月、API数は3桁にのぼり、単体テストだけでも数万ケースという非常に大きな規模でした。

SHIFTは「全体開発推進」という立場で参画し、全体のテスト自動化を支援することになりました。 

本プロジェクトにおいて、品質を担保するためのAPIテスト自動化は必須の要素でしたが、そこには大きな壁が立ちはだかっていました。 

みなさんは、APIテストの自動化にどんなツールを使っていますか?

「APIテスト 自動化」というキーワードで調べるとさまざまなツールや事例がヒットしますが、多くの場合でDBのテストデータ投入や事後のデータ検証に関するケアが不足しているか、あるいは手動で行われている現状が見えてきます。 

しかし、実際の業務アプリケーションでは、APIの処理によってデータベースが正しく更新されたかを検証することは不可欠です。また、テストを実行するためには、前提となるデータをDBにセットアップしておく必要もあります。 

これらを別々のツールで行ったり手動で管理したりしていると、CI/CDパイプラインのなかでの自動実行を妨げる要因となってしまいます。 

この課題に対し、私たちはKarateとDatabase Riderという二つのツールを組み合わせる選択をしました。APIテスト自動化の構成は、以下の通りです。 

数あるAPIテストツールのなかからKarateを選んだ最大の理由は、Javaエコシステム(特にJUnit)との親和性とモックサーバー制御の容易さにあります。 

Karateは、Gherkin記法を用いて直感的にテストシナリオを記述できるだけでなく、Javaのライブラリとして動作するため、既存のJUnitテスト資産や開発者のスキルセットをそのまま活かすことができます。 

さらに、テストコード内でモックサーバーの起動や停止を完結できるため、CI/CD環境でも複雑な手順なしに、外部連携を含むテストを完結させることが可能になりました。

アノテーションひとつでDBを操るDatabase Rider

ここからは、Database Riderの選定理由について。これはDBUnitの思想を継承しつつ、JUnitのアノテーションを使ってDBの状態を直感的に制御できる強力なライブラリです。

例えば、`@DataSet`というアノテーションをテストメソッドに付与するだけで、テスト実行前に指定したデータ(YAML、JSON、CSV、Microsoft Excelなど多様な形式に対応)をDBに投入できます。

また、`@ExpectedDataSet`を使えば、テスト実行後のDBの状態が期待通りになっているかを自動で検証してくれます。 

これにより、複雑なSQLを書くことなく、テストケースごとに独立したデータ環境を数行のコードで定義することが可能になりました。 

KarateとDatabase Riderの最大の利点は、両者がともにJava/JUnitのエコシステム上で動作することです。

これにより、APIのリクエスト送信、モックサーバーの制御、そしてDBの事前事後処理までを、ひとつのJUnitテストとしてパッケージングできます。 

CI/CDパイプライン上では、通常の単体テストと同じコマンドを実行するだけで、DB検証を含めた高度なAPIテストが完了します。

開発者にとって馴染み深い環境で、かつワンコマンドで実行できる手軽さが、自動化を文化として定着させるための重要な要素となりました。

AI導入のターゲットを「もっとも面倒な作業」に絞り込む

テスト実行の基盤は整いましたが、実際にプロジェクトを推進するなかで、テスト実装工数のうち、実に50~60%がテストデータの準備に費やされているという事実が判明しました。 

テストロジック(Karateの記述)はパターン化されておりコピペで対応可能ですが、データのバリエーションをつくる作業は単調かつ膨大で、人間がやるには面倒な作業です。

そこで、私たちはデータ作成の自動化にAIリソースを集中させました。 

具体的な実装には、Visual Studio Code上で動作する自律型AIエージェント「Cline」と、GitLabのリポジトリ情報をAIに連携させるGitLab MCP(Model Context Protocol)が採用されました。 

まず、GitLab上にOpenAPIの仕様書やDBのテーブル定義を置いておきます。そして、開発者はClineに対して自然言語で指示を出します。

すると、ClineはMCP経由でGitLab上の定義情報を参照し、Database Riderで使用する形式のテストデータを自動生成します。 

これにより、開発者は複雑なデータ構造を一から手書きする必要がなくなり、条件を指定するだけでデータの雛形を入手できるようになりました。 

このアプローチにより、サンプルアプリを用いた試算では、テスト作成工数の約2割を削減できる見込みが立ちました。

もちろん、AIが生成したデータは完璧ではありません。しかし、ゼロから作成するのではなく、AIがつくった80点のデータを人間が修正して完成させるフローに切り替えることで、作業時間は大幅に短縮されます。

私たちは、この2割削減を目標に掲げ、プロジェクト全体への展開を進めていきました。

「銀の弾丸ではない」からこそ必要な、現場定着への泥臭いサポート

技術選定とAI活用の方針は固まりましたが、それを数十人規模のチームに定着させるのは別の次元のむずかしさがあります。AIは銀の弾丸ではありません。新技術を現場に浸透させるには、泥臭いサポートが重要です。 

私たちは、詳細なガイドラインやサンプルコードの整備に加え、全体に向けたレクチャー会を実施しました。さらに、SHIFTメンバーが各チームを横断的にサポートする体制を整えました。 

また、実際にいくつかのAPIテストを代行して実装してみせるトライアル期間を設けるなど、伴走型の支援を行いました。 

もちろん、開発手法の移行に関しては、現場からの反発も少なからず発生します。

GitLabでのマージリクエスト(MR)ベースのレビューを導入した際も、「Excelで管理していた頃の方がやりやすかった」という声が上がりました。 

こうした現場の不安や要望には、きちんと耳を傾けることが大切です。そのうえで、新手法のメリットを丁寧に説明すると同時に、本当に使いづらい部分についてはガイドラインを修正するなど、柔軟な対応を心がけました。

振り返ってみると、「強制する部分」と「現場にあわせる部分」のバランス感覚がポイントだったと思います。 

AI活用に関しても、現場からはシビアな反応がありました。「使ってみたけれど、期待通りのデータができない」「ハルシネーションで嘘のデータがつくられた」といった声です。 

実際に、企業向けプランで利用可能なモデル(GPT-4など)では、出力結果が安定しないこともしばしばありました。

特に複雑なデータ連携が必要なケースでは、AIがつくったデータをそのまま流しても動かないことが多々あります。 

私は、「AIがつくったものは必ず人の目で確認し、修正する工程が必要」という前提を周知徹底しました。

AIはあくまで初稿をつくるアシスタントであり、最終責任は人間がもつ。この期待値調整を行うことで、AIへの過度な依存や、逆に「使えない」という極端な失望を防ぎました。

ツールよりも大切なのは「使用者目線」。新技術導入を成功させるカギ

現在、プロジェクトはおおむね順調に進んでいます。進捗遅れが生じたアプリケーションについても、AIと自動化ツールの恩恵によって影響を最小限に留めることができています。

本プロジェクトを通じて、KarateとDatabase Riderを組み合わせたAPIテスト自動化は、DB検証の課題を解決し、CI/CDに組み込みやすい強力なソリューションであることが実証されました。

また、工数の大半を占めるデータ作成にAIを適用することで、工数削減の可能性も見えてきました。 

結局のところ、自動化もAIも、それだけで魔法のようにプロジェクトを成功させてくれるものではありません。

しかし、現場の一番面倒な作業にターゲットを絞ってAIを導入し、ツールを使いこなすための地道な支援をつづけることで、確実に景色は変わります。 

今回ご紹介した手法が、大規模なシステム刷新やテスト自動化に悩むみなさんの、次の一歩を踏み出すヒントになれば幸いです。

もし現場で迷うことがあれば、私の「KarateとDatabase Riderはいいぞ」という言葉を思い出してください。自信をもっておすすめします。

(※本記事の内容および対象者の所属は、イベント開催当時のものです)



記事を探す

  • 職種

  • 対象

  • 記事カテゴリー