JPWO2017199517A1 - 試験選択装置 - Google Patents

試験選択装置 Download PDF

Info

Publication number
JPWO2017199517A1
JPWO2017199517A1 JP2018518100A JP2018518100A JPWO2017199517A1 JP WO2017199517 A1 JPWO2017199517 A1 JP WO2017199517A1 JP 2018518100 A JP2018518100 A JP 2018518100A JP 2018518100 A JP2018518100 A JP 2018518100A JP WO2017199517 A1 JPWO2017199517 A1 JP WO2017199517A1
Authority
JP
Japan
Prior art keywords
test
information
difference
program
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2018518100A
Other languages
English (en)
Other versions
JP6823056B2 (ja
Inventor
増田 真也
真也 増田
吉川 貴
貴 吉川
浅野 浩一
浩一 浅野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NTT Docomo Inc
Original Assignee
NTT Docomo Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NTT Docomo Inc filed Critical NTT Docomo Inc
Publication of JPWO2017199517A1 publication Critical patent/JPWO2017199517A1/ja
Application granted granted Critical
Publication of JP6823056B2 publication Critical patent/JP6823056B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3676Test management for coverage analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

OS差分情報取得部11は、OSのプログラムの内、変更されたプログラムの情報を示す差分情報を取得する。差分対応箇所特定部16は、アプリケーションプログラムにおける、差分情報に対応する箇所を特定する。試験選択部18は、各試験におけるアプリケーションプログラムで実行される箇所を含む試験項目情報を取得し、取得した試験項目情報に含まれるアプリケーションプログラムの箇所が、差分対応箇所特定部16により特定された箇所に対応する試験を選択する。

Description

本発明は、プログラムの試験を選択する装置に関する。
従来から、一のプログラムのコードの変更による影響箇所を特定する技術がある。例えば、特許文献1には、機能追加による影響箇所を特定することが記載されている。具体的には、機能追加前の旧バージョンと、機能追加後の新バージョンとの差分である差分コード集合と、特定の機能のみを実行させるテストケースを実行させたソースの集合とを特定し、差分コード集合と、実行済コード集合との集合積を計算する。これにより、特定の機能における差分コードのうち、テスト(試験)を実行したコードを抽出することができる。
特開2010−67188号公報
ところで、プログラムの試験を実行した後に、プログラムのコード修正が発生した場合に、修正前に実行した試験を全て実行すると、コードの修正に影響の無い試験まで実行することになるので、非効率である。
本発明は、上記に鑑みてなされたものであり、一のプログラムの修正が発生した場合に、他のプログラムの影響箇所に対応する試験を適切に選択する試験選択装置を提供することを目的とする。
本発明に係る試験選択装置は、第1のプログラムの内、変更された部分を示す差分情報を取得する差分取得手段と、第1のプログラムによる機能を利用する第2のプログラムにおける、差分取得手段により取得された差分情報で示される影響箇所を特定する差分対応箇所特定手段と、差分対応箇所特定手段により特定された影響箇所に対応する、第2のプログラムの試験を選択する試験選択手段と、を備える。
このような本発明に係る試験選択装置によれば、第1のプログラムの内、変更された部分に対応する第2のプログラムの影響箇所を特定し、当該影響箇所の試験を選択するので、第1のプログラムが変更されたことにより影響する試験を選択することができる。このように、プログラムの修正が発生した場合に、試験を適切に選択することができる。
本発明に係る試験選択装置では、試験で実行される実行箇所を含む試験情報を取得する試験情報取得手段をさらに備え、試験選択手段は、試験情報取得手段により取得された試験情報に基づいて、差分対応箇所特定手段により特定された影響箇所に対応する試験を選択してもよい。
このような本発明に係る試験選択装置によれば、試験の実行箇所を示す情報を用いて試験を選択するので、差分情報に影響のある試験を適切に選択できる。
本発明に係る試験選択装置では、差分取得手段により取得された差分情報に基づいて、実行するために権限を要する差分情報による機能を特定する機能特定手段をさらに備え、差分対応箇所特定手段は、機能特定手段により特定された機能に対応する第2のプログラムの影響箇所を特定してもよい。
このような本発明に係る試験選択装置によれば、第1のプログラムの変更部分の内、実行するために権限を要する機能に対応する試験を選択するので、実行権限を必要とする試験に絞って試験を選択することができる。
本発明に係る試験選択装置では、試験選択手段は、機能特定手段により特定された機能の権限に対応する権限を試験の実施に必要とする試験をさらに選択してもよい。
このような本発明に係る試験選択装置によれば、変更された第1のプログラムを実行するために要する権限を必要とする第2のプログラムの試験を選択するので、第1のプログラムの変更に影響のある権限の試験を網羅的に選択することができる。
本発明に係る試験選択装置では、試験選択手段によって、影響箇所に対応する、第2のプログラムの試験が選択されなかった場合、その旨を出力する出力手段をさらに備えてもよい。
このような本発明に係る試験選択装置によれば、影響箇所があるにも関わらず、第2のプログラムの試験が選択されなかったことを出力するので、試験項目の漏れが存在する可能性があることを通知することができる。
本発明によれば、プログラムの修正が発生した場合に、試験を適切に選択することができる。
本発明の実施形態に係るサーバのブロック図である。 サーバ10のハードウェア構成を示す図である。 OS差分情報記憶部12が記憶する情報のデータ構造を示す図である。 要権限APIリスト記憶部13が記憶する情報のデータ構造を示す図である。 ソースコード記憶部15が記憶する情報のデータ構造を示す図である。 影響箇所情報の例を示す図である。 試験項目情報記憶部17が記憶する情報のデータ構造を示す図である。 試験の選択例を示す図である。 試験の選択例を示す図である。 試験選択処理を示すフローチャートである。
以下、添付図面を参照して、本発明の好適な実施形態について詳細に説明する。なお、図面の説明において同一又は相当要素には同一符号を付し、重複する説明は省略する。
図1に本実施形態に係るサーバ10(試験選択装置)を示す。サーバ10は、OS(Operating System)のプログラムであるOSプログラム(第1のプログラム)とアプリケーションプログラム(第2のプログラム)がある場合に、OSプログラムの修正が発生したとき、アプリケーションプログラムの試験の内、OSプログラムの修正に影響する部分の試験を特定する装置である。OSプログラムとは、ソフトウェアの種類の一つであり、機器(例えば、移動端末)の基本的な管理や制御のための機能や、多くのソフトウェアが共通して利用する基本的な機能などを実装した、システム全体を管理するソフトウェアである。また、OSプログラムは、OSプログラム内の一部のプログラムを変更する。OSプログラムには、バージョンが設定され、OSプログラムに変更が発生すると、変更後のOSプログラムに新たなバージョンが設定される。このOSプログラムのソースコードを記憶するサーバ装置があり、このサーバ装置は、このOSプログラムのソースコードを記憶し、当該OSプログラムの変更前の情報と、変更後の情報とを含む情報であるOS差分情報も記憶する。このOS差分情報は、OSプログラムの内、変更された部分を示す情報である。アプリケーションプログラム(アプリ)とは、機器に搭載されるソフトウェアのうち、同じ目的を持った機能を一つのグループとしてまとめたものをいう。アプリは、OSのプログラムによる機能を利用する。試験とは、対象となるプログラムが要件通りに動作するか検査するものである。また、アプリケーションプログラムの試験とは、アプリケーションプログラムを要件通りに実行できるか否かを検査するものであり、アプリケーションプログラムを正常に実行させるための試験である。
引き続いて、本実施形態に係るサーバ10の機能について詳細に説明する。サーバ10は、OSプログラム(変更前のOSプログラム、変更後のOSプログラム)を記憶しているサーバとインターネット等のネットワークを介して接続されている。図1に示すように、サーバ10は、OS差分情報取得部11(差分取得手段)と、OS差分情報記憶部12と、要権限APIリスト記憶部13と、要権限差分特定部14(機能特定手段)と、ソースコード記憶部15と、差分対応箇所特定部16(差分対応箇所特定手段)と、試験項目情報記憶部17(試験情報取得手段)と、試験選択部18(試験選択手段)と、選択結果出力部19(出力手段)と、アプリ試験表記憶部20とを備えて構成される。
図2は、サーバ10のハードウェア構成図である。図2に示すように、サーバ10は、CPU101、主記憶装置であるRAM(Random Access Memory)102及びROM(Read Only Memory)103、通信を行うための通信モジュール104、並びにハードディスク等の補助記憶装置105等のハードウェアを備えるコンピュータを含むものとして構成される。これらの構成要素がプログラム等により動作することにより、図1に示す各機能要素による機能が発揮される。なお、サーバ10は複数台のコンピュータによるコンピュータシステムによって構成されていてもよい。以下、図1に示す各機能要素について説明する。
図2に示すハードウェア構成について更に詳細に説明する。上記実施の形態の説明に用いた図1に示すブロック図は、機能単位のブロックを示している。これらの機能ブロック(構成部)は、ハードウェア及び/又はソフトウェアの任意の組み合わせによって実現される。また、各機能ブロックの実現手段は特に限定されない。すなわち、各機能ブロックは、物理的及び/又は論理的に結合した1つの装置により実現されてもよいし、物理的及び/又は論理的に分離した2つ以上の装置を直接的及び/又は間接的に(例えば、有線及び/又は無線)で接続し、これら複数の装置により実現されてもよい。
例えば、本発明の一実施の形態におけるサーバ10は、本実施形態に係る試験選択装置の処理を行うコンピュータとして機能してもよい。図2は、上述したように、本発明の一実施の形態に係るサーバ10のハードウェア構成の一例を示す図である。上述のサーバ10は、物理的には、CPU101、メモリ(RAM102及びROM103を含み、以下では単にメモリという場合がある。)、補助記憶装置105、および、バス等を含むコンピュータ装置として構成されてもよい。
なお、以下の説明では、「装置」という文言は、回路、デバイス、ユニットなどに読み替えることができる。サーバ10のハードウェア構成は、図に示した各装置を1つ又は複数含むように構成されてもよいし、一部の装置を含まずに構成されてもよい。
図1に示すサーバ10の各機能は、CPU101、RAM102などのハードウェア上に所定のソフトウェア(プログラム)を読み込ませることで、CPU101が演算を行い、通信モジュール104による通信や、メモリ及び補助記憶装置105におけるデータの読み出し及び/又は書き込みを制御することで実現される。
CPU101は、例えば、オペレーティングシステムを動作させてコンピュータ全体を制御する。CPU101は、周辺装置とのインターフェース、制御装置、演算装置、レジスタなどを含む中央処理装置(CPU:Central Processing Unit)で構成されてもよい。
CPU101は、プログラム(プログラムコード)、ソフトウェアモジュールやデータを、補助記憶装置105及び/又は通信モジュール104からRAM102に読み出し、これらに従って各種の処理を実行する。プログラムとしては、上述の実施の形態で説明した動作の少なくとも一部をコンピュータに実行させるプログラムが用いられる。例えば、サーバ10の図1に示す各機能(例えば、OS差分情報取得部等)は、メモリに格納され、CPU101で動作する制御プログラムによって実現されてもよく、他の機能についても同様に実現されてもよい。上述の各種処理は、1つのCPU101で実行される旨を説明してきたが、2以上のCPU101により同時又は逐次に実行されてもよい。CPU101は、1以上のチップで実装されてもよい。なお、プログラムは、電気通信回線を介してネットワークから送信されても良い。
メモリは、コンピュータ読み取り可能な記録媒体であり、例えば、ROM103(EPROM(Erasable Programmable ROM)、EEPROM(Electrically Erasable Programmable ROM)等)、および、RAM102等の少なくとも1つを有していてもよい。メモリは、レジスタ、キャッシュ、メインメモリ(主記憶装置)などと呼ばれてもよい。
補助記憶装置105は、コンピュータ読み取り可能な記録媒体であり、例えば、CD−ROM(Compact Disc ROM)などの光ディスク、ハードディスクドライブ、フレキシブルディスク、光磁気ディスク(例えば、コンパクトディスク、デジタル多用途ディスク、Blu−ray(登録商標)ディスク)、スマートカード、フラッシュメモリ(例えば、カード、スティック、キードライブ)、フロッピー(登録商標)ディスク、磁気ストリップなどの少なくとも1つで構成されてもよい。補助記憶装置105は、補助記憶装置と呼ばれてもよい。上述の記憶媒体は、例えば、メモリ及び/又は補助記憶装置105を含むデータベース、サーバその他の適切な媒体であってもよい。
通信モジュール104は、有線及び/又は無線ネットワークを介してコンピュータ間の通信を行うためのハードウェア(送受信デバイス)であり、例えばネットワークデバイス、ネットワークコントローラ、ネットワークカード、通信モジュールなどともいう。
CPU101やメモリなどの各装置は、情報を通信するためのバスで接続される。バスは、単一のバスで構成されてもよいし、装置間で異なるバスで構成されてもよい。
サーバ10は、マイクロプロセッサ、デジタル信号プロセッサ(DSP:Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)、FPGA(Field Programmable Gate Array)などのハードウェアを含んで構成されてもよく、当該ハードウェアにより、各機能ブロックの一部又は全てが実現されてもよい。例えば、CPU101は、これらのハードウェアの少なくとも1つで実装されてもよい。
OS差分情報取得部11は、OS差分情報を取得する部分である。OS差分情報取得部11は、差分情報を記憶する装置からOS差分情報を取得し、取得したOS差分情報をOS差分情報記憶部12へ設定する。OS差分情報記憶部12は、OS差分情報を記憶する部分である。OS差分情報記憶部12で記憶されている情報の例を図3に示す。図3に示すように、「ファイル名」、「変更前(Ver5.1)」、及び「変更後(Ver6.0)」を含むOS差分情報を記憶している。「ファイル名」は、変更されたプログラムを含むファイルの名称である。「変更前(Ver5.1)」は、変更前のAPI(Application Programming Interface)名称を示す。ここで、APIとは、あるプログラムの機能や管理するデータなどを、外部の他のプログラムから呼び出して利用するための手順やデータ形式などを定めた規約をいう。また、変更前のOSのバージョンが5.1であることを示す。「変更後(Ver6.0)」は、変更後のAPI名称を示す。また、変更後のOSのバージョンが6.0であることを示す。Java(登録商標)によりプログラムされた「ABC.java」というファイル名のファイルにおいて、「int ABC(a,b,c)」という変更前のAPIが、「int ABC(a,b,c,d)」に変更されたことを示す。当該「int ABC(a,b,c)」のうち、「int」とは、戻り値の型を示し、「ABC」は、API名称を示し、「a,b,c」は、APIのパラメータを示す。よって、このAPIは、3つのパラメータがあることを示す。また、「int ABC(a,b,c,d)」という変更後のAPIのパラメータが、「a,b,c,d」となっているので、パラメータの数が3から4に増えたことを示している。また、ファイル名が「DEF.java」というファイル名における「g=defexec();」というAPIは、「g=def2exec();」に変更されていることを示し、API名称が変更されたことを示している。すなわち、APIの処理内容が異なったことを示している。
要権限APIリスト記憶部13は、OSのプログラムの内、権限を必要とするAPIのリストを記憶する部分である。ここでいう権限とは、対象となるプログラムを実行するために取得しておく必要のある情報であり、APIに対応付けられたり、実行するユーザに対応付けられたりする。要権限APIリスト記憶部13で記憶されている情報の例を図4に示す。図4に示すように、「権限」、「レベル」、及び「API名」を含む情報を記憶している。「権限」は、APIを実行するために必要な権限である。「レベル」は、当該権限のレベルである。「API名」は、APIの名称である。図4に示すように、「Permission ABC」という権限のレベルが「dangerous」であり、「int ABC」というAPI名のAPIの実行にはこの権限が必要であることを示している。なお、このAPIのリストは、OSのプログラムが更新される度に更新される。
要権限差分特定部14は、差分情報が示すプログラムの内、実行するために権限を要する機能を特定する部分である。具体的に、要権限差分特定部14は、ユーザ操作によりOSプログラムの修正に影響する試験の選択要求を受け付けると、OS差分情報記憶部12に記憶されている情報の「変更後」と、要権限APIリスト記憶部13に記憶されている「API名」とが対応するAPI名を特定する。要権限差分特定部14は、特定したAPI(機能)に対応する差分情報及び当該差分情報に対応する権限を差分対応箇所特定部16へ送出する。
ここで、図3に示した差分情報及び図4に示した要権限APIリストを用いて、差分情報が示すAPIの内、権限を必要とするAPIを特定する例を説明する。要権限差分特定部14は、OS差分情報記憶部12から図3に示したような差分情報を取得し、要権限APIリスト記憶部13から図4に示したような要権限APIリストを取得する。続いて、差分対応箇所特定部16は、差分情報の変更後のAPI名と、要権限APIリストの「API名」とが合致するAPIを特定する。差分対応箇所特定部16は、図3の「変更後」のAPI名にも、図4の「API名」にも「ABC」と記載されているので、「ABC」というAPIを特定する。このように、要権限差分特定部14は、差分情報に含まれるAPIの内、権限を必要とするAPIを特定する。
ソースコード記憶部15は、アプリのソースコードを記憶する部分である。ソースコード記憶部15で記憶されている情報の例を図5に示す。図5に示すように、「ファイル名」、「行番号」、及び「ソースコード内の命令文」を含む情報を記憶している。「ファイル名」は、アプリのソースコードが記憶されているファイルの名称である。「行番号」は、アプリのソースコードの行番号を示す。「ソースコード内の命令文」は、ソースコードに記載されている命令文を示す。図5に示す例では、「b.java」というファイル名のファイルにおいて、100行目に「log(ABC(a,b,c))」という命令文が記載されていることを示している。なお、図5に示した情報は、便宜上一部のソースコードの情報を示している。
差分対応箇所特定部16は、アプリケーションプログラムにおける、差分情報のプログラムに対応する箇所(影響箇所)を特定する部分である。差分対応箇所特定部16は、要権限差分特定部14から差分情報及び当該差分情報が示すAPIの権限を取得する。続いて、差分対応箇所特定部16は、ソースコード記憶部15を検索し、当該差分情報の変更前のAPIを含む命令文の箇所(ファイル名、行番号)を特定する。
例えば、差分対応箇所特定部16が権限を有するAPI「ABC」の差分情報を要権限差分特定部14から取得したとする。この場合、差分対応箇所特定部16は、ソースコード記憶部15を参照して、当該「ABC」というAPIを用いているソースコードのファイル名及び行番号を特定する。ソースコード記憶部15に図5に示した情報が記憶されている場合、ファイル名「b.java」における行番号100に「ABC」を含む命令文が記載されていることを示すので、差分対応箇所特定部16は、ファイル名「b.java」の行番号100を特定する。このことは、OSのプログラムにおける、変更が発生したAPIであって、当該APIを実行するために権限を必要とするAPIを利用しているアプリのプログラムのファイル名及び行番号を特定していることを示している。すなわち、差分対応箇所特定部16は、OSのプログラムの影響を受けると考えられる箇所を特定している。
差分対応箇所特定部16は、この特定した結果に基づく情報である影響箇所情報を生成する。具体的には、差分対応箇所特定部16は、特定したファイル名と、行番号と、要権限差分特定部14から取得した権限(差分情報に対応する権限)とを含む影響箇所情報を生成する。差分対応箇所特定部16が生成する情報の例を図6に示す。図6に示すように、差分対応箇所特定部16は、当該行番号と、当該行番号に対応するファイル名と、「ABC」というAPIを実行するための権限とを含む情報を生成する。差分対応箇所特定部16が生成した情報を試験選択部18へ送出する。
試験項目情報記憶部17は、アプリの試験で実行される箇所を含む試験の情報である試験項目情報(試験情報)を試験毎に記憶する部分である。試験項目情報記憶部17が記憶する情報の例を図7に示す。図7に示すように、「試験項番」、「ファイル名」、「実行済行番号(カバレージ情報)」、及び「権限」を含む情報を記憶している。「試験項番」は、各試験に付与される番号であり、試験を識別する情報である。「ファイル名」は、試験対象のアプリケーションプログラムを構成するファイルの名称である。「実行済行番号(カバレージ情報)」は、試験において実行されるアプリケーションプログラムのプログラムファイルにおける行番号(実行箇所)を示す。
この行番号は、試験において実行したアプリの箇所を測定するプログラム(例えば、オープンソースソフトウェアのJaCoCo等のカバレージツール)を用いて各試験を実行した結果得られる行番号である。「権限」は、試験対象のアプリにおける実行済行番号の箇所を実行するために必要な権限を示す。アプリを試験する装置(例えば、サーバ10)で試験を実行した結果得られた行番号(実行済行番号)と、試験項番と、当該試験項番に対応する権限とを対応付けた情報をユーザが入力することにより、試験項目情報記憶部17で記憶される試験項目情報が、試験項目情報記憶部17に記憶される。このように、試験項目情報記憶部17は、試験項目情報を取得して、記憶する。なお、図7に示した情報は、便宜上一部の試験項目の情報を示している。
試験選択部18は、差分対応箇所特定部16により特定された影響箇所に対応する試験を選択する部分である。試験選択部18は、差分対応箇所特定部16から影響箇所情報を取得する。試験選択部18は、影響箇所情報を取得すると、当該影響箇所情報に基づいて、試験を選択する。
具体的に、試験選択部18は、影響箇所情報に含まれるファイル名及び行番号に対応する試験項番を選択する。例えば、試験選択部18は、図6に示した影響箇所情報を取得した場合、当該影響箇所情報のファイル名が「b.java」であり、行番号が「100」であることに基づき、図7に示した試験項目情報記憶部17に記憶されている試験項目情報のファイル名が「b.java」であり、実行済行番号が「100」である試験項番を選択する。この結果、試験選択部18は、図8に示すように、試験項番「111」を選択することになる。このように、試験選択部18は、差分対応箇所特定部16により特定された影響箇所に対応する試験を選択する。
また、試験選択部18は、上記のように影響箇所情報に含まれるファイル名及び行番号に対応する試験項番を選択するだけでなく、影響箇所情報に含まれる権限に対応する試験項番を選択する。例えば、試験選択部18は、図6に示した影響箇所情報の権限が「Permission ABC」であることに基づき、図7に示した試験項目情報記憶部17に記憶されている試験項目情報の権限が「Permission ABC」である試験を選択する。この結果、試験選択部18は、図9に示すように、試験項番「333」を選択することになる。このように、試験選択部18は、試験項目情報に含まれる権限が、要権限差分特定部14により特定された権限に対応する権限を試験の実施に必要とする試験をさらに選択する。
試験選択部18は、上述のように試験を選択して、試験項番を選択すると、当該試験項番を選択結果出力部19へ送出する。なお、試験選択部18は、上記の影響箇所情報に含まれるファイル名及び行番号に対応する試験項目を選択できなかった場合(影響箇所情報に含まれるファイル名及び行番号に対応する試験項番が存在しない場合)、当該影響箇所情報に含まれるファイル名及び行番号を選択結果出力部19へ送出する。
選択結果出力部19は、試験選択部18により選択された試験を出力する部分である。具体的に、選択結果出力部19は、試験選択部18から試験項番を取得すると、当該試験項番をアプリ試験表記憶部20へ設定する。また、選択結果出力部19は、試験選択部18から影響箇所情報に含まれるファイル名及び行番号を取得した場合、すなわち当該ファイル名及び行番号に対応する試験項目が選択されなかった場合、当該ファイル名及び行番号と共に、当該ファイル名及び行番号に対応する試験項目が0件である旨の情報をアプリ試験表記憶部20へ設定する。なお、選択結果出力部19は、取得した試験項番を含む試験項番情報を他の装置へ送信するようにしてもよい。
続いて、図10のフローチャートを用いて、サーバ10が実行する処理手順の説明をする。図10に示すフローチャートは、OSの差分に影響のある試験を選択する処理を示す図である。
サーバ10は、OSのプログラムのソースプログラムを記憶すると共に、当該ソースプログラムの更新状態を示す差分情報を記憶する装置からOS差分情報を取得し、取得したOS差分情報をOS差分情報記憶部12へ設定する(ステップS1)。続いて、要権限差分特定部14は、OS差分情報記憶部12に記憶されているOS差分情報と、要権限APIリスト記憶部13に記憶されている要権限APIリストとを突合して、要権限APIを有するOS差分情報を抽出する(ステップS2)。続いて、差分対応箇所特定部16は、ソースコード記憶部15を参照して、抽出したOS差分情報のAPIを含む箇所(ファイル名、行番号)を特定する(ステップS3)。差分対応箇所特定部16は、特定した箇所と、権限とを対応付けた影響箇所情報を生成する(ステップS4)。試験選択部18は、影響箇所情報と試験項目情報とから対象試験を選択する(ステップS5)。選択結果出力部19は、試験選択部18が選択した試験の情報をアプリ試験表記憶部20に記憶する(ステップS6)。
上述の実施形態では、要権限差分特定部14が特定した権限を有する差分OS情報を用いて、差分対応箇所特定部16が影響箇所情報を生成する場合について述べたが、要権限APIリスト記憶部13に記憶されているAPIであるか否かに関わらず、全ての差分OS情報を用いてもよい。すなわち、差分対応箇所特定部16は、ソースコード記憶部15を参照して、OS差分情報記憶部12に記憶されているOS差分情報(OS差分情報取得部11により取得されたOS差分情報)が示すAPIを利用するアプリケーションプログラムの箇所(ファイル名及び行番号)を特定するようにしてもよい。
また、上述の実施形態では、予め試験項目情報記憶部17が、試験項目情報を記憶している場合について述べたが、試験項目情報を記憶している他の装置から試験項目情報を取得するようにしてもよい。また、試験選択部18が、試験項目情報記憶部17に記憶されている試験項目情報から試験を選択する場合について述べたが、試験項目情報を記憶している他の装置に対して、影響箇所情報に含まれるファイル名及び行番号を通知して、当該ファイル名及び行番号に対応する試験項目情報を取得することにより、当該試験項目情報が示す試験を選択するようにしてもよい。
また、上述の実施形態では、サーバ10によって、試験選択装置を実現する場合について述べたが、他の情報処理装置により試験選択装置を実現するようにしてもよい。例えば、パーソナルコンピュータ等のスタンドアロンの装置により実現されてもよい。
続いて、作用効果について説明する。OS差分情報取得部11は、OSのプログラムの内、変更されたプログラムの情報を示す差分情報を取得する。差分対応箇所特定部16は、アプリケーションプログラムにおける、差分情報に対応する影響箇所を特定する。試験選択部18は、当該影響箇所に対応する試験を選択する。
これにより、OSの差分部分に対応するアプリケーションプログラムの箇所を特定し、当該影響箇所の試験を選択するので、OSの差分により影響する試験のみを選択することができる。このように、プログラムの修正が発生した場合に、試験を適切に選択することができる。
また、試験選択部18は、試験項目情報記憶部17に記憶された試験項目情報に基づいて影響箇所の試験を選択する。この場合、試験の実行箇所を示す情報を用いて試験を選択するので、差分情報に影響のある試験を適切に選択できる。
要権限差分特定部14は、差分情報が示すプログラムの内、実行するために権限を要するプログラムを特定し、差分対応箇所特定部16は、要権限差分特定部14により特定されたプログラムに対応するアプリケーションの箇所を特定する。この場合、OSの差分箇所の内、権限を要するプログラムに対応する試験を選択するので、実行権限を必要とする試験に絞って試験を選択することができる。
試験項目情報は、各試験で実行するアプリケーションに必要な権限を示す情報もさらに含み、試験選択部18は、取得した試験項目情報に含まれる権限が、要権限差分特定部14により特定された権限に対応する試験をさらに選択する。この場合、差分情報が示すプログラムを実行するために要する権限を必要とするアプリケーションプログラムの試験を選択するので、修正に影響のある権限の試験を網羅的に選択することができる。
選択結果出力部19は、試験選択部18から影響箇所情報に含まれるファイル名及び行番号を取得した場合、当該ファイル名及び行番号と共に、当該ファイル名及び行番号に対応する試験項目が0件である旨の情報をアプリ試験表記憶部20へ設定する。この場合、影響箇所があるにも関わらず、アプリの試験が選択されなかったことを出力するので、試験項目の漏れが存在する可能性があることを通知することができる。また、権限が無いと実行できないAPIの変更に影響のあるアプリのプログラムの箇所に対応する試験項目の漏れが存在する可能性があることも通知することができる。
以上、本実施形態について詳細に説明したが、当業者にとっては、本実施形態が本明細書中に説明した実施形態に限定されるものではないということは明らかである。本実施形態は、特許請求の範囲の記載により定まる本発明の趣旨及び範囲を逸脱することなく修正及び変更態様として実施することができる。したがって、本明細書の記載は、例示説明を目的とするものであり、本実施形態に対して何ら制限的な意味を有するものではない。
情報の通知は、本明細書で説明した態様/実施形態に限られず、他の方法で行われてもよい。例えば、情報の通知は、物理レイヤシグナリング(例えば、DCI(Downlink Control Information)、UCI(Uplink Control Information))、上位レイヤシグナリング(例えば、RRC(Radio Resource Control)シグナリング、MAC(Medium Access Control)シグナリング、報知情報(MIB(Master Information Block)、SIB(System Information Block)))、その他の信号又はこれらの組み合わせによって実施されてもよい。また、RRCシグナリングは、RRCメッセージと呼ばれてもよく、例えば、RRC接続セットアップ(RRC Connection Setup)メッセージ、RRC接続再構成(RRC Connection Reconfiguration)メッセージなどであってもよい。
本明細書で説明した各態様/実施形態は、LTE(Long Term Evolution)、LTE−A(LTE-Advanced)、SUPER 3G、IMT−Advanced、4G、5G、FRA(Future Radio Access)、W−CDMA(登録商標)、GSM(登録商標)、CDMA2000、UMB(Ultra Mobile Broadband)、IEEE 802.11(Wi−Fi)、IEEE 802.16(WiMAX)、IEEE 802.20、UWB(Ultra-WideBand)、Bluetooth(登録商標)、その他の適切なシステムを利用するシステム及び/又はこれらに基づいて拡張された次世代システムに適用されてもよい。
本明細書で説明した各態様/実施形態の処理手順、シーケンス、フローチャートなどは、矛盾の無い限り、順序を入れ替えてもよい。例えば、本明細書で説明した方法については、例示的な順序で様々なステップの要素を提示しており、提示した特定の順序に限定されない。
情報等は、上位レイヤ(または下位レイヤ)から下位レイヤ(または上位レイヤ)へ出力され得る。複数のネットワークノードを介して入出力されてもよい。
入出力された情報等は特定の場所(例えば、メモリ)に保存されてもよいし、管理テーブルで管理してもよい。入出力される情報等は、上書き、更新、または追記され得る。出力された情報等は削除されてもよい。入力された情報等は他の装置へ送信されてもよい。
判定は、1ビットで表される値(0か1か)によって行われてもよいし、真偽値(Boolean:trueまたはfalse)によって行われてもよいし、数値の比較(例えば、所定の値との比較)によって行われてもよい。
本明細書で説明した各態様/実施形態は単独で用いてもよいし、組み合わせて用いてもよいし、実行に伴って切り替えて用いてもよい。また、所定の情報の通知(例えば、「Xであること」の通知)は、明示的に行うものに限られず、暗黙的(例えば、当該所定の情報の通知を行わない)ことによって行われてもよい。
ソフトウェアは、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語と呼ばれるか、他の名称で呼ばれるかを問わず、命令、命令セット、コード、コードセグメント、プログラムコード、プログラム、サブプログラム、ソフトウェアモジュール、アプリケーション、ソフトウェアアプリケーション、ソフトウェアパッケージ、ルーチン、サブルーチン、オブジェクト、実行可能ファイル、実行スレッド、手順、機能などを意味するよう広く解釈されるべきである。
ソフトウェア、命令などは、伝送媒体を介して送受信されてもよい。例えば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペア及びデジタル加入者回線(DSL)などの有線技術及び/又は赤外線、無線及びマイクロ波などの無線技術を使用してウェブサイト、サーバ、又は他のリモートソースから送信される場合、これらの有線技術及び/又は無線技術は、伝送媒体の定義内に含まれる。
本明細書で説明した情報、信号などは、様々な異なる技術のいずれかを使用して表されてもよい。例えば、上記の説明全体に渡って言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、チップなどは、電圧、電流、電磁波、磁界若しくは磁性粒子、光場若しくは光子、又はこれらの任意の組み合わせによって表されてもよい。
なお、本明細書で説明した用語及び/又は本明細書の理解に必要な用語については、同一の又は類似する意味を有する用語と置き換えてもよい。
本明細書で使用する「システム」および「ネットワーク」という用語は、互換的に使用される。
また、本明細書で説明した情報、パラメータなどは、絶対値で表されてもよいし、所定の値からの相対値で表されてもよいし、対応する別の情報で表されてもよい。例えば、無線リソースはインデックスで指示されるものであってもよい。
上述したパラメータに使用する名称はいかなる点においても限定的なものではない。さらに、これらのパラメータを使用する数式等は、本明細書で明示的に開示したものと異なる場合もある。様々なチャネル(例えば、PUCCH、PDCCHなど)及び情報要素(例えば、TPCなど)は、あらゆる好適な名称によって識別できるので、これらの様々なチャネル及び情報要素に割り当てている様々な名称は、いかなる点においても限定的なものではない。
「接続された(connected)」という用語、又はこれらのあらゆる変形は、2又はそれ以上の要素間の直接的又は間接的なあらゆる接続を意味し、互いに「接続」された2つの要素間に1又はそれ以上の中間要素が存在することを含むことができる。要素間の接続は、物理的なものであっても、論理的なものであっても、或いはこれらの組み合わせであってもよい。本明細書で使用する場合、2つの要素は、1又はそれ以上の電線、ケーブル及び/又はプリント電気接続を使用することにより、並びにいくつかの非限定的かつ非包括的な例として、無線周波数領域、マイクロ波領域及び光(可視及び不可視の両方)領域の波長を有する電磁エネルギーなどの電磁エネルギーを使用することにより、互いに「接続」されると考えることができる。
本明細書で使用する「に基づいて」という記載は、別段に明記されていない限り、「のみに基づいて」を意味しない。言い換えれば、「に基づいて」という記載は、「のみに基づいて」と「に少なくとも基づいて」の両方を意味する。
本明細書で「第1の」、「第2の」などの呼称を使用した場合においては、その要素へのいかなる参照も、それらの要素の量または順序を全般的に限定するものではない。これらの呼称は、2つ以上の要素間を区別する便利な方法として本明細書で使用され得る。したがって、第1および第2の要素への参照は、2つの要素のみがそこで採用され得ること、または何らかの形で第1の要素が第2の要素に先行しなければならないことを意味しない。
上記の各装置の構成における「手段」を、「部」、「回路」、「デバイス」等に置き換えてもよい。
「含む(include)」、「含んでいる(including)」、およびそれらの変形が、本明細書あるいは特許請求の範囲で使用されている限り、これら用語は、用語「備える(comprising)」と同様に、包括的であることが意図される。さらに、本明細書あるいは特許請求の範囲において使用されている用語「または(or)」は、排他的論理和ではないことが意図される。
本明細書において、文脈または技術的に明らかに1つのみしか存在しない装置である場合以外は、複数の装置をも含むものとする。
本開示の全体において、文脈から明らかに単数を示したものではなければ、複数のものを含むものとする。
10…サーバ、11…OS差分情報取得部、12…OS差分情報記憶部、13…要権限APIリスト記憶部、14…要権限差分特定部、15…ソースコード記憶部、16…差分対応箇所特定部、17…試験項目情報記憶部、18…試験選択部、19…選択結果出力部、20…アプリ試験表記憶部、101…CPU、102…RAM、103…ROM、104…通信モジュール、105…補助記憶装置。

Claims (5)

  1. 第1のプログラムの内、変更された部分を示す差分情報を取得する差分取得手段と、
    前記第1のプログラムによる機能を利用する第2のプログラムにおける、前記差分取得手段により取得された差分情報で示される影響箇所を特定する差分対応箇所特定手段と、
    前記差分対応箇所特定手段により特定された影響箇所に対応する、第2のプログラムの試験を選択する試験選択手段と、
    を備える試験選択装置。
  2. 試験で実行される実行箇所を含む試験情報を取得する試験情報取得手段をさらに備え、
    前記試験選択手段は、前記試験情報取得手段により取得された試験情報に基づいて、前記差分対応箇所特定手段により特定された影響箇所に対応する試験を選択する、請求項1に記載の試験選択装置。
  3. 前記差分取得手段により取得された差分情報に基づいて、実行するために権限を要する差分情報による機能を特定する機能特定手段をさらに備え、
    前記差分対応箇所特定手段は、前記機能特定手段により特定された機能に対応する第2のプログラムの影響箇所を特定する、請求項1又は2に記載の試験選択装置。
  4. 前記試験選択手段は、前記機能特定手段により特定された機能の権限に対応する権限を試験の実施に必要とする試験をさらに選択する、請求項3に記載の試験選択装置。
  5. 前記試験選択手段によって、前記影響箇所に対応する、第2のプログラムの試験が選択されなかった場合、その旨を出力する出力手段をさらに備える、請求項1から4の何れか一項に記載の試験選択装置。
JP2018518100A 2016-05-19 2017-02-24 試験選択装置 Active JP6823056B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2016100568 2016-05-19
JP2016100568 2016-05-19
PCT/JP2017/007124 WO2017199517A1 (ja) 2016-05-19 2017-02-24 試験選択装置

Publications (2)

Publication Number Publication Date
JPWO2017199517A1 true JPWO2017199517A1 (ja) 2019-03-14
JP6823056B2 JP6823056B2 (ja) 2021-01-27

Family

ID=60325913

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018518100A Active JP6823056B2 (ja) 2016-05-19 2017-02-24 試験選択装置

Country Status (3)

Country Link
US (1) US20200293434A1 (ja)
JP (1) JP6823056B2 (ja)
WO (1) WO2017199517A1 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012248101A (ja) * 2011-05-30 2012-12-13 Ntt Data Corp プログラムテスト支援装置、プログラムテスト支援方法、プログラムテスト支援プログラム
JP2015011396A (ja) * 2013-06-26 2015-01-19 株式会社エクサ リグレッションテスト支援システム
JP2015026222A (ja) * 2013-07-25 2015-02-05 富士通株式会社 テストプログラム、テスト方法及びテスト装置
JP2015090616A (ja) * 2013-11-06 2015-05-11 富士通株式会社 テストケース抽出プログラム、方法及び装置
JP2015201208A (ja) * 2014-04-09 2015-11-12 三星電子株式会社Samsung Electronics Co.,Ltd. システムオンチップ及びその検証方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012248101A (ja) * 2011-05-30 2012-12-13 Ntt Data Corp プログラムテスト支援装置、プログラムテスト支援方法、プログラムテスト支援プログラム
JP2015011396A (ja) * 2013-06-26 2015-01-19 株式会社エクサ リグレッションテスト支援システム
JP2015026222A (ja) * 2013-07-25 2015-02-05 富士通株式会社 テストプログラム、テスト方法及びテスト装置
JP2015090616A (ja) * 2013-11-06 2015-05-11 富士通株式会社 テストケース抽出プログラム、方法及び装置
JP2015201208A (ja) * 2014-04-09 2015-11-12 三星電子株式会社Samsung Electronics Co.,Ltd. システムオンチップ及びその検証方法

Also Published As

Publication number Publication date
WO2017199517A1 (ja) 2017-11-23
US20200293434A1 (en) 2020-09-17
JP6823056B2 (ja) 2021-01-27

Similar Documents

Publication Publication Date Title
US9519789B2 (en) Identifying security vulnerabilities related to inter-process communications
US20200137678A1 (en) Slice management device and slice management method
CN104115117A (zh) 用于安全性测试的单元测试的自动合成
JP6941676B2 (ja) ネットワークアクセス方法及び通信システム
JP6666227B2 (ja) 判定装置
JPWO2019202788A1 (ja) 対話システム
US20200022074A1 (en) Gateway selection method and communication system
CN107957890B (zh) 动态加载和部署测试文件以防止测试执行的中断
WO2017199517A1 (ja) 試験選択装置
JP7087095B2 (ja) 対話情報生成装置
JP6018344B2 (ja) 動的読み込みコード解析装置、動的読み込みコード解析方法及び動的読み込みコード解析プログラム
US20210034678A1 (en) Dialogue server
WO2019216054A1 (ja) 対話サーバ
JP7016405B2 (ja) 対話サーバ
CN111356169B (zh) 移动终端试验装置及其测试用例提取方法
JP7323370B2 (ja) 審査装置
JP5902979B2 (ja) セルリスト生成装置、セルリスト生成システム及びセルリスト生成方法
JP6774890B2 (ja) 名前解決装置
WO2020031303A1 (ja) 通信接続装置および通信接続方法
JP6705038B1 (ja) 行動支援装置
JP6934819B2 (ja) 情報処理装置およびサーバ
JP7123248B2 (ja) 対話ボット管理装置、対話ボット管理方法及び対話ボット管理プログラム
JP6937351B2 (ja) 情報提供システム
JP6923302B2 (ja) 呼処理サーバ
WO2020079907A1 (ja) チェックイン判定装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191225

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201214

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210105

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210107

R150 Certificate of patent or registration of utility model

Ref document number: 6823056

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250