ソフトウェアやシステム開発にあたって「テスト」は重要な工程です。実装前に開発物がきちんと動作するかをチェックする必要があり、場合によってはテスト・改修の工程で最も工数がかかることもあります。
そこで活躍するのがAIです。AIを用いることで、面倒なテスト工程を完全自動化できる可能性もあります。
そんななか「どうAIでテストを自動化すればいいの?」「どのツールが高性能なの?」と悩んでいる開発者もいるでしょう。
そこで今回はエンジニアやプロダクトマネジャーの方に向けて、ソフトウェア・システム開発のAI自動化について、やり方、おすすめのツールなどを解説します。
最後に実際のAIテスト自動化ツールについて、社内エンジニアが使ってみた所感と一緒に製品紹介をしています。導入を考えている方は参考にしてみてください。
AIテスト自動化とは
ソフトウェア・システム開発にあたって、テストは工数がかかる工程です。リリース前にバグを検出し解消するために欠かせない仕事です。主なテストには以下の4つがあります。
名称 | 概要 |
単体テスト(ユニットテスト) | プログラム内部をテストすること |
結合テスト(インテグレーションテスト) | モジュール間のインタフェース構造や結合部の動作のテスト |
総合テスト(システムテスト) | システム全体の機能・非機能要件に関するテスト |
ユーザー受け入れテスト(UAT) | 実際にシステムを利用するユーザー目線でのテスト |
これらのテストをAIを用いて半自動化・完全自動化したり、テストの品質を高めたりすることができます。
従来のテスト自動化(RPA)とAIのテスト自動化の違い
先述したように、テスト作業は時間がかかってしまう作業です。そのため従来からRPAを用いて自動でテストできるツールは広く使われています。
それでは従来のRPAを用いたテストと、AIを用いたテストの違いについて解説します。
RPAの概要
RPAとは「Robotic Process Automation」の略です。直訳すると「ロボットを用いた工程の自動化」となります。RPAは自律型ではありません。事前に人間が作業手順を指示する必要があります。
例えば、人材採用において「面接の合否結果をもとに、候補者へ結果をメールで連絡する」→「合格の場合は選考日時のすり合わせを面接官に依頼する」といった業務をRPAで自動化するケースを挙げましょう。
この場合、事前にテキストを人間で用意しておき、ロボットに条件やタイミングを指示します。ロボットはその通りに動作をしてくれます。
RPAを用いたテスト自動化も同じで、前提となる指示が必要になるため、自分でスクリプトをつくることはできません。人間がその都度テストスクリプトを書く必要があります。
ただしその後の実行は自動化できます。
AIの概要
AIは「Artificial Intelligence」の略で「人工知能」と訳されます。RPAと違い、過去のデータを参照したうえで物事を考えられます。決まった指示を決まった順序でこなすだけではなく、勝手に物事を判断し仕事をしてくれる存在です。
そのため、ソフトウェアの画面やHTMLを読み込ませると、自分で改修箇所を判断しスクリプトを生成し、実行までしてくれます。これまでスクリプトの生成に時間がかかっていたエンジニアとしては強い味方です。
ただし2024年7月現在では、AIにも不得意な領域があります。開発工程で大きな変化が起こったり、複雑な改修が必要になる場合は、検証しきれないこともあります。すべてを完全自動化できるレベルには至っていません。
AIとRPAの比較
テストの自動化におけるAIとRPAの比較表は以下です。
比較基準 | AI(人工知能) | RPA(ロボティック・プロセス・オートメーション) |
対応できるタスク | スクリプトの作成から実行までを自動で考えて推進できる | スクリプトの作成はできないが、実行は自動化できる |
使用技術 | 機械学習アルゴリズム、ニューラルネットワーク | 定義されたルール、スクリプト |
タスクの複雑さ | 幅広いテストに対して柔軟に対応可能。しかし複雑すぎると対応できない | 反復的でルールベースのタスクには最適だが指示以外のタスクに対応できない |
メンテナンス | データが溜まるにつれて自動で性能が高まるため、手動のメンテナンスはあまり必要ない | テスト要件、プロセスが変更された場合、ルールとスクリプトの更新が必要 |
上記のように、AIを用いることで、手動での作業が格段に減ります。ただしAIが出した結果もすべてが正しいとは言い切れません。最後には人間の目でレビューする必要があります。この点は認識しておきましょう。
AIでテストを自動化するメリット、デメリット
具体的にAIを用いてテストの自動化を進めるメリット・デメリットについて解説します。
AIでテストを自動化するメリット
はじめにAIでテストを自動化するうえでのメリットです。KPI化できるものは導入前にKPI設定をしておき、AsIs(現状)とToBe(理想)を比較しつつ使用しましょう。
作業効率の向上
AIを用いることでエンジニアの作業工数を削減できます。テスト工程は時間がかかります。主に以下のプロセスを踏むことが多いことでしょう。
- 要件定義
- スケジュール・リソースの策定
- テスト設計
- 準備
- 実行
- デバッグと修正
- テスト結果の評価
- レポートの作成
- 承認とリリース
このうち、AI自動化ツールは「4. 準備」~「6. デバッグと修正」までを代行してくれます。従来であれば、人間の手でその都度スクリプトを記述、実行、デバッグを繰り返す必要がありました。
これらの工程に時間がかかるケースは多いです。AIを用いることで、業務効率が格段に高まります。
また他の作業についてもChatGPTなど対話型AIエージェントを活用することで、作業効率を高めることが可能です。エンジニアだけでなくプロダクトマネージャーの方も積極的に活用しましょう。
精度の向上
また手動でテストするとヒューマンエラーが起きる可能性があります。AIは過去のデータをもとに精密に作業をしてくれるので精度も高まります。
リリース後にバグが発見されると、ユーザビリティを大きく損ねてしまいます。ユーザーの離反を招くだけでなく、社内のカスタマーサクセス、マーケティング、セールスなどの別部署とのハレーションを起こしかねません。
そのうえでもAIを活用して、テストを自動化することが望ましいといえます。
コスト削減・売上向上
業務効率化を達成することで、人件費が大幅に削減されます。空いた工数で他のプロジェクトに参加できるようになるため、企業・チームとしては売上の向上にもつながるといえるでしょう。
また副次的効果として、自動化によって業務効率化が達成されることでエンジニアの満足度が高まり、離職率が下がります。採用コスト削減にもつながります。
そのほか「早期リリースが可能になることで顧客満足度が高まる」「リリース後のバグが減ることでチャーンレート(解約率)が下がる」など、売上向上につながるメリットもあります。
AIでテストを自動化するデメリット
続いてAIでテストを自動化するデメリットを紹介します。事前にデメリットをきちんと押さえ、対策法を準備したうえで導入を検討してみてください。
初期導入コスト
AIを用いたテストの自動化ツールは決して安価ではありません。ツールの導入コストがかかります。もちろん高度なプランを使う場合は、初期導入だけでなく月額費も必要です。
また、社内メンバーへの教育コストも必要です。実際に使ってみて、オペレーション・スキームを組み立て直し、定着化するまでの人件費がかかります。
そのため、活用する側としてはコスト管理をする必要があります。導入前に手動での作業工数(人件費)を算出したうえで「どれくらい削減できたのか」「費用対効果はどうか」を中長期的に確認しましょう。
特にウォーターフォール型の開発スタイルを取っている場合は、テストの回数がそもそも少ない可能性もあります。この場合、使われないまま月額費用を払い続ける可能性もあるため、注意が必要です。
ツール依存
AIを用いたテスト自動化に関してツールを導入すると「ツール依存」の状態になる可能性があります。つまり、該当のツールを用いた業務フローに慣れ過ぎてしまい、不測の事態に対応できない可能性もあります。
例えば以下のトラブルが起きた際に、テスト業務がストップするかもしれません。
- ツール自体にバグが発生する
- 提供終了となる
- ベンダーが倒産する
対策としては複数のツールを使えるよう、メンバーに教育、実践を積んでもらうことです。メインのツールがストップした際に使える2番手のツールを準備しておきましょう。
柔軟性の欠如
AIテスト自動化ツールは柔軟性が足りていないケースがあります。過去に学習したケースに対しては人工知能が思考してアクションを取れますが、複雑・未知のシチュエーションに対しては動作できません。
この場合は改修箇所を見落としてしまったり、誤った結果をレポーティングしたりする可能性があります。
対策法はさまざまあります。例えば以下です。
- RPAツールと組み合わせる
- 最新のLLMモデルを搭載した製品を用いる
- APIやスクリプトなどでカスタマイズできるツールを選ぶ
- 最終的には人間の目で確認する
AIを全面的に信頼するのではなく、批判的な視点を持って活用しましょう。
AIテスト自動化ツールの紹介
それでは実際に市場で使われているAIテスト自動化ツールについて紹介していきます。
弊社・ファンリピートでは、実際に開発テストの際にAIツールを用いております。利用した社内システムエンジニアの所感も一緒に紹介しますので、導入を考えている方は参考にしてみてください。
Testim
Testimは、AI駆動のテスト自動化プラットフォームです。ビジュアルエディタを搭載しているため、直感的に使えるのが魅力です。コード不要でテストを作成・メンテナンスできます。
また動的アプリケーションや複雑なUIにも対応し、クロスブラウザテストや並列実行が可能です。使いやすさとスケーラビリティに優れ、テストの信頼性を向上させるため、開発チーム全体で活用できます。
SEが使ってみた
弊社・株式会社ファンリピートではTestimを用いて開発テストを行っています。またTestimの導入支援もしております。
実際にTestimを操作している社内システムエンジニアに、使用感などを聞きました。
――Testimを用いて実施したテストの内容を教えてください。
以下の作業を行いました。
- ログイン画面へ切り替え
- メールアドレス入力
- パスワード入力
- Loginボタンを押下
――Testimを使ってみて、率直な感想を教えてください。
まずドキュメントが英語ベースなのですが、日本語で訳してもわかりやすかったし、見やすいので、ハードルは感じませんでした。
また自動テストを作成中にデバッグできるのですが、その時に自身のブラウザが立ち上がって、入力欄に自動入力が行われているところを見られます。ちゃんと動いていて、素直に「すごい」と思いましたね。
テスト時にChrome拡張機能が必要ですが、拡張機能にスクリーンショットやBUG scenarioなどの項目があり、テスト以外でも使えそうだと感じました。それと、ブランチも切れるみたいなので、各フェーズまたはVerごとに対応したテスト項目を作成できそうです。
悪い点でいうと、テスト作成自体はうまくいくが、作成後に自動実行した時に、なぜか失敗するケースがありました。開発ツールとの相性もあると思います。
――具体的にTestimを活用できそうなシーンはどこですか?
作業・処理に関して、システムで対象データが決まっているのであれば、流れにそってボタンを押下したり、アラートを見つけたり、値の変化を確認できます。こうした確認に使えそうです。
今回は主に画面上でのテストを行いましたが、ドキュメントを確認したところ、DBやCSSプロパティ、ネットワーク検証など細かくテストの実施が行えると思いました。BtoB、BtoCなどの基幹システムに使えそうだと思います。
Functionize
Functionizeも、AIを活用したテスト自動化プラットフォームです。コード不要のツールで、自然言語処理によりテストケースを自動生成してくれます。動的なアプリケーションにも対応可能です。
また並列実行やクロスブラウザテストが可能で、CI/CDパイプラインとの統合もスムーズです。高度なエラーハンドリングと自己修復機能により、テストの信頼性を確保しつつメンテナンスを簡素化できるのも大きな魅力だといえます。
Applitools
Applitoolsは、ビジュアルテスト自動化プラットフォームで、主にUIの視覚的な変化を検出できます。クラウドベースであり、スクリーンショットの比較を通じてUIの一致度を検証できるのが魅力です。
Selenium、Appium、Cypressなどの既存のテストフレームワークと統合し、クロスブラウザやクロスデバイステストが可能であり、多くのエンジニアから重宝されています。
SEが使ってみた
弊社・株式会社ファンリピートではApplitoolsを用いて開発テストを行っています。またApplitoolsの導入支援もしております。
実際にApplitoolsを操作している社内システムエンジニアに、使用感などを聞きました。
――Applitoolsを用いて実施したテストの内容を教えてください。
以下の作業を行いました。
- ログイン画面の表示
- メールアドレスの入力
- パスワードの入力
- ログインボタンの押下
――Applitoolsを使ってみて、率直な感想を教えてください。
導入にあたって、ドキュメントが英語ベースで翻訳しても少し意味が伝わりにくかったかなと思います。理解するまでに多少時間がかかりましたね。
単体で使えるツールではないため、基本的には併用したツールに使用感が依存すると思います。今回はSeleniumと併用しましたが、動作の指定を詳細に設定して、Bubble側の要素のIDも指定しないといけないのが少し手間でした。
ただし併用したことで作業効率はたかまりました。「さまざまな自動化ツールの補助機能」として価値を発揮してくれそうです。
――具体的にApplitoolsを活用できそうなシーンはどこですか?
「例えば大きな実装をした後の、ブランチ別のUIの相違確認」はユースケースだと思います。ページ全体の僅かなUIの変化等を確認してくれるからです。また「同じ動作をした前後のUIの差異」についても確認できると思いますね。
Mabl
Mablも、AIを活用した自動化テストプラットフォームです。UX改善に対して強いツールとなっています。コードなしでテストシナリオを作成でき、ブラウザ間の互換性やレスポンシブデザインの検証が可能です。
また自己修復機能により、アプリケーションの変更にも柔軟に対応します。CI/CDツールとの統合が容易で、テストの実行とフィードバックを迅速に行えるのも魅力です。
Selenium
Seleniumは、ウェブアプリケーションのテスト自動化ツールです。ブラウザ操作を自動化するためのオープンソースフレームワークとなっています。
Selenium WebDriverを使用すると、ブラウザを直接操作してリアルなユーザー体験を再現でき、CI/CDパイプラインにも統合可能です。
SEが使ってみた
弊社・株式会社ファンリピートではSeleniumを用いて開発テストを行っています。またSeleniumの導入支援もしております。
実際にSeleniumを操作している社内システムエンジニアに、使用感などを聞きました。
――Seleniumを用いて実施したテストの内容を教えてください。
以下の作業を行いました。
- Google検索ページを開く
- 検索ボックスに「Selenium WebDriver」と入力し、検索を実行
- 検索結果ページが正しく表示されることを確認
- 検索結果ページのスクリーンショットを取得し、保存
- ブラウザを閉じる
――Seleniumを使ってみて、率直な感想を教えてください。
正直なところ、Bubble.ioベースのアプリケーションやPowerAppsアプリケーションのテストにSeleniumを使用するのは複雑すぎると感じました。
これらのプラットフォームは従来のコーディングとは異なるため、やや複雑なテストには適さないかもしれません。
また、このツールを使用するにはPythonの知識が必要であり、スクリプトを作成するためにChatGPTなどに完全に依存する必要があります。そのためAIツールにしては時間がかかりすぎると感じました。手動テストの方が簡単かもしれません。
――具体的にSeleniumを活用できそうなシーンはどこですか?
Next.jsベースのアプリケーションでは、情報を素早く入力するために自動化の一環としてSeleniumを使用することが考えられます。しかしテストというよりは「自動化のためのツール」として使用することになるでしょう。
UiPath Test Suite
UiPath Test Suiteは、主にエンタープライズ企業向けのテスト自動化プラットフォームです。コーディング不要のビジュアルインターフェースを提供し、複雑なテストシナリオを簡単に作成可能です。
また、UiPathの既存のRPAワークフローと連携することで、テストプロセス全体の効率を大幅に向上できます。
SEが使ってみた
弊社・株式会社ファンリピートではUiPath Test Suiteを用いて開発テストを行っています。またUiPath Test Suiteの導入支援もしております。
実際にUiPath Test Suiteを操作している社内システムエンジニアに、使用感などを聞きました。
――UiPath Test Suiteを用いて実施したテストの内容を教えてください。
以下の作業を行いました。
- ログイン画面へ切り替え
- メールアドレス入力
- パスワード入力
- Loginボタンを押下
――UiPath Test Suiteを使ってみて、率直な感想を教えてください。
ツールのバージョンで頻繁に仕様変更が起きているが、ネットでの情報が古かったり少なかったりしたので、使用方法の検索に苦労しました。ChatGPT頼りで理解できましたね。
使っていて、ツールのメニューを日本語でも対応できるのは嬉しかったです。またChromeなどのWebブラウザとの連携が強いため、Webアプリケーションのテストはやりやすいと感じました。「テスト自動化」だけでなく、さまざまなことができるツールです。
――具体的にUiPath Test Suiteを活用できそうなシーンはどこですか?
テストです。自動化した動きを簡単に組めるので、手作業で作業するよりもテストの作業の時間を大幅に減らしてくれました。またプログラミングのテスト以外にも、ブラウザ上で動くスプレッドシート等の操作を自動化して、マクロのような役割も果たせそうですね。
SmartBear TestComplete
SmartBear TestCompleteは、デスクトップ、ウェブ、モバイルアプリケーションのテストで使えるツールです。スクリプトが必要ないレコーディング機能と、JavaScriptやPythonなど複数の言語を用いたスクリプトベースのテストが可能です。
Tricentis Tosca
Tricentis Toscaはスクリプトを書く必要なく開発テストができるツールです。直感的に簡単にテストを作成・実行できます。web、モバイル、デスクトップなどのテストをサポートししています。AIを活用したテストケースの自動生成とメンテナンスも特徴です。
Katalon Studio
Katalon Studioは、オープンソースのテスト自動化ツールです。幅広いアプリケーションのテストをサポートしています。直感的なUIと豊富な内蔵キーワードにより、初心者から上級者まで利用しやすい設計です。
CI/CDパイプラインとの統合が容易で、Jenkins、Azure DevOps、Gitなどと連携可能です。また、レポート機能も充実しており、テスト結果の分析と共有が簡単です。
SEが使ってみた
弊社・株式会社ファンリピートではKatalon Studioを用いて開発テストを行っています。またKatalon Studioの導入支援もしております。
実際にKatalon Studioを操作している社内システムエンジニアに、使用感などを聞きました。
――Katalon Studioを用いて実施したテストの内容を教えてください。
以下の作業を行いました。
- ログイン画面へ切り替え
- メールアドレス入力
- パスワード入力
- Loginボタンを押下
――Katalon Studioを使ってみて、率直な感想を教えてください。
ブラウザを呼び出して、実際に操作する形でテストを作成できます。テスト作成と確認の工数削減につながっている感覚がありました。同じ操作のテストをより簡単にできるのが最大の魅力です。
ローコードでテストフローの変更が可能だが、ある程度の理解は必要だと感じました。ドキュメントがわかりやすいのでキャッチアップはしやすいです。
今回は使いませんでしたが、AI機能ではプロンプトを投げるとテストケースを生成してくれるとのことで、さらに効率化できそうだと感じました。
――具体的にKatalon Studioを活用できそうなシーンはどこですか?
ブラウザ上で一度操作をします。そのため、例えば単体テスト時に保存した内容を、結合テストでも走らせるような使い方が有効かと思いました。
Ranorex
Ranorexは、Web、モバイル、デスクトップアプリケーションのテストをサポートしているツールです。エンタープライズ向けのツールとなっています。
コード不要のエディタがあるため、非エンジニアでも導入しやすいといえます。一方でC#やVB.NETを使用したスクリプトベースのテストも可能です。またオブジェクト認識機能により、複雑なUI要素のテストも簡単に実行できます。
まとめ
今回はAIを用いたソフトウェア・システム開発テストの自動化について紹介しました。RPA以上の業務効率化が期待されるツールですので、開発タスクを抱えている企業は積極的に導入することをおすすめします。
弊社・ファンリピートでは、実際に日ごろからAIを用いたテスト自動化ツールを活用して開発に取り組んでいます。クライアントへの導入支援サービスも行っておりますので、お気軽にお問い合わせください。