(57)【要約】ＯＳ差分情報取得部１１は、ＯＳのプログラムの内、変更されたプログラムの情報を示す差分情報を取得する。差分対応箇所特定部１６は、アプリケーションプログラムにおける、差分情報に対応する箇所を特定する。試験選択部１８は、各試験におけるアプリケーションプログラムで実行される箇所を含む試験項目情報を取得し、取得した試験項目情報に含まれるアプリケーションプログラムの箇所が、差分対応箇所特定部１６により特定された箇所に対応する試験を選択する。
2017199517.tif 000002
【特許請求の範囲】
【請求項１】
第１のプログラムの内、変更された部分を示す差分情報を取得する差分取得手段と、
前記第１のプログラムによる機能を利用する第２のプログラムにおける、前記差分取得手段により取得された差分情報で示される影響箇所を特定する差分対応箇所特定手段と、
前記差分対応箇所特定手段により特定された影響箇所に対応する、第２のプログラムの試験を選択する試験選択手段と、
を備える試験選択装置。
【請求項２】
試験で実行される実行箇所を含む試験情報を取得する試験情報取得手段をさらに備え、
前記試験選択手段は、前記試験情報取得手段により取得された試験情報に基づいて、前記差分対応箇所特定手段により特定された影響箇所に対応する試験を選択する、請求項１に記載の試験選択装置。
【請求項３】
前記差分取得手段により取得された差分情報に基づいて、実行するために権限を要する差分情報による機能を特定する機能特定手段をさらに備え、
前記差分対応箇所特定手段は、前記機能特定手段により特定された機能に対応する第２のプログラムの影響箇所を特定する、請求項１又は２に記載の試験選択装置。
【請求項４】
前記試験選択手段は、前記機能特定手段により特定された機能の権限に対応する権限を試験の実施に必要とする試験をさらに選択する、請求項３に記載の試験選択装置。
【請求項５】
前記試験選択手段によって、前記影響箇所に対応する、第２のプログラムの試験が選択されなかった場合、その旨を出力する出力手段をさらに備える、請求項１から４の何れか一項に記載の試験選択装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムの試験を選択する装置に関する。
【背景技術】
【０００２】
従来から、一のプログラムのコードの変更による影響箇所を特定する技術がある。例えば、特許文献１には、機能追加による影響箇所を特定することが記載されている。具体的には、機能追加前の旧バージョンと、機能追加後の新バージョンとの差分である差分コード集合と、特定の機能のみを実行させるテストケースを実行させたソースの集合とを特定し、差分コード集合と、実行済コード集合との集合積を計算する。これにより、特定の機能における差分コードのうち、テスト（試験）を実行したコードを抽出することができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−６７１８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、プログラムの試験を実行した後に、プログラムのコード修正が発生した場合に、修正前に実行した試験を全て実行すると、コードの修正に影響の無い試験まで実行することになるので、非効率である。【０００５】
本発明は、上記に鑑みてなされたものであり、一のプログラムの修正が発生した場合に、他のプログラムの影響箇所に対応する試験を適切に選択する試験選択装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明に係る試験選択装置は、第１のプログラムの内、変更された部分を示す差分情報を取得する差分取得手段と、第１のプログラムによる機能を利用する第２のプログラムにおける、差分取得手段により取得された差分情報で示される影響箇所を特定する差分対応箇所特定手段と、差分対応箇所特定手段により特定された影響箇所に対応する、第２のプログラムの試験を選択する試験選択手段と、を備える。【０００７】
このような本発明に係る試験選択装置によれば、第１のプログラムの内、変更された部分に対応する第２のプログラムの影響箇所を特定し、当該影響箇所の試験を選択するので、第１のプログラムが変更されたことにより影響する試験を選択することができる。このように、プログラムの修正が発生した場合に、試験を適切に選択することができる。【０００８】
本発明に係る試験選択装置では、試験で実行される実行箇所を含む試験情報を取得する試験情報取得手段をさらに備え、試験選択手段は、試験情報取得手段により取得された試験情報に基づいて、差分対応箇所特定手段により特定された影響箇所に対応する試験を選択してもよい。【０００９】
このような本発明に係る試験選択装置によれば、試験の実行箇所を示す情報を用いて試験を選択するので、差分情報に影響のある試験を適切に選択できる。【００１０】
本発明に係る試験選択装置では、差分取得手段により取得された差分情報に基づいて、実行するために権限を要する差分情報による機能を特定する機能特定手段をさらに備え、差分対応箇所特定手段は、機能特定手段により特定された機能に対応する第２のプログラムの影響箇所を特定してもよい。【００１１】
このような本発明に係る試験選択装置によれば、第１のプログラムの変更部分の内、実行するために権限を要する機能に対応する試験を選択するので、実行権限を必要とする試験に絞って試験を選択することができる。【００１２】
本発明に係る試験選択装置では、試験選択手段は、機能特定手段により特定された機能の権限に対応する権限を試験の実施に必要とする試験をさらに選択してもよい。【００１３】
このような本発明に係る試験選択装置によれば、変更された第１のプログラムを実行するために要する権限を必要とする第２のプログラムの試験を選択するので、第１のプログラムの変更に影響のある権限の試験を網羅的に選択することができる。【００１４】
本発明に係る試験選択装置では、試験選択手段によって、影響箇所に対応する、第２のプログラムの試験が選択されなかった場合、その旨を出力する出力手段をさらに備えてもよい。【００１５】
このような本発明に係る試験選択装置によれば、影響箇所があるにも関わらず、第２のプログラムの試験が選択されなかったことを出力するので、試験項目の漏れが存在する可能性があることを通知することができる。
【発明の効果】
【００１６】
本発明によれば、プログラムの修正が発生した場合に、試験を適切に選択することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施形態に係るサーバのブロック図である。
【図２】サーバ１０のハードウェア構成を示す図である。
【図３】ＯＳ差分情報記憶部１２が記憶する情報のデータ構造を示す図である。
【図４】要権限ＡＰＩリスト記憶部１３が記憶する情報のデータ構造を示す図である。
【図５】ソースコード記憶部１５が記憶する情報のデータ構造を示す図である。
【図６】影響箇所情報の例を示す図である。
【図７】試験項目情報記憶部１７が記憶する情報のデータ構造を示す図である。
【図８】試験の選択例を示す図である。
【図９】試験の選択例を示す図である。
【図１０】試験選択処理を示すフローチャートである。
【発明を実施するための形態】
【００１８】
以下、添付図面を参照して、本発明の好適な実施形態について詳細に説明する。なお、図面の説明において同一又は相当要素には同一符号を付し、重複する説明は省略する。
【００１９】
図１に本実施形態に係るサーバ１０（試験選択装置）を示す。サーバ１０は、ＯＳ（Operating System）のプログラムであるＯＳプログラム（第１のプログラム）とアプリケーションプログラム（第２のプログラム）がある場合に、ＯＳプログラムの修正が発生したとき、アプリケーションプログラムの試験の内、ＯＳプログラムの修正に影響する部分の試験を特定する装置である。ＯＳプログラムとは、ソフトウェアの種類の一つであり、機器（例えば、移動端末）の基本的な管理や制御のための機能や、多くのソフトウェアが共通して利用する基本的な機能などを実装した、システム全体を管理するソフトウェアである。また、ＯＳプログラムは、ＯＳプログラム内の一部のプログラムを変更する。ＯＳプログラムには、バージョンが設定され、ＯＳプログラムに変更が発生すると、変更後のＯＳプログラムに新たなバージョンが設定される。このＯＳプログラムのソースコードを記憶するサーバ装置があり、このサーバ装置は、このＯＳプログラムのソースコードを記憶し、当該ＯＳプログラムの変更前の情報と、変更後の情報とを含む情報であるＯＳ差分情報も記憶する。このＯＳ差分情報は、ＯＳプログラムの内、変更された部分を示す情報である。アプリケーションプログラム（アプリ）とは、機器に搭載されるソフトウェアのうち、同じ目的を持った機能を一つのグループとしてまとめたものをいう。アプリは、ＯＳのプログラムによる機能を利用する。試験とは、対象となるプログラムが要件通りに動作するか検査するものである。また、アプリケーションプログラムの試験とは、アプリケーションプログラムを要件通りに実行できるか否かを検査するものであり、アプリケーションプログラムを正常に実行させるための試験である。
【００２０】
引き続いて、本実施形態に係るサーバ１０の機能について詳細に説明する。サーバ１０は、ＯＳプログラム（変更前のＯＳプログラム、変更後のＯＳプログラム）を記憶しているサーバとインターネット等のネットワークを介して接続されている。図１に示すように、サーバ１０は、ＯＳ差分情報取得部１１（差分取得手段）と、ＯＳ差分情報記憶部１２と、要権限ＡＰＩリスト記憶部１３と、要権限差分特定部１４（機能特定手段）と、ソースコード記憶部１５と、差分対応箇所特定部１６（差分対応箇所特定手段）と、試験項目情報記憶部１７（試験情報取得手段）と、試験選択部１８（試験選択手段）と、選択結果出力部１９（出力手段）と、アプリ試験表記憶部２０とを備えて構成される。
【００２１】
図２は、サーバ１０のハードウェア構成図である。図２に示すように、サーバ１０は、ＣＰＵ１０１、主記憶装置であるＲＡＭ（Random Access Memory）１０２及びＲＯＭ（Read Only Memory）１０３、通信を行うための通信モジュール１０４、並びにハードディスク等の補助記憶装置１０５等のハードウェアを備えるコンピュータを含むものとして構成される。これらの構成要素がプログラム等により動作することにより、図１に示す各機能要素による機能が発揮される。なお、サーバ１０は複数台のコンピュータによるコンピュータシステムによって構成されていてもよい。以下、図１に示す各機能要素について説明する。
【００２２】
図２に示すハードウェア構成について更に詳細に説明する。上記実施の形態の説明に用いた図１に示すブロック図は、機能単位のブロックを示している。これらの機能ブロック（構成部）は、ハードウェア及び／又はソフトウェアの任意の組み合わせによって実現される。また、各機能ブロックの実現手段は特に限定されない。すなわち、各機能ブロックは、物理的及び／又は論理的に結合した１つの装置により実現されてもよいし、物理的及び／又は論理的に分離した２つ以上の装置を直接的及び／又は間接的に（例えば、有線及び／又は無線）で接続し、これら複数の装置により実現されてもよい。
【００２３】
例えば、本発明の一実施の形態におけるサーバ１０は、本実施形態に係る試験選択装置の処理を行うコンピュータとして機能してもよい。図２は、上述したように、本発明の一実施の形態に係るサーバ１０のハードウェア構成の一例を示す図である。上述のサーバ１０は、物理的には、ＣＰＵ１０１、メモリ（ＲＡＭ１０２及びＲＯＭ１０３を含み、以下では単にメモリという場合がある。）、補助記憶装置１０５、および、バス等を含むコンピュータ装置として構成されてもよい。
【００２４】
なお、以下の説明では、「装置」という文言は、回路、デバイス、ユニットなどに読み替えることができる。サーバ１０のハードウェア構成は、図に示した各装置を１つ又は複数含むように構成されてもよいし、一部の装置を含まずに構成されてもよい。
【００２５】
図１に示すサーバ１０の各機能は、ＣＰＵ１０１、ＲＡＭ１０２などのハードウェア上に所定のソフトウェア（プログラム）を読み込ませることで、ＣＰＵ１０１が演算を行い、通信モジュール１０４による通信や、メモリ及び補助記憶装置１０５におけるデータの読み出し及び／又は書き込みを制御することで実現される。
【００２６】
ＣＰＵ１０１は、例えば、オペレーティングシステムを動作させてコンピュータ全体を制御する。ＣＰＵ１０１は、周辺装置とのインターフェース、制御装置、演算装置、レジスタなどを含む中央処理装置（ＣＰＵ：Central  Processing  Unit）で構成されてもよい。
【００２７】
ＣＰＵ１０１は、プログラム（プログラムコード）、ソフトウェアモジュールやデータを、補助記憶装置１０５及び／又は通信モジュール１０４からＲＡＭ１０２に読み出し、これらに従って各種の処理を実行する。プログラムとしては、上述の実施の形態で説明した動作の少なくとも一部をコンピュータに実行させるプログラムが用いられる。例えば、サーバ１０の図１に示す各機能（例えば、ＯＳ差分情報取得部等）は、メモリに格納され、ＣＰＵ１０１で動作する制御プログラムによって実現されてもよく、他の機能についても同様に実現されてもよい。上述の各種処理は、１つのＣＰＵ１０１で実行される旨を説明してきたが、２以上のＣＰＵ１０１により同時又は逐次に実行されてもよい。ＣＰＵ１０１は、１以上のチップで実装されてもよい。なお、プログラムは、電気通信回線を介してネットワークから送信されても良い。
【００２８】
メモリは、コンピュータ読み取り可能な記録媒体であり、例えば、ＲＯＭ１０３（ＥＰＲＯＭ（Erasable  Programmable  ＲＯＭ）、ＥＥＰＲＯＭ（Electrically Erasable Programmable ＲＯＭ）等）、および、ＲＡＭ１０２等の少なくとも１つを有していてもよい。メモリは、レジスタ、キャッシュ、メインメモリ（主記憶装置）などと呼ばれてもよい。
【００２９】
補助記憶装置１０５は、コンピュータ読み取り可能な記録媒体であり、例えば、ＣＤ−ＲＯＭ（Compact  Disc  ＲＯＭ）などの光ディスク、ハードディスクドライブ、フレキシブルディスク、光磁気ディスク（例えば、コンパクトディスク、デジタル多用途ディスク、Ｂｌｕ−ｒａｙ（登録商標）ディスク）、スマートカード、フラッシュメモリ（例えば、カード、スティック、キードライブ）、フロッピー（登録商標）ディスク、磁気ストリップなどの少なくとも１つで構成されてもよい。補助記憶装置１０５は、補助記憶装置と呼ばれてもよい。上述の記憶媒体は、例えば、メモリ及び／又は補助記憶装置１０５を含むデータベース、サーバその他の適切な媒体であってもよい。
【００３０】
通信モジュール１０４は、有線及び／又は無線ネットワークを介してコンピュータ間の通信を行うためのハードウェア（送受信デバイス）であり、例えばネットワークデバイス、ネットワークコントローラ、ネットワークカード、通信モジュールなどともいう。
【００３１】
ＣＰＵ１０１やメモリなどの各装置は、情報を通信するためのバスで接続される。バスは、単一のバスで構成されてもよいし、装置間で異なるバスで構成されてもよい。
【００３２】
サーバ１０は、マイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ：Digital  Signal  Processor）、ＡＳＩＣ（Application  Specific  Integrated  Circuit）、ＰＬＤ（Programmable  Logic  Device）、ＦＰＧＡ（Field  Programmable  Gate  Array）などのハードウェアを含んで構成されてもよく、当該ハードウェアにより、各機能ブロックの一部又は全てが実現されてもよい。例えば、ＣＰＵ１０１は、これらのハードウェアの少なくとも１つで実装されてもよい。
【００３３】
ＯＳ差分情報取得部１１は、ＯＳ差分情報を取得する部分である。ＯＳ差分情報取得部１１は、差分情報を記憶する装置からＯＳ差分情報を取得し、取得したＯＳ差分情報をＯＳ差分情報記憶部１２へ設定する。ＯＳ差分情報記憶部１２は、ＯＳ差分情報を記憶する部分である。ＯＳ差分情報記憶部１２で記憶されている情報の例を図３に示す。図３に示すように、「ファイル名」、「変更前（Ｖｅｒ５．１）」、及び「変更後（Ｖｅｒ６．０）」を含むＯＳ差分情報を記憶している。「ファイル名」は、変更されたプログラムを含むファイルの名称である。「変更前（Ｖｅｒ５．１）」は、変更前のＡＰＩ（Application Programming Interface）名称を示す。ここで、ＡＰＩとは、あるプログラムの機能や管理するデータなどを、外部の他のプログラムから呼び出して利用するための手順やデータ形式などを定めた規約をいう。また、変更前のＯＳのバージョンが５．１であることを示す。「変更後（Ｖｅｒ６．０）」は、変更後のＡＰＩ名称を示す。また、変更後のＯＳのバージョンが６．０であることを示す。Java（登録商標）によりプログラムされた「ABC.java」というファイル名のファイルにおいて、「int ABC(a,b,c)」という変更前のＡＰＩが、「int ABC(a,b,c,d)」に変更されたことを示す。当該「int ABC(a,b,c)」のうち、「int」とは、戻り値の型を示し、「ABC」は、ＡＰＩ名称を示し、「a,b,c」は、ＡＰＩのパラメータを示す。よって、このＡＰＩは、３つのパラメータがあることを示す。また、「int ABC(a,b,c,d)」という変更後のＡＰＩのパラメータが、「a,b,c,d」となっているので、パラメータの数が３から４に増えたことを示している。また、ファイル名が「DEF.java」というファイル名における「g=defexec();」というＡＰＩは、「g=def2exec();」に変更されていることを示し、ＡＰＩ名称が変更されたことを示している。すなわち、ＡＰＩの処理内容が異なったことを示している。
【００３４】
要権限ＡＰＩリスト記憶部１３は、ＯＳのプログラムの内、権限を必要とするＡＰＩのリストを記憶する部分である。ここでいう権限とは、対象となるプログラムを実行するために取得しておく必要のある情報であり、ＡＰＩに対応付けられたり、実行するユーザに対応付けられたりする。要権限ＡＰＩリスト記憶部１３で記憶されている情報の例を図４に示す。図４に示すように、「権限」、「レベル」、及び「ＡＰＩ名」を含む情報を記憶している。「権限」は、ＡＰＩを実行するために必要な権限である。「レベル」は、当該権限のレベルである。「ＡＰＩ名」は、ＡＰＩの名称である。図４に示すように、「Permission ABC」という権限のレベルが「dangerous」であり、「int ABC」というＡＰＩ名のＡＰＩの実行にはこの権限が必要であることを示している。なお、このＡＰＩのリストは、ＯＳのプログラムが更新される度に更新される。
【００３５】
要権限差分特定部１４は、差分情報が示すプログラムの内、実行するために権限を要する機能を特定する部分である。具体的に、要権限差分特定部１４は、ユーザ操作によりＯＳプログラムの修正に影響する試験の選択要求を受け付けると、ＯＳ差分情報記憶部１２に記憶されている情報の「変更後」と、要権限ＡＰＩリスト記憶部１３に記憶されている「ＡＰＩ名」とが対応するＡＰＩ名を特定する。要権限差分特定部１４は、特定したＡＰＩ（機能）に対応する差分情報及び当該差分情報に対応する権限を差分対応箇所特定部１６へ送出する。
【００３６】
ここで、図３に示した差分情報及び図４に示した要権限ＡＰＩリストを用いて、差分情報が示すＡＰＩの内、権限を必要とするＡＰＩを特定する例を説明する。要権限差分特定部１４は、ＯＳ差分情報記憶部１２から図３に示したような差分情報を取得し、要権限ＡＰＩリスト記憶部１３から図４に示したような要権限ＡＰＩリストを取得する。続いて、差分対応箇所特定部１６は、差分情報の変更後のＡＰＩ名と、要権限ＡＰＩリストの「ＡＰＩ名」とが合致するＡＰＩを特定する。差分対応箇所特定部１６は、図３の「変更後」のＡＰＩ名にも、図４の「ＡＰＩ名」にも「ＡＢＣ」と記載されているので、「ＡＢＣ」というＡＰＩを特定する。このように、要権限差分特定部１４は、差分情報に含まれるＡＰＩの内、権限を必要とするＡＰＩを特定する。
【００３７】
ソースコード記憶部１５は、アプリのソースコードを記憶する部分である。ソースコード記憶部１５で記憶されている情報の例を図５に示す。図５に示すように、「ファイル名」、「行番号」、及び「ソースコード内の命令文」を含む情報を記憶している。「ファイル名」は、アプリのソースコードが記憶されているファイルの名称である。「行番号」は、アプリのソースコードの行番号を示す。「ソースコード内の命令文」は、ソースコードに記載されている命令文を示す。図５に示す例では、「b.java」というファイル名のファイルにおいて、１００行目に「log(ABC(a,b,c))」という命令文が記載されていることを示している。なお、図５に示した情報は、便宜上一部のソースコードの情報を示している。
【００３８】
差分対応箇所特定部１６は、アプリケーションプログラムにおける、差分情報のプログラムに対応する箇所（影響箇所）を特定する部分である。差分対応箇所特定部１６は、要権限差分特定部１４から差分情報及び当該差分情報が示すＡＰＩの権限を取得する。続いて、差分対応箇所特定部１６は、ソースコード記憶部１５を検索し、当該差分情報の変更前のＡＰＩを含む命令文の箇所（ファイル名、行番号）を特定する。
【００３９】
例えば、差分対応箇所特定部１６が権限を有するＡＰＩ「ＡＢＣ」の差分情報を要権限差分特定部１４から取得したとする。この場合、差分対応箇所特定部１６は、ソースコード記憶部１５を参照して、当該「ＡＢＣ」というＡＰＩを用いているソースコードのファイル名及び行番号を特定する。ソースコード記憶部１５に図５に示した情報が記憶されている場合、ファイル名「b.java」における行番号１００に「ＡＢＣ」を含む命令文が記載されていることを示すので、差分対応箇所特定部１６は、ファイル名「b.java」の行番号１００を特定する。このことは、ＯＳのプログラムにおける、変更が発生したＡＰＩであって、当該ＡＰＩを実行するために権限を必要とするＡＰＩを利用しているアプリのプログラムのファイル名及び行番号を特定していることを示している。すなわち、差分対応箇所特定部１６は、ＯＳのプログラムの影響を受けると考えられる箇所を特定している。
【００４０】
差分対応箇所特定部１６は、この特定した結果に基づく情報である影響箇所情報を生成する。具体的には、差分対応箇所特定部１６は、特定したファイル名と、行番号と、要権限差分特定部１４から取得した権限（差分情報に対応する権限）とを含む影響箇所情報を生成する。差分対応箇所特定部１６が生成する情報の例を図６に示す。図６に示すように、差分対応箇所特定部１６は、当該行番号と、当該行番号に対応するファイル名と、「ＡＢＣ」というＡＰＩを実行するための権限とを含む情報を生成する。差分対応箇所特定部１６が生成した情報を試験選択部１８へ送出する。
【００４１】
試験項目情報記憶部１７は、アプリの試験で実行される箇所を含む試験の情報である試験項目情報（試験情報）を試験毎に記憶する部分である。試験項目情報記憶部１７が記憶する情報の例を図７に示す。図７に示すように、「試験項番」、「ファイル名」、「実行済行番号（カバレージ情報）」、及び「権限」を含む情報を記憶している。「試験項番」は、各試験に付与される番号であり、試験を識別する情報である。「ファイル名」は、試験対象のアプリケーションプログラムを構成するファイルの名称である。「実行済行番号（カバレージ情報）」は、試験において実行されるアプリケーションプログラムのプログラムファイルにおける行番号（実行箇所）を示す。
【００４２】
この行番号は、試験において実行したアプリの箇所を測定するプログラム（例えば、オープンソースソフトウェアのJaCoCo等のカバレージツール）を用いて各試験を実行した結果得られる行番号である。「権限」は、試験対象のアプリにおける実行済行番号の箇所を実行するために必要な権限を示す。アプリを試験する装置（例えば、サーバ１０）で試験を実行した結果得られた行番号（実行済行番号）と、試験項番と、当該試験項番に対応する権限とを対応付けた情報をユーザが入力することにより、試験項目情報記憶部１７で記憶される試験項目情報が、試験項目情報記憶部１７に記憶される。このように、試験項目情報記憶部１７は、試験項目情報を取得して、記憶する。なお、図７に示した情報は、便宜上一部の試験項目の情報を示している。
【００４３】
試験選択部１８は、差分対応箇所特定部１６により特定された影響箇所に対応する試験を選択する部分である。試験選択部１８は、差分対応箇所特定部１６から影響箇所情報を取得する。試験選択部１８は、影響箇所情報を取得すると、当該影響箇所情報に基づいて、試験を選択する。
【００４４】
具体的に、試験選択部１８は、影響箇所情報に含まれるファイル名及び行番号に対応する試験項番を選択する。例えば、試験選択部１８は、図６に示した影響箇所情報を取得した場合、当該影響箇所情報のファイル名が「b.java」であり、行番号が「１００」であることに基づき、図７に示した試験項目情報記憶部１７に記憶されている試験項目情報のファイル名が「b.java」であり、実行済行番号が「１００」である試験項番を選択する。この結果、試験選択部１８は、図８に示すように、試験項番「１１１」を選択することになる。このように、試験選択部１８は、差分対応箇所特定部１６により特定された影響箇所に対応する試験を選択する。
【００４５】
また、試験選択部１８は、上記のように影響箇所情報に含まれるファイル名及び行番号に対応する試験項番を選択するだけでなく、影響箇所情報に含まれる権限に対応する試験項番を選択する。例えば、試験選択部１８は、図６に示した影響箇所情報の権限が「Permission ABC」であることに基づき、図７に示した試験項目情報記憶部１７に記憶されている試験項目情報の権限が「Permission ABC」である試験を選択する。この結果、試験選択部１８は、図９に示すように、試験項番「３３３」を選択することになる。このように、試験選択部１８は、試験項目情報に含まれる権限が、要権限差分特定部１４により特定された権限に対応する権限を試験の実施に必要とする試験をさらに選択する。
【００４６】
試験選択部１８は、上述のように試験を選択して、試験項番を選択すると、当該試験項番を選択結果出力部１９へ送出する。なお、試験選択部１８は、上記の影響箇所情報に含まれるファイル名及び行番号に対応する試験項目を選択できなかった場合（影響箇所情報に含まれるファイル名及び行番号に対応する試験項番が存在しない場合）、当該影響箇所情報に含まれるファイル名及び行番号を選択結果出力部１９へ送出する。
【００４７】
選択結果出力部１９は、試験選択部１８により選択された試験を出力する部分である。具体的に、選択結果出力部１９は、試験選択部１８から試験項番を取得すると、当該試験項番をアプリ試験表記憶部２０へ設定する。また、選択結果出力部１９は、試験選択部１８から影響箇所情報に含まれるファイル名及び行番号を取得した場合、すなわち当該ファイル名及び行番号に対応する試験項目が選択されなかった場合、当該ファイル名及び行番号と共に、当該ファイル名及び行番号に対応する試験項目が０件である旨の情報をアプリ試験表記憶部２０へ設定する。なお、選択結果出力部１９は、取得した試験項番を含む試験項番情報を他の装置へ送信するようにしてもよい。
【００４８】
続いて、図１０のフローチャートを用いて、サーバ１０が実行する処理手順の説明をする。図１０に示すフローチャートは、ＯＳの差分に影響のある試験を選択する処理を示す図である。
【００４９】
サーバ１０は、ＯＳのプログラムのソースプログラムを記憶すると共に、当該ソースプログラムの更新状態を示す差分情報を記憶する装置からＯＳ差分情報を取得し、取得したＯＳ差分情報をＯＳ差分情報記憶部１２へ設定する（ステップＳ１）。続いて、要権限差分特定部１４は、ＯＳ差分情報記憶部１２に記憶されているＯＳ差分情報と、要権限ＡＰＩリスト記憶部１３に記憶されている要権限ＡＰＩリストとを突合して、要権限ＡＰＩを有するＯＳ差分情報を抽出する（ステップＳ２）。続いて、差分対応箇所特定部１６は、ソースコード記憶部１５を参照して、抽出したＯＳ差分情報のＡＰＩを含む箇所（ファイル名、行番号）を特定する（ステップＳ３）。差分対応箇所特定部１６は、特定した箇所と、権限とを対応付けた影響箇所情報を生成する（ステップＳ４）。試験選択部１８は、影響箇所情報と試験項目情報とから対象試験を選択する（ステップＳ５）。選択結果出力部１９は、試験選択部１８が選択した試験の情報をアプリ試験表記憶部２０に記憶する（ステップＳ６）。
【００５０】
上述の実施形態では、要権限差分特定部１４が特定した権限を有する差分ＯＳ情報を用いて、差分対応箇所特定部１６が影響箇所情報を生成する場合について述べたが、要権限ＡＰＩリスト記憶部１３に記憶されているＡＰＩであるか否かに関わらず、全ての差分ＯＳ情報を用いてもよい。すなわち、差分対応箇所特定部１６は、ソースコード記憶部１５を参照して、ＯＳ差分情報記憶部１２に記憶されているＯＳ差分情報（ＯＳ差分情報取得部１１により取得されたＯＳ差分情報）が示すＡＰＩを利用するアプリケーションプログラムの箇所（ファイル名及び行番号）を特定するようにしてもよい。
【００５１】
また、上述の実施形態では、予め試験項目情報記憶部１７が、試験項目情報を記憶している場合について述べたが、試験項目情報を記憶している他の装置から試験項目情報を取得するようにしてもよい。また、試験選択部１８が、試験項目情報記憶部１７に記憶されている試験項目情報から試験を選択する場合について述べたが、試験項目情報を記憶している他の装置に対して、影響箇所情報に含まれるファイル名及び行番号を通知して、当該ファイル名及び行番号に対応する試験項目情報を取得することにより、当該試験項目情報が示す試験を選択するようにしてもよい。
【００５２】
また、上述の実施形態では、サーバ１０によって、試験選択装置を実現する場合について述べたが、他の情報処理装置により試験選択装置を実現するようにしてもよい。例えば、パーソナルコンピュータ等のスタンドアロンの装置により実現されてもよい。
【００５３】
続いて、作用効果について説明する。ＯＳ差分情報取得部１１は、ＯＳのプログラムの内、変更されたプログラムの情報を示す差分情報を取得する。差分対応箇所特定部１６は、アプリケーションプログラムにおける、差分情報に対応する影響箇所を特定する。試験選択部１８は、当該影響箇所に対応する試験を選択する。
【００５４】
これにより、ＯＳの差分部分に対応するアプリケーションプログラムの箇所を特定し、当該影響箇所の試験を選択するので、ＯＳの差分により影響する試験のみを選択することができる。このように、プログラムの修正が発生した場合に、試験を適切に選択することができる。
【００５５】
また、試験選択部１８は、試験項目情報記憶部１７に記憶された試験項目情報に基づいて影響箇所の試験を選択する。この場合、試験の実行箇所を示す情報を用いて試験を選択するので、差分情報に影響のある試験を適切に選択できる。
【００５６】
要権限差分特定部１４は、差分情報が示すプログラムの内、実行するために権限を要するプログラムを特定し、差分対応箇所特定部１６は、要権限差分特定部１４により特定されたプログラムに対応するアプリケーションの箇所を特定する。この場合、ＯＳの差分箇所の内、権限を要するプログラムに対応する試験を選択するので、実行権限を必要とする試験に絞って試験を選択することができる。
【００５７】
試験項目情報は、各試験で実行するアプリケーションに必要な権限を示す情報もさらに含み、試験選択部１８は、取得した試験項目情報に含まれる権限が、要権限差分特定部１４により特定された権限に対応する試験をさらに選択する。この場合、差分情報が示すプログラムを実行するために要する権限を必要とするアプリケーションプログラムの試験を選択するので、修正に影響のある権限の試験を網羅的に選択することができる。
【００５８】
選択結果出力部１９は、試験選択部１８から影響箇所情報に含まれるファイル名及び行番号を取得した場合、当該ファイル名及び行番号と共に、当該ファイル名及び行番号に対応する試験項目が０件である旨の情報をアプリ試験表記憶部２０へ設定する。この場合、影響箇所があるにも関わらず、アプリの試験が選択されなかったことを出力するので、試験項目の漏れが存在する可能性があることを通知することができる。また、権限が無いと実行できないＡＰＩの変更に影響のあるアプリのプログラムの箇所に対応する試験項目の漏れが存在する可能性があることも通知することができる。
【００５９】
以上、本実施形態について詳細に説明したが、当業者にとっては、本実施形態が本明細書中に説明した実施形態に限定されるものではないということは明らかである。本実施形態は、特許請求の範囲の記載により定まる本発明の趣旨及び範囲を逸脱することなく修正及び変更態様として実施することができる。したがって、本明細書の記載は、例示説明を目的とするものであり、本実施形態に対して何ら制限的な意味を有するものではない。
【００６０】
情報の通知は、本明細書で説明した態様／実施形態に限られず、他の方法で行われてもよい。例えば、情報の通知は、物理レイヤシグナリング（例えば、ＤＣＩ（Downlink  Control  Information）、ＵＣＩ（Uplink  Control  Information））、上位レイヤシグナリング（例えば、ＲＲＣ（Radio  Resource  Control）シグナリング、ＭＡＣ（Medium  Access  Control）シグナリング、報知情報（ＭＩＢ（Master  Information  Block）、ＳＩＢ（System  Information  Block）））、その他の信号又はこれらの組み合わせによって実施されてもよい。また、ＲＲＣシグナリングは、ＲＲＣメッセージと呼ばれてもよく、例えば、ＲＲＣ接続セットアップ（RRC Connection Setup）メッセージ、ＲＲＣ接続再構成（RRC Connection Reconfiguration）メッセージなどであってもよい。
【００６１】
本明細書で説明した各態様／実施形態は、ＬＴＥ（Long  Term  Evolution）、ＬＴＥ−Ａ（LTE-Advanced）、ＳＵＰＥＲ  ３Ｇ、ＩＭＴ−Ａｄｖａｎｃｅｄ、４Ｇ、５Ｇ、ＦＲＡ（Future  Radio  Access）、Ｗ−ＣＤＭＡ（登録商標）、ＧＳＭ（登録商標）、ＣＤＭＡ２０００、ＵＭＢ（Ultra  Mobile  Broadband）、ＩＥＥＥ  ８０２．１１（Ｗｉ−Ｆｉ）、ＩＥＥＥ  ８０２．１６（ＷｉＭＡＸ）、ＩＥＥＥ  ８０２．２０、ＵＷＢ（Ultra-WideBand）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、その他の適切なシステムを利用するシステム及び／又はこれらに基づいて拡張された次世代システムに適用されてもよい。
【００６２】
本明細書で説明した各態様／実施形態の処理手順、シーケンス、フローチャートなどは、矛盾の無い限り、順序を入れ替えてもよい。例えば、本明細書で説明した方法については、例示的な順序で様々なステップの要素を提示しており、提示した特定の順序に限定されない。
【００６３】
情報等は、上位レイヤ（または下位レイヤ）から下位レイヤ（または上位レイヤ）へ出力され得る。複数のネットワークノードを介して入出力されてもよい。
【００６４】
入出力された情報等は特定の場所（例えば、メモリ）に保存されてもよいし、管理テーブルで管理してもよい。入出力される情報等は、上書き、更新、または追記され得る。出力された情報等は削除されてもよい。入力された情報等は他の装置へ送信されてもよい。
【００６５】
判定は、１ビットで表される値（０か１か）によって行われてもよいし、真偽値（Boolean：trueまたはfalse）によって行われてもよいし、数値の比較（例えば、所定の値との比較）によって行われてもよい。
【００６６】
本明細書で説明した各態様／実施形態は単独で用いてもよいし、組み合わせて用いてもよいし、実行に伴って切り替えて用いてもよい。また、所定の情報の通知（例えば、「Ｘであること」の通知）は、明示的に行うものに限られず、暗黙的（例えば、当該所定の情報の通知を行わない）ことによって行われてもよい。
【００６７】
ソフトウェアは、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語と呼ばれるか、他の名称で呼ばれるかを問わず、命令、命令セット、コード、コードセグメント、プログラムコード、プログラム、サブプログラム、ソフトウェアモジュール、アプリケーション、ソフトウェアアプリケーション、ソフトウェアパッケージ、ルーチン、サブルーチン、オブジェクト、実行可能ファイル、実行スレッド、手順、機能などを意味するよう広く解釈されるべきである。
【００６８】
ソフトウェア、命令などは、伝送媒体を介して送受信されてもよい。例えば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペア及びデジタル加入者回線（ＤＳＬ）などの有線技術及び／又は赤外線、無線及びマイクロ波などの無線技術を使用してウェブサイト、サーバ、又は他のリモートソースから送信される場合、これらの有線技術及び／又は無線技術は、伝送媒体の定義内に含まれる。
【００６９】
本明細書で説明した情報、信号などは、様々な異なる技術のいずれかを使用して表されてもよい。例えば、上記の説明全体に渡って言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、チップなどは、電圧、電流、電磁波、磁界若しくは磁性粒子、光場若しくは光子、又はこれらの任意の組み合わせによって表されてもよい。
【００７０】
なお、本明細書で説明した用語及び／又は本明細書の理解に必要な用語については、同一の又は類似する意味を有する用語と置き換えてもよい。
【００７１】
本明細書で使用する「システム」および「ネットワーク」という用語は、互換的に使用される。
【００７２】
また、本明細書で説明した情報、パラメータなどは、絶対値で表されてもよいし、所定の値からの相対値で表されてもよいし、対応する別の情報で表されてもよい。例えば、無線リソースはインデックスで指示されるものであってもよい。
【００７３】
上述したパラメータに使用する名称はいかなる点においても限定的なものではない。さらに、これらのパラメータを使用する数式等は、本明細書で明示的に開示したものと異なる場合もある。様々なチャネル（例えば、ＰＵＣＣＨ、ＰＤＣＣＨなど）及び情報要素（例えば、ＴＰＣなど）は、あらゆる好適な名称によって識別できるので、これらの様々なチャネル及び情報要素に割り当てている様々な名称は、いかなる点においても限定的なものではない。
【００７４】
「接続された（connected）」という用語、又はこれらのあらゆる変形は、２又はそれ以上の要素間の直接的又は間接的なあらゆる接続を意味し、互いに「接続」された２つの要素間に１又はそれ以上の中間要素が存在することを含むことができる。要素間の接続は、物理的なものであっても、論理的なものであっても、或いはこれらの組み合わせであってもよい。本明細書で使用する場合、２つの要素は、１又はそれ以上の電線、ケーブル及び／又はプリント電気接続を使用することにより、並びにいくつかの非限定的かつ非包括的な例として、無線周波数領域、マイクロ波領域及び光（可視及び不可視の両方）領域の波長を有する電磁エネルギーなどの電磁エネルギーを使用することにより、互いに「接続」されると考えることができる。
【００７５】
本明細書で使用する「に基づいて」という記載は、別段に明記されていない限り、「のみに基づいて」を意味しない。言い換えれば、「に基づいて」という記載は、「のみに基づいて」と「に少なくとも基づいて」の両方を意味する。
【００７６】
本明細書で「第１の」、「第２の」などの呼称を使用した場合においては、その要素へのいかなる参照も、それらの要素の量または順序を全般的に限定するものではない。これらの呼称は、２つ以上の要素間を区別する便利な方法として本明細書で使用され得る。したがって、第１および第２の要素への参照は、２つの要素のみがそこで採用され得ること、または何らかの形で第１の要素が第２の要素に先行しなければならないことを意味しない。
【００７７】
上記の各装置の構成における「手段」を、「部」、「回路」、「デバイス」等に置き換えてもよい。
【００７８】
「含む（include）」、「含んでいる（including）」、およびそれらの変形が、本明細書あるいは特許請求の範囲で使用されている限り、これら用語は、用語「備える（comprising）」と同様に、包括的であることが意図される。さらに、本明細書あるいは特許請求の範囲において使用されている用語「または（or）」は、排他的論理和ではないことが意図される。
【００７９】
本明細書において、文脈または技術的に明らかに1つのみしか存在しない装置である場合以外は、複数の装置をも含むものとする。
【００８０】
本開示の全体において、文脈から明らかに単数を示したものではなければ、複数のものを含むものとする。
【符号の説明】
【００８１】
１０…サーバ、１１…ＯＳ差分情報取得部、１２…ＯＳ差分情報記憶部、１３…要権限ＡＰＩリスト記憶部、１４…要権限差分特定部、１５…ソースコード記憶部、１６…差分対応箇所特定部、１７…試験項目情報記憶部、１８…試験選択部、１９…選択結果出力部、２０…アプリ試験表記憶部、１０１…ＣＰＵ、１０２…ＲＡＭ、１０３…ＲＯＭ、１０４…通信モジュール、１０５…補助記憶装置。
【図１】
2017199517.tif 000003
【図２】
2017199517.tif 000004
【図３】
2017199517.tif 000005
【図４】
2017199517.tif 000006
【図５】
2017199517.tif 000007
【図６】
2017199517.tif 000008
【図７】
2017199517.tif 000009
【図８】
2017199517.tif 000010
【図９】
2017199517.tif 000011
【図１０】
2017199517.tif 000012
【国際調査報告】
2017199517.tif 000013
2017199517.tif 000014
2017199517.tif 000015
2017199517.tif 000016