図面 (/)

技術 スタブ化方法、プログラム及び装置

出願人 富士通株式会社
発明者 谷田英生上原忠弘
出願日 2014年12月15日 (4年7ヶ月経過) 出願番号 2014-252989
公開日 2016年6月23日 (3年0ヶ月経過) 公開番号 2016-115124
状態 特許登録済
技術分野 デバッグ/監視
主要キーワード 可搬型記憶媒体用 ユニットテスト パス条件 初期パス 具体値 記述データベース 対象関数 スタブ関数
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2016年6月23日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (10)

課題

プログラムテスト結果の信頼性低下を抑制する。

解決手段

スタブ化対象記述検出部14が、シンボリック実行によるテスト対象のプログラムに含まれるスタブ化対象記述を検出し、具体値入力生成部16が、スタブ化対象記述が実行される際のパス条件充足する変数値を生成し、スタブ生成部18が、生成された変数値を用いてスタブ化対象記述を処理部30に実行させるとともに、処理部30からの返却値に基づいてスタブを生成し、スタブ挿入部20が、スタブ化対象記述を生成されたスタブで置換する。

概要

背景

プログラムテストにおいて、プログラム中の変数値を具体化せずに、記号シンボル値)のまま実行する技術(シンボリック実行技術)が用いられることがある。このプログラムテストでは、シンボリック実行によって得たパス条件充足値をテストデータとして用いる。

概要

プログラムのテスト結果の信頼性低下を抑制する。スタブ化対象記述検出部14が、シンボリック実行によるテスト対象のプログラムに含まれるスタブ化対象記述を検出し、具体値入力生成部16が、スタブ化対象記述が実行される際のパス条件を充足する変数値を生成し、スタブ生成部18が、生成された変数値を用いてスタブ化対象記述を処理部30に実行させるとともに、処理部30からの返却値に基づいてスタブを生成し、スタブ挿入部20が、スタブ化対象記述を生成されたスタブで置換する。

目的

本発明は、プログラムのテスト結果の信頼性低下を抑制することが可能なプログラムのスタブ化方法、プログラム及び装置を提供する

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

シンボリック実行によるテスト対象プログラムに含まれるスタブ化対象の記述を検出し、検出された前記スタブ化対象の記述が実行される際のパス条件充足する変数値を設定し、設定された前記変数値を用いて前記スタブ化対象の記述を情報処理部に実行させ、該情報処理部からの返却値に基づいてスタブを生成し、前記テスト対象のプログラムの前記スタブ化対象の記述を前記スタブで置換する、処理をコンピュータが実行するスタブ化方法。

請求項2

前記検出する処理では、スタブ化する必要のある記述を格納した格納部に基づいて、前記テスト対象のプログラムの中から前記スタブ化対象の記述を検出することを特徴とする請求項1に記載のスタブ化方法。

請求項3

シンボリック実行によるテスト対象のプログラムに含まれるスタブ化対象の記述を検出し、検出された前記スタブ化対象の記述が実行される際のパス条件を充足する変数値を設定し、設定された前記変数値を用いて前記スタブ化対象の記述を情報処理部に実行させ、該情報処理部からの返却値に基づいてスタブを生成し、前記テスト対象のプログラムの前記スタブ化対象の記述を前記スタブで置換する、処理をコンピュータに実行させるスタブ化プログラム。

請求項4

シンボリック実行によるテスト対象のプログラムに含まれるスタブ化対象の記述を検出する検出部と、前記検出部が検出した前記スタブ化対象の記述が実行される際のパス条件を充足する変数値を設定する設定部と、前記設定部が設定した前記変数値を用いて前記スタブ化対象の記述を情報処理部に実行させ、該情報処理部からの返却値に基づいてスタブを生成する生成部と、前記テスト対象のプログラムの前記スタブ化対象の記述を前記スタブで置換する置換部と、を備えるスタブ化装置。

技術分野

0001

本発明は、スタブ化方法、プログラム及び装置に関する。

背景技術

0002

プログラムテストにおいて、プログラム中の変数値を具体化せずに、記号シンボル値)のまま実行する技術(シンボリック実行技術)が用いられることがある。このプログラムテストでは、シンボリック実行によって得たパス条件充足値をテストデータとして用いる。

先行技術

0003

特開2012−181666号公報

発明が解決しようとする課題

0004

しかしながら、実際のプログラムには、シンボリック実行エンジン解析対象とできないが、一般的な処理系では実行可能な記述が存在する。このような記述が存在する場合、当該記述を置き換えスタブを用意して使用する必要がある。なお、スタブは一般的には人手で記述する必要があり、手間が掛かる。

0005

これに対し、JUnit(Java(登録商標)で開発されたプログラムにおいてユニットテスト単体テスト)の自動化を行うためのフレームワーク)では、戻り値の型に応じて予め決められた定数を返すスタブの自動生成は可能である。例えば、戻り値の型が整数であれば、0を返すスタブを生成し、戻り値の型が真偽値であれば、falseを返すスタブを生成するなどである。しかし、このように予め決められた定数を返すスタブを生成すると、プログラムのうち元々実行し得ない文まで実行されてしまい、テスト結果の信頼性が低下するおそれがある。

0006

なお、従来においては、特許文献1のような技術も知られているが、本技術ではスタブの自動生成はできない。

0007

1つの側面では、本発明は、プログラムのテスト結果の信頼性低下を抑制することが可能なプログラムのスタブ化方法、プログラム及び装置を提供することを目的とする。

課題を解決するための手段

0008

一つの態様では、スタブ化方法は、シンボリック実行によるテスト対象のプログラムに含まれるスタブ化対象の記述を検出し、検出された前記スタブ化対象の記述が実行される際のパス条件を充足する変数値を設定し、設定された前記変数値を用いて前記スタブ化対象の記述を情報処理部に実行させ、該情報処理部からの返却値に基づいてスタブを生成し、前記テスト対象のプログラムの前記スタブ化対象の記述を前記スタブで置換する、処理をコンピュータが実行する。

発明の効果

0009

プログラムのテスト結果の信頼性低下を抑制することができる。

図面の簡単な説明

0010

一実施形態に係る情報処理装置ハードウェア構成を示す図である。
情報処理装置の機能ブロック図である。
情報処理装置の処理を示すフローチャートである。
図4(a)〜図4(d)は、図3の処理を説明するための図(その1)である。
図5(a)、図5(b)は、図3の処理を説明するための図(その2)である。
図3の処理を説明するための図(その3)である。
図7(a)、図7(b)は、図3の処理を説明するための図(その4)である。
図3の処理を説明するための図(その5)である。
図9(a)、図9(b)は、実施形態の効果を説明するための図である。

実施例

0011

以下、情報処理装置の一実施形態について、図1図9に基づいて詳細に説明する。本実施形態の情報処理装置は、テスト対象のプログラム(スタブ化前プログラム)の入力を受け付け、スタブ化を実行した後、スタブ化後プログラムを出力するスタブ化装置としての機能を有している。

0012

図1には、本実施形態にかかる情報処理装置10のハードウェア構成が示されている。図1に示すように、情報処理装置10は、CPU(Central Processing Unit)90、ROM(Read Only Memory)92、RAM(Random Access Memory)94、記憶部(ここではHDD(Hard Disk Drive))96、ネットワークインタフェース97、表示部93、入力部95、及び可搬型記憶媒体用ドライブ99等を備えている。これら情報処理装置10の構成各部は、バス98に接続されている。表示部93は、液晶ディスプレイ等を含み、入力部95は、キーボードマウスタッチパネル等を含む。情報処理装置10では、ROM92あるいはHDD96に格納されているプログラム(スタブ化プログラムを含む)、或いは可搬型記憶媒体用ドライブ99が可搬型記憶媒体91から読み取ったプログラム(スタブ化プログラムを含む)をCPU90が実行することにより、図2に示す各部としての機能が実現されている。

