BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ アーティクル メタバースにおけるテストが向かう未来

メタバースにおけるテストが向かう未来

キーポイント

  • メタバースのコンセプトを定義し理解することは、その没入感、相互接続性、消費者に無限の体験を提供する能力など、想定される特性を探ることから始まる

  • メタバースを現実のものとするには、データのプライバシーやセキュリティ、個人の安全やバーチャルハラスメントに至るまで、多くのエンジニアリングリスクや品質に関する懸念がつきまとう

  • テスト駆動型設計の原則をメタバースの開発に適用することで、チームは早期のリスク特定と、メタバースがテスト可能なことを保証できる

  • メタバースで許容レベルのテストカバレッジを達成するには、AIや機械学習を活用した高度なテスト自動化機能が必要な場合がある

  • テスターは、ユーザーの共感、創造性、好奇心、コラボレーション、コミュニケーションといった貴重なスキルをメタバース開発にもたらし、その成功を可能にする上で重要な役割を果たすことになりそうだ

メタバースのアイデアはフィクションとして始まったが、近いうちに現実のものとなる可能性が高い。メタバースは、さまざまな最新のコンピューティング技術を結集させ、より深い社会的なつながりと経験を持つインターネット体験という壮大なビジョンを実現する。しかし、メタバースの仕様、設計、開発、検証、および全体的な提供には、エンジニアリング上の大きな課題がある。この記事では、メタバースのコンセプトについて説明し、その主要なエンジニアリング上の課題と品質上の懸念について述べ、次に、これらの課題を軽減するのに役立っているAIとソフトウェアテストの最近の技術進歩について紹介している。 最後に、メタバースにおけるテストの未来に向けたソフトウェアテスターの役割について、私の考えを述べる。

メタバース

メタバースに関するあらゆる宣伝や口コミで、メタバースが何であり、どのようなものであるかを正確に説明することはますます難しくなってきている。はっきり言って、メタバースはまだ実際には存在しない。したがって、メタバースを説明するには、現代のさまざまなコンピューティング技術によって促進される単一の普遍的なシミュレーション世界としてのインターネットの仮説的反復であると考えるのがよい。 メタバースを3つの言葉で表現すると、没入感、相互接続性、無限に広がるものになるだろう。 この3つの特徴をもう少し掘り下げてみよう。

没入感

メタバースは、仮想環境と現実環境、あるいはその2つの組み合わせによって、人々をさまざまな体験に引き込む。拡張現実(XR)と総称される仮想現実、拡張現実、合成現実または複合現実の技術を用いることで、これまでとは異なる新たなレベルの没入感が得られると予測されている。 ユーザーエクスペリエンスデザイナーのTijane Tall氏は、これらの体験の没入感における主要な差別化要因を次のように説明している。

  • 仮想現実(VR):非物理的な世界に物理的に存在しているような感覚を味わうことができる。 VRは完全にデジタル環境を使用し、現実世界をほとんど感じさせない合成体験にユーザーを包み込むことで、完全な没入感を得られる

  • 拡張現実(AR):物理的な世界にデジタル情報を重ね合わせる。VRとは異なり、ARは現実世界をユーザーエクスペリエンスの中心に据え、仮想情報を用いて拡張する

  • 合成現実または複合現実(MR):仮想環境と現実環境を融合させる。MRはARと似ているが、単純な情報の重ね合わせにとどまらず、物理的及び仮想的オブジェクトの間の相互作用を可能にする

昨年のCESで展示された技術も、新たなレベルの没入感を実現することが期待されている。 例えば、OVR Technologyという会社は、8つのアロマを入れる容器を備えたVRヘッドセットを展示し、それらを混ぜ合わせることで様々な香りを作り出すことができる。バーチャル体験に匂いをもたらすヘッドセットは、今年後半に発売される予定だ。

相互接続性

今日、「メタバース」と呼ばれる仮想世界は、すべてではないにせよ、ほとんどが分離・分断されている。例えば、人気メタバースゲームである「Roblox」と「Fortnite」間の統合はほとんどない。では、もしその逆だとしたらどうだろうか? この2つの体験の間に深い統合があったとしたら、RobloxからFortniteへ、あるいはその逆へとアバターを移動させることができ、そうすることで彼らの体験をシームレスに移行できる。 メタバースでは、たとえ異なる仮想空間だとしても、ある空間、場所、世界から別の空間へ、この種のシームレスな移行がありえる。 アバターのカスタマイズや好みなども、希望すればそのまま引き継がれるのだ。これは、世の中のすべてがまったく同じに見えるべきだということではない。 むしろ、平等というより、視覚的に同等になる。 その結果、Fortnite空間でのスポーツTシャツとRobloxでのTシャツは違って見えるかもしれないが、色やブランドによって、これが自身のアバターだとわかる。ブロックチェーン、セキュリティ、暗号通貨、NFT(Non-Fungible Token)など、さまざまな技術の統合が、完全に相互接続されたメタバースを確立するために必要であろう。

無限の広がり

メタバースにおいて、様々なユーザーと様々な異なる体験を実現する可能性は、無限に広がるだろう。 すでにいくつかのプラットフォームでこのような現象が起きており、現代のビデオゲームやVR/AR体験は、想像できるほとんどすべてのものが没入体験になり得ることを証明している。 もちろん、現実世界もあらゆるテクノロジーも限界があるため、これは少し誇張された表現だが、没入感と相互接続性に加えて、さまざまな体験が積めることが、メタバースというアイデアを魅力的にしていることは間違いないだろう。

メタバースエンジニアリングのリスクと品質への懸念

メタバースへの関心と投資が高まる中で、物理世界と仮想世界の境界が曖昧な環境における潜在的なリスクについて、多くの人が懸念を抱いている。 メタバース開発にまつわる主なエンジニアリングのリスクと品質への懸念には、以下のようなものがある。

  • アイデンティティと評判:メタバースにおけるアバターが本人であることを保証し、アバターのなりすましや評判を落とすような行為からユーザーを保護すること

  • 所有権および財産:仮想資産や芸術作品などのデジタル資産の作成、購入、所有権の付与と検証をすること

  • 窃盗と詐欺:決済システム、銀行、その他の商業形態がメタバースに移行するにつれて、金銭的利益を得るための窃盗、詐欺、その他の犯罪が発生すること

  • プライバシーとデータの悪用:悪意あるアクターがメタバースで自分の存在を検知されないようにし、見えないように会議に参加したり、会話を盗聴したりすること。また、データの悪用のリスクも大きく、誤報に対する保護も必要である

  • ハラスメントと個人の安全:メタバースにいる間、特にXR技術を使用する場合、様々な形態のハラスメントからユーザーを保護すること。 この種の体験の出現は、今やハラスメントや個人の安全が物理的なものだけでなく、今やバーチャルな体験としても守られるべきものであることを意味している

  • 法律と管轄権:世界中の誰もがアクセスできる仮想空間の境界線やルールを特定し、誰にとっても安全で安心なものにすること。 メタバースのガバナンスは、前述したリスクをいくつも併せ持つ

  • ユーザーエクスペリエンス:メタバースが、人々がつながり、有意義な関係を築き、斬新なデジタル体験に浸れる空間になるためには、視覚、聴覚、性能、アクセス性、その他のユーザーエクスペリエンスに関する懸念に対処するしなければいけないこと

継続的なテストによりメタバースのリスクを軽減する

ソフトウェアテストは、リスクが現実のものとなり、プロジェクトの遅延や損害を引き起こすことを評価し、緩和し、防止するためのものである。 私はいつもエンジニアリングチームに対して、ソフトウェアテストを全体的な視点で捉え、開発プロセスの不可欠な工程として扱うことを勧めている。 これは、テストは継続的なもののため、製品の初期段階から始まり、システムが本番にデプロイ後でも持続するという考え方である。

