ナレッジ

実機検証とは。目的や端末ごとの検証方法について解説

実機検証とは。目的や端末ごとの検証方法について解説

ソフトウェア検証にはさまざまな検証方法があり、どれか一つを行っただけではその製品の品質を担保できたことにはなりません。

本稿では、実機検証という実機を使った検証方法で、設計目標と性能要件が適切に満たされていることを確認し、シミュレーターや机上判断では見つけられない不具合の発見や製品の性能確認について説明します。

実機検証とは?

実機検証とは、机上検証やシミュレーターなどの模擬施設/機器で行う検証とは異なり、実際の製品として一般的に売り出されている設備やデバイスを使用して、一般ユーザーの環境により近い形で検証することです。

そもそも実機とは?

【実機】とはソフトウェアやアプリケーション(以下、アプリ)がインストールされて作動する物理的なデバイスや設備のことで、例えばスマートフォン(以下、スマホ)やパソコン、サーバーなどが該当します。

実機検証を行う目的

ソフトウェアは、さまざまな条件により不具合が発生したり、発生しなかったりすることがあります。

このため、ソフトウェア開発における検証は、机上判断や開発環境のみの疑似的な環境での検証だけではなく、そのソフトウェアを動かす実際の環境と同じ条件下で正常に動作するかを確認する作業も必要になります。

つまり実機検証は、開発環境だけでは発見することが難しい不具合を見つけるために行う活動です。

机上判断とは?

机上判断とは画面上の情報だけを見て判断することを指します。

コードやモジュールの設計図などから、プログラムの実行結果と一致するかどうか、また設計が要求仕様に適合しているかどうかを、実際にプログラムを動かさずに判断することを指します。

実機検証と机上検証の違い

それでは実機検証と机上検証ではどのような違いがあるのでしょうか?

机上判断は、ソフトウェア開発の初期段階で問題を見つけるには非常に有効となります。

一方で、実装の詳細や動作の視覚的な理解不足などにより問題が発生する可能性があり、実機での動作を検証することでのみ確認できるような、パフォーマンス問題などを検出することが難しいです。

メリット

デメリット

机上判断

・ソフトウェア開発の初期段階で問題発見が可能
・システム全体の大局的な視点での評価が可能

・ユーザーニーズや理解不足による市場ニーズとの乖離が発生する可能性がある
・パフォーマンスなどのユーザー環境による問題が発見できない

実機検証

・ユーザーニーズを理解し、動作確認ができるので乖離がある部分の修正依頼や指摘が可能
・パフォーマンスなどのユーザー環境による問題の発見が可能

・ソフトウェア開発の初期段階では実機上で動くソフトウェアの完成度が低いため、問題発見が遅くなる
・実機の準備が必要でコストが高くなる

図表1:机上判断と実機検証のメリット・デメリット

実機検証の実施手順

実機検証の一般的な手順には、テスト計画の策定、検証環境の準備、テストの実施、そしてテスト結果のレビューとフィードバックがあり、これらのステップを順次行うことで実機検証で見つけられる不具合の検出が可能となります。

実機検証の実施手順
図表2:実機検証の実施手順

1)テスト計画の策定

実機検証におけるテスト計画の項目は下記の通りです。

項目

内容

テストの目的

要件を満たしていること、製品がそもそも動作すること、全体のパフォーマンスなどの確認

テストの範囲

シミュレーターや机上検証ではカバーできない、もしくは実質的に難しい部分が対象

※デバイス特有のハードウェアの挙動(センサーの動作やバッテリー使用量)、デバイス間のインタラクション、ネットワーク接続の影響なども含まれます。

テストの環境

使用する実機の決定/ユーザー環境を考慮したテスト環境の設定/製品がサポートする機種やバージョン/ネットワーク条件/バックグラウンドプロセスや他のアプリケーションとの競合 など

スケジュール

テスト実施の日程や期間を明確に設定

※個々のテストケースの実行予定時間、テストケースの順番、人員の割り当てなどもこの段階で計画します。

テストケース

実機検証で確認する具体的なシナリオを定義。通常の操作手順のシミュレーションだけでなく、エッジケースや異常系のシナリオも考慮する必要がある。

※上記の「テストの目的」と「テストの範囲」に基づき作成。各テストケースは期待する結果(正常系)または想定したエラーメッセージ(異常系)を含め、テストの成功か失敗かを明確に判断できる基準を設けます。

図表3:実機検証のテスト計画の項目

2)検証環境の用意

テスト計画で決まったテストケースを実行するための環境を用意します。

  • 実際のテストに使用する実機
  • 想定ユーザーが使用するであろう環境(光回線や接続機器など)
  • テストデータ

3)テスト実施

テスト計画で決まったテストケースを実行します。

  • 実機を使った机上判断やシミュレーターで実施できないテストケースの実行
  • 不具合の報告
  • 修正された不具合の修正確認

4)テスト結果のレビュー&フィードバック

  • テスト結果をレビューし、その結果の分析を行い、次回のテスト実施手順の改善を行う
  • レビュー結果を元に開発チームと品質に関する合意を行う
  • レビュー、フィードバック活動を通してプロセスの改善を行う
  • テストから学んだことを共有し、プロジェクト固有の問題やテスト手法の最適化を行う

以上のように、テスト計画~テスト結果のレビュー&フィードバックまでの流れは、通常のテストプロセスとそれほど相違はありません。

特徴は、実際にそのソフトウェアを使用する【ユーザー環境】に限りなく近づけた状態でテストを実行することです。

実機検証をする際のチェックポイント&注意点

続いて実機検証をする際のチェックポイントと注意点についてです。

スマホアプリでの実機検証の場合

スマホアプリでの実機検証をする場合、特に考慮しないといけないのは「どの機種のスマホを使って検証するのか」ということです。

検証したい内容・観点によって、検証に適したスマホの機種やグレードは変わってきます。レイアウト崩れを確認したいのか、Bluetoothの接続性検証をしたいのか、OSの互換性を検証したいのか、特定の機能を確認したいのか。主とする観点、もしくは検証したい内容によって、利用するスマホを選ぶ基準も変わってきます。例えば、画面サイズ、解像度、OS、Bluetoothバージョンなどです。

このとき、検証用のスマホを適当に選定して実機検証をしてしまうと、期待した動作確認・検証ができなかったり、本当に検証が必要なポイントを確認しないまま進めてしまったりと効果的な検証をできなくなる可能性があるため注意が必要です。

可能であればユーザー数の多い(市場によく出回っている)スマホで検証できるとなお良いでしょう。

動作に必要なOSとそのバージョンの要件

スマホアプリの検証で使用するスマホを選定する際には、OSとそのバージョンの要件に注意する必要があります。

テスト対象となるスマホアプリがiOSとAndroid OSのどちらに対応したアプリなのか、動作のサポートをするOSバージョンはどの範囲なのかを確認した上で端末を選定します。アプリのOSに対する仕様は顧客側と認識を合わせておくことが大切です。

動作に必要なハードウェアの要件

スマホアプリの中には、スマホの機能(Bluetooth、Wi-Fiなど)を通して別のハードウェアと接続した上で利用するものがあります。

そういったアプリの検証時には、別のハードウェア側の要件にも考慮が必要です。特にスマホ-機器間の接続は検証に使用するハードウェアによって通信規格も接続方法もさまざまなため、よく仕様を把握しておくことが重要です。

ハードウェアに関する要件の中でよく考慮すべき点は、以下のようなものがあります。

通信に関する要件

  • Bluetoothを使ってスマホと機器を接続するか
  • Wi-Fiルーターを通したネットワーク内接続か
  • USB接続か、もしくはNFC機能を使うか

接続するスマホ側のOSに関する要件

  • AndroidとiOSのどちらにも対応しているか
  • どこまで古いバージョンのOSまでサポートしているか

上記の他にも複数のハードウェアを利用して検証する予定であれば、ハードウェア同士の距離はどれだけ離す必要があるのか、他のBluetooth機器などから干渉を受ける可能性はあるのかといった検証環境に対する影響も確認する必要があります。

解像度の異なる機種でUI崩れがないか調べる

解像度とは画面サイズのことではなく、画面に映像や画像を表示する際にその画面に表示できる1つの点(画素)の数のことを指します。それぞれの画素が色や明るさを変えることで画像や映像、文字を画面上に表現しています。

画面に何かを表示する際に関係するのが解像度ですが、表示する解像度の違いによって、同じ画面を見ていても表示崩れや、画像がつぶれるといったUI崩れが発生することがあります。

エミュレータを使用して、ある端末の画面サイズを想定した検証対象画面を確認するときにエミュレータ上に対象画面を表示する画面の解像度と実機の解像度に差があった場合、エミュレータ上では発生しなかったUI崩れが実機の方では発生するといった問題が起こることもあります。

画面サイズが同じでも解像度に差がある場合には、できる限りそれぞれの実機で確認したがほうが良いでしょう。

解像度と密接に関係してくるのが画面サイズです。さまざまな画面サイズのスマホが発売されている昨今、同じシリーズのモデルでも一回り画面の小さいモデルや一回り画面の大きなモデルが同時に発売されることも当たり前になってきました。同じシリーズのモデルであったとしても同じ画面を見るとき、画面サイズや解像度の違いによって当然見え方やレイアウトが変わってきます。

効率的にUI崩れを検証する際には、シェア率が高いと思われる端末の画面サイズをよく考慮して、検証する端末を複数選定した上で実施することが重要です。