0013

図2は、情報処理装置10の機能ブロック図である。図2に示すように、CPU90がプログラムを実行することにより、シンボリック実行部12、検出部としてのスタブ化対象記述検出部14、設定部としての具体値入力生成部16、生成部としてのスタブ生成部18、置換部としてのスタブ挿入部20、として情報処理装置10を機能させる。なお、図2には、HDD96等に格納されている格納部としてのスタブ化対象記述DB40も記載されている。また、図2には、シンボリック実行部12(シンボリック実行エンジン)とは異なる一般的な処理系である情報処理部としての処理部30も記載されている。

0014

シンボリック実行部12は、テスト対象のプログラムをシンボリック実行する。本実施形態では、シンボリック実行部12は、スタブ化前プログラムの入力を受け付け、スタブ化後プログラムを出力する。

0015

スタブ化対象記述検出部14は、シンボリック実行部12から入力されるプログラム内の各記述を、スタブ化対象記述データベース(DB)40の内容と比較し、スタブ化対象とするかを判定する。すなわち、スタブ化対象記述検出部14は、プログラムに含まれるスタブ化対象の記述を検出する。なお、スタブ化対象記述DB40には、スタブ化する必要のある記述(スタブ化対象記述)、すなわちシンボリック実行部12では解析できないが一般的な処理系(処理部30)では解析できる記述を格納しているものとする。なお、スタブ化対象記述は、スタブ化対象記述DB40に対して人手で入力されてもよいが、過去のテストにおいてシンボリック実行部12が処理できなかった記述をスタブ化対象記述DB40に自動的に格納してもよい。

0016

具体値入力生成部16は、スタブ化対象記述が実行される際のパス条件を充足する各変数の具体値(変数値)をSMT(Satisfiability Modulo Theories)ソルバを用いて算出する。この場合、過去に同一のスタブ化対象記述がスタブ化されていた場合であっても、具体値入力生成部16は、実行時のパス条件が異なる場合にはそのパス条件に応じた各変数の具体値を新たに算出する。

0017

スタブ生成部18は、具体値入力生成部16で得られた具体値入力を用いて一般的な処理系(処理部30)にスタブ化対象記述を実行させる。処理部30では、シンボリック実行部12が解析対象とできない記述も実行可能であり、スタブ生成部18は、処理部30からの返却値を取得すると、当該返却値に基づいてスタブを生成する。

0018

スタブ挿入部20は、スタブ生成部18において生成されたスタブによって、テスト対象のプログラムのスタブ化対象記述を置換することで、プログラムにスタブを挿入し、シンボリック実行部12の解析対象にできるようにする。

0019

(情報処理装置10の処理)
次に、情報処理装置10の処理について、図3のフローチャートに沿って、その他図面を適宜参照しつつ、詳細に説明する。

0020

テップS10では、シンボリック実行部12が、スタブ化前プログラムの入力を受け付け、初期パス条件をcとする。例えば、シンボリック実行部12は、スタブ化前プログラムとして、図4(a)に示すようなテスト対象関数main2の入力を受け付けたものとする。なお、テスト対象関数main2の制御構造は、図4(d)に示すようになっている。また、シンボリック実行においては、テスト対象関数main2の引数aをシンボルとして指定する。また、プログラム実行中においてシンボルの値が満たすべき条件をパス条件と呼ぶものとする。なお、本実施形態では、説明の簡素化のため、図4(b)に示すように、関数func1(a)(a>0)をスタブ化対象関数仮定し、図4(c)に示すように、関数func2(a)(a==0)をスタブ化対象外関数と仮定している。

0021

次いで、ステップS12では、シンボリック実行部12が、スタブ化前プログラム内の次命令iを読み出す。ここでは、シンボリック実行部12は、図4(a)のテスト対象関数main2のfunc2を読み出したものとする。なお、シンボリック実行部12は、読み出した命令iをスタブ化対象記述検出部14に送信する。

