SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Developers Summit 2024 セッションレポート(AD)

オーティファイが取り組むAI活用とは?──誰もがテストを自動化できるプラットフォームの実現を

【15-D-5】AIを活用した誰でもテストが自動化できるプラットフォームの実現に向けて

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

AI活用で実現している機能

 オーティファイでは、人間がより創造性の高い仕事に従事できるように、Autify for Webをリリースした約4年半前から要素の特定にAI活用を進めてきた。WebアプリケーションのE2Eテストコードを記述する場合、クリックすべきボタンなど、テストすべき要素の特定情報を入力する必要がある。

 だがAutifyでは、ユーザーがそれを入力する必要がない。これが可能なのは、「クリックや選択した要素の特徴情報を記憶し、テスト実行時にAIがその要素の特徴情報と同じ要素を特定しているからです」と松浦氏は説明する。

 要素特定にAIを活用する理由は、ユーザーの入力手間を省くからだけではない。テスト対象は変わり続ける性質であることも理由だ。「例えば住所が頻繁に変わる人の場合、住所の代わりにヒゲが生えている、メガネをかけているみたいなところで人を特定するのと同じようなことです」(松浦氏)

 例えば、Webデザインを少しだけ変更することは頻繁に起こりうることだ。だが、そうするとHTMLのコードも変わる。自分でテストスクリプトを書いている場合、前回のまま使用してしまうとテストは失敗してしまう。Autifyであれば、デザインの変更により特徴情報の一部が変わっても、前回のテスト実行時との要素認識のずれを検知するセルフヒーリングという仕組みを持つ。「類似度が比較的高ければ、そのままテストを実行できる」と言い切る。

 類似度が低かったり、要素がなくなったりする場合は失敗し、人間に確認を促す。一方、モバイルアプリのテストには、特有の問題がある。モバイルアプリの場合はHTMLで要素の状態が記述されていないため、HTMLを使った要素の特定ができない。そこでAutifyでは、スクリーンショットに注目し、画像情報から必要な情報を抽出することに取り組んでいる。

 画像情報をもとに、指定した要素をAIが判断し、抽出・特定する。またセルフヒーリング同様、画像情報を基に変化があった要素を探索できる。「私たちが独自開発したAIモデルを使って実現しています」(松浦氏)

 さらにユニークなAI活用の仕組みとして松浦氏が紹介したのは、チェックボックスの認識である。一般的なチェックボックスは<input>というタグを使って表現する。だが昨今のチェックボックスは<input>タグではないもので実装されることも多い。つまり実装がさまざまで人間が見ても分からないことが多いのだ。

 このような異なる実装のチェックボックスが存在すると、その違いを認識できずテストが失敗することになる。そこでAutifyでは、チェックボックスの見た目から選択・非選択を判断するAIモデルを作成。「このモデルが実現できたのは、私たちがたくさん積み重ねてきたテスト実行の事例があったからです」と松浦氏は話す。この仕組みにより、チェックボックスのテストが非常に楽になる。「このように私たちはいろいろなところでテストの自動化をスムーズにするAIを開発しています」(松浦氏)

 とはいえ、これらの仕組みは容易に実現できたわけではない。AIモデルの作成には機械学習で行うが、それには大量のデータが必要になる。だがテスト自動化に使えるデータセットはあまりないという問題があった。たとえデータが大量にあったとしても、学習させるには正解情報をつける(アノテート)必要がある。「この正解情報をつける作業は非常に手間がかかる」と松浦氏は明かす。しかも間違った情報をつけてしまうと、それ自体高精度である必要があるのだ。

 高精度を保つため、Autifyではさまざまな工夫を行っている。例えば、文字認識もその一つ。800〜5000万といった日本語と数字が混ざって表示されているケースをOCRで読み取るのは非常に難しい。だがAutifyは特化したデータで学習させているため、精度高く認識できる。

前回のテスト実行時との要素認識のずれをAIが検知
前回のテスト実行時との要素認識のずれをAIが検知

 また問題が発生した場合も、顧客からの問い合わせや失敗したテストケースを分析することで、問題にあわせてモデルをチューニングしている。もちろんリグレッションがないようにテストも入念に行っているそうだ。

次のページ
LLMの活用でより抽象度の高いテスト工程を効率化

関連リンク

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
Developers Summit 2024 セッションレポート連載記事一覧

もっと読む

この記事の著者

中村 仁美(ナカムラ ヒトミ)

 大阪府出身。教育大学卒。大学時代は臨床心理学を専攻。大手化学メーカー、日経BP社、ITに特化したコンテンツサービス&プロモーション会社を経て、2002年、フリーランス編集&ライターとして独立。現在はIT、キャリアというテーマを中心に活動中。IT記者会所属。趣味は読書、ドライブ、城探訪(日本の城)。...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

CodeZine編集部(コードジンヘンシュウブ)

CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

山出 高士(ヤマデ タカシ)

雑誌や広告写真で活動。東京書籍刊「くらべるシリーズ」でも写真を担当。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

提供:オーティファイ株式会社

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/19277 2024/04/26 12:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング