ローコードテスト自動化ツール T-DASH

RPAとAIでテスト自動化をやってみよう

テスト自動化とはソフトウェアを用いて、テスト作業の一部または全部をシステムで制御することです。テスト自動化を実現するための手段にRPA導入があります。しかしRPAを導入しても、NG結果の判定やテストレポートの分析などRPAが対応できない課題があります。これらの課題を解決するにはどうすべきでしょうか?本記事ではRPAにおけるテスト自動化をお伝えします。最後まで読むことで、RPAと自動化の関係やテスト自動化の進む道について知ることができます。

RPAとは?フローから導入イメージをしてみよう

RPAとは、ロボティックプロセスオートメーション(Robotic Process Automation)の略で、「ロボットで業務を自動化すること」を指します。一般的には、ロボットが人間のような操作で作業を行います。

次にRPAのメリットをご説明します。

【RPAのメリット】

1.人を重複業務から解放する
一番代表的なメリットは、重複作業から人を解放することです。日常的な重複作業はロボットに代行させることで、人は実行状況の監視や例外処理などRPAで代行できない作業に集中できます。

2.ヒューマンエラーを減らす
重複作業を長期間に行うと、人の集中力が下がって、ミスが起こしやすくになります。ロボットにはそういう問題はありません。常に高い精度で作業を行います。

3.今のプロセスを変える必要がない
RPAは人の代わりに、ロボットが作業を遂行します。よって作業プロセスを変える必要がなく、導入コストを抑えられます。

4.24時間365日
ロボットは24時間365日働きます。そして退職することもないため、業務の引継ぎや教育にかかる時間が削減できます。

これらのRPAのメリットから、「RPAを導入したら、全てをロボットに任せて、人はなにもしなくて問題ない」のイメージとなりましたでしょうか?しかしながら実際には、RPAを導入しても、人がやらなければならないことがあります。 RPAと自動化のパターンを整理するために、下記のフローを見てみましょう。

図に書いたのは問い合わせフォームの処理の流れです。問い合わせフォームにカテゴリという項目があり、選択された内容により担当部署に分けて対応します。

図1. 問い合わせフォームの処理フロー

RPAの導入により、全部自動化できると考える方が多いでしょう。これが全自動化のパターンです。

もしカテゴリが間違ったらどうするか、と思われた方もいると思います。このようなケースを防ぐため、自動テストで登録まで完了させずに登録の前に人の目で問い合わせ内容とカテゴリを確認します。そして問題なければ登録を行います。このパターンは半自動化のパターンです。半自動化では、自動化処理を開始するトリガーやテスト続行の判定に人の判断を使います。

別のシーンを想像してみましょう。今回はカテゴリに関係なく、どの部署が対応するかを人で判断します。これは人とロボットの協働作業パターンです。人とロボットの協働作業(Human robot collaboration, HRC)は人とロボットが共に作業を行うことです。

RPAとAIの違い

RPAでテスト自動化を目指す中で、最終的に全自動化にしたい方はいると思います。そこでAIの登場です。

AI(人工知能)とは、どういう意味でしょうか?現時点ではまだ明確な定義がないのです。総務省の「平成28年版 情報通信白書のポイント」の第1部第2章第4節に様々な研究者の定義を記載しています(下記参照)しかしAIに関しては確立された定義はありません。ただ「人間が行う『知的活動』を人工的に再現できる」という意味合いで説明をしています。また「知的活動」を定義することは難しいですが、一般的には、学習や進化できる特徴が含まれるという認識で問題ないでしょう。

RPAとAIのどちらも人間の動きを再現できるように見えますが、ではRPAとAIの違いは何でしょうか?この違いは自己学習能力の有無です。RPAは人間の手足のようで、既定のルールに従って作業を行います、その範囲以外は対応できません。一方、AIは例えるなら人間の脳です。AIは従来の経験から学習して、最終的に既定ルール外のアクシデントでも対応できます。

図1の例では、まずは半自動化や協働作業のパターンでAIを訓練し、学習させます。そしてあるデータを累積すると、問い合わせ内容を自動で判断できるようになります。その結果、全自動化が実現でき、人間を介入する必要がなくなります。テスト自動化は進化しているのです。

テスト自動化での活用してみよう

RPAをテスト領域に活用するケースは、非常に多いと言えるでしょう。例えば、seleniumや robot frameworkなどのツールやフレームワークです。では、AIはどうやってテスト自動化で活用するのでしょう。ではまず、テスト自動化の課題から考えます。

【テスト自動化の課題】

1.NGの場合、切り分けが困難な場合がある
手動でテストする場合、テスターの判断でOK/NGを行う場合があります。自動化をすると判断条件が不足し、誤った判定をすることがあります。このような場合には手動でエビデンスを確認する必要があります。

2.アプリを合わせて修正の手間がかかる
例えば、フレームワークのアップグレードにより、divタグの階層が変わりました。見た目は変わらないので、手動でテストするとOKになりますが、自動化テストするとターゲットが見当たらなくて、NGになる場合があります。よってアプリ修正と共に、テスト内容を修正するため工数が増えてしまいます。

【AIでの改善点】

テスト自動化の課題に対して、AIは何をしてくれるでしょうか?

1.NGの場合、切り分けが困難な場合がある
AIは学習の特徴があります。最初は手動で修正して、AIに学習させます。そして、AIの判断精度が上がって、手動で再確認することはなくなります。

2.アプリを合わせて修正の手間がかかる
同じくAIの学習を利用します。例えば、ボタンが見当たらないが、また操作ができて、テストができます。かつ前回のテストを比べると一部の画面要素しか発生しないという内容のレポートを出せば、テスターや開発者にとって役に立ちます。

まとめ

今回の記事で、RPA→AI→テスト自動化の流れで紹介いたしましたが、いかがでしたでしょうか。テスト自動化の言葉にRPAの概念が含まれていましたが、本記事ではAIを加えて、テスト自動化をどこまで進化しているのかについても説明いたしました。

AIがテスト自動化の領域に活躍することはこれからですが、昨今のAIの進化を考えると動向を注視することが必要かと思われます。

誰でもカンタンにテスト自動化ができる時代は、すぐそこまできています。当サイトでは、テスト自動化ツールに興味のある方へ、「テスト自動化 推進ガイドブック」と「テスト自動化ツールT-DASH 基本ガイドブック」のダウンロード資料をご用意しております。ぜひダウンロードいただき、資料をご覧ください。

参考資料
1.総務省, 平成28年版 情報通信白書のポイント https://www.soumu.go.jp/johotsusintokei/whitepaper/ja/h28/html/nc142110.html