JP5669630B2 - テスト・ケース生成方法、プログラム及びシステム - Google Patents

テスト・ケース生成方法、プログラム及びシステム Download PDF

Info

Publication number
JP5669630B2
JP5669630B2 JP2011047829A JP2011047829A JP5669630B2 JP 5669630 B2 JP5669630 B2 JP 5669630B2 JP 2011047829 A JP2011047829 A JP 2011047829A JP 2011047829 A JP2011047829 A JP 2011047829A JP 5669630 B2 JP5669630 B2 JP 5669630B2
Authority
JP
Japan
Prior art keywords
test case
parameter
variable value
test
score
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.)
Expired - Fee Related
Application number
JP2011047829A
Other languages
English (en)
Other versions
JP2012185642A (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2011047829A priority Critical patent/JP5669630B2/ja
Priority to US13/409,236 priority patent/US9483385B2/en
Priority to US13/602,720 priority patent/US9465724B2/en
Publication of JP2012185642A publication Critical patent/JP2012185642A/ja
Application granted granted Critical
Publication of JP5669630B2 publication Critical patent/JP5669630B2/ja
Expired - Fee Related 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/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/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/3668Software testing
    • G06F11/3672Test management
    • G06F11/3676Test management for coverage analysis

Description

この発明は、コンピュータ・システムなどのテストを行うためのテスト・ケースの生成方法、プログラム及びシステムに関するものである。
コンピュータ・システムや制御装置は、設定可能なさまざまなパラメータをもち、それらのパラメータの組み合わせによって、挙動が変化する。例えば、コンピュータ・システムにおけるパラメータとして、導入するオペレーティング・システムの種類、使用するウェブ・ブラウザの種類、ネットワーク・カードの種類、主記憶容量、ハードディスク容量、CPUの種類やコアの数などがある。
そのようなシステムや装置のテストでは、パラメータの組み合わせを網羅するように設計することが望ましい。しかし、全てのパラメータの組み合わせをテストしようとすると、テスト・ケースの数が、パラメータの数に対して、指数的に増加するので、処理時間的に許容できなくなってしまう。そこで、なるべく少ない数で効率的なテストを行うためのテスト・ケースの集合を生成する手法が従来より提案されている。
1つの例として、ペアワイズ(pair-wise)、すなわち対でのテストが知られている。ペアワイズ・テストでは、任意の2つのパラメータに対して、取りえる全ての値のペアを網羅するように、テスト・ケースの集合が作成される。これは、多くのバグは、少数のパラメータの組み合わせによって発現するという知見に基づいている。
例えば、テスト項目としてn個のパラメータがあった場合、ペアワイズ・テストでは、そのn個から2個を選ぶのは、nC2という場合の数となる。そして、選んだ2個のパラメータk1、k2の各々にそれぞれm1、m2とおりの場合があるとすると、ペアの数は、
nC2×m1×m2となる。
ところで、この分野の従来技術の特許文献として、以下のものが知られている。
特開2003−256206号公報は、ソフトウェアシステムのプログラムモジュールごとの品質情報を設定する工程と、前記品質情報から前記プログラムモジュールの不具合検出工数を予測する工程と、前記モジュールと前記ソフトウェアシステムの仕様書から抽出される仕様項目との対応関係を表すモジュール・仕様項目対応関係情報を作成する工程22と、前記不具合検出工数と前記モジュール・仕様項目対応関係情報とから仕様項目不具合検出工数を予測する工程と、前記仕様項目不具合検出工数に基づいて、前記ソフトウェアシステムのテストに利用可能なテストリソースを配分するテスト計画を作成する工程とを備えた、テスト計画の作成を支援する方法を開示する。
特表2007−535723号公報は、相互に関連するシステムコンポーネント間のリンケージを判断するための「自動多次元追跡可能性行列」システム、相互に関連するシステムコンポーネントの1つ又はそれよりも多くにおける変更を識別するための手段、「自動多次元追跡可能性行列」を適用するための手段、変更によって影響を受ける場合がある相互に関連するシステムコンポーネントに関連した試験シナリオの全て又はその部分集合を実行するための手段、及び実行された試験シナリオの結果を評価するための手段を含む試験ツールを開示する。
特願2003−406478号公報は、ペアワイズ・パーティシパントを有するバスを監視する方法において、バス上の第1および第2のパーティシパントの間のトランザクション中に問題を検出すること、および、どのパーティシパントがこの問題について故障しているか、または、この問題がシステミックなバス問題を含むかどうかを決定することを開示する。
特表2010−532894号公報は、タイムスロットサンプルにコンテンツの複数小片が割り当てられて、その割り当てられたコンテンツの効果が測定され、システム及び方法により、コンテンツの各小片をコンテンツの他の複数小片と比較して実験コンテンツ小片又は対照コンテンツ小片として識別するペアワイズによるコンテンツ相関性データが受け取られ、コンテンツ相関性データを使用して、タイムスロットサンプルに実験又は対照コンテンツの複数小片がアルゴリズム的に割り当てられ、特定のタイムスロットサンプルに割り当てられた付加的なコンテンツの複数小片は、その特定のタイムスロットサンプルに既に割り当てられていた実験コンテンツの複数小片に対して規定される、同一でない関連する実験コンテンツの複数小片を除外することを開示する。
Cohen et al., The ATEG System: An Approach to Testing Based on Combinational Design. '97は、ペアワイズ・テストを、Greedyに生成する方法を開示する。
以上のように、従来技術では、ペアワイズ法を含む、さまざまなテスト方法が知られており、実用レベルにある。
ところで本願発明者らは、上記のようなテストを開始する前に、テスト・ケースの集合を既に持っているという状況に遭遇した。既存のテスト・ケースの集合は、今まで手作業などで妥当性を検証したテスト・ケースを含むものであった。そこで、本願発明者らは、既存のテスト・ケースの集合を利用しつつ、この結果も含めて妥当なサイズのテスト・ケースの集合を得ることができれば有利であると考えた。
しかし、上記従来のテスト方法は、テスト・ケースの集合を得る際に、既存のテスト・ケースの集合を活用して、テスト・ケースを生成する技法を示唆するものではなかった。
特開2003−256206号公報 特表2007−535723号公報 特願2003−406478号公報 特表2010−532894号公報
Cohen et al., The ATEG System: An Approach to Testing Based on Combinational Design. '97
従って、本発明の目的は、入力として与えられた既存のテスト・ケースの集合と一致するものを多く含み、且つ、例えばペアワイズのような目的の性質をみたす、なるべく小さいサイズの集合を、高速に生成する技法を提供することにある。
出力テスト・ケースの集合が目的の性質を満たすようになるまで、順次テストケースを生成して出力テスト・ケースの集合に追加していく手法は既に知られている。そこで本発明に従うシステムは、従来手法によって生成されるテストケースに加えて、既存の入力テスト・ケースの集合に含まれるテストケースを候補として利用することにより、既存の入力テスト・ケースの集合と一致するものをなるべく多く含み、かつサイズの小さな出力テスト・ケースの集合を生成する。
本発明は、入力テスト・ケースの集合から利用する候補は、以下のようにして決定する。
1.いくつかのパラメータに対して、テストケース候補が持っているべき値を決定する。
2.入力テスト・ケースの集合に含まれるテストケースのうち、上記で決定した値を持っているものを候補とする。
従来手法によって生成されたひとつ又は複数のテストケース候補と、入力テスト・ケースの集合から選択されたひとつまたは複数のテスト・ケース候補のうち、最もスコアが高いものを出力テスト・ケースの集合に追加する。この処理を、出力テスト・ケースの集合が目的の性質を満たすまで繰り返す。ここで、テスト・ケースのスコアとは例えば、ペアワイズ法を想定すると、テスト・ケースに含まれるパラメータと変数の組み合わせからなるペアのうち、まだ出現していないペアの数である。これを従来手法におけるスコアと呼ぶことにする。
本発明に従うシステムによれば、スコアは、以下のように計算される。
− 従来手法によって生成されたテストケース候補に対しては、従来手法におけるスコアを利用する。
− 入力テスト・ケースの集合から選択されたテストケース候補に対しては、従来手法におけるスコアに1より大きいの定数をかけたものを利用する。
このとき、定数を大きくすればするほど、既存の入力テスト・ケースの集合と一致するテストケースをより多く含むようになるが、出力テスト・ケースの集合のサイズがより大きくなる可能性があるので、定数の値は妥当に選ぶ必要がある。
この発明によれば、既存の入力テスト・ケースの集合のデータを含めることによって、既存の入力テスト・ケースの集合となるべく整合性を保ちつつ、可能な限り小さいサイズのテスト・ケースの集合を高速に生成することが可能となる。
本発明を実施するための一例のハードウェア構成のブロック図である。 従来の典型的なテスト・ケース生成処理のフローチャートを示す図である。 従来の技法において、候補を生成して追加する処理のフローチャートを示す図である。 従来の技法において、候補のうちスコアが最大のものを選ぶ処理のフローチャートを示す図である。 本発明を実施するための機能構成のブロック図である。 本発明の処理全体のフローチャートを示す図である。 本発明において、候補を生成して追加する処理のフローチャートを示す図である。 本発明において、テスト・ケースのスコアを取得する処理のフローチャートを示す図である。
以下、図面に基づき、この発明の実施例を説明する。特に断わらない限り、同一の参照番号は、図面を通して、同一の対象を指すものとする。尚、以下で説明するのは、本発明の一実施形態であり、この発明を、この実施例で説明する内容に限定する意図はないことを理解されたい。
図1を参照すると、本発明の一実施例に係るシステム構成及び処理を実現するためのコンピュータ・ハードウェアのブロック図が示されている。図1において、システム・パス102には、CPU104と、主記憶(RAM)106と、ハードディスク・ドライブ(HDD)108と、キーボード110と、マウス112と、ディスプレイ114が接続されている。CPU104は、好適には、32ビットまたは64ビットのアーキテクチャに基づくものであり、例えば、インテル社のPentium(商標) 4、Core(商標)2 Duo、Xeon(商標)、AMD社のAthlon(商標)などを使用することができる。主記憶106は、好適には、4GB以上の容量をもつものである。ハードディスク・ドライブ108は、大量のデータを格納できるように、例えば、500GB以上の容量をもつものであることが望ましい。
ハードディスク・ドライブ108には、個々に図示しないが、オペレーティング・システムが、予め格納されている。オペレーティング・システムは、Linux(商標)、マイクロソフト社のWindows XP(商標)、Windows(商標)7、アップルコンピュータのMac OS(商標)などの、CPU104に適合する任意のものでよい。
ハードディスク・ドライブ108はさらに、既存のテスト結果の集合、テストのため組み合わせるパラメータの集合、及び本発明の処理のための処理ルーチンなどが格納されている。これらのパラメータや処理ルーチンの詳細は、図5を参照して後で説明する。
キーボード110及びマウス112は、オペレーティング・システムまたは、ハードディスク・ドライブ108から主記憶106にロードされ、ディスプレイ114に表示されたプログラム(図示しない)を起動したり、文字を打ち込んだりするために使用される。
ディスプレイ114は、好適には液晶ディスプレイであり、例えば、XGA(1024×768の解像度)、またはUXGA(1600×1200の解像度)などの任意の解像度のものを使用することができる。ディスプレイ114は、図示しないが、本発明の処理を開始するための操作ウインドウや、テスト結果等を表示するために使用される。
そこで、本発明の処理について説明する前に、本発明の処理の理解を助けるために、従来より、ペアワイズのテスト・ケースを自動的に生成するための方法として知られているGreedyなアルゴリズムについて図2乃至図4のフローチャートを参照して説明する。その後、本発明の処理が、このGreedyなアルゴリズムの改良として説明される。
図2は、従来のGreedyなペアワイズ・テスト・アルゴリズムのメインの処理のフローチャートである。図2のステップ202では、outという集合変数に、空集合がセットされる。
ステップ204では、outが、テスト・パラメータのペアワイズのすべてのペアを網羅したかどうかが判断される。
そうでないなら、ステップ206に進んで、そこで、Candidatesという集合変数に、空集合がセットされる。
次のステップ208では、Candidatesの要素の数がNより小さいかどうかが判断され、そうでないなら、ステップ210で候補が1つ生成され、Candidatesに追加される。ステップ210の処理は、図3のフローチャートを参照して、後でより詳細に説明する。
ステップ208とステップ210のループの繰り返しで、Candidatesの要素の数がNに達すると、処理はステップ208からステップ212に進み、そこで、Candidatesのうちスコアが最も高いものが選ばれる。ここでスコアとは、テスト・ケースのスコアであり、例えば、そのテスト・ケースによってカバーされるペアのうち、新しくカバーされるペアの数、すなわち、今までのテスト・ケースでカバーされていないペアの数である。ステップ212の処理は、図4のフローチャートを参照して、後でより詳細に説明する。
ステップ214では、ステップ212で選ばれた候補がoutに追加される。そうして処理はステップ204に戻る。
ステップ204からステップ214を回るうちに、outには候補が蓄積される。ステップ204ですべてのペアが網羅されたと判断されると、処理は終了する。こうしてoutに蓄積された候補が利用される。
次に、図3のフローチャートを参照して、ステップ210の、候補を生成してCandidatesに追加する処理を説明する。
図3において、ステップ302では、paramsという集合変数に、空集合がセットされる。次のステップ304では、パラメータの数が、全パラメータ数よりも小さいかどうか判断される。もしそうなら、ステップ306に進み、ヒューリステックと乱数を利用して、パラメータとその値が1つ決定される。次のステップ308では、決定したパラメータとその値がparamsに追加され、ステップ304の判断に戻る。
ステップ304からステップ308までが回って、ステップ304での判断が否定的になると、パラメータがすべて埋まったことになるので、ステップ310に進んでそこで、設定したパラメータ、すなわちparamsの組み合わせでテスト・ケースが生成され、ステップ312で、生成したテスト・ケースがCandidatesに追加されて、処理は戻る。
次に、図4のフローチャートを参照して、ステップ212の、Candidatesに含まれるテスト・ケースのうちスコアが最も高いものを選ぶ処理について説明する。
ステップ402では、scoreという変数に、十分に大きい絶対値の負の値として-∞がセットされる。
次のステップ404からステップ412までは、Candidatesに含まれるテスト・ケースである要素cすべてに亘って順次行われる処理である。
ステップ406では、cのスコアがscoreより大きいかどうかの判断が行われる。ここでスコアとは、そのテスト・ケースに基づき生成されるペアによって新規にカバーされるペアの数である。
そうして、cのスコアがscoreより大きいなら、ステップ408で、cのスコアがscoreにセットされる。ステップ410では、cがretに格納される。
もし、cのスコアがscoreより大きくないなら、ステップ408とステップ410は、単にスキップされる。こうして、Candidatesの要素cすべてに亘って、ステップ404からステップ412までが完了すると、retを返して、図4のフローチャートの処理は終わる。
以上の説明を前提として、本発明の説明を行う。先ず、図5の機能構成のブロック図を参照して、本発明を実行するための処理ルーチン等について説明する。これらの処理ルーチンはC、C++、Java(R)などの既存のプログラム言語で予め作成されて、実行可能な形式でハードディスク・ドライブ108に保存され、オペレーティング・システムの動作で主記憶106にロードされて実行される。
図5において、メイン・ルーチン502は、本発明の全体の動作を統合するためのプログラムであり、図示しないが、ディスプレイ114に操作ウインドウを表示したり、ユーザの操作を受け付けて処理を開始したりする機能を有する。
入力ルーチン504は、ハードディスク・ドライブ108に保存されている、テストのパラメータ/候補値を含むファイル506や、既存の入力テスト・ケースの集合を含むファイル508から、メイン・ルーチン502からの指示に従い、適宜データを読み取る機能を有する。
ここで、テストのパラメータ/候補値とは、例えば、以下のようなものである。実際のケースは、もっと多くのパラメータを含むが、便宜上、簡単なケースで説明する。
OS = {Windows XP, 2003Server, AIX, Linux}
Browser = {FireFox, IE, Opera}
Level = {L1, L2, L3, L4}
Restriction = {true, false}
また、既存の入力テスト・ケースの集合の要素、すなわちテスト・ケースとは、例えば、次のように、各パラメータに、候補値としての変数値を1つずつ埋めたものである。
テスト・ケース1
OS => Windows XP
Browser => IE
Level => L1
Restriction => true
------------------------------
テスト・ケース2
OS => AIX
Browser => FireFox
Level => L1
Restriction => false
------------------------------
テスト・ケース3
OS => Linux
Browser => IE
Level => L3
Restriction => false
------------------------------
... ...
候補追加ルーチン510は、従来技術として説明した図3のフローチャートに対応する処理を実行するが、その一部が、本発明に従い変更されている。候補追加ルーチン510については、図7のフローチャートを参照して、後で説明する。
候補選択ルーチン512は、従来技術として説明した図4のフローチャートに対応する処理を実行するが、Candidatesの要素cのスコアを取得する処理が、本発明に従い変更されている。
スコア取得ルーチン514は、候補選択ルーチン512によって呼び出される、スコアを取得する処理を実行するものであり、図8のフローチャートを参照して、後で説明する。
出力ルーチン516は、結果として得られたテスト・ケースの集合を、好適にはファイルとして、ハードディスク・ドライブ108に書き込む。
次に、メイン・ルーチン502の処理を、図6のフローチャートを参照して説明する。図6のフローチャートの処理は、従来技術の図2のフローチャートの処理の一部を変更したものであり、改めて図6のフローチャートに基づき説明する。なお、図6において、太線で囲まれているステップ610とステップ612は、特に従来技術の図2のフローチャートとの差異を示すものである。
図6において、メイン・ルーチン502は、ステップ602で、outという集合変数に、空集合をセットする。
ステップ604では、メイン・ルーチン502は、outが、テスト・パラメータのペアワイズのすべてのペアを網羅したかどうかを判断する。ここでの判定は例えば、予めすべてのペアからなる集合変数をコンピュータ・システム的に用意しておいて、ステップ614で選ばれたテスト・ケースによって生成されるペアに該当する要素を、その集合から除去していくことにより達成される。このような処理によれば、ステップ604の判断は、その集合が空集合になったことに基づき、ペアワイズのすべてのペアを網羅したと判断するように行われる。
そうでないなら、メイン・ルーチン502は、ステップ606に進んで、そこで、Candidatesという集合変数に、空集合をセットする。
次のステップ608では、メイン・ルーチン502は、Candidatesの要素の数がNより小さいかどうかを判断し、そうでないなら、ステップ610で候補を1つ生成し、Candidatesに追加する。ステップ610の処理は、候補追加ルーチン510を呼び出すことによって実行される。候補追加ルーチン510は、図7のフローチャートを参照して、後でより詳細に説明する。ステップ610は、図2のステップ210に対応するが、ステップ212に対するステップ612の違いは、既存のテスト・ケースの集合508に含まれているテスト・ケースが考慮され、条件に応じて取り込まれることである。
ステップ608とステップ610のループの繰り返しで、Candidatesの要素の数がNに達すると、処理はステップ608からステップ612に進み、そこで、Candidatesのうちスコアが最も高いものが選ばれる。ここでスコアとは、そのテスト・ケースに基づき生成されるペアによって新規にカバーされるペアの数である。ステップ612の処理は、候補選択ルーチン512を呼び出すことによって行われる。候補選択ルーチン512の処理内容は、図4のフローチャートで説明したのと実質的に同じであるが、図4のフローチャートのステップ406における、Candidatesの要素であるテスト・ケースcのスコアを取得する処理が異なっている。
既に述べたように、テスト・ケースのスコアとは、本発明では、スコアを取得する処理は、図8のフローチャートに示される、スコア取得ルーチン514により実行される。すなわち、図8において、スコア取得ルーチン514は、ステップ802で、その値を、テスト・ケースに基づき生成されるペアによって新規にカバーされるペアの数として取得し、変数scoreに格納する。そして、スコア取得ルーチン514は、次のステップ804で、テスト・ケースが、既存のテスト・ケースの集合508から取得されたものかどうかを判断し、もしそうなら、scoreに、a 1である定数aを掛けて、scoreの値を増加させる。テスト・ケースが、既存のテスト・ケースの集合508から取得されたものでないなら、scoreの値はそのままである。このように、テスト・ケースが既存のテスト・ケースの集合508から取得されたものである場合にscoreの値を増加させることは、図4のフローチャートで示される、最大スコアのテスト・ケースを選ぶ処理で、テスト・ケースが既存のテスト・ケースの集合508から取得されたテスト・ケースを勝ち残りやすくする。
ステップ614では、メイン・ルーチン502は、ステップ612で選ばれた候補をoutに追加する。メイン・ルーチン502はさらに、outに追加したテスト・ケースから生成されるペアを、ステップ604での判断に使用される集合変数から取り去る。そうして処理はステップ604に戻る。尚ここで、outに追加したテスト・ケースが次のようなものであったとする。
OS => AIX
Browser => FireFox
Level => L1
Restriction => false
すると、これに基づき集合変数から要素を取り去るために使用されるペアは、以下の6通りである。
- OS=AIX, Browser=FireFox
- OS=AIX, Level=L1
- OS=AIX, Restriction=false
- Browser=FireFox, Level=L1
- Browser=FireFox, Restriction=false
- Level=L1, Restriction=false
ステップ604からステップ614を回るうちに、outには候補が蓄積される。ステップ604でまだ選ばれていないペアがもうないと、ステップ604での判断が否定的になって、処理は終了する。こうして、最終的にoutに蓄積された候補が利用される。
次に、図7のフローチャートを参照して、図6のステップ610に対応する、候補追加ルーチン510の処理について説明する。
候補追加ルーチン510は、図7のステップ702で、paramsという集合変数を空集合にセットし、ステップ704で、S'という集合変数を空集合にセットする。
ステップ706では、候補追加ルーチン510は、パラメータの数 < 全パラメータの数がとうかを判断し、もしそうなら、ステップ708に進み、ヒューリステックと乱数を利用して、パラメータとその値を1つ決定する。次のステップ710では、候補追加ルーチン510は、決定したパラメータとその値をparamsに追加する。すなわち、ここでparamsに追加されるのは、OS=Windows XPのようなデータである。
ここでヒューリステックとは例えば、生成するテストケースが目的の性質を満たしやすくする(スコアをより大きくする)ためのものであり、例えばペアワイズの場合は以下のようなものが考えられる。
- その時点で生成されたテストケース(out)でまだカバーされていないペアの中にもっとも多く出現するものを選ぶ。
- 選択したパラメータ・値を、既に選択されているパラメータ・値(params)と組み合わせたときにできるペアのうち、outでまだカバーされていないものの数がもっとも多いものを選ぶ。
例えば、まだカバーされていないペアとして以下のようなものがあった場合、
・ OS=Windows XP, Browser=Firefox
・ OS=Windows XP, Network=modem
・ OS=Windows XP, Level=L1
・ OS=AIX, Level=L2
・ Browser=IE, Level=L2
params が空なら、一つ目のヒューリスティクスに従い OS=WindowsXP を選択する(先頭の3つのペアに含まれるため)。
params が{OS=AIX, Browser=IE} であった場合には、二つ目のヒューリスティクスに従い Level=L2を選択する(paramsと組み合わせて、最後の2つのペアを新たにカバーするため)。変数決定には、ヒューリスティクス以外に、乱数も適宜使用される。
次のステップ712で、候補追加ルーチン510は、Sという集合変数に、既存のテスト・ケースの集合のうち、paramsにセットされているパラメータと変数を含むものをセットする。paramsにセットされているパラメータがまだ全てのパラメータをカバーしていない場合は、ここでは、パラメータにセットされている変数に部分一致する既存のテスト・ケースの集合のテスト・ケースが選ばれる。
例えば、簡単のためパラメータがOS、Browser、Level、Restrictionの4つだとして、
paramsが、{OS = Windows XP}と{Browser = Opera}を含むとき、ここまでのパラメータと変数の組み合わせに一致するパラメータと変数の組み合わせをもつ既存のテスト・ケースの集合のテスト・ケースが選ばれる。
そうして、Sという集合変数に既存のテスト・ケースの集合からテスト・ケースがセットされると、候補追加ルーチン510は、ステップ714で、Sが空で且つ、S'が空でないかどうかを判断する。ステップ706からステップ718までの最初のループでは、ステップ704でS'に空集合がセットされていることにより、ステップ714での判断は必ず否定的になる。ステップ718でS' = Sとセットされることにより、ステップ706からステップ718までの2回目以降のループでは、Sが空で且つ、S'が空でない場合がありえ、その場合はステップ714の判断が肯定的になるので、処理はステップ716に進む。このとき、S'には、既存のテスト・ケースの集合のうち、paramsにセットされているパラメータと変数を含むものがなくなった場合の直前の、テスト・ケースの集合から選択されたテスト・ケースが格納されている。
すると、候補追加ルーチン510は、ステップ716で、S'のうち、スコアが最も高いテスト・ケースをCandidatesに追加する。このことは、図4のフローチャートに処理において、CandidatesをS'に読み替えて実行した処理に対応する。
ここで、テスト・ケースのスコアについて説明を補足する。例えば、前に述べたテスト・ケース1をここで再掲する。
OS => Windows XP
Browser => IE
Level => L1
Restriction => true
これから組み合わせによって得られるペアは、下記の6とおりである。
- OS=Windows XP, Browser=IE
- OS=Windows XP, Level=L1
- OS=WindowsXP, Restriction=true
- Browser=IE, Level=L1
- Browser=IE, Restriction=true
- Level=L1, Restriction=true
すると、こうして得られたペアは、既に現れてたものと、まだ現れていないものに分かれる。このとき、まだ現れていないペアの個数をもって、スコアと呼ぶことにする。ペアが既に現れたかどうかの判定は、例えば、ステップ604に関連して言及した、ペアの集合を使って行うことができる。すなわち、あるペアがこの集合にまだ含まれていれば、そのペアはまだ現れておらず、一方、あるペアがこの集合に見つからなければ、そのペアは既に現れて、この集合から取り去れたということを意味する。
こうして、ステップ718でS' = Sとセットした後、ステップ706の判断に戻って、候補追加ルーチン510が、パラメータの数が、全パラメータの数に達したと判断すると、候補追加ルーチン510は、ステップ720で、paramsに従いテスト・ケースを生成し、ステップ722で、生成したテスト・ケースをCandidatesに追加し、図6のフローチャートのステップ612に戻る。
図7のフローチャートに示す候補追加ルーチン510の処理を要約すると、ステップ716で、所定の条件を満たす、既存のテスト・ケースの集合からテスト・ケースがCandidatesに追加され、また、ステップ722で、paramsのパラメータと値に従い生成されたテスト・ケースがCandidatesに追加され、すなわち、ステップ612に戻ったときは、Candidatesは、既存のテスト・ケースの集合から追加されたテスト・ケースと、paramsのパラメータと値に従い生成されたテスト・ケースの両方を含むことになる。
そのCandidatesの集合要素としてのテスト・ケースは、ステップ612で、スコアの高さで選別されるが、その際、図8のフローチャートから見て取れるように、既存のテスト・ケースの集合から追加されたテスト・ケースの方がスコアが高くなるように操作されるので、そのような操作がない場合よりも、既存のテスト・ケースの集合から追加されたテスト・ケースが優先的に、出力ルーチン516によって出力されることになる。
以上、テスト・ケースのパラメータの組み合わせを与える方法として、上記実施例では、ペアワイズ方法を用いるようにしたが、本発明はこれには限定されず、従来から知られている任意の組み合わせテスト技法を使用することができる。例えば、パラメータと変数のペアではなく、パラメータと変数の三つ組みを用いてもよい。
さらに本発明は、コンピュータの特定のハードウェア、ソフトウェアに限定されず、また、スタンドアロンやネットワーク環境のどちらであるかにもかかわらず、任意のプラットフォーム上で実施可能であることをこの分野の当業者なら理解するであろう。
102 システム・パス
104 CPU
106 主記憶
108 ハードディスク・ドライブ
110 キーボード
112 マウス
114 ディスプレイ
502 メイン・ルーチン
504 入力ルーチン
506 パラメータ/候補値のファイル
508 既存のテスト・ケースの集合
510 候補追加ルーチン
512 候補選択ルーチン
514 スコア取得ルーチン
516 出力ルーチン

Claims (20)

  1. 複数のパラメータと、そのパラメータに入れられる1つ以上の変数値をもち、該パラメータに入れられる変数値の組み合わせに応じて、システムのテスト・ケースを、コンピュータの処理により生成する方法であって、
    テスト済のテスト・ケースを含むテスト・ケースの集合を、前記コンピュータが読み出し可能に、記憶手段に保持するステップと、
    下記のステップ(a)乃至(c)を含むループを、前記パラメータと前記変数値の組み合わせが全てのパラメータに対して揃うまで実行するステップと、
    (a) 前記パラメータと前記変数値の組み合わせを、変数値が格納されたパラメータを次第に増やすように生成するステップ
    (b) 前記発生された範囲の前記パラメータと前記変数値の組み合わせに部分的に一致するパラメータと変数値の組み合わせをもつテスト・ケースを前記テスト済のテスト・ケースを含むテスト・ケースの集合において見出して集合変数に格納するステップ
    (c) 前記集合変数が空集合になったことに応答して、ループの一回前の前記の集合変数に含まれるテスト・ケースを候補集合に追加するステップ、
    前記パラメータと前記変数値の組み合わせが全てのパラメータに対して揃ったことに応答して、該揃った前記パラメータと前記変数値の組み合わせにより生成したテスト・ケースを前記候補集合に追加するステップと、
    前記パラメータと前記変数値の異なる複数の組み合わせに対して前記候補集合に前記テスト・ケースが蓄積された段階で、まだ出現していないケースを含む数に関連するスコアの高さに従い、前記候補集合から前記テスト・ケースを選んで出力するステップであって、前記テスト済のテスト・ケースを含むテスト・ケースの集合に属する前記テスト・ケースの前記スコアは割り増しして計算される、ステップとを有する、
    テスト・ケース生成方法。
  2. 前記パラメータと前記変数値の異なる複数の組み合わせは、ペアワイズ法で生成される
    、請求項1に記載の方法。
  3. 前記テスト・ケースの前記スコアは、前記テスト・ケースに基づき生成されるペアのうち、まだ今まで出現していないペアの数によって決定される、請求項2に記載の方法。
  4. 前記スコアの割り増しは、前記スコアに、1より大きい数を掛けることよって行われる、請求項1に記載の方法。
  5. 複数のパラメータと、そのパラメータに入れられる1つ以上の変数値をもち、該パラメータに入れられる変数値の組み合わせに応じて、システムのテスト・ケースを、コンピュータの処理により生成するプログラムであって、
    前記コンピュータに、
    テスト済のテスト・ケースを含むテスト・ケースの集合を、前記コンピュータが読み出し可能に、記憶手段に保持するステップと、
    下記のステップ(a)乃至(c)を含むループを、前記パラメータと前記変数値の組み合わせが全てのパラメータに対して揃うまで実行するステップと、
    (a) 前記パラメータと前記変数値の組み合わせを、変数値が格納されたパラメータを次第に増やすように生成するステップ
    (b) 前記発生された範囲の前記パラメータと前記変数値の組み合わせに部分的に一致するパラメータと変数値の組み合わせをもつテスト・ケースを前記テスト済のテスト・ケースを含むテスト・ケースの集合において見出して集合変数に格納するステップ
    (c) 前記集合変数が空集合になったことに応答して、ループの一回前の前記の集合変数に含まれるテスト・ケースを候補集合に追加するステップ、
    前記パラメータと前記変数値の組み合わせが全てのパラメータに対して揃ったことに応答して、該揃った前記パラメータと前記変数値の組み合わせにより生成したテスト・ケースを前記候補集合に追加するステップと、
    前記パラメータと前記変数値の異なる複数の組み合わせに対して前記候補集合に前記テスト・ケースが蓄積された段階で、まだ出現していないケースを含む数に関連するスコアの高さに従い、前記候補集合から前記テスト・ケースを選んで出力するステップであって、前記テスト済のテスト・ケースを含むテスト・ケースの集合に属する前記テスト・ケースの前記スコアは割り増しして計算される、ステップを実行させる、
    テスト・ケース生成プログラム。
  6. 前記パラメータと前記変数値の異なる複数の組み合わせは、ペアワイズ法で生成される、請求項5に記載のプログラム。
  7. 前記テスト・ケースの前記スコアは、前記テスト・ケースに基づき生成されるペアのうち、まだ今まで出現していないペアの数によって決定される、請求項6に記載のプログラム。
  8. 前記スコアの割り増しは、前記スコアに、1より大きい数を掛けることよって行われる、請求項5に記載のプログラム。
  9. 複数のパラメータと、そのパラメータに入れられる1つ以上の変数値をもち、該パラメータに入れられる変数値の組み合わせに応じて、システムのテスト・ケースを、コンピュータの処理により生成するシステムであって、
    テスト済のテスト・ケースを含むテスト・ケースの集合を、前記コンピュータが読み出し可能に、記憶手段に保持する手段と、
    下記のステップ(a)乃至(c)を含むループを、前記パラメータと前記変数値の組み合わせが全てのパラメータに対して揃うまで実行する手段と、
    (a) 前記パラメータと前記変数値の組み合わせを、変数値が格納されたパラメータを次第に増やすように生成するステップ
    (b) 前記発生された範囲の前記パラメータと前記変数値の組み合わせに部分的に一致するパラメータと変数値の組み合わせをもつテスト・ケースを前記テスト済のテスト・ケースを含むテスト・ケースの集合において見出して集合変数に格納するステップ
    (c) 前記集合変数が空集合になったことに応答して、ループの一回前の前記の集合変数に含まれるテスト・ケースを候補集合に追加するステップ、
    前記パラメータと前記変数値の組み合わせが全てのパラメータに対して揃ったことに応答して、該揃った前記パラメータと前記変数値の組み合わせにより生成したテスト・ケースを前記候補集合に追加する手段と、
    前記パラメータと前記変数値の異なる複数の組み合わせに対して前記候補集合に前記テスト・ケースが蓄積された段階で、まだ出現していないケースを含む数に関連するスコアの高さに従い、前記候補集合から前記テスト・ケースを選んで出力するステップであって、前記テスト済のテスト・ケースを含むテスト・ケースの集合に属する前記テスト・ケースの前記スコアは割り増しして計算される、手段を有する、
    テスト・ケース生成システム。
  10. 前記パラメータと前記変数値の異なる複数の組み合わせは、ペアワイズ法で生成される
    、請求項9に記載のシステム。
  11. 前記テスト・ケースの前記スコアは、前記テスト・ケースに基づき生成されるペアのうち、まだ今まで出現していないペアの数によって決定される、請求項10に記載のシステム。
  12. 前記スコアの割り増しは、前記スコアに、1より大きい数を掛けることよって行われる、請求項9に記載のシステム。
  13. 複数のパラメータと、そのパラメータに入れられる1つ以上の変数値をもち、該パラメータに入れられる変数値の組み合わせに応じて、システムのテスト・ケースを、コンピュータの処理により生成する方法であって、
    テスト済のテスト・ケースを含むテスト・ケースの集合を、前記コンピュータが読み出し可能に、記憶手段に保持するステップと、
    前記パラメータと前記変数値組み合わせを生成するステップと、
    前記パラメータと前記変数値組み合わせをもつテスト・ケースを前記テスト済のテスト・ケースを含むテスト・ケースの集合において見出して集合変数に格納するステップと、
    前記パラメータと前記変数値の組み合わせにより生成したテスト・ケースを前記候補集合に追加するステップと、
    前記パラメータと前記変数値の異なる複数の組み合わせに対して前記候補集合に前記テスト・ケースが蓄積された段階で、まだ出現していないケースを含む数に関連するスコアの高さに従い、前記候補集合から前記テスト・ケースを選んで出力するステップであって、前記テスト済のテスト・ケースを含むテスト・ケースの集合に属する前記テスト・ケースの前記スコアは割り増しして計算される、ステップとを有する、
    テスト・ケース生成方法。
  14. 前記パラメータと前記変数値の異なる複数の組み合わせは、ペアワイズ法で生成される、請求項13に記載の方法。
  15. 前記テスト・ケースの前記スコアは、前記テスト・ケースに基づき生成されるペアのうち、まだ今まで出現していないペアの数によって決定される、請求項14に記載の方法。
  16. 前記スコアの割り増しは、前記スコアに、1より大きい数を掛けることよって行われる、請求項13記載の方法。
  17. 複数のパラメータと、そのパラメータに入れられる1つ以上の変数値をもち、該パラメータに入れられる変数値の組み合わせに応じて、システムのテスト・ケースを、コンピュータの処理により生成するプログラムであって、
    前記コンピュータに、
    テスト済のテスト・ケースを含むテスト・ケースの集合を、前記コンピュータが読み出し可能に、記憶手段に保持するステップと、
    前記パラメータと前記変数値組み合わせを生成するステップと、
    前記パラメータと前記変数値組み合わせをもつテスト・ケースを前記テスト済のテスト・ケースを含むテスト・ケースの集合において見出して集合変数に格納するステップと、
    前記パラメータと前記変数値の組み合わせにより生成したテスト・ケースを前記候補集合に追加するステップと、
    前記パラメータと前記変数値の異なる複数の組み合わせに対して前記候補集合に前記テスト・ケースが蓄積された段階で、まだ出現していないケースを含む数に関連するスコアの高さに従い、前記候補集合から前記テスト・ケースを選んで出力するステップであって、前記テスト済のテスト・ケースを含むテスト・ケースの集合に属する前記テスト・ケースの前記スコアは割り増しして計算される、ステップを実行させる、
    テスト・ケース生成プログラム。
  18. 前記パラメータと前記変数値の異なる複数の組み合わせは、ペアワイズ法で生成される、請求項17に記載のプログラム。
  19. 前記テスト・ケースの前記スコアは、前記テスト・ケースに基づき生成されるペアのうち、まだ今まで出現していないペアの数によって決定される、請求項18に記載のプログラム。
  20. 前記スコアの割り増しは、前記スコアに、1より大きい数を掛けることよって行われる、請求項17記載のプログラム。
JP2011047829A 2011-03-04 2011-03-04 テスト・ケース生成方法、プログラム及びシステム Expired - Fee Related JP5669630B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2011047829A JP5669630B2 (ja) 2011-03-04 2011-03-04 テスト・ケース生成方法、プログラム及びシステム
US13/409,236 US9483385B2 (en) 2011-03-04 2012-03-01 Method, program, and system for generating test cases
US13/602,720 US9465724B2 (en) 2011-03-04 2012-09-04 Method, program, and system for generating test cases

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011047829A JP5669630B2 (ja) 2011-03-04 2011-03-04 テスト・ケース生成方法、プログラム及びシステム

Publications (2)

Publication Number Publication Date
JP2012185642A JP2012185642A (ja) 2012-09-27
JP5669630B2 true JP5669630B2 (ja) 2015-02-12

Family

ID=46753817

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011047829A Expired - Fee Related JP5669630B2 (ja) 2011-03-04 2011-03-04 テスト・ケース生成方法、プログラム及びシステム

Country Status (2)

Country Link
US (2) US9483385B2 (ja)
JP (1) JP5669630B2 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5963316B2 (ja) 2014-02-20 2016-08-03 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 生成装置、生成方法、及び、プログラム
EP3021225B1 (en) * 2014-11-14 2020-07-01 Mastercard International, Inc. Automated configuration code based selection of test cases for payment terminals
CN106294120B (zh) * 2015-06-26 2020-06-05 伊姆西Ip控股有限责任公司 测试代码的方法、设备和计算机程序产品
CN105302723B (zh) * 2015-11-06 2020-07-31 北京京东尚科信息技术有限公司 测试用例评估方法、装置和计算机可读存储介质
CN106294130A (zh) * 2016-07-28 2017-01-04 浪潮电子信息产业股份有限公司 一种单元测试方法及装置
WO2018162049A1 (en) * 2017-03-07 2018-09-13 Advantest Corporation Test apparatus for performing a test on a device under test and data set filter for filtering a data set to obtain a best setting of a device under test
US10394697B2 (en) * 2017-05-15 2019-08-27 International Business Machines Corporation Focus area integration test heuristics
CN108009082B (zh) * 2017-11-22 2021-05-25 中国航空工业集团公司西安飞机设计研究所 一种基于飞行管理的组合测试用例生成方法
KR102087210B1 (ko) * 2018-02-01 2020-03-10 주식회사 한글과컴퓨터 알고리즘을 통한 테스트 케이스 생성 및 페어와이즈 조합 기법을 사용한 테스트 케이스 추출 방법 및 이를 이용하는 추출 장치
CN108446220B (zh) * 2018-03-02 2022-04-05 国网吉林省电力有限公司信息通信公司 一种测试用例的生成方法和装置
CN109189666A (zh) * 2018-08-02 2019-01-11 腾讯科技(北京)有限公司 接口测试方法、装置和计算机设备
CN109783346B (zh) * 2018-12-05 2022-05-13 深圳怡化电脑股份有限公司 基于关键字驱动的自动化测试方法、装置及终端设备
KR102271857B1 (ko) * 2019-06-21 2021-07-01 주식회사 엘지씨엔에스 테스트 자동화 시스템
CN110750442B (zh) * 2019-09-06 2022-08-19 深圳平安医疗健康科技服务有限公司 测试用例的生成方法、装置、设备及存储介质
CN110955593B (zh) * 2019-10-28 2023-07-14 北京三快在线科技有限公司 客户端测试方法、装置、电子设备及可读存储介质
CN111367797A (zh) * 2020-02-27 2020-07-03 中国联合网络通信集团有限公司 综合测试数据生成方法、装置、电子设备及存储介质
CN111475421B (zh) * 2020-05-28 2023-05-23 南方电网科学研究院有限责任公司 一种电力需求响应一致性测试用例生成系统和方法
CN113190434B (zh) * 2021-04-12 2024-03-08 成都安易迅科技有限公司 一种测试用例生成方法、装置、存储介质及计算机设备
US11797426B2 (en) * 2021-10-22 2023-10-24 Microsoft Technology Licensing Automating test-driven development with transformers
US11709765B1 (en) 2022-01-04 2023-07-25 Bank Of America Corporation Intelligent test cases generation based on voice conversation

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69323753T2 (de) * 1993-11-23 1999-07-01 Hewlett Packard Co Diagnoseeinrichtung
US6859770B2 (en) * 2000-11-30 2005-02-22 Hewlett-Packard Development Company, L.P. Method and apparatus for generating transaction-based stimulus for simulation of VLSI circuits using event coverage analysis
US6577982B1 (en) * 2001-01-30 2003-06-10 Microsoft Corporation Model-based testing via combinatorial designs
JP3883449B2 (ja) * 2002-02-28 2007-02-21 株式会社東芝 ソフトウェアシステムのテスト計画作成支援方法およびテスト計画作成支援プログラム
US20040117689A1 (en) * 2002-12-12 2004-06-17 International Business Machines Corporation Method and system for diagnostic approach for fault isolation at device level on peripheral component interconnect (PCI) bus
EP1680741B1 (en) * 2003-11-04 2012-09-05 Kimberly-Clark Worldwide, Inc. Testing tool for complex component based software systems
US20050261859A1 (en) * 2004-05-24 2005-11-24 Jeremy Petsinger Systems and methods for evaluating a test case
JP2006227958A (ja) * 2005-02-18 2006-08-31 Nomura Research Institute Ltd テストデータ生成システム及びテストデータ生成方法
KR101669384B1 (ko) * 2007-07-03 2016-10-25 쓰리엠 이노베이티브 프로퍼티즈 컴파니 배정된 컨텐츠의 효과를 측정하기 위해 컨텐츠를 시간 슬롯 샘플에 배정하는 시스템 및 방법
US20090077538A1 (en) * 2007-09-18 2009-03-19 Michael Paul Keyes Methods for testing software using orthogonal arrays
US8156474B2 (en) * 2007-12-28 2012-04-10 Cadence Design Systems, Inc. Automation of software verification
JP2009163609A (ja) * 2008-01-09 2009-07-23 Fujitsu Ltd テストデータ生成用プログラム、および装置
JP5104545B2 (ja) * 2008-05-27 2012-12-19 富士通株式会社 検証データ作成方法,検証データ作成装置及び検証データ作成プログラム
JP2011184996A (ja) 2010-03-11 2011-09-22 Toto Ltd 洗浄水タンクの排水弁装置、及び、排水弁装置の排水弁

Also Published As

Publication number Publication date
US9465724B2 (en) 2016-10-11
US9483385B2 (en) 2016-11-01
JP2012185642A (ja) 2012-09-27
US20120226465A1 (en) 2012-09-06
US20120330598A1 (en) 2012-12-27

Similar Documents

Publication Publication Date Title
JP5669630B2 (ja) テスト・ケース生成方法、プログラム及びシステム
CN107480039B (zh) 一种分布式存储系统的小文件读写性能测试方法及装置
CN105446874B (zh) 一种资源配置文件的检测方法和装置
JP6245006B2 (ja) テストケース生成装置、方法、及びプログラム
CN110032505A (zh) 软件质量确定装置、软件质量确定方法和软件质量确定程序
JP6275009B2 (ja) 試験装置及び試験プログラム
CN111694735B (zh) 一种页面性能测试方法、装置、电子设备及存储介质
JP2016514326A (ja) コンピューターシステムアクティビティのトレースタイムラインを解析するための方法およびシステム
CN112052070A (zh) 应用容器化评估方法、装置、电子设备及存储介质
CN109426605A (zh) 计算机的稳定性测试方法和装置
JP5811978B2 (ja) モデルベースの制御装置用のテストケース生成装置およびテストケース生成方法
CN109992511B (zh) 获取代码测试覆盖率的装置及方法
CN110766402A (zh) 交易顺序依赖漏洞检测方法、系统、电子装置及存储介质
CN106155898B (zh) 一种流程图的路径获取方法及装置
CN115269389A (zh) 一种项目质量确定方法、装置、电子设备及存储介质
CN114141302A (zh) 固态硬盘的测试方法及电子设备
CN109189673B (zh) 一种软件的测试方案、测试用例的确定方法及装置
US11630662B2 (en) Software analysis device, software analysis method, and software analysis program
CN110888809A (zh) 一种测试任务的风险预测方法及装置
JPWO2012049816A1 (ja) モデル検査装置、方法及びプログラム
CN110866492A (zh) 一种基线分支的识别方法、装置及计算机系统
JP2017041196A (ja) スタブ化対象判定装置、方法、及びプログラム
WO2019142266A1 (ja) テストケース生成装置、テストケース生成方法およびテストケース生成プログラム
WO2012056569A1 (ja) 性能測定方法、性能測定装置、及び、性能測定プログラム
CN112486808B (zh) 一种系统测试方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131210

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140725

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140805

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141030

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141216

R150 Certificate of patent or registration of utility model

Ref document number: 5669630

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees