人工知能を活用するDevOps品質保証(QA)テストチームが増え続けていますが、「AIでテストを自動化すればQAのこんな場面で役立つ!」という発見もたくさんあるのではないでしょうか。ソフトウェアを構築する作業には実は隠れたコストが多くあります。中でもテスティングのコストを見落とすケースが多いように思うのですが、テスティングにかなり工数が掛かっていることをDevOpsチームが発見するとテストに投資するべきだと気付くのです。とは言え、テスティングに課題がないわけではありません。テスターが直面する最大の問題は次のようなものでしょう。

  • 手動テストからテスト自動化への移行
  • AIテスト自動化の受け入れと導入
  • CI/CDなどアジャイルライフサイクルが短いことにより、UIが絶えず変化する場合のテスト
  • テストメンテナンスおよびスケーリングに関するトラブルの防止


人工知能とは?

人工知能(AI)とは「機械の学習能力」のことで、人間が思考・学習する方法をまねたものです。機械学習を実現するのに必要なコンピュータ科学の一分野で、アルゴリズムとコンピュータを訓練するための膨大な量のデータセットでAIは学習していきます。

AIには次の4種類あります。

  • リアクティブマシン。目前のタスクだけに反応し、過去の記憶を保管しておくメモリはないマシンのことです。チェスをするIBMのスーパーコンピューター、「ディープブルー」というAIはその一例です。
  • 限られたメモリ。自動運転車はこの種類の人工知能を使用しています。運転の意思決定を行うために、最近の運転データを保存しておく限られたメモリがあります。
  • 心の理論。人間の感情や考えを理解しようという試みる機械です。
  • 自己認識。この分野はまだまだ未熟ですが、機械自体の自己意識のことです。

1. コスト削減&時間短縮

B2Bのニーズを評価する時、私は顧客のバーニングニーズを振り返るようにしています。売れる製品は基本的に2種類しかなく、そのうち1つはコストを削減する製品です。企業のコストを大幅に削減するツールを提供すると、飛ぶように売れます。

テスティングに関して、適切なツールと方法を実践すれば、工数をかなり節約できます。例えば、回帰テストは手動で実行されることが多いですが、手動だと時間がかかりメンテナンスが面倒ですし、人為的なミスが発生しやすいのも事実です。そのため関係者は「自動化したい」というバーニングニーズを抱えています。

自動化テストは、手動テストを大幅に改善するものです。自動化は、反復作業に最適ですが、AIを組み込むことでさらに利便性がアップします。「テスト自動化にAIをどのように生かしているのか」という質問をよくいただくのですが、例えばNetflixは人工知能を使って利用者の視聴パターンを学習し、それを基におすすめのコンテンツを表示しています。

2. 頻繁な変更

上でもご説明しましたが、アプリのUIを頻繁に変更すると、QAテスターが悩まされてしまいます。UIをわずかに変更しても大きなトラブルの原因になりかねません。そのため、失敗したテストの学習、調査、テストスクリプトの書き直しといった作業に時間を浪費するのではなく、AIに変更を認識させ、テスターに通知する方が効率的です。

ノーコード形式のテスト自動化ツール「Autify」は、機械学習でテスト中にUIの変更を検知します。画像:TechCrunch

Autifyはこのような課題を解決するツールです。AutifyはAIベースのテスト自動化ツールで、Seleniumとは違いコーディングをマスターする必要はありません。Autifyを使用すると、UIの変更が原因でテストの実行が失敗することはありません。AIはそのような変更を検出してスクリーンショットを並べて表示するので、テスターはシナリオを基に「次にどうするか」という決断を下すことができます。

3. ビッグデータの消費

手動テストからAIベースのテスト自動化ツールに移行する最大の利点としてビッグデータが挙げられます。AIは大量のデータから学習するという特徴があり、学習すればするほどテストシナリオに役立つAIに進化していきます。また、AIはバグの迅速な検出、パターンの学習、膨大なデータの処理などもこなせます。結果的に開発コストや人為的ミスを削減したり、物事を予測したりでき、より適切にデータ主導の意思決定を行うために役立ちます。

4. メンテナンス

QAテスターにとって最大の難関はテストメンテナンスでしょう。大規模でスピーディーな開発環境では特に大変です。UIを頻繁に変更するとこの問題を解決するのが一層難しくなるのですが、手動だと時間がかかるメンテナンスでもAIなら素早く処理できます。面倒な作業は機械に任せて、障害が起きたときに通知させるのがベストなのです。こうすることでメンテナンスの工数を削減でき、革新に力を入れることができます。

5. 機械学習

テストツールが成長すると共に、その背後にある技術も進歩していきます。エンジニアだけでなくたくさんの人たちに力を与えるノーコード形式のテスト自動化への動きが強まっています。Autifyなどのテスト自動化ツールはコードを書かずに利用できますから、エンジニア以外も活用できるのです。人工知能を活用することで、上でご説明した多く問題を軽減ができます。それ以上のことを達成するには、より深い機械学習が必要です。

過去の投稿では機械学習を活用した問題解決を測っている企業の具体例をご紹介しました。たとえば、Airbnbは大規模な機械学習を展開しています。写真から宿泊場所の施設や物を学習させるために、膨大な量の画像データをアルゴリズムに認識させているのです。この作業を人間が手動で行った場合、かなり時間が掛かりますが、機械学習の力を生かすことでそれを大幅に節約できたのです。利用者からの情報に頼るのではなく、アップロードされた宿泊施設の写真を機械が見て、どのような設備があるのか見極められるようになる日もそう遠くないでしょう。

まとめ

この記事では、AIによってテスト自動化がどのように改善されるかをご紹介しました。AIは頻繁にUIが変更されるような環境で工数を削減するのに役立ちます。機械はビッグデータを処理でき、メンテナンスの課題を克服できます。また、機械学習でテスト自動化のさらなる改善が期待できるのです。使いやすくて効果的なAIベースのテスト自動化ツールを使いたい方はAutifyの無料トライアルに今すぐお申し込みください!
 
Autifyではこの他にも品質保証やテスト、アジャイル開発に役立つ資料を無料で公開していますので、ぜひこちらからご覧ください。