JP2013148968A - テストデータ生成装置、テストデータ生成プログラムおよびテストデータ生成方法 - Google Patents

テストデータ生成装置、テストデータ生成プログラムおよびテストデータ生成方法 Download PDF

Info

Publication number
JP2013148968A
JP2013148968A JP2012007203A JP2012007203A JP2013148968A JP 2013148968 A JP2013148968 A JP 2013148968A JP 2012007203 A JP2012007203 A JP 2012007203A JP 2012007203 A JP2012007203 A JP 2012007203A JP 2013148968 A JP2013148968 A JP 2013148968A
Authority
JP
Japan
Prior art keywords
condition
test data
codes
program
solution
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
JP2012007203A
Other languages
English (en)
Other versions
JP5799823B2 (ja
Inventor
Tadahiro Uehara
忠弘 上原
Kazuki Munakata
一樹 宗像
Yoshiharu Maeda
芳晴 前田
Shoichiro Fujiwara
翔一朗 藤原
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2012007203A priority Critical patent/JP5799823B2/ja
Publication of JP2013148968A publication Critical patent/JP2013148968A/ja
Application granted granted Critical
Publication of JP5799823B2 publication Critical patent/JP5799823B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】仕様と作成したプログラムの不整合を検出するテストデータ生成装置、テストデータ生成プログラムおよびテストデータ生成方法を提供する。
【解決手段】仕様条件と実装条件とを組み合わせて組合条件を生成し、組合条件に含まれる変数の充足解を充足値生成部を用いて求め、仕様条件と実装条件に充足解を関連付けてテストデータ情報を生成する生成部と、2つの異なる仕様条件の組み合わせ条件を表す組合条件を生成し、組合条件に含まれる変数の充足解を充足値生成部を用いて求め、充足解をもたない組合条件を検出して排他的仕様条件とする排他的仕様条件検出部と、前記テストデータ情報を参照して、実装条件に対して排他的仕様条件に含まれる2つの仕様条件それぞれが充足解を有するか否かを検出するテストケース検出部と、を備えるテストデータ生成装置である。
【選択図】図2

Description

本発明は、プログラムのテストに用いるデータを生成するテストデータ生成装置、テストデータプログラムおよびテストデータ生成方法に関する。
従来、プログラムのテストを網羅的に行う方法として、仕様に基づいて作成したテストデータを用いてプログラムのテストを行う方法が知られている。
関連する技術として、自然言語の仕様とC言語のプログラムとGraphical User Interface(GUI)ベースの制御ロジックとのクロス検証を行うことができ、結果的に当該開発の効率を高めることができるクロス検証が開示されている。このクロス検証によれば、動作仕様、エンジン制御用のCコードおよびエンジン制御用のGUIロジックを作成する。そして、作成した動作仕様、CコードおよびGUIロジックに基づいてアサーションを生成し、生成したアサーションを当該Cコードおよび当該GUIロジックに挿入する。その後、生成したアサーション、アサーションが挿入された後のCコードおよびアサーションが挿入された後のGUIロジックをConjnctive Normal Form(CNF)へ変換する。そして、作成した動作仕様に基づいて、変換した後のCコードおよびGUIロジックのクロス検証を行い、その検証結果を表示する。
また、関連する技術として、ウェブアプリケーションを検証するためのシンボリック実行につて開示がされている。
また、関連する技術として、現実のシステムを反映する複雑な動作仕様や多様な事象を取り扱いつつ、規模を抑えたシステム状態遷移系ならびにテストケースを生成する技術が開示されている。この技術によれば、システム動作仕様記述に基づいて遷移事象を順次生起させてシステム状態遷移系を生成する。その際に、遷移事象の順序制約を表現するシナリオ状態遷移系も同時に遷移させ、順次生起させる遷移事象を、当該シナリオ状態遷移系で遷移可能なものに制限する。
また、関連する技術として、計算機プログラムのソースコードが意味するプログラムの振る舞いに関する性質を検査するソースコード検査方法が開示されている。このソースコード検査方法では、計算機プログラムのソースコードにより記述されたプログラムを模擬的に実行して実際に実行される命令列を抽出し、抽出した命令列に基づいてソースコードの検査内容を決定する。
特開2008−276556号公報 特開2009−87355号公報 特開2010−211481号公報 国際公開第2006/038394号
本発明は、仕様と作成したプログラムの不整合を検出するテストデータ生成装置、テストデータ生成プログラムおよびテストデータ生成方法を提供することを目的とする。
本発明の態様のひとつであるテストデータ生成装置は、充足値生成部、生成部、排他的仕様条件検出部、テストケース検出部を備えている。
充足値生成部は、プログラムで用いられるコードに含まれる変数の充足解を求める。
生成部は、複数の第1のコードと複数の第2のコードと、を組み合わせて上記仕様条件と上記実装条件との組み合わせ条件を表す複数の第3のコードを生成する。第1のコードは、上記プログラムの仕様条件を変数を用いて表したコードである。第2のコードは、上記プログラムを入力とするシンボリック実行により抽出された上記プログラムが実行し得るパス各々に対応する実装条件を変数を用いて表したコードである。また、上記第3のコードに含まれる上記変数の充足解を上記充足値生成部を用いて求め、上記仕様条件と上記実装条件に充足解を関連付けてテストデータ情報を生成する。
排他的仕様条件検出部は、2つの異なる上記第1のコードの組み合わせ条件を表す複数の第4のコードを生成し、上記第4のコード各々に含まれる上記変数の充足解を上記充足値生成部を用いて求める。そして、充足解をもたない上記第4のコードを検出して排他的仕様条件とする。
テストケース検出部は、上記テストデータ情報を参照して、上記第2のコードに対して上記排他的仕様条件に含まれる2つの上記第1のコードそれぞれが充足解を有するか否かを検出する。
実施の態様によれば、仕様と作成したプログラムの不整合を検出することができるという効果を奏する。
テストデータ生成装置のハードウェアの一実施例を示す図である。 テストデータ生成装置の制御部の一実施例を示す図である。 抽出部、生成部、充足値生成部の動作の一実施例を示すフロー図である。 仕様情報とプログラム情報の一実施例と、仕様条件情報と実装条件情報のデータ構造の一実施例を示す図である。 組合条件情報のデータ構造の一実施例を示す図である。 テストデータ情報のデータ構造の一実施例を示す図である。 排他的仕様条件検出部の動作の一実施例を示すフロー図である。 排他的仕様条件検出で用いる仕様条件情報と組合条件情報のデータ構造の一実施例を示す図である。 組合条件に対してSMTソルバにより求められる解の一実施例と、排他的仕様情報のデータ構造の一実施例を示す図である。 テストケース検出部の動作の一実施例を示すフロー図である。 排他的仕様条件と実装条件の関係を示す図である。 同一パスを通ることを説明する図である。 テストケース提示部の動作の一実施例を示すフロー図である。 出力部に提示する画面の一実施例を示す図である。
以下図面に基づいて、実施形態について詳細を説明する。
テストデータ生成装置1について説明する。
図1は、テストデータ生成装置のハードウェアの一実施例を示す図である。テストデータ生成装置1は、制御部2、記憶部3、記録媒体読取装置4、入出力インタフェース5(入出力I/F)、通信インタフェース6(通信I/F)などを備えている。また、上記各構成部はバス7によってそれぞれ接続されている。
制御部2は、後述する抽出部201、生成部202、充足値生成部203、排他的仕様条件検出部204、テストケース検出部205、テストケース提示部206などを有している。また、制御部2はCentral Processing Unit(CPU)、マルチコアCPU、プログラマブルなデバイス(Field Programmable Gate Array(FPGA)、Programmable Logic Device(PLD)など)を用いることが考えられる。
記憶部3は、後述する仕様情報、プログラム情報、仕様条件情報、実装条件情報、組合条件情報、テストデータ情報、排他的仕様条件を求めるための仕様条件情報と組合条件情報、排他的仕様条件情報などを記憶している。記憶部3は、例えばRead Only Memory(ROM)、Random Access Memory(RAM)などのメモリやハードディスクなどが考えられる。なお、記憶部3にはパラメータ値、変数値などのデータを記録してもよいし、実行時のワークエリアとして用いてもよい。上記仕様情報、プログラム情報、仕様条件情報、実装条件情報、組合条件情報、テストデータ情報、排他的仕様条件を求めるための仕様条件情報と組合条件情報、排他的仕様条件情報などは、データベースに記録されていてもよい。
記録媒体読取装置4は、制御部2の制御に従って記録媒体8に対するデータのリード/ライトを制御する。そして、記録媒体8に記録媒体読取装置4の制御で書き込まれたデータを記録させたり、記録媒体8に記録されたデータを読み取らせたりする。また、着脱可能な記録媒体8は、コンピュータで読み取り可能なnon-transitory(非一時的)な記録媒体として、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置(HDD)などがある。光ディスクには、Digital Versatile Disc(DVD)、DVD−RAM、Compact Disc Read Only Memory(CD−ROM)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、Magneto-Optical disk(MO)などがある。なお、記憶部3もnon-transitory(非一時的)な記録媒体に含まれる。
入出力インタフェース5には、入出力部9が接続され、利用者が入力した情報(例えば、プログラムやモデル記述などのデータ)を受信し、バス7を介して制御部2または記憶部3などに送信する。また、制御部2からの命令に従ってディスプレイの画面上に出力情報(プログラムのテスト結果など)や操作情報などを表示する。入出力部9の入力装置は、例えば、キーボード、ポインティングデバイス(マウスなど)、タッチパネルなどが考えられる。なお、入出力部9の出力部であるディスプレイは、例えば、液晶ディスプレイなどが考えられる。また、出力部はCathode Ray Tube(CRT)ディスプレイ、プリンタなどの出力装置であってもよい。
通信インタフェース6は、Local Area Network(LAN)接続やインターネット接続や無線接続を行うためのインタフェースである。また、通信インタフェース6は必要に応じ、他のコンピュータとの間のLAN接続やインターネット接続や無線接続を行うためのインタフェースである。また、他の装置に接続され、外部装置からのデータの入出力を制御する。
このようなハードウェア構成を有するコンピュータを用いることによって、後述する各種処理機能が実現される。その場合システムが有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能(例えば、後述する図3、図7、図10、図13に示すフロー)がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体8に記録しておくことができる。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの記録媒体8が販売される。また、プログラムをサーバコンピュータの記憶装置に記録しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、記録媒体8に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶部3に記録する。そして、コンピュータは、自己の記憶部3からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、記録媒体8から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
制御部2について説明する。
図2は、テストデータ生成装置の制御部の一実施例を示す図である。制御部2は、抽出部201、生成部202、充足値生成部203、排他的仕様条件検出部204、テストケース検出部205、テストケース提示部206を有する。
抽出部201は、例えば、プログラムを入力としてシンボリック実行を行い、抽出されたパス各々で用いられている変数に対する条件(実装条件)を抽出する。シンボリック実行では、プログラムを、そのプログラムに含まれる変数に具体的な数値を入力する代わりに、数値を代表するシンボルでプログラムを模擬的に実行し、その結果を評価する。なお、抽出部201は、テストデータ生成装置と別に設けられていてもよい。すなわち、対象のプログラムを入力とし、別のコンピュータによりシンボリック実行を行って実装条件を求めてもよい。
生成部202は、仕様に基づいて作成した仕様条件各々(第1のコード)と、シンボリック実行を用いて抽出された実装条件各々(第2のコード)とを組み合わせた組合条件(第3のコード)を生成し、生成部202は充足値生成部203に生成した組合条件各々を送信する。また、生成部202は、充足値生成部203が求めた組合条件各々を充足する組合条件に含まれる変数の解を取得し、組合条件に関連付けてテストデータを記憶部3の後述するテストデータ情報に記憶する。
充足値生成部203は、例えば、SMTソルバを用いてテストデータを求めることが考えられる。
SMTソルバは、論理式が矛盾していないことを示すために、論理式全体を真とするような各部分論理式の真偽時の組み合わせが存在するか否かを判定する。なお、SMTソルバは、整数、実数、配列などを扱うことができるという利点がある。SMTソルバに関しては、例えば、次の非特許文献を参照されたい。
・足立正和,他、「充足可能性判定に基づくリアルタイムシステムのスケジューリング解析」、組込みシステムシンポジウム2008、平成20年10月
・Armin Biere, Marijn Heule, Hans Van Maaren, Toby Walsh, "Handbook of Satisfiability(Frontiers in Artificial Intelligence and Applications)",IOS Press, 2009年2月
・R.E. Bryant, Daniel Kroening, Ofer Strichman, "Decision Procedures: An Algorithmic Point of View (Texts in Theoretical Computer Science. An EATCS Series)", Springer, 2008年7月7日
排他的仕様条件検出部204は、2つの異なる仕様条件の組み合わせ条件を表す複数の組合条件(第4のコード)を生成し、組合条件各々に含まれる変数の充足解を充足値生成部を用いて求める。そして、充足解をもたない組合条件を検出して排他的仕様条件とする。
テストケース検出部205は、テストデータ情報を参照して、実装条件に対して排他的仕様条件に含まれる2つの仕様条件それぞれが充足解を有するか否かを検出する。
テストケース提示部206は、テストケース検出部205が検出した2つの異なる仕様条件と実装条件に不整合があることを提示する画面を生成する。
なお、抽出部201、生成部202、充足値生成部203、排他的仕様条件検出部204、テストケース検出部205、テストケース提示部206各々の機能を、それぞれを異なるコンピュータに実装し、コンピュータ各々をネットワークにより接続してテストデータを生成してもよい。
テストデータ生成装置の動作について説明する。
図3は、抽出部、生成部、充足値生成部の動作の一実施例を示すフロー図である。ステップS1では、生成部202が仕様に基づいてモデル記述した仕様条件を示すコードが記憶されている記憶部3の仕様条件情報を参照して、未処理の仕様条件を特定する。仕様条件情報は、例えば、図4に示す仕様条件情報402などが考えられる。
図4は、仕様情報とプログラム情報の一実施例と、仕様条件情報と実装条件情報のデータ構造の一実施例を示す図である。仕様情報401は、例えば、仕様書の内容を示す情報である。本例では、仕様1として入力データである変数a>=0の場合にa×10が表示されること、仕様2として変数b>=0の場合にb×10が表示されること、仕様3として変数a<0かつ変数b<0の場合に何も表示されないこと、が記載されている。
仕様条件情報402は、「No」「仕様条件」「処理済」などに記憶される情報を有する。「No」は仕様条件に関連付けられる識別子で、本例では、識別子「1」「2」「3」などが記憶されている。「仕様条件」には、仕様条件が識別子「1」「2」「3」に関連付けて記憶されている。本例では、識別子「1」「2」「3」の記載に対してモデル記述した仕様条件を示すコードが、「No」に関連付けられて記憶されている。図4の仕様条件情報402の例では、「a>=0」、「b>=0」、「a<0&b<0」の仕様に対応する仕様条件である。「処理済」には、現在選択されている仕様条件を示すコードに対して後述する実装条件と組み合わせた(例えば、論理積&で結合した)条件を生成したか否かを示す情報が記憶されている。本例では、「2」「1」「0」が記載されており、現在選択されている仕様条件に対して全ての実装条件が組み合わされている場合(ステップS3の処理が実施されている場合)、識別子「2」が記憶される。現在選択されている仕様条件に対してまだ組み合わされていない実装条件がまだある場合、識別子「1」が記憶される。まだ選択されていない仕様条件に対しては識別子「0」が記憶される。
すなわち、ステップS1では仕様条件情報402の「処理済」を参照し、「処理済」に「1」または「0」が記載されている仕様条件を選択する。図4の仕様条件情報402の場合であれば、「No」の「2」に関連する「処理済」が「1」の状態の仕様条件を選択する。
ステップS2では、生成部202が現在選択されている仕様条件に対して未処理の実装条件を示すコードを特定する。
実装条件について説明する。実装条件を示すコードは、例えば、抽出部201が図4のプログラム情報403を記憶部3から取得して、プログラム情報403に対してシンボリック実行を行って得られるコードである。本例では、プログラム情報403に対してシンボリック実行を行って得られる条件として、図4に示す実装条件情報404が得られる。プログラム情報403は、上記仕様1〜3に基づいて作成したプログラムであり、5行目に誤りがある。本来、仕様に基づいてプログラムを作成すると5行目の記載は、「if (b>=0){ 」でなければならない。
実装条件情報404には、プログラム情報403に対してシンボリック実行を行った結果である実装条件が記憶され、「No」「実装条件」「処理済」などに記憶される情報を有する。「No」は実装条件に関連付けられる識別子で、本例では、識別子「1」「2」「3」「4」などが記憶されている。「実装条件」には対象のプログラムに対してシンボリック実行を行った結果である実装条件が、識別子「1」「2」「3」「4」に関連付けて記憶されている。本例では、シンボリック実行をした結果として「a>=0&b>0」「a>=0&b<=0」「a<0&b>0」「a<0&b<=0」が記憶されている。「処理済」には現在選択されている仕様条件と実装条件とを組み合わせた組合条件が生成されたか否かを示す情報が記憶される。本例では、「1」「0」が記載されており、現在選択されている仕様条件と実装条件とが組合条件に対してステップS3の処理が実施されていれば、識別子「1」が記憶される。現在選択されている仕様条件に対してまだ組み合わされていない実装条件には識別子「0」が記憶される。また、「処理済」には1つの仕様条件を示すコードに対して全ての実装条件を示すコードを組み合わせて生成された組合条件を示すコード全てに対してステップS3の処理が実施されると、全ての「処理済」に「0」が記憶される。
なお、ステップS1の処理とステップS2の処理の順番はどちらが先でもよい。
ステップS3では、仕様条件と実装条件とを&で結合して組合条件を生成して、充足値生成部203に送信する。このとき、記憶部3に組合条件を記憶してもよい。なお、&は上述した&と同じように論理積を示す記号である。図5は、組合条件情報のデータ構造の一実施例を示す図である。図5の組合条件情報501は、「No」「組合条件」などに記憶される情報を有する。「No」は組合条件に関連付けられる識別子で、本例では、識別子「1」〜「12」が記憶されている。「組合条件」には、仕様条件を示すコードと実装条件を示すコードとを&で結合したコードが、識別子「No」に関連付けて記憶されている。本例では、組合条件情報501の識別子「1」〜「12」に関連付けられて、「a>=0 & a>=0 & b>0」〜「a<0 & b<0 & a<0 & b<=0」が記憶されている。
例えば、組合条件情報501の識別子「1」に関連付けられている「a>=0 & a>=0 & b>0」を生成する場合、ステップS1で仕様条件情報402の最初のNo「1」に対応する仕様条件「a>=0」が選択される。ステップS2で実装条件情報404の最初のNo「1」に対応する実装条件「a>=0 & b>0」が選択され、&で結合される。このとき、仕様条件情報402の最初のNo「1」に対応する「処理済」を「0」から「1」にし、実装条件情報404の最初のNo「1」に対応する「処理済」は「0」から「1」にする。
次にステップS3で組合条件情報501の識別子「2」に関連付けられている「a>=0 & a>=0 & b<=0」を生成する場合、ステップS1で仕様条件情報402の最初のNo「1」に対応する仕様条件「a>=0」が選択されたまま、ステップS2で実装条件情報404の未処理のNo「2」に対応する実装条件「a>=0 & b<=0」が選択され、&で結合される。このとき、仕様条件情報402の最初のNo「1」に対応する「処理済」は「1」のままで、実装条件情報404のNo「2」に対応する「処理済」は「0」から「1」になる。
次にステップS3で組合条件情報501の識別子「3」に関連付けられている「a>=0 & a<0 & b>0」を生成する場合、ステップS1で仕様条件情報402の最初のNo「1」に対応する仕様条件「a>=0」が選択されたまま、ステップS2で実装条件情報404の未処理のNo「3」に対応する実装条件「a<0 & b>0」が選択され、&で結合される。このとき、仕様条件情報402の最初のNo「1」に対応する「処理済」は「1」のままで、実装条件情報404のNo「3」に対応する「処理済」は「0」から「1」になる。
続いて、仕様条件「a>=0」において、実装条件情報404のNo「3」に関連する実装条件を用いた処理が終了すると、次にステップS3で実装条件情報404のNo「4」に関連する実装条件「a<0 & b<=0」を生成する場合、ステップS1で仕様条件情報402のNo「1」に対応する仕様条件「a>=0」が選択されたまま、ステップS2で実装条件情報404の最後の未処理のNo「4」に対応する実装条件が選択され、&で結合される。このとき、仕様条件情報402のNo「1」に対応する「処理済」は「1」から「2」になり、実装条件情報404のNo「4」に対応する「処理済」は「0」から「1」になる。
続いて、仕様条件情報402のNo「1」の処理が終了(仕様条件情報402のNo「1」の「処理済」が「2」)し、仕様条件情報402のNo「2」がステップS1で選択される(「処理済」が「1」)。このとき、実装条件情報404のNo「1」〜「4」に対応する「処理済」はすべて「0」にする。
続いて、仕様条件情報402のNo「2」〜「3」に対応する仕様条件各々について、実装条件情報404のNo「1」〜「4」に関連する実装条件各々と組み合わせて、組合条件情報501に示す組合条件を生成する。仕様条件情報402のNo「3」が選択され、実装条件情報404のNo「5」が選択されているとき(全て組み合わされたとき)、仕様条件情報402の「処理済」はすべて「2」になり、実装条件情報404の「処理済」はすべて「2」にる。
ステップS4では、充足値生成部203が組合条件を生成部202から取得し、組合条件に対してSMTソルバを用いて条件を同時に充足する解を求め、求めた解を生成部202に送信する。また、充足値生成部203は組合条件に対して求めた解を、仕様条件各々と実装条件各々に対応付けて記憶する。図6は、テストデータ情報のデータ構造の一実施例を示す図である。組合条件情報501において、解が存在するのはNo「1」「2」、「5」〜「8」、「12」に対応する組合条件である。そして、No「1」の解は「a=0,b=1」、No「2」の解は「a=1,b=0」である。また、No「5」の解は「a=0,b=1」、No「6」の解は「a=0,b=0」、No「7」の解は「a=−1,b=1」、No「8」の解は「a=−1,b=0」である。また、No「12」の解は「a=−1,b=−1」である。
ステップS5では、生成部202が充足値生成部203から求めた解を受信し、解が存在するか否かを判定し、解が存在する場合にはステップS6(Yes)に移行し、解が存在しない場合にはステップS7(No)に移行する。
続いて、ステップS5で判定をした組合条件について、解がある場合にはステップS6で、生成部202は解をテストデータとして記憶部3に記憶する。よって、生成部202は記憶部3にテストデータとしてa=−1、0、1とb=−1、0、1を記憶する。
ステップS7では、生成部202が現在選択されている仕様条件に対して未処理の実装条件が存在するか否かを判定し、未処理の実装条件が存在する場合にはステップS2(Yes)に移行し、未処理の実装条件がない場合にはステップS8(No)に移行する。本例では、実装条件情報404の「処理済」を参照して未処理の実装条件が存在するか否かを判定する。「処理済」のいずれかに未処理を示す「0」が記憶されているときにはステップS2(Yes)に移行する。「処理済」がすべて「1」である場合には、ステップS8(No)に移行する。
ステップS8では、生成部202が未処理の仕様条件が存在するか否かを判定し、未処理の仕様条件が存在する場合にはステップS1(Yes)に移行し、未処理の仕様条件がない場合には処理を終了(No)する。本例では、仕様条件情報402の「処理済」を参照して未処理の実装条件が存在するか否かを判定する。「処理済」のいずれかに未処理を示す「0」または処理中であることを示す「1」が記憶されているときにはステップS1(Yes)に移行する。「処理済」に記憶されている情報が、すべての処理が終了したことを示す「2」である場合には処理を終了する(No)。
上記の処理により、仕様と異なる誤りを有するプログラムを用いて該プログラムのテストを行う場合であっても、必要十分なテストデータを生成できる。また、プログラムに誤りがあっても、仕様と異なる分岐条件(if分など)がある部分を検出できるテストケースが生成でき、その結果プログラムの分岐条件の確認に必要十分なテストデータが生成できる。また、仕様条件と実装条件とが同時に満たされるテストケースを求めているため、冗長なテストデータが生成されない。
排他的仕様条件検出部の動作について説明する。
図7は、排他的仕様条件検出部の動作の一実施例を示すフロー図である。ステップS701では、排他的仕様条件検出部204が仕様に基づいてモデル記述した仕様条件を示すコードが記憶されている記憶部3の仕様条件情報を参照して、未処理の仕様条件を特定する。
ステップS702では、排他的仕様条件検出部204が特定した仕様条件に対して仕様条件情報を参照して未処理の仕様条件を特定する。
仕様条件情報は、例えば、図8に示す仕様条件情報801などが考えられる。図8は、排他的仕様条件検出で用いる仕様条件情報と組合条件情報のデータ構造の一実施例を示す図である。仕様情報801は、例えば、仕様書の内容を示す情報である。本例では、仕様1として入力データである変数a>=0の場合にa×10が表示されること、仕様2として変数b>=0の場合にb×10が表示されること、仕様3として変数a<0かつ変数b<0の場合に何も表示されないこと、が記載されている。
図8の仕様条件情報801は、「No」「仕様条件」「処理済」などに記憶される情報を有する。「No」は仕様条件に関連付けられる識別子で、本例では、識別子「1」「2」「3」などが記憶されている。「仕様条件」には、仕様条件が識別子「1」「2」「3」に関連付けて記憶されている。本例では、識別子「1」「2」「3」の記載に対してモデル記述した仕様条件を示すコードが、「No」に関連付けられて記憶されている。図8の仕様条件情報801の例では、「a>=0」、「b>=0」、「a<0&b<0」の仕様に対応する仕様条件である。「処理済」には、現在選択されている仕様条件を示すコードに対して未処理の他の仕様条件と組み合わせた(例えば、論理積&で結合した)条件を生成したか否かを示す情報が記憶されている。本例では、「2」「1」「0」が記載されており、現在選択されている仕様条件に対して全ての未処理の他の仕様条件が組み合わされている場合(ステップS703の処理が実施されている場合)、識別子「2」が記憶される。現在選択されている仕様条件に対してまだ組み合わされていない仕様条件がまだある場合、識別子「1」が記憶される。まだ選択されていない仕様条件に対しては識別子「0」が記憶される。
すなわち、ステップS701、S702では仕様条件情報801の「処理済」を参照し、「処理済」に「1」または「0」が記載されている仕様条件を選択する。図8の仕様条件情報801の場合であれば、「No」の「2」に関連する「処理済」が「1」の状態の仕様条件を選択する。
ステップS703では、排他的仕様条件検出部204が選択された仕様条件と未処理の他の仕様条件とを&で結合して組合条件を生成して、充足値生成部203に送信する。このとき、記憶部3に組合条件を記憶してもよい。なお、&は上述した&と同じように論理積を示す記号である。
図8の組合条件情報802は、「No」「組合条件」などに記憶される情報を有する。「No」は組合条件に関連付けられる識別子で、本例では、識別子「1」〜「3」が記憶されている。「組合条件」には、2つの異なる仕様条件(選択された仕様条件と未処理の他の仕様条件)を示すコードを&で結合したコードが、識別子「No」に関連付けて記憶されている。本例では、組合条件情報802の識別子「1」〜「3」に関連付けられて、「a>=0 & b>=0」「a>=0 & a<0 & b<0」「b>=0 & a<0 & b<0」が記憶されている。
例えば、組合条件情報802の識別子「1」に関連付けられている「a>=0 & b>=0」を生成する場合、ステップS701で仕様条件情報801の最初のNo「1」に対応する仕様条件「a>=0」が選択される。ステップS702で仕様条件情報801の未処理の他の仕様条件である最初のNo「2」に対応する実装条件「b>=0」が選択され、&で結合される。このとき、仕様条件情報801の最初のNo「1」に対応する「処理済」を「0」から「1」にし、仕様条件情報801のNo「2」に対応する「処理済」は「0」から「1」にする。
次に、組合条件情報802の識別子「2」に関連付けられて「a>=0 & a<0 & b<0」を生成する場合、ステップS701で仕様条件情報801の最初のNo「1」に対応する仕様条件「a>=0」が選択されたまま、ステップS702で未処理のNo「3」に対応する仕様条件「a<0 & b<0」が選択され、&で結合される。このとき、仕様条件情報402の最初のNo「1」に対応する「処理済」は「2」になり、No「3」に対応する「処理済」は「0」から「1」になる。
続いて、仕様条件情報801のNo「1」の処理が終了し(仕様条件情報801のNo「1」の「処理済」が「2」)、仕様条件情報801のNo「2」がステップS701で選択される(「処理済」が「1」)。このとき、仕様条件情報801のNo「3」に対応する「処理済」は「0」にする。
続いて、仕様条件情報801のNo「2」に対応する仕様条件について、No「3」に関連する仕様条件各々と組み合わせて、組合条件情報802に示す組合条件を生成する。仕様条件情報801のNo「2」と「3」が選択されているとき(全て組み合わされたとき)、仕様条件情報801の「処理済」はすべて「2」になる。
ステップS704では、充足値生成部203が組合条件を排他的仕様条件検出部204または記憶部3から取得し、組合条件に対してSMTソルバを用いて条件を同時に充足する解を求め、求めた解を排他的仕様条件検出部204に送信する。
ステップS705では、排他的仕様条件検出部204が充足値生成部203から求めた解を受信し、解が存在するか否かを判定し、解が存在しない場合にはステップS706(No)に移行し、解が存在する場合にはステップS707(Yes)に移行する。
続いて、ステップS705で判定をした組合条件について、解がない場合にはステップS706で、排他的仕様条件検出部204は解をテストデータとして記憶部3に記憶する。図9は、組合条件に対してSMTソルバにより求められる解の一実施例と、排他的仕様情報のデータ構造の一実施例を示す図である。図9の表901に示すように、組合条件情報802において、解が存在するのはNo「1」に対応する組合条件である。解が存在しないのはNo「2」、「3」に対応する組合条件である。
また、排他的仕様条件検出部204は排他的仕様条件情報に解のない仕様条件のペアを記憶する。図9の排他的仕様条件情報902は排他的仕様条件のペアが記憶されている。本例では、「排他的仕様条件1」に関連付けて「仕様条件1」(a>=0)と「仕様条件3」(a<0 & b<0)からなる排他的仕様条件を記憶部3に記憶する。また、「排他的仕様条件2」に関連付けて「仕様条件2」(b>=0)と「仕様条件3」(a<0 & b<0)からなる排他的仕様条件とを記憶部3に記憶する。
ステップS707では、排他的仕様条件検出部204が現在選択されている仕様条件に対して未処理の他の仕様条件が存在するか否かを判定し、未処理の他の仕様条件が存在する場合にはステップS702(Yes)に移行し、未処理の他の仕様条件がない場合にはステップS708(No)に移行する。
ステップS708では、排他的仕様条件検出部204が未処理の仕様条件が存在するか否かを判定し、未処理の仕様条件が存在する場合にはステップS701(Yes)に移行し、未処理の仕様条件がない場合には処理を終了(No)する。
テストケース検出部の動作について説明する。
図10は、テストケース検出部の動作の一実施例を示すフロー図である。ステップS1001では、テストケース検出部205が排他的仕様条件情報を参照して、未処理の排他的仕様条件を特定する。例えば、図9の排他的仕様条件情報902の場合であれば排他的仕様条件1または排他的仕様条件2が特定される。
ステップS1002では、テストケース検出部205が特定した排他的仕様条件の仕様条件をそれぞれ特定する。例えば、図9の排他的仕様条件902の排他的仕様条件1が特定されると仕様条件1と仕様条件3が特定される。排他的仕様条件2が特定されると仕様条件2と仕様条件3が特定される。
ステップS1003では、テストケース検出部205が現在特定されている排他的仕様条件に対して、テストデータ情報の未処理の実装条件を一つ特定する。
ステップS1004では、テストケース検出部205が現在特定されている排他的仕様条件の仕様条件それぞれについて、現在の実装条件に対応するテストデータが両方の仕様条件に存在するか判定する。
ステップS1005では、テストケース検出部205が両方に存在する場合にはステップS1006(Yes)に移行し、存在しない場合にはステップS1007(No)に移行する。
ステップS1003〜S1005について説明をする。ステップS1001で図9の排他的仕様条件情報902の排他的仕様条件1が特定されると、排他的仕様条件1の仕様条件1と仕様条件3がステップS1002で特定される。
続いて、ステップS1003で図6のテストデータ情報の仕様条件1と仕様条件3に対応する実装条件1を特定する。
ステップS1004、S1005では、図11の表1101に示すように、まず実装条件1に対応する仕様条件1と仕様条件3の両方にテストデータが存在するかを判定する。図11は、排他的仕様条件と実装条件の関係を示す図である。実装条件1の場合には、仕様条件1側にしかテストデータがないのでステップS1007に移行する。実装条件2の場合にも、仕様条件1側にしかテストデータがないのでステップS1007に移行する。実装条件3の場合には、仕様条件1と仕様条件3側にテストデータがないのでステップS1007に移行する。実装条件4の場合には、仕様条件3側にしかテストデータがないのでステップS1007に移行する。
ステップS1007で全ての実装条件1〜4について判定をするとステップS1008に移行する。そして、未処理の排他的仕様条件2があるのでステップS1001に移行する。
ステップS1001で図9の排他的仕様条件情報902の排他的仕様条件2が特定されると、排他的仕様条件2の仕様条件2と仕様条件3がステップS1002で特定される。
続いて、ステップS1003で図6のテストケース生成情報の仕様条件2と仕様条件3に対応する実装条件1を特定する。
ステップS1004、S1005では、図11の表1102に示すように、まず実装条件1に対応する仕様条件2と仕様条件3の両方にテストデータが存在するかを判定する。実装条件1の場合には、仕様条件2側にしかテストデータがないのでステップS1007に移行する。実装条件2の場合にも、仕様条件2側にしかテストデータがないのでステップS1007に移行する。実装条件3の場合にも、仕様条件2側にしかテストデータがないのでステップS1007に移行する。実装条件4の場合には、仕様条件2と仕様条件3のそれぞれの側にテストデータがあるのでステップS1006に移行する。すなわち、同一のパスを通るテストデータがあることが判定できる。プログラムが仕様通りに作成されている場合、仕様が排他となるペアで重複するテストケースは生成されない。もし、重複するテストケースが生成されれば、その箇所のプログラムに問題があると判断できる。
ステップS1006では、テストケース検出部205が現在の仕様条件と実装条件を記憶部3に記憶する。本例では、実装条件4、仕様条件2、仕様条件3を記憶する。
図12は、同一パスを通ることを説明する図である。図12のフロー図は仕様に沿ったフローを示している。仕様条件2(b>=0)でテストケースがa=−1とb=0である場合と、仕様条件3(a<0 & b<0)で、テストケースがa=−1とb=−1である場合とにおいて、同じパスを(太線矢印)通ることを図12は示している。
ステップS1007では、テストケース検出部205が現在の排他的仕様条件に対してテストケース生成情報の未処理の実装条件が存在するか否かを判定し、未処理の実装条件がある場合にはステップS1002(Yes)に移行する。未処理の実装条件がない場合にはステップS1008(No)に移行する。
ステップS1008では、テストケース検出部205が未処理の排他的仕様条件が存在するか否かを判定し、未処理の排他的仕様条件がある場合にはステップS1001(Yes)に移行する。未処理の排他的仕様条件がない場合には終了(No)する。
その後、テストケース提示部206は図14に示す画面を表示する。図13は、テストケース提示部の動作の一実施例を示すフロー図である。ステップS1301では、テストケース提示部がステップS1006において記憶部3に記憶した仕様条件と実装条件を取得する。すなわち、実装条件と、排他的仕様条件のうち該実装条件に対して充足解を2つ有する異なる仕様条件を取得する。本例では、実装条件4、仕様条件2、仕様条件3を記憶する。
ステップS1302でテストケース提示部は、取得した実装条件と仕様条件を用いて表示画面を提示するための情報を生成する。例えば、図14に示す表示画面1401を生成して入出力部9の出力部に提示する。図14は、出力部に提示する画面の一実施例を示す図である。本例では、「仕様とプログラムの間で以下の不整合を検出しました。不整合1:仕様条件2(b>=0)に対応するテストケース(a=−1,b=0)と、仕様条件3(a<0 & b<0)に対応するテストケース(a=−1,b=−1)はプログラム中の同一のパスを通ります。不整合2:・・・・」を表示する。なお、表示内容は上記に限定されるものではない。
ステップS1303でテストケース提示部は、表示画面を提示するための情報を出力部に送信する。
上記実施形態によれば、仕様と作成したプログラムの不整合を検出することができるという効果を奏する。
また、大量のテストケースの中から、同一パスを通るテストケースを特定できるため、従来のようにテストケースに対して予め期待値を設定することや、テストを実際に実行した結果を確認しなくても、仕様と実装の不整合を確認できる。
また、テストを行う際に早い段階で同一パスを検出することができる。
なお、実施の形態で説明したテスト対象のプログラムは、例えば、業務アプリケーションなどに用いられるプログラムなどが考えられる。
また、本発明は、上記実施の形態に限定されるものでなく、本発明の要旨を逸脱しない範囲内で種々の改良、変更が可能である。
1 テストデータ生成装置
2 制御部
3 記憶部
4 記録媒体読取装置
5 入出力インタフェース
6 通信インタフェース
7 バス
8 記録媒体
9 入出力部
201 抽出部
202 生成部
203 充足値生成部
204 排他的仕様条件検出部
205 テストケース検出部
206 テストケース提示部
401 仕様情報
402 仕様条件情報
403 プログラム情報
404 実装条件情報
501 組合条件情報
601 テストデータ情報
801 仕様条件情報
802 組合条件情報
902 排他的仕様条件情報

Claims (6)

  1. プログラムで用いられるコードに含まれる変数の充足解を求める充足値生成部と、
    前記プログラムの仕様条件を変数を用いて表した複数の第1のコードと、前記プログラムを入力とするシンボリック実行により抽出された前記プログラムが実行し得るパス各々に対応する実装条件を変数を用いて表した複数の第2のコードと、を組み合わせて前記仕様条件と前記実装条件との組み合わせ条件を表す複数の第3のコードを生成し、前記第3のコードに含まれる前記変数の充足解を前記充足値生成部を用いて求め、前記仕様条件と前記実装条件に充足解を関連付けてテストデータ情報を生成する生成部と、
    2つの異なる前記第1のコードの組み合わせ条件を表す複数の第4のコードを生成し、前記第4のコード各々に含まれる前記変数の充足解を前記充足値生成部を用いて求め、充足解をもたない前記第4のコードを検出して排他的仕様条件とする排他的仕様条件検出部と、
    前記テストデータ情報を参照して、前記第2のコードに対して前記排他的仕様条件に含まれる2つの前記第1のコードそれぞれが充足解を有するか否かを検出するテストケース検出部と、
    を備えることを特徴とするテストデータ生成装置。
  2. 前記テストケース検出部が検出した2つの異なる前記第1のコードに対応する前記仕様条件と前記実装条件とに不整合があることを提示する画面を生成するテストケース提示部、を備えることを特徴とするテストデータ生成装置。
  3. プログラムの仕様条件を変数を用いて表した複数の第1のコードと、前記プログラムを入力とするシンボリック実行により抽出された前記プログラムが実行し得るパス各々に対応する実装条件を変数を用いて表した複数の第2のコードと、を組み合わせて前記仕様条件と前記実装条件との組み合わせ条件を表す複数の第3のコードを生成し、
    前記第3のコードに含まれる前記変数の充足解を求め、
    前記仕様条件と前記実装条件に充足解を関連付けてテストデータ情報を生成し、
    2つの異なる前記第1のコードの組み合わせ条件を表す複数の第4のコードを生成し、
    前記第4のコード各々に含まれる前記変数の充足解を求め、
    充足解をもたない前記第4のコードを検出し、
    前記テストデータ情報を参照して、前記第2のコードに対して前記排他的仕様条件に含まれる2つの前記第1のコードそれぞれが充足解を有するか否かを検出する、
    処理をコンピュータに実行させるテストデータ生成プログラム。
  4. 前記第2のコードに対してそれぞれが充足解を有する2つの異なる前記第1のコードに対応する前記仕様条件と前記実装条件に不整合があることを提示する画面を生成する、処理を前記コンピュータに実行させることを特徴とする請求項3に記載のテストデータ生成プログラム。
  5. コンピュータによって実行されるテストデータ生成方法であって、
    プログラムの仕様条件を変数を用いて表した複数の第1のコードと、前記プログラムを入力とするシンボリック実行により抽出された前記プログラムが実行し得るパス各々に対応する実装条件を変数を用いて表した複数の第2のコードと、を組み合わせて前記仕様条件と前記実装条件との組み合わせ条件を表す複数の第3のコードを生成し、
    前記第3のコードに含まれる前記変数の充足解を求め、
    前記仕様条件と前記実装条件に充足解を関連付けてテストデータ情報を生成し、
    2つの異なる前記第1のコードの組み合わせ条件を表す複数の第4のコードを生成し、
    前記第4のコード各々に含まれる前記変数の充足解を求め、
    充足解をもたない前記第4のコードを検出し、
    前記テストデータ情報を参照して、前記第2のコードに対して前記排他的仕様条件に含まれる2つの前記第1のコードそれぞれが充足解を有するか否かを検出する、
    ことを特徴とするテストデータ生成方法。
  6. 前記コンピュータが、前記第2のコードに対してそれぞれが充足解を有する2つの異なる前記第1のコードに対応する前記仕様条件と前記実装条件に不整合があることを提示する画面を生成し、前記画面を出力部に出力させる、ことを特徴とする請求項5に記載のテストデータ生成方法。
JP2012007203A 2012-01-17 2012-01-17 テストデータ生成装置、テストデータ生成プログラムおよびテストデータ生成方法 Expired - Fee Related JP5799823B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012007203A JP5799823B2 (ja) 2012-01-17 2012-01-17 テストデータ生成装置、テストデータ生成プログラムおよびテストデータ生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012007203A JP5799823B2 (ja) 2012-01-17 2012-01-17 テストデータ生成装置、テストデータ生成プログラムおよびテストデータ生成方法

Publications (2)

Publication Number Publication Date
JP2013148968A true JP2013148968A (ja) 2013-08-01
JP5799823B2 JP5799823B2 (ja) 2015-10-28

Family

ID=49046436

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012007203A Expired - Fee Related JP5799823B2 (ja) 2012-01-17 2012-01-17 テストデータ生成装置、テストデータ生成プログラムおよびテストデータ生成方法

Country Status (1)

Country Link
JP (1) JP5799823B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017037494A (ja) * 2015-08-10 2017-02-16 富士通株式会社 テストケース生成方法、テストケース生成プログラムおよびテストケース生成装置
JP2018092374A (ja) * 2016-12-02 2018-06-14 株式会社日立製作所 テストケース生成装置、及びテストケース生成方法
JP2021501953A (ja) * 2017-11-02 2021-01-21 シリコン モビリティ エスアエス エンジンデバッグ、テスト、較正、及び調節を制御するためのソフトウェア環境
CN113568838A (zh) * 2021-08-02 2021-10-29 工银科技有限公司 测试数据生成方法、装置、设备、存储介质和程序产品

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070168988A1 (en) * 2006-01-11 2007-07-19 International Business Machines Corporation Software verification using hybrid explicit and symbolic model checking
JP2010267022A (ja) * 2009-05-13 2010-11-25 Nippon Telegr & Teleph Corp <Ntt> テストデータ生成方法及び装置及びプログラム
JP2013003854A (ja) * 2011-06-16 2013-01-07 Fujitsu Ltd テストデータ生成プログラム、テストデータ生成方法、テストデータ生成装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070168988A1 (en) * 2006-01-11 2007-07-19 International Business Machines Corporation Software verification using hybrid explicit and symbolic model checking
JP2010267022A (ja) * 2009-05-13 2010-11-25 Nippon Telegr & Teleph Corp <Ntt> テストデータ生成方法及び装置及びプログラム
JP2013003854A (ja) * 2011-06-16 2013-01-07 Fujitsu Ltd テストデータ生成プログラム、テストデータ生成方法、テストデータ生成装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017037494A (ja) * 2015-08-10 2017-02-16 富士通株式会社 テストケース生成方法、テストケース生成プログラムおよびテストケース生成装置
JP2018092374A (ja) * 2016-12-02 2018-06-14 株式会社日立製作所 テストケース生成装置、及びテストケース生成方法
JP2021501953A (ja) * 2017-11-02 2021-01-21 シリコン モビリティ エスアエス エンジンデバッグ、テスト、較正、及び調節を制御するためのソフトウェア環境
JP7262818B2 (ja) 2017-11-02 2023-04-24 シリコン モビリティ エスアエス エンジンデバッグ、テスト、較正、及び調節を制御するためのソフトウェア環境
CN113568838A (zh) * 2021-08-02 2021-10-29 工银科技有限公司 测试数据生成方法、装置、设备、存储介质和程序产品

Also Published As

Publication number Publication date
JP5799823B2 (ja) 2015-10-28

Similar Documents

Publication Publication Date Title
CN110928772B (zh) 一种测试方法及装置
Rahman et al. Source code properties of defective infrastructure as code scripts
CN103946809B (zh) 为测试服务器产生产品服务器负载活动
JP2018147280A (ja) データ分析装置及びデータ分析方法
US9703683B2 (en) Software testing coverage
JP5799823B2 (ja) テストデータ生成装置、テストデータ生成プログラムおよびテストデータ生成方法
JP6438084B2 (ja) ソフトウェア製品の安全性コンプライアンスレベルを判定するための方法およびシステム
JP5672165B2 (ja) テストデータ生成プログラム、テストデータ生成方法、テストデータ生成装置
US20130318499A1 (en) Test script generation
JP6120607B2 (ja) 要件検出装置及び要件検出プログラム
US10546080B1 (en) Method and system for identifying potential causes of failure in simulation runs using machine learning
JP2013077124A (ja) ソフトウェアテストケース生成装置
JP2011034274A (ja) テスト自動実行システム
JP5176869B2 (ja) テストケース生成プログラムとテストケース生成装置およびテストケース生成方法
JP6447111B2 (ja) 共通化情報提供プログラム、共通化情報提供方法、および共通化情報提供装置
JP7116313B2 (ja) 修正候補特定プログラム
JP2011008628A (ja) プログラムモデル検査方法、プログラムモデル検査プログラム
JP5568779B2 (ja) 論理検証方法及び論理検証システム
WO2014054233A1 (ja) 情報システムの性能評価装置、方法およびプログラム
JP5304470B2 (ja) モデル検査プログラム、モデル検査方法、モデル検査装置
JP7363164B2 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
JP6949441B2 (ja) ベクタ適正化装置及びベクタ適正化用プログラム
JP5228794B2 (ja) モデル検査実施のための環境生成支援装置、環境生成支援方法、環境生成支援プログラム
JP2013012082A (ja) テストデータ生成プログラム、テストデータ生成方法、テストデータ生成装置
US20210019446A1 (en) Device and method for analyzing performances of a web application

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140904

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150428

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150512

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150709

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: 20150728

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150810

R150 Certificate of patent or registration of utility model

Ref document number: 5799823

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees