(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-05
(45)【発行日】2024-09-13
(54)【発明の名称】アプリケーションテスト装置及び方法
(51)【国際特許分類】
G06F 11/36 20060101AFI20240906BHJP
【FI】
G06F11/36 188
(21)【出願番号】P 2023099831
(22)【出願日】2023-06-19
【審査請求日】2023-06-22
(31)【優先権主張番号】10-2022-0073980
(32)【優先日】2022-06-17
(33)【優先権主張国・地域又は機関】KR
(73)【特許権者】
【識別番号】523232757
【氏名又は名称】オニーソフト インコーポレイテッド
(74)【代理人】
【識別番号】100091683
【氏名又は名称】▲吉▼川 俊雄
(74)【代理人】
【識別番号】100179316
【氏名又は名称】市川 寛奈
(72)【発明者】
【氏名】アブドゥライムジョノフ アブドゥラクモン
(72)【発明者】
【氏名】リ,ジュン ベ
(72)【発明者】
【氏名】シン,ジン
【審査官】西間木 祐紀
(56)【参考文献】
【文献】特開2011-028438(JP,A)
【文献】特開2017-138713(JP,A)
【文献】米国特許出願公開第2021/0326245(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/36
(57)【特許請求の範囲】
【請求項1】
互いに異なる仕様を有する一つ以上の仮想端末と連結され、前記仮想端末で実行されるアプリケーションのテストを実行するアプリケーションテスト装置であって、
アプリケーションテストのためのプログラムが組み込まれている保存部と、
前記プログラムを実行し、仮想端末の画面を介して提供されるアプリケーション実行イメージに予め学習されたディープラーニング技法を適用して前記画面上の客体を検出する制御部と、を含み、
前記制御部は、
ユーザーによって第1仮想端末の画面上で特定の客体が選択されると、特定の客体が選択された第1仮想端末及び前記特定の客体に対応する客体を検出するための第2仮想端末の画面サイズをリサイジング(resizing)し、前記リサイジング(resizing)されたそれぞれの仮想端末の画面をマッチさせることで、前記ユーザーによって選択された第1仮想端末上の特定の客体に対応する客体を前記第2仮想端末で検出することを特徴とする、アプリケーションテスト装置。
【請求項2】
前記制御部は、
ユーザーによって第1仮想端末の画面上の特定の客体が選択されると、前記第1仮想端末の画面を介して提供されるアプリケーション実行イメージに可変化したスケーリング値を適用してイメージのサイズをリサイジング(resizing)し、前記第2仮想端末の画面を介して提供されるアプリケーション実行イメージに予め設定されたスケーリング値を適用してイメージのサイズをリサイジング(resizing)することを特徴とする、請求項1に記載のアプリケーションテスト装置。
【請求項3】
前記制御部は、
前記第2仮想端末の解像度値を前記第1仮想端末の解像度値で割って計算した可変化したスケーリング値に、前記第1仮想端末の画面を介して提供されるアプリケーション実行イメージのサイズを掛けることで、前記第1仮想端末の画面を介して提供されるアプリケーション実行イメージをリサイジングすることを特徴とする、請求項2に記載のアプリケーションテスト装置。
【請求項4】
前記制御部は、
検出された前記客体のうち同種の客体が複数であると、
予め設定された優先順位インデックス技法によって前記第1仮想端末の画面上の複数の客体にインデックスを付与し、
前記複数の客体のうちのいずれか一つの客体がユーザーによって選択されると、付与された前記インデックスに基づいて前記第1仮想端末の画面上の客体とマッチするいずれか一つの特定の客体を前記第2仮想端末の画面上で検出することを特徴とする、請求項1に記載のアプリケーションテスト装置。
【請求項5】
前記ディープラーニング技法は、YOLO5であることを特徴とする、請求項1に記載のアプリケーションテスト装置。
【請求項6】
前記制御部は、
前記第1仮想端末の画面上の客体で特徴点(key point)を探知するとき、特徴マッチングアルゴリズムを使用して、前記第1仮想端末の画面上の客体とマッチする前記第2仮想端末の画面上の客体を検出することを特徴とする、請求項1に記載のアプリケーションテスト装置。
【請求項7】
前記特徴マッチングアルゴリズムは、SIFT(Scale-Invariant-Feature TRansform)及びFLANN(Fast Library for Approximate Nearest Neighbors)であることを特徴とする、請求項6に記載のアプリケーションテスト装置。
【請求項8】
アプリケーションテスト装置が実行するアプリケーションテスト方法であって、
アプリケーションテストのためのプログラムを組み込む段階と、
前記プログラムを実行し、仮想端末の画面を介して提供されるアプリケーション実行イメージに予め学習されたディープラーニング技法を適用して前記画面上の客体を検出する段階と、を含み、
前記画面上の客体を検出する段階は、
ユーザーによって第1仮想端末の画面上で特定の客体が選択されると、特定の客体が選択された第1仮想端末及び前記特定の客体に対応する客体を検出するための第2仮想端末のサイズをリサイジング(resizing)する段階と、
前記リサイジング(resizing)された各仮想端末の画面をマッチさせることで、前記ユーザーによって選択された第1仮想端末上の特定の客体に対応する客体を前記第2仮想端末で検出する段階と、を含むことを特徴とする、アプリケーションテスト方法。
【請求項9】
前記リサイジング(resizing)する段階は、
ユーザーによって第1仮想端末の画面上の特定の客体が選択されると、前記第1仮想端末の画面を介して提供されるアプリケーション実行イメージに可変化したスケーリング値を適用してイメージのサイズをリサイジング(resizing)する段階と、
前記第2仮想端末の画面を介して提供されるアプリケーション実行イメージに予め設定されたスケーリング値を適用してイメージのサイズをリサイジング(resizing)する段階と、を含むことを特徴とする、請求項8に記載のアプリケーションテスト方法。
【請求項10】
前記第1仮想端末の画面を介して提供されるアプリケーション実行イメージに可変化したスケーリング値を適用してイメージのサイズをリサイジング(resizing)する段階は、
前記第2仮想端末の解像度値を前記第1仮想端末の解像度値で割って計算した可変化したスケーリング値に前記第1仮想端末の画面を介して提供されるアプリケーション実行イメージのサイズを掛けることで、前記第1仮想端末の画面を介して提供されるアプリケーション実行イメージをリサイジングする段階を含むことを特徴とする、請求項9に記載のアプリケーションテスト方法。
【請求項11】
前記画面上の客体を検出する段階は、
検出された前記客体のうち同種の客体が複数であると、予め設定された優先順位インデックス技法によって前記第1仮想端末の画面上の複数の客体にインデックスを付与する段階と、
前記複数の客体のうちのいずれか一つの客体がユーザーによって選択されると、前記付与されたインデックスに基づいて前記第1仮想端末の画面上の客体とマッチするいずれか一つの特定の客体を前記第2仮想端末の画面上で検出する段階と、を含むことを特徴とする、請求項8に記載のアプリケーションテスト方法。
【請求項12】
前記画面上の客体を検出する段階は、
前記第1仮想端末の画面上の客体で特徴点(key point)を探知するとき、特徴マッチングアルゴリズムを使用して、前記第1仮想端末の画面上の客体とマッチする前記第2仮想端末の画面上の客体を検出する段階を含むことを特徴とする、請求項8に記載のアプリケーションテスト方法。
【請求項13】
前記特徴マッチングアルゴリズムは、SIFT(Scale-Invariant-Feature TRansform)及びFLANN(Fast Library for Approximate Nearest Neighbors)であることを特徴とする、請求項12に記載のアプリケーションテスト方法。
【請求項14】
請求項8に記載の方法を実行するプログラムが記録された、コンピュータ可読の記録媒体。
【請求項15】
アプリケーションテスト装置によって実行され、請求項8に記載の方法を実行するために記録媒体に保存された、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書で開示する実施例はアプリケーションテスト装置及び方法に関するものであり、より詳しくは、ディープラーニング技術とアプリケーション実行イメージマッチ技術とを融合してより正確で早く特定の客体を検出してアプリケーションのテストを実施することができるアプリケーションテスト装置及び方法に関するものである。
【背景技術】
【0002】
最近になって、多様なオペレーションシステム及び仕様(specification)を含むスマートフォンが販売されており、このようなスマートフォンで駆動可能な多様なアプリケーションが開発されている。
【0003】
アプリケーションの開発が完了すると、別個のテストによって検証が完了したアプリケーションのみを配布することになるが、当該アプリケーションの機能及び動作のそれぞれを互いに異なる多様なスマートフォンでテストするのには多くの時間及びコストが必要であるという問題点があった。
【0004】
よって、互いに異なる仕様を有する多数の仮想端末と連結してアプリケーションのテストを実施することができるテスト装置が開発された。しかし、従来技術によるテスト装置は、予め学習されたディープラーニング技法を用いるので、客体探知においてある程度性能が優れるが、同じ客体が探知される場合、ユーザーによって選択された特定の客体を探しにくいという問題点がある。また、仮想端末の仕様によってアプリケーションに含まれた一部の客体が画面に表示されない場合、互いに異なる画面と認識してアプリケーションテストの正確度が低下するという問題点が発生する。
【先行技術文献】
【特許文献】
【0005】
【文献】韓国公開特許第10-2012-0121950号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
本明細書で開示する実施例は、ディープラーニング技術を用いてアプリケーションの客体を正確に検出することができ、上述したディープラーニング技術とともにアプリケーション実行イメージマッチ技術を使用することで、多数の客体が検出される状況でもユーザーによって選択された特定の客体を探すことができ、より正確で早く客体を検出することができるアプリケーションテスト装置及び方法を提供することにその目的がある。
【0007】
本発明の他の目的及び利点は下記の説明によって理解することができ、一実施例よってより明らかになるであろう。また、本発明の目的及び利点は特許請求の範囲に示す手段及びその組合せによって実現することができることが容易に分かるであろう。
【課題を解決するための手段】
【0008】
上述した技術的課題を達成するための技術的手段として、互いに異なる仕様を有する一つ以上の仮想端末と連結され、前記仮想端末で実行されるアプリケーションのテストを実行するアプリケーションテスト装置は、アプリケーションテストのためのプログラムが組み込まれている保存部と、前記プログラムを実行し、仮想端末の画面を介して提供されるアプリケーション実行イメージに予め学習されたディープラーニング技法を適用して前記画面上の客体を検出する制御部とを含み、前記制御部は、ユーザーによって第1仮想端末の画面上で特定の客体が選択されると、特定の客体が選択された第1仮想端末及び前記特定の客体に対応する客体を検出するための第2仮想端末の画面サイズをリサイジング(resizing)し、前記リサイジング(resizing)されたそれぞれの仮想端末の画面をマッチさせることで、前記ユーザーによって選択された第1仮想端末上の特定の客体に対応する客体を前記第2仮想端末で検出することを特徴とする。
【0009】
他の実施例によれば、アプリケーションテスト装置が実行する方法は、アプリケーションテストのためのプログラムを組み込む段階と、前記プログラムを実行し、仮想端末の画面を介して提供されるアプリケーション実行イメージに予め学習されたディープラーニング技法を適用して前記画面上の客体を検出する段階とを含み、前記画面上の客体を検出する段階は、ユーザーによって第1仮想端末の画面上で特定の客体が選択されると、特定の客体が選択された第1仮想端末及び前記特定の客体に対応する客体を検出するための第2仮想端末のサイズをリサイジング(resizing)する段階と、前記リサイジング(resizing)された各仮想端末の画面をマッチさせることで、前記ユーザーによって選択された第1仮想端末上の特定の客体に対応する客体を前記第2仮想端末で検出する段階とを含むことを特徴とする。
【0010】
さらに他の実施例によれば、記録媒体は、アプリケーションテスト方法を実行するプログラムが記録されたコンピュータ可読の記録媒体である。前記アプリケーションテスト装置が実行する方法は、アプリケーションテストのためのプログラムを組み込む段階と、前記プログラムを実行し、仮想端末の画面を介して提供されるアプリケーション実行イメージに予め学習されたディープラーニング技法を適用して前記画面上の客体を検出する段階とを含み、前記画面上の客体を検出する段階は、ユーザーによって第1仮想端末の画面上で特定の客体が選択されると、特定の客体が選択された第1仮想端末及び前記特定の客体に対応する客体を検出するための第2仮想端末のサイズをリサイジング(resizing)する段階と、前記リサイジング(resizing)された各仮想端末の画面をマッチさせることで、前記ユーザーによって選択された第1仮想端末上の特定の客体に対応する客体を前記第2仮想端末で検出する段階とを含むことを特徴とする。
【0011】
さらに他の実施例によれば、コンピュータプログラムは、アプリケーションテスト装置によって実行され、アプリケーションテスト方法を実行するために記録媒体に保存されたコンピュータプログラムである。前記アプリケーションテスト装置が実行する方法は、アプリケーションテストのためのプログラムを組み込む段階と、前記プログラムを実行し、仮想端末の画面を介して提供されるアプリケーション実行イメージに予め学習されたディープラーニング技法を適用して前記画面上の客体を検出する段階とを含み、前記画面上の客体を検出する段階は、ユーザーによって第1仮想端末の画面上で特定の客体が選択されると、特定の客体が選択された第1仮想端末及び前記特定の客体に対応する客体を検出するための第2仮想端末のサイズをリサイジング(resizing)する段階と、前記リサイジング(resizing)された各仮想端末の画面をマッチさせることで、前記ユーザーによって選択された第1仮想端末上の特定の客体に対応する客体を前記第2仮想端末で検出する段階とを含むことを特徴とする。
【発明の効果】
【0012】
前述した課題解決手段のうちのいずれか一つによれば、ディープラーニング技術を用いてアプリケーションの客体を正確に検出することができる効果がある。
また、前述した課題解決手段のうちのいずれか一つによれば、多数の客体が検出される状況でもアプリケーション実行イメージマッチ技術を用いて、ユーザーによって選択された特定の客体を正確に検出することができる効果がある。
【0013】
また、前述した課題解決手段のうちのいずれか一つによれば、ディープラーニング技術とアプリケーション実行イメージマッチ技術とを融合して客体を検出するにあたり、検出時間を減少させることができ、より正確に客体を検出することができる効果がある。
【0014】
また、前述した課題解決手段のうちのいずれか一つによれば、多様な仕様(specification)を有する端末機を別に保有しなくても、オンラインで時空間の制約なしにアプリケーションをテストすることができる効果がある。
【0015】
開示する実施例で得られる効果は以上で言及した効果に制限されず、言及しなかった他の効果は下記の記載で開示する実施例が属する技術分野で通常の知識を有する者に明らかに理解可能であろう。
【図面の簡単な説明】
【0016】
以下、添付図面はこの明細書で開示する好適な実施例を例示するものであり、発明を実施するための具体的な内容とともにこの明細書に開示する技術思想をもっと理解させる役割を達成するものであるので、この明細書に開示する内容は図面に記載した事項のみに限定されて解釈されてはいけない。
【0017】
【
図1】一実施例によるアプリケーションテストシステムの概略構成図である。
【
図2】一実施例によるアプリケーションテスト装置の機能ブロック図である。
【
図3】一実施例によるアプリケーションテスト装置を説明するための例示図である。
【
図4】一実施例によるアプリケーションテスト装置を説明するための例示図である。
【
図5】一実施例によるアプリケーションテスト装置を説明するための例示図である。
【
図6】一実施例によるアプリケーションテスト方法のフローチャートである。
【
図7】
図6のS620段階のより具体的な説明のためのフローチャートである。
【発明を実施するための形態】
【0018】
以下では添付図面に基づいて多様な実施例を詳細に説明する。以下で説明する実施例は様々な相異なる形態に変形されて実施されることもできる。実施例の特徴をより明確に説明するために、以下の実施例が属する技術分野で通常の知識を有する者に広く知られている事項についての詳細な説明は省略する。そして、図面で実施例の説明に関係ない部分は省略し、明細書全般にわたって類似の部分に対しては類似の図面符号を付けた。
【0019】
明細書全般で、ある構成が他の構成と連結されていると言うとき、これは直接的に連結されている場合だけではなく、その中間に他の構成を挟んで連結されている場合も含む。また、ある構成が他の構成を含むというとき、特に反対の記載がない限り、さらに他の構成を除くものではなくて他の構成をさらに含むこともできることを意味する。
【0020】
以下、添付図面に基づいて実施例を詳細に説明する。
【0021】
ただ、実施例の説明に先立ち、以下で使用する使用する用語の意味を定義する。
【0022】
クラス(class)は客体の探知のために事前に分類された客体の集合であり得、ディープラーニング技法を用いて前記クラスをデータセットとして入力して学習させることで客体を分類することができる。
【0023】
客体(object)はアプリケーションの画面を構成するものであり得、例えば、アイコン、イメージ、ボタンなどであり得る。
【0024】
仮想端末はアプリケーションテスト装置内でプログラムの形態として駆動されるものであり、アプリケーションが実行された端末の画面の形態として表示されることができ、多様な仕様(specification)を有する多数の仮想端末として表示されることができる。ここで、仕様はオペレーションシステム(OS)、サイズ、解像度、製造社などであり得る。
【0025】
先に定義した用語の他に、説明が必要な用語は以下でそれぞれ別個に説明する。
【0026】
図1は一実施例によるアプリケーションテストシステムの概略構成図である。
【0027】
図1を参照すると、本実施例によるアプリケーションテストシステムは、アプリケーションテスト装置100及び多数の仮想端末200を含むことができる。
【0028】
アプリケーションテスト装置100は開発が完了したアプリケーションのテストのための装置であり、多数の仮想端末200を用いて多様な状況でアプリケーションのテストを実施することができる。ここで、多数の仮想端末200は、画面のサイズ、解像度、オペレーションシステム(OS)、製造社などの互いに異なる仕様を有することができる。一方、多数の仮想端末200はアプリケーションテスト装置100と別個の装置であると説明するが、本実施例によれば、多数の仮想端末200はアプリケーションテスト装置100内にプログラムの形態として具現されて表示されるアプリケーションが実行された端末の画面であり得る。実施例によれば、多様な仕様を有する端末を別に保有しなくても、オンラインで時空間の制約なしにアプリケーションをテストすることができる効果がある。一方、アプリケーションテスト装置100に関連したより詳細な説明は後述する。
【0029】
図2は一実施例によるアプリケーションテスト装置の機能ブロック図であり、
図3~
図5は一実施例によるアプリケーションテスト装置を説明するための例示図である。
【0030】
本実施例によるアプリケーションテスト装置はユーザーとインタラクションすることができるアプリケーションが組み込まれた電子端末機によって具現されるかサーバー-クライアントシステムによって具現されることができる。サーバー-クライアントシステムによって具現される場合、ユーザーとのインタラクションのためのオンラインサービス用アプリケーションが組み込まれた電子端末機を含むことができる。
【0031】
ここで、電子端末機は、ネットワークを介して遠隔地のサーバーに接続するか、他のデバイス及びサーバーと連結可能なコンピュータや携帯用端末機、テレビ、ウェアラブルデバイス(Wearable Device)などによって具現されることができる。ここで、コンピュータは、例えばウェブブラウザー(WEB Browser)が搭載されたノートブック型PC、デスクトップ(desktop)型PC、ラップトップ(laptop)型PCなどを含み、携帯用端末機は、例えば携帯性及び移動性が保障される無線通信装置であり、PCS(Personal Communication System)、PDC(Personal Digital Cellular)、PHS(Personal Handyphone System)、PDA(Personal Digital Assistant)、GSM(Global System for Mobile communications)、IMT(International Mobile Telecommunication)-2000、CDMA(Code Division Multiple Access)-2000、W-CDMA(W-Code Division Multiple Access)、Wibro(Wireless Broadband Internet)、スマートフォン(Smart Phone)、モバイルWiMAX(Mobile Worldwide Interoperability for Microwave Access)などのようなすべての種類のハンドヘルド(Handheld)基盤の無線通信装置を含むことができる。また、テレビは、IPTV(Internet Protocol Television)、インターネットTV(Internet Television)、地上波TV、ケーブルTVなどを含むことができる。さらに、ウェアラブルデバイスは、例えば時計、メガネ、アクセサリー、衣服、履物など、人体に直接着用可能なタイプの情報処理装置であり、直接または他の情報処理装置を介してネットワークを経由して遠隔地のサーバーに接続するかまたは他のデバイスと連結されることができる。
【0032】
そして、サーバーは、アプリケーションテスト装置のユーザーとのインタラクションのためのアプリケーションまたはウェブブラウザが組み込まれた電子端末機とネットワークを介して通信可能なコンピュータによって具現されるかまたはクラウドコンピュータサーバーによって具現されることができる。また、サーバーはデータを保存することができる保存装置を含むかまたは第3サーバーにデータを保存することができる。
【0033】
上述したように、アプリケーションテスト装置は、電子端末機、サーバーまたはサーバー-クライアントシステムのうちのいずれか一形態として具現されることができる。サーバーとして具現される場合、アプリケーションテスト装置を構成する構成部は物理的に分離された複数のサーバーで実行されるかまたは単一のサーバーで実行されることができる。
【0034】
図2を参照すると、一実施例によるアプリケーションテスト装置100は、入出力部110、通信部120、保存部130、及び制御部140を含む。
【0035】
入出力部110は、ユーザーから入力を受信するための入力部と、作業の実行結果またはアプリケーションテスト装置100の状態などの情報を表示するための出力部とを含むことができる。例えば、入出力部110は、ユーザー入力を受信する操作パネル(operation panel)及び画面を表示するディスプレイパネル(display panel)などを含むことができる。
【0036】
具体的には、入力部は、キーボード、物理ボタン、タッチスクリーン、カメラまたはマイクなどのように多様な形態の入力を受信することができる装置を含むことができる。また、出力部は、ディスプレイパネルまたはスピーカーなどを含むことができる。ただ、これに限定されず、入出力部110は多様な入出力を支援する構成を含むことができる。
【0037】
通信部120は、他のデバイス(装置)及び/またはネットワークと有無線通信を実行することができる。このために、通信部230は、多様な有無線通信方法のうちの少なくとも一つを支援する通信モジュールを含むことができる。例えば、通信モジュールはチップセット(chipset)の形態として具現されることができる。
【0038】
一方、通信部120が支援する無線通信は、例えばWi-Fi(Wireless Fidelity)、Wi-Fi Direct、ブルートゥース(登録商標)(Bluetooth)、低電力ブルートゥース(BLE;Bluetooth Low Energy)、UWB(Ultra Wide Band)、NFC(Near Field Communication)、LTE、LTE-Advancedなどの無線移動通信などであり得る。また、通信部120が支援する有線通信は、例えばUSBまたはHDMI(登録商標)(High Definition Multimedia Interface)などであり得る。
【0039】
保存部130は、ファイル、アプリケーション及びプログラムなどのような多様な種類のデータが組み込まれるか保存されることができ、RAM、HDD及びSSDなどの多様な種類のメモリのうちの少なくとも一つを含むように構成されることができる。後述する制御部140は、保存部130に保存されたデータに接近してこれを用いるか、または新しいデータを保存部130に保存することもできる。また、制御部140は、保存部130に組み込まれたプログラムを実行することもできる。一方、保存部130には、一実施例によるアプリケーションテスト方法を実行するためのプログラムが組み込まれることができる。
【0040】
制御部140は、CPU、GPU、アルディーノなどのような少なくとも一つのプロセッサを含む構成であり、アプリケーションテスト装置100の全般的な動作を制御することができる。すなわち、制御部140は、アプリケーションテストのための動作を実行するように、アプリケーションテスト装置100に含まれた他の構成を制御することができる。また、制御部140は、保存部130に保存されたプログラムを実行するか、保存部130に保存されたファイルを読み取るか、または新しいファイルを保存部130に保存することもできる。
【0041】
実施例によれば、制御部140は、保存部130に保存されたアプリケーションテストのためのプログラムを実行することができる。
【0042】
制御部140は、アプリケーションテストのためのプログラムを実行して、仮想端末の画面を介して提供されるアプリケーション実行イメージから客体を検出することができる。より具体的には、制御部140は、プログラムを実行して、仮想端末の画面を介して提供されるアプリケーション実行イメージから予め学習されたディープラーニング技法によって画面上の客体を検出することができる。例えば、制御部140は、仮想端末の画面を介して提供されるアプリケーション実行イメージから予め学習されたディープラーニング技法によって画面上でアイコン、コンテナ、チェックボックス、コントローラーなどのような客体を検出することができる。ここで、客体(object)はアプリケーションの画面を構成するものであり得る。ここで、予め学習されたディープラーニング技法はYOLO5であり得る。YOLO5は客体探知ディープラーニング技法の一つであり、アプリケーションの画面を構成する多数の客体が含まれたクラス(class)をデータセットとして入力して学習させることで、客体を分類することができる。ここで、クラスは客体の探知のために事前に分類された客体の集合であり得る。上述したように、客体探知ディープラーニング技法は、事前に学習されて仮想端末の画面を介して提供されるアプリケーション実行イメージから客体を探知するのに使用してより正確に客体を探知するようにすることができる。
【0043】
一方、制御部140は、ユーザーによっていずれか一つの仮想端末の画面上で特定の客体が選択されると、ユーザーによって選択された特定の客体に対応する客体を他の仮想端末の画面上で検出することができる。ここで、
図3を参照すると、上述した仮想端末210、220は仕様が互いに異なることにより、いずれか一つの仮想端末でユーザーによって選択された特定の客体Aが他の仮想端末で正しく検出されないこともある(A’)。例えば、仮想端末は、画面のサイズ及び解像度が異なることにより、いずれか一つの仮想端末でユーザーによって選択された客体が他の仮想端末で正しく検出されないことがある。よって、本実施例によれば、制御部140は、アプリケーションが実行される画面のサイズを補正する作業を実行することができる。ここで、説明の便宜のために、ユーザーによって特定の客体が選択される画面を有する端末を第1仮想端末と仮定し、かつ特定の客体に対応する客体を検出するための画面を有する端末を第2仮想端末と仮定し、上述した第1仮想端末及び第2仮想端末は互いに仕様が異なる端末であり得る。また、上述した仮想端末は二つであると説明するが、これに限定されず、より多数の仮想端末が存在することもできる。
【0044】
例えば、制御部140は、ユーザーによって第1仮想端末の画面上で特定の客体が選択されると、特定の客体が選択された第1仮想端末の画面サイズをリサイジング(resizing)することができる。本実施例の説明において、第1仮想端末の画面サイズをリサイジング(resizing)することは、第1仮想端末の画面上の客体サイズをリサイジングすることを意味することができる。また、制御部140は、第1仮想端末の画面上でユーザーによって選択された特定の客体に対応する客体を検出するための第2仮想端末の画面サイズをリサイジング(resizing)することができる。上述したように、第2仮想端末の画面サイズをリサイジング(resizing)することは、第2仮想端末の画面上の客体サイズをリサイジングすることを意味することができる。より具体的には、第1仮想端末の画面サイズ、すなわち、第1仮想端末の画面上の客体サイズのリサイジング(resizing)は下記のような数学式1及び数学式2によってなされることができる。より具体的には、数学式1によって可変化したスケーリング値を求め、数学式1によって求められた可変化したスケーリング値を数学式2に適用することで、第1仮想端末の画面サイズ、すなわち、第1仮想端末の画面上の客体サイズをリサイジング(resizing)することができる。
【0045】
[数学式1]
*可変化したスケーリング値_幅(width)=第2仮想端末の解像度_幅(width)/第1仮想端末の解像度_幅(width)
*可変化したスケーリング値_高さ(height)=第2仮想端末の解像度_高さ(height)/第1仮想端末の解像度_高さ(height)
【0046】
[数学式2]
*計算された第1仮想端末の画面上の客体サイズ_幅(width)=可変化したスケーリング値_幅(width)×第1仮想端末の画面上の客体サイズ_幅(width)
*計算された第1仮想端末の画面上の客体サイズ_高さ(height)=可変化したスケーリング値_高さ(height)×第1仮想端末の画面サイズ_高さ(height)
【0047】
一方、上述した数学式2によって計算された第1仮想端末の画面上の客体サイズは、異なる解像度を有する第2仮想端末上で対応する客体を検出するために補正されたサイズ値であり得る。ここで、上述した数学式1で、可変化したスケーリング値の算出のために第2仮想端末の解像度が使用されているので、上述した数学式1及び数学式2によると、計算された第1仮想端末の画面上の客体サイズは第1仮想端末の画面上の客体に対応する第2仮想端末画面上の客体を検出するために、補正された第2仮想端末の画面上の客体サイズを意味することができる。よって、上述したように計算された第1仮想端末の画面上の客体は後述するリサイジングされた第2仮想端末の画面を介して提供されるアプリケーション実行イメージの客体とマッチするので、第1仮想端末でユーザーによって選択された客体を第2仮想端末で検出することができる。
【0048】
言い換えれば、制御部140は、ユーザーによって第1仮想端末の画面上の特定の客体が選択されると、これに対応する第2仮想端末の画面上で客体を検出するためにそれぞれの仮想端末の画面をマッチさせる。ここで、各仮想端末の仕様が互いに異なるので正常にマッチされなくて客体の検出が正しくできないことがある。よって、制御部140は、ユーザーによって第1仮想端末の画面上の特定の客体が選択されると、第2仮想端末の画面上で上述したユーザーによって第1仮想端末で選択された特定の客体に対応する客体を検出するための事前作業を実行することができる。すなわち、制御部140は、第1仮想端末の画面を介して提供されるアプリケーション実行イメージに可変化したスケーリング値を適用してイメージのサイズをリサイジング(resizing)することができる。より具体的には、制御部140は、第2仮想端末の解像度値を第1仮想端末の解像度値で割って計算した可変化したスケーリング値に第1仮想端末の画面上の客体イメージサイズを掛けることで、計算された第1仮想端末の画面上の客体イメージサイズを求めることができる(上述した数学式1及び数学式2参照)。例えば、
図3に示すように、第1仮想端末の解像度が591×1280であり、第2仮想端末の解像度が1080×2340であると、可変化したスケーリング値(幅)は1080/591=1.827であり、可変化したスケーリング値(高さ)は2340/1080=1.828であり得る。一方、第1仮想端末の画面上の客体サイズが40×40であると、計算された第1仮想端末の画面上の客体サイズは、上述した数学式2によって計算すると、それぞれ40×1.827=73.08(幅)及び40×1.828=73.12(高さ)であり得る。
【0049】
ここで、探そうとする画面上の客体のサイズは上述した数学式1及び2によって一度だけリサイジング(resizing)することができる。このように、探そうとする端末の画面上の客体のサイズは一度だけリサイジング(resizing)することで、ピクセルが割れることが発生することを最小化することができる。
【0050】
また、制御部140は、第2仮想端末の画面を介して提供されるアプリケーション実行イメージに予め設定されたスケーリング値を適用してイメージのサイズをリサイジング(resizing)することができる。例えば、予め設定されたスケーリング値は1.30、1.25、1.20などであり得る。本実施例によれば、21個のスケーリング値が事前にデバイスの解像度を考慮した値として設定される。本実施例によれば、21個のスケーリング値は1.30~0.30の間で0.05の間隔で設定されることができる。よって、制御部140は、第2仮想端末の画面を介して提供されるアプリケーション実行イメージに上述した21個の予め設定されたスケーリング値を適用してイメージのサイズをリサイジング(resizing)することができる。
【0051】
制御部140は、上述したように計算された第1仮想端末の画面上の客体及びリサイジングされた第2仮想端末の画面上の客体をマッチさせることができる。すなわち、上述したように計算された第1仮想端末の画面上の客体サイズと最も類似したリサイジングされた第2仮想端末の画面上の客体をマッチさせることができる。例えば、上述したようにリサイジングによって計算された第1仮想端末の画面上の客体サイズは73.05×73.12であり、実際に探そうとする第2仮想端末の画面上の客体サイズは75×75である場合、上述したように仮想端末の画面上の客体をマッチさせることができる。よって、
図4に示すように、制御部140は、ユーザーによって選択された第1仮想端末210の特定の客体Bに対応する客体B’を第2仮想端末220で検出することができる。一方、第2仮想端末の画面を介して提供されるアプリケーション実行イメージに予め設定されたスケーリング値を適用して多様にリサイジングされた第2仮想端末の画面上の客体サイズと計算された第1仮想端末の画面上の客体とを比較することで、客体探知の正確度をより向上させることができる。
【0052】
上述したように、制御部140は、予め学習されたディープラーニング技法によって客体を検出することで、より正確に客体を検出することができ、予め学習されたディープラーニング技法とともに、仮想端末の画面サイズをリサイジング(resizing)してそれぞれの仮想端末の画面をマッチさせて特定の客体を検出するマッチ技法とを使用することで、マッチ正確度の向上及び検出速度の向上を期待することができる。
【0053】
一方、制御部140は、第1仮想端末で検出された客体のうち同種の客体が複数であり得る。例えば、
図5に示すように、第1仮想端末210で検出された多様な客体のうち同種の客体、すなわち、チェックボックスC、C1が2個であり得る。
【0054】
ここで、制御部140は、第1仮想端末で検出された客体のうち同種の客体が複数であると、予め設定された優先順位インデックス技法によって第1仮想端末の画面上の複数の客体にインデックスを付与することができる。ここで、優先順位インデックス技法は、例えば、Top to Down及び/またはLeft to Rightによってインデックスを付与することであり得る。すなわち、インデックスは、上から下に、かつ左側から右側に優先順位によって付与されることができる。
【0055】
制御部140は、複数の客体のうちのいずれか一つの客体がユーザーによって選択されると、第1仮想端末の客体に付与されたインデックスに基づいて第1仮想端末の画面上の客体とマッチするいずれか一つの特定の客体を第2仮想端末の画面上で検出することができる。すなわち、制御部140は、第1仮想端末の画面上でユーザーによって選択される客体が予め学習されたディープラーニング技法によって検出された複数の客体のうちのいずれか一つである場合、予め設定された優先順位インデックス技法によって第1仮想端末の画面上の客体とマッチするいずれか一つの特定の客体を第2仮想端末の画面上で検出することができる。例えば、
図5を参照すると、第1仮想端末210で検出された客体であるチェックボックスC、C1が2個の場合、制御部140は、予め設定された優先順位インデックス技法によって検出された多数の客体に順にインデックスを付与することができる。ここで、制御部140は、Top to Down方式で上部にある客体Cにインデックス0、かつ下部にある客体C1にインデックス1を付与することができる。その後、第1仮想端末210の画面でユーザーが複数の客体のうちのいずれか一つCを選択すると、制御部140は、付与されたインデックスに基づいて第2仮想端末220の画面上で、第1仮想端末210の画面上でユーザーによって選択された客体Cとマッチする特定の客体C’を検出することができる。
【0056】
また、制御部140は、第1仮想端末の画面上の客体で特徴点(key point)を探知するとき、特徴マッチングアルゴリズムを使って、第1仮想端末の画面上の客体とマッチする第2仮想端末の画面上の客体を検出することができる。特徴点(key point)はイメージにおいて特徴となる部分を言うものであり、例えば、物体の特徴となる角またはコーナーであり得る。このように、制御部140は、イメージ同士マッチするかを確認するために、各イメージで特徴マッチングアルゴリズムを用いて特徴を比較することで、特徴点を検出することができる。ここで、特徴マッチングアルゴリズムは、SIFT(Scale-Invariant-Feature TRansform)及びFLANN(Fast Library for Approximate Nearest Neighbors)であり得る。SIFTはイメージのサイズ及び回転に変わらない特徴を抽出するアルゴリズムであり、互いに異なる二つのイメージから特徴をそれぞれ抽出し、互いに似ている特徴同士マッチさせることで、二つのイメージで対応部分を探すアルゴリズムであり得る。また、FLANNは高次元の大容量のデータセット上で最も類似した特徴点を探すのに最適化したアルゴリズムであり、イメージ内で変換された特定の対象を探すときに使用することができる。上述したSIFT及びFLANNは公知の技術であるので、より詳細な説明は省略する。上述したように、特徴マッチングアルゴリズムを使用することにより、客体探知の際、正確度を向上させることができる効果がある。
【0057】
また、制御部140は、第1仮想端末の画面上の客体で特定点を探知するために、OpenCV(Open Source Computer Vision)が搭載されたプログラムを実行し、FAST(Features from Accelerated Segment Test)アルゴリズムを用いて第1仮想端末の画面上の客体で特徴点を探知することもできる。ここで、OpenCVはイメージプロセッシングに重点を置いた、実時間コンピュータビジョンを目的とするプログラミングライブラリであり得る。FASTアルゴリズムは、イメージで角及び/またはコーナーのような特徴点を抽出するアルゴリズムであり得る。ここで、FASTアルゴリズムを用いる場合、特徴点を探知するか否かによってコードが活性化または非活性化するので、従来技術より客体を早く探知することができる。ここで、コードは仮想端末のマッチングのために実行されるプログラムに搭載された命令語であり得る。例えば、制御部140は、FASTアルゴリズムを用いて第1仮想端末の画面上の客体で特徴点を探知すると、コードを活性化させてプログラムを駆動させることで、仮想端末をマッチさせることができる。一方、制御部140は、特徴点が探知されなければ、コードを非活性化することで、仮想端末のマッチのためのプログラムを駆動させなくてもよい。このように、制御部140は、特徴点を探知する場合にのみ仮想端末をマッチさせるプログラムを駆動させて不要なプログラムの駆動を制限することで、仮想端末に含まれた客体をより早く探知することができる。
【0058】
図6は一実施例によるアプリケーションテスト方法のフローチャートである。
【0059】
図6に示す実施例によるアプリケーションテスト方法は、
図1~
図5に示すアプリケーションテスト装置100で時系列的に処理される段階を含む。したがって、以下で省略する内容であっても、
図1~
図5に示したアプリケーションテスト装置100について以上で記述した内容は
図7に示した実施例によるアプリケーションテスト方法にも適用することができる。
【0060】
図6を参照すると、一実施例によるアプリケーションテスト装置100は、アプリケーションテストのためのプログラムを組み込む(S610)。
【0061】
次いで、アプリケーションテスト装置100は、S610段階で組み込まれたプログラムを実行し、仮想端末の画面を介して提供されるアプリケーション実行イメージに予め学習されたディープラーニング技法を適用して画面上の客体を検出することができる(S620)。ここで、予め学習されたディープラーニング技法はYOLO5であり得る。YOLO5は客体探知ディープラーニング技法の一つであり、アプリケーションの画面を構成する多数の客体を含むクラス(class)をデータセットとして入力して学習させることで、客体を分類することができる。ここで、クラスは客体の探知のために事前に分類された客体の集合であり得る。すなわち、アプリケーションテスト装置100は、仮想端末の画面を介して提供されるアプリケーション実行イメージに予め学習されたディープラーニング技法に適用することで、画面上でアイコン、コンテナ、チェックボックス、コントローラーなどのような客体を検出することができる。
【0062】
次に、
図7を参照して、仮想端末の画面上の客体を検出することについてより詳細に説明する。
【0063】
アプリケーションテスト装置100は、ユーザーによっていずれか一つの仮想端末の画面上で特定の客体が選択されると、ユーザーによって選択された特定の客体に対応する客体を他の仮想端末の画面上で検出することができる。ここで、上述したそれぞれの仮想端末は仕様が互いに異なるので、いずれか一つの仮想端末でユーザーによって選択された特定の客体が他の仮想端末で正しく検出されないことがある。よって、アプリケーションテスト装置100は、後述するように、アプリケーションが実行される画面のサイズを補正する作業を実行し、それぞれの仮想端末の画面をマッチさせることで、いずれか一つの仮想端末でユーザーによって選択された客体を他の仮想端末で検出することができる。
【0064】
アプリケーションテスト装置100は、ユーザーによって第1仮想端末の画面上の特定の客体が選択されると、第1仮想端末の画面を介して提供されるアプリケーション実行客体に可変化したスケーリング値を適用して客体のサイズをリサイジング(resizing)することができる(S710)。一方、第1仮想端末の画面を介して提供されるアプリケーション実行客体のサイズをリサイジングすることは、第1仮想端末の画面を介して提供されるアプリケーション実行イメージをリサイジングすることを意味することができる。ここで、第1仮想端末の画面サイズのリサイジング(resizing)は上述した数学式1及び数学式2によって実行することができる。より具体的には、数学式1によって可変化したスケーリング値を求め、数学式1によって求められた可変化したスケーリング値を数学式2に適用することで、第1仮想端末の画面サイズをリサイジング(resizing)することができる。
【0065】
次いで、アプリケーションテスト装置100は、第2仮想端末の画面を介して提供されるアプリケーション実行イメージに予め設定されたスケーリング値を適用してイメージのサイズをリサイジング(resizing)することができる(S720)。
【0066】
次いで、アプリケーションテスト装置100は、リサイジング(resizing)されたそれぞれの仮想端末の画面をマッチさせることで、ユーザーによって選択された第1仮想端末上の特定の客体に対応する客体を第2仮想端末で検出することができる(S730)。すなわち、アプリケーションテスト装置100は、リサイジングされた第1仮想端末の画面サイズと最も類似したリサイジングされた第2仮想端末の画面をマッチさせ、ユーザーによって選択された第1仮想端末上の特定の客体に対応する客体を第2仮想端末で検出することができる。
【0067】
以上の実施例で使用される’~部’という用語はソフトウェア又はFPGA(field programmable gate array)又はASICのようなハードウェア構成要素を意味し、’~部’はある役割をする。しかし、’~部’はソフトウェア又はハードウェアに限定される意味ではない。’~部’はアドレス可能な記憶媒体にあるように構成されることもでき、一つ又はそれ以上のプロセッサを再生させるように構成されることもできる。よって、一例として、’~部’はソフトウェア構成要素、オブジェクト指向ソフトウェア構成要素、クラス構成要素及びタスク構成要素のような構成要素と、プロセス、関数、属性、プロシージャ、サブルーチン、プログラム特許コードのセグメント、ドライバー、ファームウエア、マイクロコード、回路、データ、データベース、データ構造、テーブル、アレイ、及び変数を含む。
【0068】
構成要素及び’~部’内で提供される機能はより小さな数の構成要素及び’~部’と結合するか追加的な構成要素及び’~部’から分離されることができる。
【0069】
それだけでなく、構成要素及び’~部’はデバイス又は保安マルチメディアカード内の一つ又はそれ以上のCPUを再生させるように具現されることもできる。
【0070】
一方、この明細書で説明した一実施例によるアプリケーションテスト方法は、コンピュータによって実行可能な命令語及びデータを記憶する、コンピュータ可読の媒体の形態にも具現されることができる。ここで、命令語及びデータはプログラムコードの形態として記憶されることができ、プロセッサによって実行されたとき、所定のプログラムモジュールを生成して所定の動作を実行することができる。また、コンピュータ可読の媒体はコンピュータによってアクセス可能な任意の可用媒体であってもよく、揮発性及び非揮発性媒体、分離型及び非分離型媒体のいずれも含む。また、コンピュータ可読の媒体はコンピュータ記録媒体であってもよい。コンピュータ記録媒体はコンピュータ可読の命令語、データ構造、プログラムモジュール又はその他のデータのような情報の記憶のための任意の方法又は技術によって具現された揮発性及び非揮発性、分離型及び非分離型媒体のいずれも含むことができる。例えば、コンピュータ記録媒体は、HDD及びSSDなどのマグネチック記憶媒体、CD、DVD及びブルーレイディスクなどの光学的記録媒体、又はネットワークを介して接近可能なサーバーに含まれるメモリであってもよい。
【0071】
また、この明細書で説明した一実施例によるアプリケーションテスト方法は、コンピュータによって実行可能な命令語を含むコンピュータプログラム(又はコンピュータプログラム商品)で具現されることもできる。コンピュータプログラムはプロセッサによって処理されるプログラミング可能な機械命令語を含み、高レベルプログラミング言語(High-level Programming Language)、オブジェクト指向プログラミング言語(Object-oriented Programming Language)、アセンブリー言語又は機械言語などで具現されることができる。また、コンピュータプログラムは類型のコンピュータ判読可能記録媒体(例えば、メモリ、ハードディスク、磁気/光学媒体又はSSD(Solid-State Drive)など)に記録できる。
【0072】
したがって、この明細書で説明した一実施例によるアプリケーションテスト方法は、上述したようなコンピュータプログラムがコンピューティング装置によって実行されることによって具現されることができる。コンピューティング装置は、プロセッサと、メモリと、記憶装置と、メモリ及び高速拡張ポートに接続している高速インターフェースと、低速バスと記憶装置に接続している低速インターフェースの少なくとも一部を含むことができる。このような成分のそれぞれは多様なバスを用いて互いに接続されており、共通マザーボードに搭載されるか他の適切な方式で装着できる。
【0073】
ここで、プロセッサはコンピューティング装置内で命令語を処理することができる。このような命令語としては、例えば高速インターフェースに接続されたディスプレイのように外部入力及び出力装置上にGUI(Graphic User Interface)を提供するためのグラフィック情報を表示するためにメモリ又は記憶装置に記憶された命令語を有することができる。他の実施例として、多数のプロセッサ及び/又は多数のバスが適切に多数のメモリ及びメモリ形態と一緒に用いられることができる。また、プロセッサは独立的な多数のアナログ及び/又はデジタルプロセッサを含むチップからなるチップセットトで具現されることができる。
【0074】
また、メモリはコンピューティング装置内に情報を記憶する。一例として、メモリは揮発性メモリユニット又はそれらの集合で構成されることができる。他の例として、メモリは不揮発性メモリユニット又はそれらの集合で構成されることができる。また、メモリは、例えば磁気又は光ディスクのような他の形態のコンピュータ可読の媒体であってもよい。
【0075】
そして、記憶装置はコンピューティング装置に大容量の記憶空間を提供することができる。記憶装置はコンピュータ可読の媒体であるかこのような媒体を含む構成であってもよく、例えばSAN(Storage Area Network)内の装置又は他の構成も含むことができ、フロッピーディスク装置、ハードディスク装置、光ディスク装置、又はテープ装置、フラッシュメモリー、それと類似した他の半導体メモリ装置又は装置アレイであってもよい。
【0076】
上述した実施例は例示のためのものであり、上述した実施例が属する技術分野の通常の知識を有する者は上述した実施例が有する技術的思想又は必須な特徴を変更しなくて他の具体的な形態に易しく変形可能であることを理解することができるであろう。したがって、上述した実施例は全ての面で例示的なもので、限定的なものではないことを理解しなければならない。例えば、単一型として説明されている各構成要素は分散されて実施されることもでき、同様に分散されたものとして説明されている構成要素も結合された形態に実施されることができる。
【0077】
本明細書によって保護を受けようとする範囲は前記詳細な説明よりは後述する特許請求範囲によって決定され、特許請求範囲の意味及び範囲とその均等な概念から導出される全ての変更又は変形の形態を含むものに解釈されなければならない。
【符号の説明】
【0078】
100 アプリケーションテスト装置
200 仮想端末
110 入出力部
120 通信部
130 保存部
140 制御部