テスト駆動型メタバース設計

私の研究仲間は、ソフトウェアプロジェクトの初期段階において、テストをヘッドライトとして使用するというアイデアを説明した経験がある。 彼が例えたのは、風の強い危険な夜道を走る車の例であり、道路に見えるのは車のヘッドライトから投射される光だけである。 走行中の車はソフトウェアプロジェクトであり、道路の端はリスク、ヘッドライトはテスト関連の活動である。 プロジェクトが進むにつれ、テストはプロジェクトのリスクに光を当て、エンジニアリングチームはリスクの特定、定量化、見積もり、そして最終的には軽減を通じて、情報に基づいた意思決定が可能になる。 同様に、メタバースの設計と開発を始める際に、チームはリスク軽減のためにテスト駆動設計のテクニックを活用できる。これらには、以下のようなものがある。

  • 受け入れテスト駆動型設計(ATDD):顧客、開発、テストの視点を用いて、関連する機能を構築する前に、共同で受け入れテストを作成する。 このようなテストは、システムがどのように動作するかを記述するための要求事項の一形態として機能する。

  • テスト容易化設計(DFT):デプロイ前後のテスト実行を容易にするため、多くのテストおよびデバッグ機能を備えたシステムを開発する。 言い換えれば、テストは、出来上がったシステムをより観察、制御しやすくするための設計上の懸念事項として扱われる。

メタバーステスト

メタバースのテストにおいて、許容できるレベルのカバレッジを達成するには、高度な自動化が必要になるだろう。従来のデスクトップ、ウェブ、モバイルアプリケーションと比較すると、3D、オープンワールド、拡張現実、オンライン体験の状態空間は、実に広大で指数関数的な大きさである。メタバースでは、いつでも自分のアバターを所定の体験にナビゲートし、さまざまなアイテムやカスタマイズを装備し、他の人間やコンピュータ制御のキャラクターと交流可能になる。 コンテンツ自体は常に進化し続けるため、エンジニアリングの視点からは常に動くターゲットとなる。十分なテスト自動化機能がなければ、メタバース用のテストの作成、実行、維持は、非常に高価で、退屈な反復の作業となるだろう。

メタバースのテストにAIを活用する

朗報は、AIと機械学習(ML)の進歩が、高度な適応性、伸縮性、拡張性のある自動テストソリューションの作成に役立っていることだ。私は以前、Test.aiのチーフサイエンティストとして、AIとMLを自動テストに適用する複数のプロジェクトをリードする喜びを味わったことがある。ここでは、メタバース的な体験の自動テストにAIを活用する、もっとも関連性の高いプロジェクトと有望な方向性について詳しく説明する。

デジタルアバターのテストにAIを活用する

画像

コンピュータビジョンの進歩は、テスト自動化の可能性を大きく広げる。ボットは、人間と同じように視覚的要素を認識し、検証するように学習が可能となる。概念実証として、SoulMachinesが開発したデジタルペルソナに視覚的検証を実施した。これは、デジタルパーソンが話しているとき、返事を待っているとき、笑っているとき、真剣なとき、混乱しているときなどのシナリオを認識するために、オブジェクト検出分類器を学習するものである。AIを活用し、デジタルアバターとの会話ベースのインタラクションを検証するための自動テストを開発した。これには2種類の入力操作があった、1つは画面上のテキストチャットウィンドウを使ったもので、もう1つはビデオストリームをタップして、あらかじめ録画された動画を人間とのライブインタラクションだとボットを「だます」ものである。そのため、テストエンジニアは、デジタルパーソンに動画で質問や応答を事前に記録することができ、自動化によってアバターが適切な反応や応答をしたかをチェックできる。OpenAIのGPT-3やその最新版であるChatGPTのような大規模な変換器ベースの自然言語処理(NLP)モデルも、会話テストの入力データの生成や期待される反応の検証に活用できるのだ。

