拡張現実/AR・テスト入門
拡張現実/ARアプリケーションのテストの世界をのぞいてみましょう。
(By Likitha Lokesh. Translation by Haruka Makabe, from original English version on Medium.com)
拡張現実(AR)やバーチャルリアリティ(VR)の技術は、もはやテーマパークやゲームにとどまらず、さまざまな業界や領域の企業にとって事業戦略に欠かせないものとなりつつあります。
また、これらの技術の成長は、今後も続くと予想されます。
拡張現実(AR)や仮想現実(VR)のアプリケーションで高品質な体験を確実に提供することは、これらの技術で作られたアプリケーションに携わる品質保証担当者にとって非常に重要です。
この記事では、次のことについて説明していきます。
拡張現実(AR)とは何か、どのようにそれらを使うのか、そしてなぜ拡張現実を使うのか。
Azure Spatial Anchorsを使用したARスケジューリングアプリの説明
拡張現実(AR)アプリケーションのテストロードマップおよび戦略の概要
拡張現実(AR)とは何か、どのようにそれらを使うのか、そしてなぜ拡張現実を使うのか。
拡張現実(AR)とは?
Wikipediaによると、拡張現実感とは、現実世界に存在するオブジェクトが、コンピューターによって生成された知覚情報によって拡張された、現実環境のインタラクティブな体験と定義されています。
バーチャルリアリティ(VR)や複合現実感(MR)とはどう違うのですか?
AR、VR、MRは似ていて、よく混同されます。ARは現実世界の上に仮想のレイヤーを重ねたもの、VRは仮想世界と現実の入力を組み合わせたものと考えていただければよいでしょう。MRはこの両方の側面を兼ね備えています。ここでは、この3つを比較してみましょう。
なぜこれらの技術を使う必要がありますか?
ARアプリは、従来のUI/UX技術以上のインタラクティブでカスタマイズされたユーザー体験を消費者に提供することを支援します。
Azure Spatial Anchors を使用したルームスケジューリングアプリの例
この会議室スケジュール可視化アプリは、各会議室のドアにピン留めされた仮想のスケジュールを提供し、従業員が携帯電話をスキャンすることで、指定されたフロアの各会議室の会議予約を閲覧・予約できるようにするものです。
これにより、ユーザーはその時々の空室状況を素早く簡単に把握できます。
このアプリは、Augmented Realityアプリケーションをサポートするマイクロソフトの技術であるAzure Spatial Anchorsを利用して、部屋のスケジュールを可視化をするものです。
スペイシャルアンカーとは?
空間アンカーとは、トラッキングシステムが仮想オブジェクトの位置や向きを現実世界に対して正しく保つために使用する、現実世界における仮想の点のことである。空間アンカーにはコンピュータビジョン技術が用いられ、GPSやWi-Fiなどと組み合わせることができます。
Azure Spatial Anchor とは何ですか?
Azure Spatial Anchorsは、アンカーの永続性とパーミッションを追加し、ユーザーが近くのコンテンツを見つけられるように、アプリケーションでアンカーを接続できるようにします。Azure Spatial Anchorsは、Unity、ARKit(iOS)、ARCore(Android)、UWP(Hololens)のプラットフォームをサポートしています。
Azure Spatial Anchorsの技術は、以下のような特徴を持ち、スケジュール管理アプリに搭載されています。
ここでは、会議室スケジュールアプリで各会議室のスケジュールを確認する画面を紹介します。
会議室予約アプリデモ
Azure Spatial Anchorsは、様々な業界の多くのアプリケーションで使用されています。ここでは、その使用事例の一部をご紹介します。
ヘルスケア産業: 皮膚に静脈の画像を投影して静脈の位置を特定し、仮想X線撮影、腫瘍の表示など使用されます。
不動産業: 不動産業者のチームから、問題点、仕様、事実などを記録するために、歩きながら空間を通してメモを配置するために使用されます。
小売業界: 特定の食料品を見つけるための道案内や、ビジュアルコンテンツを表示するために使用します。
トレーニング目的: 産業機器に関する情報を提供するのに使用されます。
アクセシビリティ-機能: 空間音響を利用した視覚障がい者支援に使用されます。
ナビゲーション: テーマパーク、倉庫、国立公園など、広い場所での移動に役立ちます。
都市の壁画やデジタルアート: オブジェクトや場所が現実の芸術的な多次元体験や解釈を提供できます。
建築のビジュアライゼーション: コンピューターで作成した構造物の画像を、実際の建物を建設する前に現実の土地に建物のイメージ設置し確認したりできます。
ゲーム: 現実世界でのデジタルゲーム体験
テストロードマップおよび戦略
拡張現実(AR)のユースケースが増えるにつれ、ARアプリケーションをテストするための新しいテスト戦略を開発する必要があります。これは、未知の部分が多いため、大変な経験です。
BJアバーレよる、以下の4つのルールです。
まず完璧にわからなくても大丈夫、安心してください! (経験者でも恐る恐る手探りです!)
これらが何であるかを理解します(ブラックボックステストのように!)。
プロジェクトチームとの話し合いで調整されたクリエイティブなソリューションを実現します
早めのテストと頻繁にテストをする
学んだ・発見したことを必ず文書化をし、進化させていきましょう。
以下は、私が最初に行った調査から得た主な教訓です。
拡張現実は比較的新しい概念である。
QA(品質保証)の分野では、まだあまり知られていません。
アプリ内でボタンをクリックするのではなく、デバイスを移動させる必要があります。
照明やその他の識別要素など、物理的な条件を考慮する必要があります。
ユーザーエクスペリエンスは、デバイスやオペレーティングシステムによって異なる場合があり、費用と時間がかかります。
ARのテスト戦略には、以下のようなユニークな要件があり、それを成形する必要があります。
それぞれについて、テストの方法を深く掘り下げてみましょう。
ツールの選定について
SeleniumやAppiumなど、ARアプリケーションの自動化に特化した業界標準のツールは存在しません。そこで、iOSやAndroidで利用できるネイティブのテストツールやフレームワークを利用して、以下のような手動テストや自動テストを実施しました。
テストデバイスについて
私たちは、iOSやAndroidの物理デバイス、シミュレーターやエミュレーターを使用することにしましたが、以下のような課題や制約がありました。
テスト対象範囲
テストすべき領域とコンポーネントを特定し、以下のテストタイプに分類しました。
テスト・オートメーション
自動テストは、iOSアプリケーションにはSwiftを使用したXCUITestフレームワーク、AndroidデバイスにはKotlinを使用したEspressoフレームワークを使用して構築されます。
iOSまたはAndroidデバイスのカメラ機能を制御して、事前に録画された環境ビデオキャプチャ-を供給することで、環境スキャンのステップを回避します。
テストは従業員の役割を想定し、自動化スクリプトの入力として指定できる特定の座標に基づいて画面をタップします。
アンカーをタップしながら、テキストフィールドに部屋名を入力します。
部屋名を入力して送信すると、ユニークなIDを持つクラウドアンカーが正常に作成されたことを示す確認メッセージが表示されます。
テストはIDを抽出し、APIレスポンスとAzure Databaseのクエリ結果に対して検証を行います。
自動化の未来(クラウド)
テストクラウドプラットフォームのBitbarは、GoogleのARアプリの自動化に協力し、専用のプライベートクラウドデバイスのセットを作成しました。
LEDで表面を照らすことで、照明条件が安定しない問題を解決しています。
また、下図のように、デバイスを物理的に動かして環境をキャプチャするために、ユーザーによって制御されるAPIコール上で平面を振動させる振動面と特注のコントローラで構成されるハードウエア配置を提供します。
テストケースのシナリオ
テストシナリオは、実世界との対話に基づき、エンドユーザーにとって最高の体験を保証するものです。
テストでは、アンカーをさらに作成し、位置を特定するために必要なフィードバックを得るために、環境を動き回っています。
以下は、ARアプリをテストするためにキュレーションされたテストシナリオの一覧です。
アクセシビリティー機能
特別なニーズを持つユーザーのためのアンカーを探すテスト
音声読み上げの機能によるテスト
照明条件
さまざまな環境の照明条件でのテスト
iOSまたはAndroidデバイスの輝度設定を変えてのテスト
環境中のオブジェクト
複数のアイテムが置かれた環境でのアンカー設置テスト
一度に1つのアイテムを取り除き、アンカーが壊れるまで位置を確認し始めるテスト
アンカーと実世界の間にオブジェクトを配置するテスト
アンカーが設置される面
表面はアンカーを設置する際に影響しますか?
ドアがラミネート加工されたり、交換されたりします。ガラスのような反射率の高い素材や、繰り返し模様のある表面で、アンカーの作成と配置をテストしてください。
マルチユーザーエクスペリエンス、シングルセッションとマルチセッション
複数のユーザーがアンカーを探そうとしているとき、アンカーはどのような挙動を示すか?
シングルセッションとマルチセッションでのアンカーの挙動を記録する
道案内(アンカーを階段状につなぐ)
複数アンカー間の相互作用のテスト
モーションを確認する。速度の速い・遅いなど
アンカーを探すためにユーザーが常に動いている場合はどうするか - 環境スキャンが100%になるまで、その動きに対するフィードバックが提供される
ユーザーがアプリを開き、部屋の中をスキャンし始めると、0%から100%までの進捗がフィードバックされる
動きが遅かったり動かなかったりする場合、「Not enough motion」と表示されます。
動きが速すぎる場合、「Motion is too quick」と表示されます。
適度な動きの場合は、進行状況を示すインジケーターと「Keep moving」というメッセージでフィードバックされます。
ユーザーは、空間全体をスキャンしながら適切なフィードバックを受けることで、明確な精度でアンカーを作成し、位置を決めすることができるようになります。
Hololensを使用した場合のモーションシックネス(乗り物酔い)について
ジェスチャー認識装置
さまざまなジェスチャーや手の動きによるアンカーの動作テスト
アンカーを移動、タッチ、スクロールダウンさせたときのアンカー動作のテスト
メモリとバッテリーの状態
さまざまなバッテリー条件でのテストとパフォーマンスの記録
またはAndroidの異なるバージョンでのテスト
近接
さまざまなプロキシミティをテストし、アンカーを見つける、作る
照明条件とタイムゾーン
自然光と人工照明の下、さまざまな時間帯(朝、夕)でアンカーをテストする
Wi-Fiや位置情報サービスを利用した場合と利用しない場合
Wi-Fiと位置情報サービスのオン・オフをさまざまに組み合わせ、アンカーの位置をテストします。
例)シナリオ ユーザーは、あらかじめ設定された(静的な)アンカーの位置を360度の視点から探そうとする - ユーザーはアンカーの周囲をあらゆる方向から歩きながら、正確にアンカーの位置を特定できる必要があります。
キーテイクアウェイ
拡張現実(Augmented Reality)と仮想現実(Virtual Reality)は新しい技術ですが、急速に発展しています。テスト担当者がこの種のアプリケーションの検証を成功させるためには、それらが何であり、どのように使用されるかを知ることが重要です。
ARアプリケーションでは、ツールの選択、テストデバイス、テスト範囲、テストの自動化、テストシナリオに独自の要件が発生します。しかし、これらはそれぞれ、考えと計画によって対処できます。
ARアプリケーションのテストは、プロジェクト管理、ソフトウエアエンジニアリング、UXデザインなど、すべてのチームメンバーが協力して、AR技術、提供する機能、成果、制限についてブレインストーミングを行い理解し、成功するテストロードマップを作成し達成する必要があります。
参考文献
セッションやデバイスを超えた空間アンカーの共有。https://docs.microsoft.com/en-us/azure/spatial-anchors/tutorials/tutorial-share-anchors-across-devices?tabs=VS%2CAndroid
Azure Monitorにカスタムメトリクスを送信する。https://docs.microsoft.com/en-us/azure/azure-monitor/platform/metrics-store-custom-rest-api#create-and-authorize-a-service-principal-to-emit-metrics
プライバシーと倫理設計のためのAzure Spatial Anchorアプローチ。https://www.linkedin.com/pulse/azure-spatial-anchors-approach-privacy-ethical-design-alex-kipman
スクリーンショットのキャプチャーとアクセス。https://rderik.com/blog/understanding-xcuitest-screenshots-and-how-to-access-them/
Anchorsを使ったUXの経験。https://docs.microsoft.com/en-us/azure/spatial-anchors/concepts/guidelines-effective-anchor-experiences
アンカーを使ったロギングと診断。https://docs.microsoft.com/en-us/azure/spatial-anchors/concepts/logging-diagnostics
AR/VRのテストを学ぶ。https://www.linkedin.com/pulse/learn-test-augmentedvirtual-reality-arvr-prashant-kumar/
この記事が気に入ったらサポートをしてみませんか?