AI がアジャイル テストの現場をどのように変えるか

人工知能 (AI) は、GPU (Graphics Processing Unit) の台頭により、理論的な技術から実用的な技術へと発展した過去 10 年間で飛躍的な進歩を遂げました。最近では、受信箱の中のスパムを検出することから、画像の中の人物を見つけること、車線内を識別して運転することまで、あらゆることに AI が使われています。 

AI はそれ自体をプログラムすることはできませんが、このテクノロジーは、ソフトウェア開発者やテスターがより良いコードを書き、バグをより早く発見することを支援するために応用されています。インテリジェントなコード補完や柔軟なオブジェクト認識など、AI はすでに現代の開発者やテスターの生活に変化をもたらしており、これらのツールはその範囲と能力を拡大しています。

ここでは、AI がテストを作成、改善、維持することで、アジャイル開発にどのような役割を果たすかを見てみましょう。

AI がソフトウェア テストに与える影響

人工知能は、迅速な学習とデータ分析に優れています。テストの計画と設計は人間に任されているかもしれませんが、AI 技術は QA 組織がテストを次のレベルに引き上げるのに役立っています。エンジニアまたはマニュアル テスト担当者は、アプリケーション コントロールの自動認識、オブジェクト プロパティが変更されたときのテストの自動修復、さらにはスマートなビジュアル テストなどにより、これまで以上に迅速にテストの自動化を開始することができます。また、テスト担当者は、過去の実行履歴に基づいたスマートな推奨事項を通じて、よりインテリジェントにテスト実行の優先順位を決定し、自動化されたログ ファイル分析を使用して結果をより迅速に分析することができます。 

このようなメリットがある一方で、人工知能を検討する際には、いくつかの潜在的な欠点にも注意する必要があります。これらは、必ずしも AI を搭載した製品の使用を妨げるものではありませんし、すべての AI 搭載製品に当てはまるわけでもありませんが、ソフトウェア開発の世界で AI が果たす役割が大きくなっていく中で、心に留めておくべき重要なポイントです。

AI を搭載したソフトウェア開発ツールの最大の懸念事項としては、以下のようなものがあります。

  • 大規模なデータ セット : 大規模なデータセットは、トレーニングと精度向上のために必要です。十分な規模のデータ セットがなければ、不正確なデータや、さらに悪いことには誤検知が発生する可能性があります。
  • ブラック ボックス : 人間が AI の複雑さを理解していない場合、時間の経過とともにブラック ボックスが発生するかもしれません。最悪、これらは偽装された過剰な最適化である可能性もあります。
  • アルゴリズムの偏り : アルゴリズムの偏りは、人種差別的なチャットボットや不当な保釈金設定アルゴリズムなどですでに問題になっていますが、これらと同じ偏りが AI を搭載したチームツールに影響を与える可能性があります。

AI ベースのツールを使用する際には、これらの潜在的な欠点を念頭に置くことが重要です。例えば、ブラック ボックス AI ベースのツールは、その「ブラックボックス」技術が実際に自分の望む結果をもたらすと信頼できるまでは、避けた方がよいでしょう。

TestComplete と AI

画像認識は、人工知能の最も一般的なユース ケースの 1 つです。2015 年、Microsoft と Google の AI アルゴリズムは、画像を識別する能力において人間を上回りました。そして、人間が何を見ているのかを考え始めるのにかかる時間よりも、ほんのわずかな時間でそれを実現したのです。最近では、その優位性はさらに顕著になっています。

驚くことではありませんが、UI 自動化のために画面上のコントロールと対話するための AI ベースのオブジェクト認識は、最初のユース ケースの 1 つとなっています。これらの機能は、QA オートメーション エンジニアが、複雑なオブジェクトを簡単に識別し、変化するコンポーネントにも適応できる、堅牢なユーザー インターフェース テストを作成するのに役立ちます。これらの機能は、ボタン、入力フィールド、またはその他の画面上のオブジェクトを、正確な識別子を必要とせずに認識することができます。

TestComplete は、AI ベースのオブジェクト認識機能を備えた自動 UI テストツールです。このプラットフォームは、プロパティベースと AI による視覚的認識のハイブリッドを使用して、エンドツーエンドのユーザー インターフェイス テストを完了するために必要な動的な UI 要素を迅速かつ正確に見つけ出し、これまでよりもはるかに脆くなく、メンテナンス性に優れたものにします。

TestComplete には、カスタマイズ可能なオブジェクト リポジトリに加えて、記録および再生機能が搭載されており、数時間ではなく数分で UI テストを作成することがこれまで以上に容易になります。デスクトップ アプリケーション、Web アプリケーション、モバイル アプリケーションを同じツールで簡単にテストし、既存の継続的インテグレーションとデプロイメント パイプラインに統合できます。

さらに TestComplete は、オブジェクトのプロパティが変更されたときにテストを自己修復するために、機械学習の側面も使用しています。これにより、テストが失敗するのを防ぎ、テスト実行後に修正を受け入れることができるので、失敗を確認する時間と労力を節約できます。

今すぐ無料体験版をダウンロードして、これらの機能をご自身でお試しください。

ソフトウェアにおけるその他の AI の応用

AI を使ったテスト ツールの用途としては、オブジェクト認識が最もわかりやすいかもしれませんが、テストやソフトウェア開発業界全体の改善につながる可能性のあるツールは他にもたくさんあります。その中には、コード アナライザーなどの技術的なツールと、チーム コミュニケーションや意思決定ツールなどの非技術的なツールがあります。

有力なアイデアとしては、以下のようなものがあります。

  • バックログ リファインメント テクノロジーは、主観的な分析を必要とせず、アナリティクスによって得られたユーザーのフィードバックに基づいて、自動的に機能の優先順位を決定することができます。
  • ソフトウェアの見積もりテクノロジーは、各開発者の固有の履歴や能力に基づいて、より正確なユーザー ストーリーやポイントの見積もりを作成することができます。
  • 自動リファクタリング テクノロジーは、特定の言語またはプラットフォームのベスト プラクティスに基づいて既存のコードをリファクタリングすることで、コードの品質を瞬時に向上させることができます。
  • ログ分析テクノロジーは、異常なアクティビティを自動的に認識してバグ レポートを作成したり、あるいは自動的に診断して問題を解決したりすることができます。

結論

人工知能は過去 10 年間で飛躍的な進歩を遂げましたが、プログラミングやテストを自動化するには、まだ長い道のりがあります。しかし、人工知能を利用したツールは、コードの品質を向上させ、バグを減らし、開発プロセスの他の部分を簡素化する方法で、開発者やテスターを支援することができ、チームの全員が利益を得ることができます。

将来的には、インテリジェントなオートコンプリートを使用してコードを書き、コミットする前に自動的にリファクタリングされることも珍しくなくなるかもしれません。また、デプロイ後に本番環境で問題が発生した場合には、関連するログ ファイルの抜粋や問題の原因となるコードの参照を含む通知が即座に送られてくるかもしれません。

AI ベースの最新ツールを UI テストに活用したいとお考えの方は、TestComplete の無料評価版をお申し込みいただき、当社のオブジェクト認識テクノロジーを活用して UI テストのプロセスを簡素化し、テストのメンテナンスを軽減する方法をご確認ください。

GUI テスト自動化製品 TestComplete の詳細は、こちら

この資料は、SmartBear の Blog で公開されている「How AI is Changing the Agile Testing Space」の日本語参考訳です。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする