バーコードスキャン性能の測定方法
目次
バーコードスキャンの性能を数値化するのは簡単ではありません。開発者やプロダクトチームは何から始めればよいか分からず、ユーザーも技術的に求める内容をうまく伝えられないことが多いからです。ただ一つ明確なのは、現場の従業員はスピーディーなスキャンを求め、セルフスキャンアプリの利用者はストレスのない体験を期待しているということです。
このガイドでは、カメラを使ったバーコードスキャンアプリのパフォーマンステスト手法を詳しく解説します。小売や倉庫管理、ラストマイル配送など、あらゆる業界で活用できる、ユースケースに基づいた体系的なテスト方法を学ぶことができます。アプリがビジネス要件とユーザーの期待にどのように応えているかを正しく評価するための指針を提供します。
性能テストが重要である理由
Scanditが最近実施した調査によると、小売業の従業員が不満に感じているスキャンに関する問題は、使用しているアプリの性能に関するものです。これらの不満を軽減するには、まずバーコードスキャン性能のさまざまな側面を測定して、パフォーマンス最適化作業の優先順位を付けることが重要です。
バーコードスキャン性能を評価するための主な指標は、アプリがバーコードをキャプチャする速度と精度に関連する指標です。通常、これらの指標は、ユーザーが画面にバーコードを表示してから、バーコードが正しく認識されたとわかるまでの時間を測定します。
こうして測定された結果は、組織のユースケースによって異なります。一定時間内にスキャンされたバーコードの数を測定したいと考えるチームもあれば、スキャンのエラー率を知りたいチームもあります。
これらの指標は、業界固有のビジネスKPI(重要業績評価指標)に対応していますが、完全に同一という訳ではありません。たとえば、店舗での注文処理を行う小売業者は、15分間の平均注文ピッキング時間をKPIとして設定する目的で、スキャン速度の指標を決定する必要があります。
一般的なパフォーマンス指標は次のとおりです。
- 総スキャン時間:バーコードを含むシーンにカメラが適応し、カメラ画像を処理し、ラベル情報を抽出し、結果をアプリに送信するまでの時間(通常はコールバックメソッドを介して送信されます)。この指標は、ユーザーの生産性とアプリへの満足度に直接関係しています。
- スキャン精度:一連のキャプチャにおける誤検出(存在しないラベルデータのキャプチャ)およびバーコードデータの誤りの件数。
- 最大スキャン範囲:バーコードを正しくキャプチャできる最大距離。この指標は、バーコードの特性(サイズ、印刷の品質、種類)、環境条件(照明、ほこり)、およびデバイスカメラの機能と調整(露出、フォーカス処理、解像度)の影響を受けます。
- 低照度:低照度または暗い環境下でバーコードを検出およびキャプチャする能力です。
- バッテリー消費量:バーコードスキャン操作中のアプリの電力効率。CPUサイクル、ディスプレイのバックライト、カメラの使用、およびその他のデバイス特性の影響を受けます。
- 読み取り難いバーコードをスキャンする能力:破損したラベル、反射が発生しているバーコード、小さなバーコード、電子棚札(ESL)など、スキャンが困難なバーコードをデコードするスキャンソフトウェアの能力。
ただし、これらの数値だけを重視することは避けてください。多くの場合、実際のユースケースを検証することは、1秒あたりのスキャン数や誤検出率を知るよりも、問題点を明らかにする上で効果的です。たとえば、顧客は「1分間に100件スキャンできるアプリである」と知ることよりも、必要な製品情報を迅速かつ正確に入手できることを重視します。
テストに関する以下のベストプラクティスは、上記の指標をエンドユーザーの期待と整合させる上で役立ちます。
ベストプラクティス1:ユースケースに基づいてテストを実施する
バーコードの読み取りは、デスクトップ上ではなく実環境で行われます。バーコードスキャンの性能を正確に評価するには、ユースケースに基づいたテストアプローチを採用することをお勧めします。実際のユーザーが実際の環境でソフトウェアをテストすることで、テスト条件はユーザーが遭遇するシナリオがテスト条件に反映されます。また、その場での正確なフィードバックも得ることができます。
このアプローチでは、開発プロセスの速い段階で問題を特定して対処することができるため、アプリケーションの導入後にスムーズで効率的なユーザー体験が実現できます。
テストケースを設計する際には、以下の目標を考慮してください。
- ソリューションの導入先と同じ環境でテストを実施します。これにより、実際の物理的なバーコード、照明条件、スキャン角度でのバーコードスキャンの性能と使いやすさに関する重要な洞察を得ることができます。
- 1人のユーザーではなく、多様な能力がある幅広いユーザーを含めるようにします。ユースケースに顧客が含まれる場合は、テスト計画に顧客を参加させるか、非技術系の社内テストユーザーに顧客の役割を演じてもらいます。各ユーザーは、アプリとスキャンプロセスに慣れるための2回のトライアルから始めて、統計的に有意な数のテストケース実行(少なくとも10回)を実施してください。
- 異なるバーコードシンボロジー、サイズ、印刷品質、背景を含む多様なシナリオをカバーします。
- バーコードのキャプチャからバックエンドシステムの更新まで、エンドツーエンドシステムをテストします。これにより、キャプチャしたデータがすべてのシステムに適切かつ迅速に反映されることを確認できます。
- 画面に情報が表示される速度やバックエンドシステムに保存される速度に影響を及ぼす可能性があるため、ネットワークの遅延を考慮してください。
業界別にテストケースの例をいくつか示します。
- 小売業:棚の下段からのスキャンや、開店前に従業員が補充作業を行う状況(例:照明が暗めに設定されている)を想定したテストを組み込みます。
- ラストマイル配送:インターネット接続が不安定または接続できない状況を想定したテストを組み込みます。
- 物流:車庫内での車両への荷積みと屋外での荷積みの比較など、倉庫内と倉庫外のシナリオを含めます(下図参照)。
デスクトップでのテスト
後で実環境でのテストを実施する予定で、デスクトップでバーコードスキャンをテストする必要がある場合は、以下の点を考慮してください。
ベストプラクティス2: 実際のユーザーデバイスでテストする
バーコードスキャンソフトウェアの性能は、デバイスのハードウェアに依存します。これには、CPU、GPU、RAM、チップセット、カメラ、オートフォーカス技術などの仕様と構成が含まれます。
アプリが本番環境で正常に動作することを確認するため、ユーザーが使用するのと同じデバイスでバーコードスキャンソフトウェアを導入し、テストしてください。その際には、すべてのモデルおよび仕様を含めます。これにより、古い低価格のデバイスを使用しているユーザーが、使用できないアプリに困ることがなくなります。
テスト用ハードウェアを指定する際は、以下の基準を考慮してください。
- すべてのデバイスが、バーコードスキャンSDKで指定された最小推奨仕様を満たしていることを確認してください。これらの仕様を下回るデバイスがある場合、パフォーマンスの低下を考慮してテスト指標の調整が必要になることがあります。Scanditソフトウェアのシステム要件については、こちらをご覧ください。
- 開発者用デバイスではテストしないでください。開発者用デバイスはユーザーデバイスと仕様が異なるため、パフォーマンス指標に偏りが生じる場合があります。
- バーコードスキャンをテストする際は、コンピュータのモニターにラベルを表示しないでください。代わりに、印刷されたバーコードラベルをさまざまな位置、状態(隠れたり破れたりした状態)、照明環境で使用してください。
その他のパフォーマンス最適化の手段としては、必要なシンボロジーのみを有効にする、デバイスカメラを推奨設定にする、ユーザー体験(UX)のベストプラクティスを採用してユーザーの利便性を高める、などが挙げられます。パフォーマンス最適化に関するScanditのブログでは、これらの最適化について詳細に説明しています。
Scanditのパフォーマンスを実際にテストしてください。
ベストプラクティス3:最新バージョンのスキャンソフトウェアを使用する
選択したバーコードスキャンソフトウェアの最新バージョンを使用することで、最新の最適化、バグ修正、ハードウェア固有の適応が保証され、性能を最大限に引き出すことができます。
たとえば、Scanditソフトウェアの最新バージョンには必ず最新のアルゴリズムとパフォーマンスチューニングが含まれているため、お使いのアプリで最新のハードウェアプラットフォームとソフトウェアプラットフォームのメリットを最大限に活用できます。
ベストプラクティス4: 体系的なテストを実施する
体系的な手法ではテストが厳密に作成されるが、ランダムな手法では任意のデータが生成される。
「The Importance of Software Testing(ソフトウェアテストの重要性)」、IEEE Computer Society
体系的なテストでは、テストケースを単一の機能やコードの変更を検証する最小のステップに分解します。たとえば、バーコードシンボロジーのサポートに欠落があるかどうかを確認するには、すべてのシンボロジーを一度にテストするよりも、個別にテストした方がはるかに迅速に検出することができます。また、テストユーザーが複数のシナリオ間を移動するのではなく、1回のスキャン操作を行う方が、UXの問題を特定しやすくなります。
体系的なアプローチを採用することで、すべての機能とユースケースがテストされていることを確認でき、問題を特定のコンポーネントに絞り込めるため、修正が容易になります。
ベストプラクティス5: ユースケースに最適なテスト手法を選択する
バーコードスキャンソリューションのテストには異なるアプローチが存在するため、自社のユースケースと選択した指標に最適な手法を見つけることが重要です。
一般的に使用されるのは以下の手法です。
- タイムアンドモーションスタディ(時間動作研究)は、シミュレートされた環境でバーコードスキャンを直接観察してパフォーマンスを測定します。たとえば、一定数のバーコードをスキャンする「スキャンコース」が挙げられます。タイムスタディは、タスクに要する時間を測定するためにタイマーを使用し、モーションスタディは活動を録画して、ユーザーがスキャンプロセスで苦労したり遅くなったりする箇所を特定します。これらの研究はシミュレーションに基づくため、設定と結果の解釈には十分な注意が必要です。
- 時間を測定しながら行うプロセス比較(別名「プロセスA/Bテスト」)では、実際のプロセス環境においてバーコードスキャンを直接観察し、従業員の満足度を測定します。従業員が通常の環境で通常のテクノロジーを使用してタスクを実行する際にKPIを測定し(Aテスト)、他のテクノロジーを使用した結果と比較します(Bテスト)。これは、時間制限のある個々のプロセスをカバーする場合に非常に信頼性が高いテスト方法です。
- サイトA/Bテストは最も高度なテストです。このテストでは、店舗や倉庫などのサイトのすべての関連KPIを、従業員がさまざまなテクノロジーを使用する期間中に測定します。結果を比較することで、どのテクノロジーがより良い成果をもたらすかについて信頼できる洞察を得ることができます。
テストケースの例:小売店の棚でのバーコードスキャン
ユースケースベースのテストシナリオを設定する方法をわかりやすく説明するため、小売店の棚にある商品の在庫数をバーコードスキャンするテストケースの例を以下に示します。
テスト環境
- さまざまな商品を置いた小売棚のモックアップを用意し、要件に合った多様なバーコードタイプ(EAN、UPC、QRコードなど)が含まれていることを確認します。
- 商品を棚のさまざまな位置に配置し、実際の商品配置をシミュレートします。部分的に隠れていて、角度のついた、異なる高さにあるバーコードを含めます。
- テスト環境の照明条件が、ターゲット環境で通常見られる条件と一致していることを確認します。照明レベルを体系的に変更することにより、パフォーマンスが低下し始めるタイミングを確認できます。
- 各テストデバイスにバーコードスキャンアプリケーションをインストールし、必要最低限のデバイス要件を満たし、適切に構成され、バックエンドシステムに接続されていることを確認します。(アプリケーションは、SparkScanのようなツールを使用してバーコードを個別にスキャンしたり、MatrixScan Countのようなツールを使用して複数のアイテムを同時にバッチスキャンしたりする機能を提供している場合があります。)
テスト実行
- テストユーザーに、実際の在庫カウント時と同じようにバーコードスキャンを実施するよう指示します。これには、棚から商品を取り出し、さまざまな角度からバーコードをスキャンする、および課題(例:反射、破損したバーコード)に対処するなどが含まれます。
- テストユーザーにあらかじめ決められた一連の商品をスキャンさせ、各スキャンに要した時間を記録し、発生した問題をメモさせます。バックエンド在庫システムまたはERPに接続されている場合、そのデータがテスト商品と一致していることを確認してください。
- テストユーザーに練習実行を2回させて、環境に慣れてもらいます。統計的に信頼できる結果を得るため、各ユーザーが少なくとも10回のテスト実行を記録することが推奨されます。複数のユーザーと環境条件でテストを繰り返し、多様なパフォーマンスデータを収集してください。
テストデータ収集と分析
- 各バーコードスキャンについて、以下のデータポイントを記録します。
- 最初のスキャンが成功するまでの時間
- スキャンが成功するまでに必要だった試行回数
- 発生したエラーや誤検出
- テストユーザーからのフィードバック
- 上記のデータポイントを収集して分析し、性能のボトルネックやユーザーに関する共通の問題(特定のバーコードタイプや条件でスキャン速度が低下する、など)を特定します。
- これらの結果を、目標とするパフォーマンス指標およびビジネス要件と比較し、バーコードスキャン統合が必要な基準を満たしているかどうかを判断します。
Scanditにおけるバーコードスキャン性能のテスト方法
Scanditの開発チームは、幅広いデバイスでスキャン性能を測定し、データキャプチャにおける実際のユースケースを反映するために、包括的なテストを使用しています。2万種以上のスマートデバイスモデルに対応し、世界中で350万人超のエンドユーザーを有する2,000社以上の顧客アカウントからのフィードバックに基づいているScanditのテスト環境では、実際の状況を基にした多様なユースケースとワークフローが再現されています。
社内では、以下の2種類のテストを実施しています:
- 市場で最も使用されているデバイスを対象としたロボットベースのテスト。一貫性があり、再現可能で測定可能なアクションを実行し、詳細なパフォーマンス指標を抽出します。
- 特定の顧客シナリオや環境を対象としたユースケース特化型テスト。
一度の測定で、確実に導入
バーコードスキャン性能は、エンタープライズアプリケーションにバーコードスキャン機能を統合する上で不可欠です。体系的なユースケースベースのテスト手法を採用し、主要なパフォーマンス指標を把握することで、選択したアプリケーションがビジネスとユーザーの要件を満たすことを確認できます。
ハードウェア仕様はバーコードスキャン性能に影響しますが、バーコードを読み取るソフトウェアも同様に重要です。Scanditのバーコードスキャンソフトウェアは、幅広いスマートデバイスにエンタープライズグレードのスキャン性能を提供するように設計されています。
性能のテストを希望される場合には、無料トライアルにご登録ください。
Scanditのパフォーマンスを実際にテストしてください。