開発初期段階でも、学習されたボットは、アプリケーションのコンテキストに関連するインタラクションを認識し、それ以外を無視する方法を学習できた。具体的な例を見てみよう。下図は、笑顔というジェスチャーに対してボットが適切に反応できるかどうかを検証することを目的としたテストの実行結果である。笑顔が伝染することは周知の事実であり、微笑みかけられたら微笑み返さずにはいられない、そこで、ボットとのインタラクションのこの視覚的な面をテストしてみた。そこで、自動化によってデジタルパーソンを起動し、ライブ動画ストリームに接続し、デジタルアバターに当社のエンジニアの動画ストリームを見せると、しばらくして笑顔を見せ始めた。自動化により、笑顔に対するアバターの反応をチェックした。その結果を以下に示す。

図に示すように、ここでのボットが現在観察しているアバターと以前観察していたアバターを比較すると、2つの違いがあることに気づくだろう。まず、キャプチャの瞬間、アバターは青いボックスで示されるように目を閉じており、また歯が見えるほど大きく笑っている(赤いボックス)。しかし、我々のプラットフォームが生成した差分マスクは、笑顔という1つの差分しか報告しない。なぜかわかるだろうか?私たちのテストプラットフォームにバグがあるのだろうか?いや、その逆だ。ボットは、まばたきがデジタルアバターの通常のアニメーションサイクルの一部であることを学習していた。1枚の画像で学習するのではなく、実際には規則的な動きが含まれるアバターの動画で学習していた。これらのアニメーションは、今や真実の一部として認識されたことで、ここでのボットは、「満面の笑み」が標準からの逸脱であることを認識し、その変化とその変化のみを強調する画像差分マスクを生成する。AIは、人間と同じように、アバターが誰かに微笑まれて微笑み返したことに気づき、画面キャプチャの瞬きも単なる偶然であるとわかる。

ゲームプレイのテストにAIを活用する

ゲームのプレイに関しても、AIは長い道のりを歩んできた。数十年前、ボットは総当たり計算を使って、三目並べのようなつまらないゲームをプレイしていた。しかし現在では、自己学習と強化学習を組み合わせて、囲碁、アタリゲーム、マリオブラザーズなど、より複雑で直感的なゲームのエキスパートレベルに到達している。このことから、ボットがAIでできるのであれば、そのボットを前述のビジュアルテスト機能で拡張しないのだろうか?という疑問が生まれる。この文脈で考えると、ゲームプレイのテスト自動化の問題は、それほど難しく感じない。先に述べたゲームテストのためのAI技術を、AIを使ったリアルタイムのゲームプレイと組み合わせる環境に持っていくだけでいいのだ。

例を見てみよう。例えば、プレイヤーが武器を使って戦う一人称視点のシューティングゲームのテストを任されたとする。このゲームには協力プレイモードがあり、自分の視界には常に味方プレイヤーか敵プレイヤーのどちらかを入れることができる。ゲームプレイ中、プレイヤーには画面上にヘッドアップディスプレイ(HUD)が表示され、ヘルスポイント、キルカウント、武器のクロスヘアにターゲットとなる敵がいるかどうかなどを視覚的に表示する。ここでは、本作のゲームプレイメカニズムを自動的にテストでする方法を以下に紹介する。

  • リアルタイムオブジェクト検出とビジュアルディフティングを実装する。ゲーム中の画像や動画を用いてボットが敵、味方、武器、その他関心のあるオブジェクトを認識できるよう機械学習モデルを学習する。さらに、事前に記録した基本情報と比較して、ゲーム内で観察された視覚的な違いを報告するように学習する

  • ボットが実行できる基本的な動作をモデル化する。ボットがゲームをプレイすることを学ぶためには、まずボットが取ることのできるさまざまな動きやステップを定義する必要がある。この例ではボットは、前進・後退、左右の旋回、ジャンプやしゃがみ、照準、武器の射撃といった動作を行うことができる

  • 強化学習のための報酬を定義する。ボットが環境中で動作を起こせるようになったので、ランダムな動作を起こすように設定し、その結果に応じてプラスまたはマイナスの報酬を与えるようにしたい。この例では、3つの報酬を指定できる

    • ボットが敵プレイヤーに武器を仕向けるため、ターゲットにロックオンするとプラスの報酬を与える
    • ボットが敵を狙うだけでなく、武器を発射するようにするように仕向けけるため、キルカウントを増やすとプラスの報酬を与える
    • ダメージを受けないようにするため、ヘルスポイントが減るとマイナスの報酬を与える