Webアプリケーションでの実機検証の場合

Webアプリケーションでの実機検証では、スマホアプリでの検証で挙げた注意点に加えて、使用するブラウザやPCについても考慮する必要があります。

Webブラウザ上で動作するアプリケーションは検証対象となる端末のジャンルが広くなりやすいため、検証する端末の種類やブラウザ、OS、バージョンなど、Webアプリケーションの動作に影響を与えやすい部分をしっかりカバーして検証することが重要です。また、ネットワークなど、実施環境についても注意が必要です。

サーバーサイドの動作確認

サーバーサイドの動作確認をする際には、以下のような点を考慮する必要があります。

  • サーバーとの通信を行うネットワークは安定しているか(電波状況は悪くないか)
  • クライアントPC側に特別なセキュリティが施されていないか
  • 使用するネットワークの回線にも特別なセキュリティが施されていないか
  • 検証の内容によっては必要なセキュリティが施されているか
  • VPNにつないでいるか

会社のPCや回線には特別なセキュリティが施されていることが多々あります。一般家庭でアプリを利用するユーザーを対象としたアプリケーションを検証する場合、検証する側に上記のようなセキュリティが施された環境で実施すると、ユーザー側で発生することのないような通信や挙動が見られる可能性があります。

このため、サーバー側に問題があるのか、検証側の環境に問題があるのか、判断が難しくなる場合があるので注意が必要です。

検証の内容としてネットワークに干渉(例えば、遅延やデータロスなど)させたり、通信中に接続を切ったりする「いじわる試験」のような項目を実施することもよくあるかと思います。この際に見られる挙動はテスト対象やブラウザによってさまざまで、どのような挙動が見られるのが正なのか、お客様と事前に仕様についてよく認識合わせをしておきましょう。

主要ブラウザでの動作確認

ブラウザでの動作確認は以下のような観点で実機検証を行います。

  • ブラウザごとの対応している文字コード
  • コードに使用している言語
  • ブラウザのバージョン

また、検証を行う箇所は、

  • CSSは期待した通りに反映されているか?
  • ボタンをクリックした際の挙動は想定通りか?
  • 遷移した先の画面でエラーは表示されないか?
  • ウィンドウのサイズが変わった時のレイアウトは想定通りか?
  • リンククリック時の挙動(たぶん、新規ウィンドウでの表示など)は想定通りか?

など、文字コードや言語、ブラウザバージョン以外にも考慮が必要で、どのブラウザでも期待した表示や動作が見られるかを確認する必要があります。

スマホでの動作確認

スマホでの動作確認の場合、「主要ブラウザでの動作確認」の内容に加えてタップ、スワイプ、フリック操作、画面回転といったスマホならではの操作に対する挙動を確認する必要があります。タップ一つ挙げても、ダブルタップをした際に画面は拡大されるのか、ロングタップをした際の挙動はどうなるのかなど、アプリの仕様についてよく考慮するべきでしょう。

スマホ端末自体の画面サイズによって表示は変わるかと思いますが、それだけでなく端末を縦から横に回転させた際に表示はどうなるのかといった部分にも注意が必要です。

広告の確認

広告を確認する際には、表示される場所について想定通りの箇所に表示されているかを確認することはもちろんのことです。それ以外にも表示されている画像、内容、リンク先は期待通りのものになっているか、表示される広告の個数は想定通りか、といった表示される場所や遷移先にまで注意が必要な場合があります。

時間が経過すると広告の内容が変わるといった場合もあるため、実際にその時間を経過させ、想定通りの変更が見られるかなど、時間を要する検証を実施することもあります。

静止画でなく、動画や音声が流れる広告を表示させる場合もあります。このタイプの広告を確認する際には動画が想定通りに再生されているか、音声のON/OFFを切り替えられるかといったところまで注意が必要です。

実機検証はユーザー理解と品質の向上に貢献できる

以上のように、ユーザーに近い環境で実機検証することで、机上判断やシミュレーターでは発見できない問題を発見することができ、高品質のソフトウェアを提供できるようになります。

また、それだけではなく、ユーザーが最終的にどのように製品を使用するのかを理解することで、製品におけるユーザー体験の改善や意図しない問題の早期発見、そして製品の全体的な信頼性と性能の向上に貢献できるのが実機検証です。

ベリサーブでは実機での互換性検証サービスを行っています。テスト対象に適したツールを選定しますので、ぜひご相談ください。 

互換性検証サービス|ソフトウェアテスト・第三者検証のベリサーブ

■関連サービス■

互換性テストサービスLite

SNSシェア

この記事は面白かったですか?

今後の改善の参考にさせていただきます!

Search Articles By The Cast出演者/執筆者から記事を探す

Search Articless By The Categoryカテゴリから記事を探す

Ranking

ランキング

もっと見る