0022

ステップS14では、スタブ化対象記述検出部14が、シンボリック実行部12から受信した命令iがスタブ化対象記述DB40に含まれるか否かを判断する。ここで、func2は、図4(c)に示すようにスタブ化対象外関数であるものとする。すなわち、func2は、スタブ化対象記述DB40に含まれていないため、ステップS14の判断は否定され、ステップS26に移行する。

0023

ステップS26に移行すると、シンボリック実行部12は、命令iのシンボリック実行を行いパス条件cを更新する(ここでは、a==0とする)。その後は、ステップS28に移行し、シンボリック実行部12は、プログラムの次命令が存在しないか否かを判断する。ここでは、次の命令が存在しているので、ステップS28の判断は否定され、ステップS12に戻る。

0024

ステップS12に戻ると、シンボリック実行部12は、スタブ化前プログラム内の次命令iを読み出す。ここでは、シンボリック実行部12は、図4(a)のテスト対象関数main2のfunc1を読み出したものとする。

0025

次いで、ステップS14では、スタブ化対象記述検出部14が、シンボリック実行部12から受信した命令i(func1)がスタブ化対象記述DB40に含まれるか否かを判断する。ここで、func1は、図4(b)に示すようにスタブ化対象関数であるものとする。すなわち、func1は、スタブ化対象記述DB40に含まれているため、ステップS14の判断は肯定され、ステップS16に移行する。

0026

ステップS16に移行すると、具体値入力生成部16が、パス条件c(a==0)を充足する具体値入力を生成する。ここでは、図5(a)に示すように、具体値(変数値)として、パス条件c(a==0)を充足するa=0が生成される。

0027

次いで、ステップS18では、スタブ生成部18が、具体値入力を用いて、処理部30において命令iまでスタブ化前プログラムを実行する。この場合、図5(b)に示すように、処理部30では、func1(a)=func1(0)=falseという返却値が得られるので、処理部30は、この返却値(false)をスタブ生成部18に戻す。

0028

次いで、ステップS20では、スタブ生成部18が、処理部30による命令iの返却値(評価値)に基づいてスタブを生成する。この場合、スタブ生成部18は、図6において太線枠で示すようなスタブ関数を生成する。次いで、ステップS22では、スタブ挿入部20が、生成されたスタブをプログラムに挿入する。なお、スタブ挿入部20は、スタブ挿入後のプログラムをシンボリック実行部12に送信する。

0029

次いで、ステップS24では、シンボリック実行部12が、スタブ挿入後のプログラムを命令iまでシンボリック実行し、パス条件cを更新する。この場合、シンボリック実行部12は、スタブ化前に実行し得ない記述、すなわち、図6において下線を付して示すif-if側の分岐内記述(print(“positive”))を実行しないようにすることができる。また、シンボリック実行部12は、パス条件cを、次のパス条件(a!=0)に更新する。

0030

次いで、ステップS28では、シンボリック実行部12が、プログラムの次命令が存在しないか否かを判断するが、プログラムには、次命令が存在しているので、ステップS12に再度戻る。

0031

ステップS12に戻ると、シンボリック実行部12は、スタブ化前プログラム内の次命令iを読み出す。ここでは、シンボリック実行部12は、図4(a)のテスト対象関数main2の下側のfunc1(else-if側のfunc1(a))を読み出したものとする。

0032

次いで、ステップS14では、スタブ化対象記述検出部14が、シンボリック実行部12から受信した命令i(func1)がスタブ化対象記述DB40に含まれるか否かを判断する。ここで、func1は、スタブ化対象記述DB40に含まれているため、ステップS14の判断は肯定され、ステップS16に移行する。

0033

ステップS16に移行すると、具体値入力生成部16が、パス条件c(a!=0)を充足する具体値入力を生成する。ここでは、一例として、図7(a)に示すように、具体値(変数値)として、パス条件c(a!=0)を充足するa=1が生成されたものとする。

0034

次いで、ステップS18では、スタブ生成部18が、具体値入力を用いて、処理部30において命令iまでスタブ化前プログラムを実行する。この場合、図5(b)に示すように、処理部30では、func1(a)=func1(1)=trueという返却値が得られるので、処理部30は、この返却値(true)をスタブ生成部18に戻す。

0035

次いで、ステップS20では、スタブ生成部18が、処理部30による命令iの返却値(評価値)に基づいてスタブを生成する。この場合、スタブ生成部18は、図8において太線枠で示すようなスタブ関数を生成する。次いで、ステップS22では、スタブ挿入部20が、生成されたスタブをプログラムに挿入し、該プログラムをシンボリック実行部12に送信する。

0036

次いで、ステップS24では、シンボリック実行部12が、スタブ挿入後のプログラムを命令iまでシンボリック実行し、パス条件cを更新する。ここで、シンボリック実行部12は、図8において下線を付して示すelse-if側の分岐内記述(print(“positive”))をシンボリック実行する。なお、この段階では、パス条件cは更新されずに、ステップS28に移行する。

0037

なお、パス条件cがa!=0の場合、例えば、具体値入力をa=−1とすることもできる(S16)。このようにした場合、処理部30からの返却値はfalseとなるので、シンボリック実行部12は、else-else側の分岐内記述(print(“negative”))を実行することになる(S24)。

0038

次いで、ステップS28では、シンボリック実行部12が、プログラムの次命令が存在しないか否かを判断するが、プログラムには、次命令が存在していないので、ステップS30に移行する。

0039

ステップS30に移行した場合、シンボリック実行部12は、スタブ化後プログラムを出力する。

0040

ここで、本実施形態では、図9(a)において×印で示すように、スタブ化前に実行し得ない記述であるif-if側の分岐内記述が実行されることがなく、スタブ化前に実行可能な記述のみが実行されるようになっている。これにより、テスト結果において一定の信頼性を確保することができるようになる。なお、比較例としては、予めfunc1に対しては、trueなどの定数を返却するスタブを生成する技術がある。このような比較例では、func1に対してはtrueが返却されると、スタブ化前に実行し得ない記述であるif-if側の分岐内記述(図9(a)において×印で示す記述)が実行されてしまうため、テスト結果において信頼性が低くなるおそれがある。

0041

また、本実施形態では、スタブ化対象記述の処理及び返却値の決定処理を一般的な処理系である処理部30が実行するため、シンボリック実行部(シンボリック実行エンジン)が解析対象とできない記述も解析することが可能となる。この結果、図9(b)に太線及び白抜きの線にて示すように、関数func1の記述を解析できずに、解析が停止してしまうのを防止することができる。なお、図9(b)のように解析が停止した場合、解析を継続するためには、func1のスタブを手動で記述する必要があるが、本実施形態では、このような人手の介入が不要である。

0042

以上、詳細に説明したように、本実施形態によると、スタブ化対象記述検出部14がシンボリック実行によるテスト対象のプログラムに含まれるスタブ化対象記述を検出し(S14:肯定)、具体値入力生成部16が、スタブ化対象記述が実行される際のパス条件を充足する変数値を生成し(S16)、スタブ生成部18が、生成された変数値を用いてスタブ化対象記述を処理部30に実行させ、処理部30からの返却値に基づいてスタブを生成し(S18、S20)、スタブ挿入部20が、スタブ化対象記述を生成されたスタブで置換する(プログラムにスタブを挿入する)(S22)。これにより、プログラム実行時のパス条件を考慮したスタブが生成されるので、スタブ化前プログラムで実行可能な記述のみが実行され、スタブ化前プログラムでは実行され得ない記述が実行されるのを防止することができる。これにより、テスト結果の信頼性の低下を抑制することが可能である。また、処理部30にスタブ化対象記述を実行させ、スタブを自動生成し、スタブ化後のプログラムをシンボリック実行部12がシンボリック実行するため、シンボリック実行部12による解析が停止することがなくなる。これにより、人手によるスタブの記述の手間を省くことが可能となる。

