エンジニアは「コードを書く」から「コードを検証する」役割へ
株式会社NTTドコモの子会社であるNTTレゾナントテクノロジーは、クラウド上で多種多様なスマートフォンの実機検証が可能なSaaS「Remote TestKit」を提供している。同サービスのプロダクトオーナーを務める角田和也氏が、生成AI時代のテスト自動化における課題や実機検証の重要性、そしてデバイスクラウドの選定ノウハウを解説した。
まず角田氏は「生成AI時代の品質保証の課題」を指摘した。生成AIによるコーディングが主流となった現在、「エンジニアの役割は、自らコードを書くことから、AIが生成したコードのレビューと検証へ移行している」と述べる。生成AIの活用により短時間で大量のコーディングが可能になり、生産性が向上したことは間違いない。
一方で、AIが生成したコードであっても品質の責任は人間が負う。コード量が増加し生成速度が上がれば、比例してバグ混入のリスクも増大する。実際、AI生成コードの内容を精査せずにマージしたり、セキュリティホールをチェックせずに開発を進行させたりするケースがあるという。
この課題を解消するために角田氏が強調するのが「テスト自動化の重要性」だ。ただし、AIが生成するテストコードは、AI自身が書いたコードをパスするように作成される傾向があるため注意を要する。角田氏は「E2Eテストは、最終的な要件との整合性を確認する観点から、人間が実施することが望ましい。実機テストも同様に人間による確認を推奨する」とした。
デバイスメーカー各社の独自実装やOSカスタムが引き起こす「実機依存」の不具合
角田氏はモバイル環境の断片化の状態を整理した「モバイル断片化マップ」を提示し、検証項目を5つのカテゴリで整理した。「UI/OS」「セキュリティ/認証」「ハード連携」「OSカスタム/電源」「ネットワーク/UX」の5つのカテゴリだ。

これらのリスクが実際の不具合につながった例も紹介された。例えば、F-Secure Labsの調査では、評価対象となったAndroidアプリの約70%が、有効な指紋なしで指紋認証を突破可能であることが明らかになっている。この要因は、製造メーカーごとに指紋スキャナーから認証APIまでの実装技術が異なっていた点にある。
OSのカスタマイズについても注意が必要だ。「XiaomiやOPPOなどの端末では、アプリがバックグラウンドに移動すると独自の省電力機能によりプロセスが強制終了されるなど、意図しない挙動を示す場合がある」と角田氏は指摘する。さらに、2021年3月に発生したWebViewのアップデート不具合による大規模障害を例に挙げ、外部環境の変化によるリスクを説いた。
「自分の知らない世界でアップデートが起きることによって、思いがけないバグが大量発生することもある。エミュレータのみのテストでは不十分であることを認識すべきだ」(角田氏)
ハードウェア依存の動作差異やメーカー独自のOS挙動を網羅するには、エミュレータでは限界がある。そこで、スマートフォンの実機をリモートで活用できる「デバイスクラウド」の選定が鍵となる。