オブジェクト検出、ビジュアルディフティング、アクションリギング、ゴールベースの強化学習機能が整ったところで、いよいよボットをゲーム環境に放して学習させる。最初、ボットは、敵を攻撃する、ダメージを受けない、といった目標を達成できないだろう。しかし、何千回と試行錯誤を繰り返すうちに、ボットはゲームをうまくプレイするようになる。 学習中、映像は将来の比較のためのベースラインとして使用することができ、また、ボットは映像の不具合を検出するように学習できる。 こちらは、訓練されたボットの1つが動作している動画だ。左上にはゲーム中の実況が、右上にはボットがほぼリアルタイムで見ているものを映像化したものが表示されている。

バーチャルリアリティのテストにAIを活用する

ソフトウェアベースのコントローラエミュレーションとRaspberry Piなどの汎用ハードウェアを組み合わせることで、ゲーム機、コントローラ、動画ストリーミング機器に至るまで、数種類のハードウェア機器を自動化できる。 このような統合ツールやドライバにより、ボットはこれらの機器の入出力機能を観察し、操作できるのだ。 ゲームやメタバーステストの研究開発の一環として、私たちはVRヘッドセットとの統合を行った。VRで入力を制御し、出力を観察できるようになったら、そのAPIを、我々がゲーミングコルテックスと呼ぶサブシステムに結びつけるだけでよかった。このサブシステムは、基本的に、前述のリアルタイムオブジェクト検出とゴールベースの強化学習を組み合わせたMLブレインである。

最終的には、エンジニアや外部プログラムがVR APIコントローラを呼び出し、その環境でのテストの定義や実行に活用できるようになる。ここでは、VR空間内でヘッドセットを回転させるヨー関数をプログラムで変更するスクリプトを実行し、その動作を見てみよう。

メタバースにおけるテストの未来

メタバースのような複雑なものを作るには、技術的・工学的な挑戦が必要だが、その開発には、テスターがインターネットの未来で重要な役割を果たすいくつかの機会をもたらすと私は確信している。 ソフトウェア体験がより「人間的」になるにつれ、ユーザーへの共感、批判的思考、リスク分析、創造性といったスキルがより必要となり、重視されるだろう。このような壮大なビジョンであるメタバースでは、かなりのレベルの「大局的」思考が必要とされるが、これもまた多くのテスターがもたらすスキルの1つである。 ここでは、優秀なテスターだけでなく、優れたテスターを連想させる、私のお気に入りのスキルをいくつか紹介する。

AI/MLがメタバース開発スタックの中核をなす場合、データ選択、パーティショニング、テストデータ生成などのテストスキルは、テスターを開発プロセスの前面に押し出す。それに伴い、メタバースが正しく、完全で、ユーザーフレンドリーで、安全で、セキュアであるだけでなく、テスト可能で、規模に応じて自動化できることを保証するために、受け入れテスト駆動型設計やテストしやすい設計などのアプローチを活用し、開発プラクティスとしてのテストにもっと焦点が当てられることも期待できる。

この記事で紹介した研究に貢献してくれたYashas Mavinakere氏、Jonathan Beltran氏、Dionny Santiago氏、Justin Phillips氏、Jason Stredwick氏に心から感謝する。

参考文献

作者について

この記事に星をつける

おすすめ度
スタイル

BT