0043

また、本実施形態では、スタブ化対象記述検出部14は、スタブ化する必要のある記述(スタブ化対象記述)を格納したスタブ化対象記述DB40に基づいて、プログラム中の記述がスタブ化対象記述であるかを判断する。これにより、簡易に、スタブ化対象記述であるかどうかの判断を行うことができる。

0044

なお、上記実施形態では、情報処理装置10が処理部30を有する場合について説明したが、これに限らず、情報処理装置10とネットワーク等により接続された外部の装置が処理部30と同等の機能を有していてもよい。

0045

なお、上記の処理機能は、コンピュータによって実現することができる。その場合、処理装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体(ただし、搬送波は除く)に記録しておくことができる。

0046

プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD(Digital Versatile Disc)、CD−ROM(Compact Disc Read Only Memory)などの可搬型記録媒体の形態で販売される。また、プログラムをサーバコンピュータ記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。

0047

プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。

0048

上述した実施形態は本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。

0049

なお、以上の実施形態の説明に関して、更に以下の付記を開示する。
(付記1)シンボリック実行によるテスト対象のプログラムに含まれるスタブ化対象の記述を検出し、
検出された前記スタブ化対象の記述が実行される際のパス条件を充足する変数値を設定し、
設定された前記変数値を用いて前記スタブ化対象の記述を情報処理部に実行させ、該情報処理部からの返却値に基づいてスタブを生成し、
前記テスト対象のプログラムの前記スタブ化対象の記述を前記スタブで置換する、処理をコンピュータが実行するスタブ化方法。
(付記2) 前記検出する処理では、スタブ化する必要のある記述を格納した格納部に基づいて、前記テスト対象のプログラムの中から前記スタブ化対象の記述を検出することを特徴とする付記1に記載のスタブ化方法。
(付記3) シンボリック実行によるテスト対象のプログラムに含まれるスタブ化対象の記述を検出し、
検出された前記スタブ化対象の記述が実行される際のパス条件を充足する変数値を設定し、
設定された前記変数値を用いて前記スタブ化対象の記述を情報処理部に実行させ、該情報処理部からの返却値に基づいてスタブを生成し、
前記テスト対象のプログラムの前記スタブ化対象の記述を前記スタブで置換する、処理をコンピュータに実行させるスタブ化プログラム。
(付記4) 前記検出する処理では、スタブ化する必要のある記述を格納した格納部に基づいて、前記テスト対象のプログラムの中から前記スタブ化対象の記述を検出することを特徴とする付記3に記載のスタブ化プログラム。
(付記5) シンボリック実行によるテスト対象のプログラムに含まれるスタブ化対象の記述を検出する検出部と、
前記検出部が検出した前記スタブ化対象の記述が実行される際のパス条件を充足する変数値を設定する設定部と、
前記設定部が設定した前記変数値を用いて前記スタブ化対象の記述を情報処理部に実行させ、該情報処理部からの返却値に基づいてスタブを生成する生成部と、
前記テスト対象のプログラムの前記スタブ化対象の記述を前記スタブで置換する置換部と、を備えるスタブ化装置。
(付記6) スタブ化する必要のある記述を格納した格納部を更に備え、
前記検出部は、前記格納部に基づいて、前記テスト対象のプログラムの中から前記スタブ化対象の記述を検出することを特徴とする付記5に記載のスタブ化装置。

0050

10情報処理装置(スタブ化装置)
14 スタブ化対象記述検出部(検出部)
16具体値入力生成部(設定部)
18スタブ生成部(生成部)
20 スタブ挿入部(置換部)
30 処理部(情報処理部)
40 スタブ化対象記述DB(格納部)

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い技術

関連性が強い 技術一覧

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