JP5834991B2 - 図式プログラムのテスト網羅性測定装置およびその方法、並びにプログラム - Google Patents

図式プログラムのテスト網羅性測定装置およびその方法、並びにプログラム Download PDF

Info

Publication number
JP5834991B2
JP5834991B2 JP2012033430A JP2012033430A JP5834991B2 JP 5834991 B2 JP5834991 B2 JP 5834991B2 JP 2012033430 A JP2012033430 A JP 2012033430A JP 2012033430 A JP2012033430 A JP 2012033430A JP 5834991 B2 JP5834991 B2 JP 5834991B2
Authority
JP
Japan
Prior art keywords
program
test
measurement
coverage
comprehensiveness
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.)
Active
Application number
JP2012033430A
Other languages
English (en)
Other versions
JP2013171350A (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.)
Fuji Electric Co Ltd
Original Assignee
Fuji Electric Co 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 Fuji Electric Co Ltd filed Critical Fuji Electric Co Ltd
Priority to JP2012033430A priority Critical patent/JP5834991B2/ja
Publication of JP2013171350A publication Critical patent/JP2013171350A/ja
Application granted granted Critical
Publication of JP5834991B2 publication Critical patent/JP5834991B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

本発明は、図形を用いて記述された図式プログラムのテストの網羅性を測定するコンピュータにより構成された図式プログラムのテスト網羅性測定装置およびその方法、並びにプログラムに係り、例えば、図形を用いてプログラムを記述し、これを自動的にC言語等のテキスト形式のプログラム言語に変換するシステムにおいて、プログラムのテストの網羅性を評価する場合に利用できる。
一般に、プログラムの作成に際しては、C言語等の高級言語を利用して原始プログラム(ソースコード)を記述し、これをコンパイラによりコンピュータで実行可能な機械語に変換し、実行形式プログラムを得る方法が用いられている。このような方法の場合、通常、ソースコードはテキスト形式で記述される。
このような方法でプログラムを作成するには、事前にプログラムの詳細設計を行って詳細設計書を作成し、これをC言語等の高級言語によるソースコードに変換するが、詳細設計書に記載されている情報はソースコードを作成するのに十分な設計情報であるため、詳細設計書に記載の情報をソースコードに変換する作業は、機械的な要素が多く含まれていて、二重作業となり冗長であるとか、変換作業に単純な人為ミスが混入する可能性があるといった問題点を持っていた。
そこで、このような問題点を解決するための技術として、プログラマが、CADを用い、詳細設計書に記述されるような図面(図形)にプログラムとして必要となる情報を入力して図式プログラムを作成し、この図式プログラムから、従来、手作業で作成していたC言語等の高級言語によるプログラム(ソースコード)を自動的に生成させる技術が開発されている。例えば、モジュール関連図、処理フロー図、内部データ定義図、インタフェースデータ定義図を用いて、ソースプログラムを作成する技術が開示されている(特許文献1参照)。
ところで、近年、プログラムの不具合による社会インフラの停止等の問題が顕在化するようになってきており、プログラムの試験の重要性も高まっている。このため、プログラムの単体テストのレベルでは、プログラムの試験がどの程度網羅的に実施されたかを数値化した網羅率(カバレッジ)で、プログラムのテストの十分性を評価する手法が使われるようになってきている。このような手法では、プログラムのテストを自動的に実行できるように、自動テスト環境やプログラムに入力するパラメータ、実行結果の期待値等を用意し、テストを自動実行したうえで、そのテストで実行したテストケースのプログラム上での網羅率(テストを実施することができた範囲)を測定する。例えば、テスト対象のプログラムのテスト実行結果をファイルに保存し、正解集ファイルと比較し、その結果を履歴として保存する自動テスト技術が開示されている(特許文献2参照)。また、分岐命令割込みを利用して、判断文の網羅率を測定する技術が開示されている(特許文献3参照)。なお、網羅率にも、様々な指標での計算方法があり、特許文献3で使用されている判断文カバレッジ(分岐網羅率(C1))の他にも、行カバレッジ(命令網羅率(C0))、単純条件カバレッジ(条件網羅率(C2))等が、一般に知られている。
そして、これらの網羅率を測定した結果、予め決められた網羅率の目標値を参照するなどして、不十分であると判定された場合には、十分な網羅率を確保するために、テストパターン(パラメータへの入力値や、実行結果の期待値等からなるテスト実行に要する情報)を追加して対応する。このような手法は最近ではよく使用されていて、例えばC言語で記述されたプログラムの網羅率を測定しようとした場合には、既存のC言語用の網羅率測定システムを用いて、網羅率を測定することになる。
特開昭60−159939号公報 特開平5−53873号公報 特開平5−257743号公報
ところで、図形を用いて記述した図式プログラムを一旦C言語のようなテキスト形式の高級言語に変換してプログラムを作成する場合において、網羅率を測定するときには、生成されたC言語プログラムに、幾つかのテストパターン(パラメータへの入力値や、実行結果の期待値等からなるテスト実行に要する情報)を組み合わせ、既存のC言語用の網羅率測定システムを用いて網羅率を測定する必要があった。
この場合にも、網羅率を測定した結果、不十分であった場合には、テストパターンを追加してテストを実行することになる。しかし、C言語用の網羅率測定システムを用いているため、生成されたC言語プログラム上では、網羅率不足の原因は判別できるものの、その元になった図式プログラム上では、この図式プログラムを構成する図形要素との対応が付きにくく、いずれの図形要素のテストの網羅性が不十分なのか、あるいは、いずれの図形要素内のいずれのテストケースについてのテストが実行されていないのかを把握することが困難であった。このため、網羅率が不足する原因の特定作業や、テストパターンの補充作業を、効率的に実施することが困難であるという問題点があった。
本発明の目的は、テスト網羅率の不足原因の特定作業や、テストパターンの補充作業を、効率的に実施することができる図式プログラムのテスト網羅性測定装置およびその方法、並びにプログラムを提供するところにある。
本発明は、図形を用いて記述された図式プログラムのテストの網羅性を測定するコンピュータにより構成された図式プログラムのテスト網羅性測定装置であって、図式プログラムの作成に用いるために予め用意された各図形要素の情報に関連付けて、各図形要素のテストの網羅性を測定するために予め用意された網羅性測定処理の内容を示す雛形情報を記憶する図式プログラムライブラリ記憶手段と、作成済みの図式プログラムが示す処理内容をテキスト形式のソースコードに変換する処理を実行するソースコード変換手段と、このソースコード変換手段による変換処理の際に、作成済みの図式プログラムを構成する図形要素に対応する網羅性測定処理の内容を示す雛形情報を、図式プログラムライブラリ記憶手段から取得し、取得した雛形情報を用いて、ソースコード変換手段による変換処理で得られたソースコードに、網羅性測定処理の内容を示すソースコードを付加する処理を実行する網羅性測定処理付加手段と、この網羅性測定処理付加手段により網羅性測定処理の内容を示すソースコードを付加した状態のソースコード変換手段により得られたソースコードを、コンピュータで実行可能な実行形式プログラムに変換する処理を実行する実行形式変換手段と、この実行形式変換手段により得られたテスト対象の実行形式プログラムを実行して図形要素に対応する網羅性測定処理を実行することにより、網羅性測定情報記憶手段に図形要素の網羅性測定情報を書き込んで記憶させる処理を実行するプログラム実行手段と、網羅性測定情報記憶手段に記憶されている網羅性測定情報を取得し、取得した網羅性測定情報を用いて図形要素毎のテスト網羅性を含む網羅性測定結果を画面表示および/または印刷する処理を実行する網羅性測定結果出力手段とを備えたことを特徴とするものである。
このような本発明の図式プログラムのテスト網羅性測定装置においては、テスト対象のプログラムのソースコードに、図式プログラムを構成する図形要素に対応する網羅性測定処理の内容を示すソースコードを付加することにより、網羅性を測定し、得られた網羅性測定情報を用いて図形要素毎のテスト網羅性を含む網羅性測定結果を画面表示および/または印刷するので、プログラマは、図形要素と対応付けてテストの網羅性を把握することが可能となる。従って、C言語プログラム等のテキスト形式のソースコードで記述されたプログラム上で、既存のC言語用等の網羅率測定システムを用いて網羅率を測定する必要はなくなり、網羅性測定結果も、C言語プログラム等のソースプログラム上で確認するのではなく、図式プログラム上で、その図式プログラムを構成する図形要素と対応付けて確認することが可能となる。このため、図式プログラムの網羅率が不足した場合には、その原因の特定作業や、テストパターンの補充作業を、C言語プログラム等のソースプログラムを意識することなく、直接に図式プログラムを見ながら行うことができるようになり、これらの作業を効率的に実施することが可能となり、これらにより前記目的が達成される。
また、前述した図式プログラムのテスト網羅性測定装置において、プログラム実行手段は、網羅性測定情報記憶手段に、網羅性測定情報として、各図形要素内のテストケースの実行の有無情報を書き込んで記憶させる処理を実行する構成とされ、網羅性測定結果出力手段は、網羅性測定情報記憶手段に網羅性測定情報として記憶されている各図形要素内のテストケースの実行の有無情報を用いて、図形要素毎に網羅率を算出し、算出した図形要素毎の網羅率を含む網羅性測定結果を画面表示および/または印刷する処理と、図形要素毎に各図形要素内のテストケースの実行の有無情報を含む網羅性測定結果を画面表示および/または印刷する処理とのうちの少なくとも一方の処理を実行する構成とされていることが望ましい。
このように網羅性測定結果として、図形要素毎の網羅率を画面表示および/または印刷するか、あるいは図形要素毎に各図形要素内のテストケースの実行の有無情報を画面表示および/または印刷する構成とした場合には、いずれの図形要素のテストの網羅性が、どれぐらい不十分なのかを容易に把握することが可能となり、テスト網羅率の不足原因の特定作業や、テストパターンの補充作業を、より一層、効率的に実施することが可能となる。
より具体的には、次のような構成を採ることができる。例えば、前述した図式プログラムのテスト網羅性測定装置において、図式プログラムライブラリ記憶手段には、各図形要素の情報に関連付けて、網羅性測定処理の内容を示す雛形情報とともに、各図形要素についての図形要素内のテストケースの数も予め記憶され、網羅性測定処理付加手段は、作成済みの図式プログラムを構成する図形要素について、図式プログラムライブラリ記憶手段からテストケースの数を取得し、網羅性測定情報記憶手段に、図形要素毎にテストケースの数に相当する網羅性測定情報の格納領域を確保する処理を実行する構成とすることができる。
このように網羅性測定情報記憶手段に、図形要素毎にテストケースの数に相当する網羅性測定情報の格納領域を確保する構成とした場合には、網羅性測定情報を図形要素毎に容易かつ確実に記録し、取得することができるようになり、プログラマに対し、図形要素毎の網羅性測定結果を容易に示すことが可能となる。
なお、網羅性測定情報記憶手段に、網羅性測定情報の格納領域を確保するにあたっては、必ずしもこのように網羅性測定処理付加手段によりテストケースの数の格納領域を一括して確保する場合に限定されるものではなく、例えば、プログラム実行手段により網羅性測定処理を実行している過程で、プログラム実行手段により、網羅性測定情報記憶手段に、実行されたテストケースについての網羅性測定情報の格納領域を、1つずつ確保していくようにしてもよい。
また、前述した図式プログラムのテスト網羅性測定装置において、網羅性測定処理付加手段は、作成済みの図式プログラムを構成する図形要素内のテストケースをテストするためのテストパターンの入力を受け付け、受け付けたテストパターンを用いて、テスト対象の図式プログラムを繰り返し実行するためのループ処理を含むテストプログラムを生成する処理も実行する構成とされ、プログラム実行手段は、網羅性測定処理付加手段により生成されたテストプログラムの実行形式プログラムを実行してループ処理でテストパターンの数に相当する回数だけテスト対象の実行形式プログラムを繰り返し実行することにより、網羅性測定情報記憶手段に、網羅性測定情報としてテストパターンでテストされたテストケースの実行済みを示す情報を記憶させる処理を実行する構成とすることができる。
このようにループ処理でテスト対象の実行形式プログラムを繰り返し実行し、網羅性測定情報記憶手段に、テストを実施することができたテストケースの実行済みの情報を記憶させる構成とした場合には、テスト対象の実行形式プログラムに付加されている、図形要素に対応する網羅性測定処理を、容易かつ確実に繰り返し実行することが可能となり、網羅性測定情報を図形要素毎に容易かつ確実に記録することが可能となる。
また、以上に述べた本発明の図式プログラムのテスト網羅性測定装置により実現されるテスト網羅性測定方法として、以下のような本発明の図式プログラムのテスト網羅性測定方法が挙げられる。
すなわち、本発明は、図形を用いて記述された図式プログラムのテストの網羅性を測定するコンピュータにより構成された図式プログラムのテスト網羅性測定装置で実行される図式プログラムのテスト網羅性測定方法であって、図式プログラムの作成に用いるために予め用意された各図形要素の情報に関連付けて、各図形要素のテストの網羅性を測定するために予め用意された網羅性測定処理の内容を示す雛形情報を、図式プログラムライブラリ記憶手段に記憶しておき、ソースコード変換手段が、作成済みの図式プログラムが示す処理内容をテキスト形式のソースコードに変換する処理を実行し、網羅性測定処理付加手段が、ソースコード変換手段による変換処理の際に、作成済みの図式プログラムを構成する図形要素に対応する網羅性測定処理の内容を示す雛形情報を、図式プログラムライブラリ記憶手段から取得し、取得した雛形情報を用いて、ソースコード変換手段による変換処理で得られたソースコードに、網羅性測定処理の内容を示すソースコードを付加する処理を実行し、実行形式変換手段が、網羅性測定処理付加手段により網羅性測定処理の内容を示すソースコードを付加した状態のソースコード変換手段により得られたソースコードを、コンピュータで実行可能な実行形式プログラムに変換する処理を実行し、プログラム実行手段が、実行形式変換手段により得られたテスト対象の実行形式プログラムを実行して図形要素に対応する網羅性測定処理を実行することにより、網羅性測定情報記憶手段に図形要素の網羅性測定情報を書き込んで記憶させる処理を実行し、網羅性測定結果出力手段が、網羅性測定情報記憶手段に記憶されている網羅性測定情報を取得し、取得した網羅性測定情報を用いて図形要素毎のテスト網羅性を含む網羅性測定結果を画面表示および/または印刷する処理を実行することを特徴とするものである。
このような本発明の図式プログラムのテスト網羅性測定方法においては、前述した本発明の図式プログラムのテスト網羅性測定装置で得られる作用・効果がそのまま得られ、これにより前記目的が達成される。
また、本発明のプログラムは、前述した図式プログラムのテスト網羅性測定装置として、コンピュータを機能させるためのものである。
なお、上記のプログラムまたはその一部は、例えば、光磁気ディスク(MO)、コンパクトディスク(CD)を利用した読出し専用メモリ(CD−ROM)、CDレコーダブル(CD−R)、CDリライタブル(CD−RW)、デジタル・バーサタイル・ディスク(DVD)を利用した読出し専用メモリ(DVD−ROM)、DVDを利用したランダム・アクセス・メモリ(DVD−RAM)、フレキシブルディスク(FD)、磁気テープ、ハードディスク、読出し専用メモリ(ROM)、電気的消去および書換可能な読出し専用メモリ(EEPROM)、フラッシュ・メモリ、ランダム・アクセス・メモリ(RAM)等の記録媒体に記録して保存や流通等させることが可能であるとともに、例えば、ローカル・エリア・ネットワーク(LAN)、メトロポリタン・エリア・ネットワーク(MAN)、ワイド・エリア・ネットワーク(WAN)、インターネット、イントラネット、エクストラネット等の有線ネットワーク、あるいは無線通信ネットワーク、さらにはこれらの組合せ等の伝送媒体を用いて伝送することが可能であり、また、搬送波に載せて搬送することも可能である。さらに、上記のプログラムは、他のプログラムの一部分であってもよく、あるいは別個のプログラムと共に記録媒体に記録されていてもよい。
以上に述べたように本発明によれば、テスト対象のプログラムのソースコードに、図式プログラムを構成する図形要素に対応させて予め用意された網羅性測定処理の内容を示すソースコードを付加し、これを実行形式に変換したプログラムを実行してテスト網羅性を測定し、得られた網羅性測定情報を用いて図形要素毎のテスト網羅性を含む網羅性測定結果を画面表示および/または印刷するので、プログラマは、図形要素と対応付けてテストの網羅性を把握することができ、図式プログラムの網羅率が不足した場合には、その原因の特定作業や、テストパターンの補充作業を、C言語プログラム等のソースプログラムを意識することなく、直接に図式プログラムを見ながら行うことができるため、これらの作業を効率的に実施することができるという効果がある。
本発明の一実施形態の図式プログラムのテスト網羅性測定装置の全体構成図。 前記実施形態のハードウェア構成図。 前記実施形態の図式プログラムの一例を示す図。 前記実施形態の図式プログラムのC言語プログラムへの変換例、および網羅性測定処理の内容を示すソースコードを付加した状態の一例を示す図。 前記実施形態のリミッタブロックの入出力関係を示す図。 前記実施形態のリミッタブロックの処理内容を示すフローチャートの図。 前記実施形態のテストパターンおよびテストプログラムの一例を示す図。 前記実施形態の網羅性測定情報記憶手段の構成の一例を示す図。 前記実施形態の図式プログラムのテスト網羅性測定装置によるテスト網羅性の測定処理の流れを示すフローチャートの図。
以下に本発明の一実施形態について図面を参照して説明する。図1には、本実施形態の図式プログラムのテスト網羅性測定装置10の全体構成が示され、図2には、そのハードウェア構成が示されている。図3には、図式プログラムの一例が示され、図4には、図式プログラムのC言語プログラムへの変換例、および網羅性測定処理の内容を示すソースコードを付加した状態の一例が示されている。また、図5には、リミッタブロックの入出力関係が示され、図6には、リミッタブロックの処理内容がフローチャートで示されている。さらに、図7には、テストパターンおよびテストプログラムの一例が示され、図8には、網羅性測定情報記憶手段45の構成例が示され、図9には、図式プログラムのテスト網羅性測定装置10によるテスト網羅性の測定処理の流れがフローチャートで示されている。
図1において、図式プログラムのテスト網羅性測定装置10は、コンピュータ本体により構成された装置本体20と、マウスやキーボード等の入力装置50と、液晶ディスプレイやCRTディスプレイ等のディスプレイ装置60とを備えている。また、図示は省略されているが、印刷装置を備えた構成としてもよい。
装置本体20は、図式プログラム作成手段31と、ソースコード変換手段32と、網羅性測定処理付加手段33と、実行形式変換手段34と、プログラム実行手段35と、網羅性測定結果出力手段36と、図式プログラムライブラリ記憶手段41と、図式プログラム記憶手段42と、ソースプログラム記憶手段43と、実行形式プログラム記憶手段44と、網羅性測定情報記憶手段45とを含んで構成されている。
また、装置本体20は、ハードウェア構成としては、図2に示すように、演算装置(CPU)21と、主記憶装置(主メモリ、ここではキャッシュメモリを含むものとする。)22と、ハードディスク等の補助記憶装置23と、これらを接続するバス24により構成されている。
図式プログラム作成手段31は、図式プログラムライブラリ記憶手段41に予め用意されて記憶されている各種の機能を有する図形要素(図式プログラムの構成要素であり、図3〜図6のリミッタブロックも含まれる。)の情報を用いて、プログラマによる図形要素の選択入力およびそれに付随させる情報(設定値等)の入力を受け付けるとともに、図形要素間の接続情報の入力も受け付け、ディスプレイ装置60の画面上に、入力された図形要素を並べて表示するとともに、それらの接続関係も表示することにより(図3参照)、図形を用いたプログラムの作成を支援し、入力された図形要素の情報を、図形要素IDと関連付け、また、入力された接続情報を、接続関係IDと関連付けて、図式プログラム記憶手段42に記憶させる処理を実行するものである。
なお、後述する図8や図4では、図形要素IDについては、説明の便宜上、図式プログラム作成手段31により作成された図式プログラムを構成する図形要素のうち、テスト網羅性の測定対象となる図形要素(図3〜図6のリミッタブロックを含む。)についてだけ付された状態で説明されている。
ソースコード変換手段32は、ディスプレイ装置60の画面上に表示しながらプログラマにより作成されて図式プログラム記憶手段42に記憶されている作成済みの図式プログラムの情報(図式プログラムを構成する各図形要素の情報およびそれらの図形要素間の接続情報)を用いて、各図形要素の種別コードにより図式プログラムライブラリ記憶手段41から各図形要素の種別(機能)に応じた処理内容を示すソースコードを取得し、各図形要素について設定されている情報(パラメータへの設定値等)と組み合わせることにより、図式プログラム(図3参照)で示される処理内容を、テキスト形式の計算機言語(高級言語)で記述したソースコード(図4参照)に変換するとともに、テスト網羅性の測定対象の図形要素については、網羅性測定処理付加手段33に対し、網羅性測定処理の内容を示すソースコードの付加指令を出し、このようにして得られた全ての図形要素についてのソースコードを、処理順に配置してソースプログラム(本実施形態では、一例として、C言語プログラムとする。)を作成し、作成したソースプログラム(C言語プログラム)を、ソースプログラム記憶手段43に記憶させる処理を実行するものである。なお、ソースコード変換手段32は、網羅性測定処理付加手段33による網羅性測定処理の内容を示すソースコードの付加を行っていない通常のソースプログラム(C言語プログラム)を自動生成する処理も実行するが、本実施形態では、本発明に係る内容として、網羅性測定処理の内容を示すソースコードが付加されているソースプログラム(C言語プログラム)の自動生成に絞って説明を行うものとする。
より具体的には、ソースコード変換手段32は、先ず、図式プログラム記憶手段42に記憶されている作成済みの図式プログラムを構成する各図形要素について、これらの図形要素の種別コード(どのような機能の図形要素であるのかを識別するためのコード)を用いて、各図形要素が、図式プログラムライブラリ記憶手段41に網羅性測定処理の内容が記憶されているテスト網羅性の測定対象の図形要素に該当するか否かを判断し、テスト網羅性の測定対象の図形要素に該当すると判断した場合には、当該図形要素について設定されている情報(パラメータへの設定値等)および当該図形要素の種別コードを網羅性測定処理付加手段33に送り、網羅性測定処理付加手段33に対し、網羅性測定処理の内容を示すソースコードの付加指令を出し、一方、テスト網羅性の測定対象の図形要素に該当しないと判断した場合には、網羅性測定処理の内容を示すソースコードの付加指令を出さず、次に、図形要素の種別コードを用いて、図式プログラムライブラリ記憶手段41から、図形要素の種別(機能)に応じた処理内容を示すソースコードを取得し、これに当該図形要素について設定されている情報(パラメータへの設定値等)を組み合わせることにより、図形要素の処理内容に対応するソースコードを作成し、作成したソースコードを、自動生成中のソースプログラム(C言語プログラム)に、処理順に配置していき、このような処理を、作成済みの図式プログラムを構成する全ての図形要素(テスト網羅性の測定対象の図形要素および測定対象ではない図形要素)について繰り返し実行する。
網羅性測定処理付加手段33は、ソースコード変換手段32による変換処理の際に、ソースコード変換手段32からの指令を受け、図式プログラム記憶手段42に記憶されている作成済みの図式プログラムを構成する各図形要素のうち、テスト網羅性の測定対象の図形要素について、ソースコード変換手段32から受け取った図形要素の種別コードを用いて、その網羅性測定対象の図形要素に対応する網羅性測定処理の内容を示す雛形情報(パラメータ等が設定される前の状態のソースコード)を、図式プログラムライブラリ記憶手段41から取得し、取得した雛形情報に、図形要素について設定されている情報(パラメータへの設定値等)を組み合わせることにより網羅性測定処理の内容を示すソースコード(図4参照)を作成し、ソースコード変換手段32による変換処理で得られたソースコードに、作成した網羅性測定処理の内容を示すソースコードを付加する処理を実行するものである。ここで、網羅性測定処理の内容は、各図形要素の機能に応じて図形要素の種別毎に予め定められて用意されているものであり、網羅性測定処理の内容を示す雛形情報は、図形要素の種別コードにより図形要素の情報に関連付けられて図式プログラムライブラリ記憶手段41に記憶されている。
また、網羅性測定処理付加手段33は、図式プログラム記憶手段42に記憶されている作成済みの図式プログラムを構成する各図形要素のうちの網羅性測定対象の図形要素について、これらの図形要素の種別コードを用いて、図式プログラムライブラリ記憶手段41から、これらの図形要素内のテストケースの数を取得し、網羅性測定情報記憶手段45(図8参照)に、図形要素毎にテストケースの数に相当する網羅性測定情報45Aの格納領域を確保する処理を実行する。より具体的には、本実施形態では、網羅性測定処理付加手段33は、図形要素毎に取得したテストケースの数を、テストケース情報記憶手段(不図示)に記憶されているテストケース情報に追加していき、網羅性測定対象の図形要素のすべてについてのテストケースの数を取得した後に、それらの全テストケース分の実行の有無情報(「Yes」(実行済み)または「No」(未実行))の格納領域を確保し、さらに初期値として「No」(未実行)を記憶させる処理を実行する。
なお、図形要素毎に網羅性測定情報45Aの格納領域を確保するにあたっては、図形要素の種別毎に確保するのではなく、個々の図形要素のそれぞれについて確保する。すなわち、クラス毎に確保するのではなく、インスタンス毎に確保する。従って、図式プログラムの中に、同じ種別の図形要素が複数個あった場合には、その数だけ確保することになる。
さらに、網羅性測定処理付加手段33は、図式プログラム記憶手段42に記憶されている作成済みの図式プログラムを構成する各図形要素のうちの網羅性測定対象の図形要素内のテストケースをテストするためのテストパターン(図7参照)の入力を受け付け、受け付けたテストパターンを用いて、テスト対象のプログラムを繰り返し実行するためのループ処理を含むテストプログラム(図7参照)を自動生成し、自動生成したテストプログラム(本実施形態では、一例として、C言語プログラムとする。)を、ソースプログラム記憶手段43に記憶させる処理も実行する。
実行形式変換手段34は、ソースコード変換手段32および網羅性測定処理付加手段33により生成されてソースプログラム記憶手段43に記憶されているソースプログラム(C言語プログラム)を、コンピュータで実行可能な機械語による実行形式プログラム(オブジェクトプログラム)に変換するコンパイルを実行し、コンパイルして得られた実行形式プログラムを、実行形式プログラム記憶手段44に記憶させる処理を実行するものである。なお、実行形式変換手段34は、網羅性測定処理付加手段33による網羅性測定処理の内容を示すソースコードの付加を行っていない通常のソースプログラム(C言語プログラム)をコンパイルする処理も実行するが、本実施形態では、本発明に係る内容として、網羅性測定処理の内容を示すソースコードを付加されたソースプログラム(C言語プログラム)のコンパイルに絞って説明を行うものとする。
また、実行形式変換手段34は、網羅性測定処理付加手段33により作成されてソースプログラム記憶手段43に記憶されているテストプログラム(C言語プログラム)をコンパイルし、コンパイルして得られたテストプログラムの実行形式プログラムを、実行形式プログラム記憶手段44に記憶させる処理も実行する。
なお、実行形式変換手段34は、プログラム実行手段35によるテスト対象の実行形式プログラムおよびテストプログラムの実行形式プログラムの実行が、図2に示した演算装置(CPU)21を主体とする構成で行われることから、この演算装置21の種別に対応したCコンパイラで構成することができる。
プログラム実行手段35は、実行形式変換手段34によりコンパイルされて実行形式プログラム記憶手段44に記憶されているテスト対象の実行形式プログラムを主記憶装置22にロードし、これを演算装置(CPU)21で実行して網羅性測定対象の図形要素に対応する網羅性測定処理を実行することにより、網羅性測定情報記憶手段45(図8参照)に、当該図形要素の網羅性測定情報45Aを書き込んで記憶させる処理を実行するものである。
より具体的には、プログラム実行手段35は、網羅性測定処理付加手段33により自動生成された後に実行形式変換手段34によりコンパイルして得られたテストプログラムの実行形式プログラム、およびテスト対象の実行形式プログラムを、実行形式プログラム記憶手段44から主記憶装置22にロードし、テストプログラムの実行形式プログラムを演算装置(CPU)21で実行し、テストプログラム内のループ処理で、テストパターンの数に相当する回数だけ、テスト対象の実行形式プログラムを演算装置(CPU)21で繰り返し実行することにより、網羅性測定情報記憶手段45(図8参照)に、網羅性測定情報45Aとして、テストパターンでテストが実施されたテストケースの実行済みを示す情報(「Yes」)を書き込んで記憶させる処理を実行する。
また、プログラム実行手段35は、網羅性測定情報記憶手段45(図8参照)に、網羅性測定情報45Aを出力するだけではなく、各テストパターンを用いてテストが実施されたテストケースのログを示す測定履歴情報45Bを出力する処理も実行する。
網羅性測定結果出力手段36は、網羅性測定情報記憶手段45(図8参照)に記憶されている図形要素毎の各図形要素内のテストケースの実行の有無情報からなる網羅性測定情報45Aを取得し、取得した網羅性測定情報45Aを用いて、図形要素毎のテスト網羅性を含む網羅性測定結果を、ディスプレイ装置60に画面表示する処理を実行するものである。また、網羅性測定結果出力手段36は、図形要素毎のテスト網羅性を含む網羅性測定結果を、図示されない印刷装置で印刷する処理を実行してもよい。
より具体的には、網羅性測定結果出力手段36は、網羅性測定情報記憶手段45(図8参照)に網羅性測定情報45Aとして記憶されている各図形要素内のテストケースの実行の有無情報を用いて、図形要素毎に網羅率を算出し、算出した図形要素毎の網羅率を含む網羅性測定結果を、ディスプレイ装置60に画面表示する処理を実行する。また、図形要素毎の網羅率だけではなく、図式プログラム全体の網羅率を算出し、ディスプレイ装置60に画面表示する処理を実行してもよい。この際、図式プログラム全体の網羅率の算出方法としては、例えば、各図形要素の網羅率の積を取る方法や、平均を取る方法、あるいは図式プログラム全体の必要テストケースの和で実行済みのテストケースの和を割る方法等、様々な方法を採用することができる。さらに、網羅性測定結果出力手段36は、図形要素毎の各図形要素内のテストケースの実行の有無情報を含む網羅性測定結果を、ディスプレイ装置60に画面表示する処理も実行する。なお、これらの図形要素毎の網羅率の画面表示・印刷と、図形要素毎の各図形要素内のテストケースの実行の有無情報の画面表示・印刷とは、いずれか一方の画面表示・印刷でもよいが、プログラマに対し、より多くのテスト網羅性に関する情報を付与し、図式プログラムの網羅率が不足した場合における不足原因の特定作業やテストパターンの補充作業を、より効率的に実施することができるようにするという観点からは、双方の情報を画面表示・印刷することが好ましい。
図式プログラムライブラリ記憶手段41は、予め用意された各種の機能を有する図形要素(作成する図式プログラムの構成要素となるものであり、図3〜図6のリミッタブロックも含まれる。)の情報(図形要素の種別(機能)に応じた処理内容に対応するソースコード)と、網羅性測定対象の図形要素内のテストケースの数と、網羅性測定対象の図形要素に対応する網羅性測定処理の内容を示す雛形情報(パラメータ等が設定される前の状態のソースコード)とを、図形要素の種別コードにより関連付けることにより、それぞれを対応させた状態で記憶するものである。なお、これらのうち、図形要素の情報については、図形を用いて図式プログラムを作成する既存のシステムに用意されているもの(例えば、特開2008−3817の段落[0021]に記載されている、機能ブロックに対応する実装モジュール等)と同様のものでよい。
図式プログラム記憶手段42は、図式プログラム作成手段31により入力された作成済みまたは作成途中の図式プログラムを記憶するものであり、より具体的には、作成済みまたは作成途中の図式プログラムを構成する各図形要素の情報(パラメータへの設定値や、図形要素の機能を識別するための種別コード等を含む。)を、図形要素IDと関連付け、また、各図形要素間の接続情報を、接続関係IDと関連付けて記憶するものである。
ソースプログラム記憶手段43は、ソースコード変換手段32および網羅性測定処理付加手段33により作成された、ソースコードで記述されたテスト対象のプログラム(本実施形態では、C言語プログラム)と、網羅性測定処理付加手段33により作成された、ソースコードで記述されたテストプログラム(本実施形態では、C言語プログラム)とを記憶するものである。
実行形式プログラム記憶手段44は、実行形式変換手段34によりコンパイルして得られたテスト対象の実行形式プログラムおよびテストプログラムの実行形式プログラムを記憶するものである。
網羅性測定情報記憶手段45は、図8に示すように、プログラム実行手段35により得られた網羅性測定対象の図形要素内のテストケースの実行の有無情報からなる網羅性測定情報45A、および各テストパターンを用いてテストが実施されたテストケースのログを示す測定履歴情報45Bを記憶するものである。
そして、以上に述べた各種処理を実行する各手段31〜36は、装置本体20を構成するコンピュータ本体の内部に設けられた演算装置(CPU)21、その作業領域である主記憶装置22(図2参照)、および演算装置(CPU)21の動作手順を規定する1つまたは複数のプログラムにより実現される。なお、ここでいうプログラムは、テスト対象のプログラムやテストプログラムのことではない。
また、各記憶手段41〜45は、例えばハードディスク等の補助記憶装置23(図2参照)により好適に実現されるが、記憶容量やアクセス速度等に問題が生じない範囲であれば、ROM、EEPROM、フラッシュ・メモリ、RAM、MO、CD−ROM、CD−R、CD−RW、DVD−ROM、DVD−RAM、FD、磁気テープ、あるいはこれらの組合せ等を採用してもよい。
さらに、装置本体20は、1台のコンピュータあるいは1つのCPUにより実現されるものに限定されず、複数のコンピュータあるいは複数のCPUで分散処理を行うことにより実現されるものであってもよい。
このような本実施形態においては、以下のようにして図式プログラムのテスト網羅性測定装置10により、作成された図式プログラムについてテスト網羅性の測定処理が行われる。
図9において、先ず、図式プログラムのテスト網羅性測定装置10の電源を入れてプログラムを立ち上げ、テスト網羅性の測定に関する一連の処理を開始する(ステップS1)。
次に、図式プログラム作成手段31により、図式プログラムライブラリ記憶手段41に予め用意されて記憶されている各種の機能を有する図形要素の情報を用いて、プログラマによる図形要素の選択入力およびそれに付随させる情報(設定値等)の入力を受け付けるとともに、図形要素間の接続情報の入力も受け付け、ディスプレイ装置60の画面上に、入力された図形要素を並べて表示するとともに、それらの接続関係も表示することにより(図3参照)、図形を用いた図式プログラムの作成を支援し、入力された図形要素の情報を、図形要素IDと関連付け、また、入力された接続情報を、接続関係IDと関連付けて、図式プログラム記憶手段42に記憶させる(図9のステップS2)。この図式プログラム作成手段31による図式プログラムの作成時における入力装置50からの入力受付処理や、ディスプレイ装置60への画面表示処理は、図式プログラムを作成する既存のシステムと同様である。
図3には、図式プログラム作成手段31により入力を受け付けた図式プログラムの一例が示されている。この図は、入力信号aをリミッタ(limiter)で振幅制限し、リミッタ通過後の信号値を2倍して出力信号bを生成するアルゴリズムを示している。また、リミッタでは、上限値(U)としてcが設定され、下限値(L)としてdが設定されており、このリミッタは、これらの上下限値の範囲内に出力を制限することを示している。
ここで、リミッタ(limiter)ブロックは、図式プログラムを構成する図形要素の1種として、その内容情報(パラメータへの設定値が入力されていない状態の情報)が図式プログラムライブラリ記憶手段41に予め用意されて記憶されているものである。図5には、図3に示した図式プログラム中のリミッタブロックの入出力関係が示されており、全範囲の値をとる入力信号aに対し、dからcまでの間の範囲でリターン値kが得られることが示されている。
続いて、作成を完了した状態の図式プログラムが図式プログラム記憶手段42に記憶されている段階で、ソースコード変換手段32により、この作成済みの図式プログラム(図3参照)で示される処理内容を、テキスト形式の計算機言語(ここでは、C言語とする。)で記述したソースコード(図4参照)に変換する処理を開始し、テストケース情報記憶手段(不図示)に記憶されているテストケース情報(網羅性測定対象の各図形要素についての図形要素ID、およびその図形要素内のテストケースの数を含む情報)をクリアした後に(図9のステップS3)、作成済みの図式プログラム(図3参照)を構成する全ての図形要素について、図式プログラムに分岐がない場合には、1つずつ順番に、あるいは図式プログラムに分岐がある場合には、例えば、本願出願人により提案されている特開2006−285480に開示された手段等を用いて、ソースコードへの変換処理を実行する(図9のステップS4〜S4A)。なお、テストケース情報は、主記憶装置22(図2参照)内に記憶しておくだけでもよく、補助記憶装置23に記憶させてもよいことから、説明の便宜上、テストケース情報記憶手段の図示は省略している。
先ずは、ソースコード変換手段32により、図式プログラム記憶手段42に記憶されている作成済みの図式プログラム(図3参照)を構成する各図形要素について、これらの図形要素の種別コード(どのような機能の図形要素であるのかを識別するためのコード)を用いて、各図形要素が、図式プログラムライブラリ記憶手段41に網羅性測定処理の内容が記憶されているテスト網羅性の測定対象の図形要素に該当するか否かを判断し(図9のステップS5)、テスト網羅性の測定対象の図形要素に該当すると判断した場合には、当該図形要素について設定されている情報(パラメータへの設定値等)および当該図形要素の種別コードを網羅性測定処理付加手段33に送り、網羅性測定処理付加手段33に対し、網羅性測定処理の内容を示すソースコードの付加指令を出す。
それから、網羅性測定処理付加手段33により、ソースコード変換手段32から受け取った図形要素の種別コードを用いて、図式プログラムライブラリ記憶手段41から、当該図形要素内のテストケースの数を取得し(図9のステップS6)、取得したテストケースの数を、当該図形要素についての図形要素IDとともに、テストケース情報に追加する(図9のステップS7)。例えば、図3に示したリミッタブロックは、網羅性測定対象の図形要素であり、3つのテストケースがあるので(図4、図6参照)、このリミッタブロックについての図形要素ID(説明の便宜上、図8に示すように「1」とする。)と、テストケース数=3とを、テストケース情報に追加する。
その後、網羅性測定処理付加手段33により、ソースコード変換手段32から受け取った図形要素の種別コードを用いて、その図形要素に対応する網羅性測定処理の内容を示す雛形情報(パラメータ等が設定される前の状態のソースコード)を、図式プログラムライブラリ記憶手段41から取得し、取得した雛形情報に、図形要素について設定されている情報(パラメータへの設定値等)を組み合わせることにより網羅性測定処理の内容を示すソースコード(図4参照)を作成し、作成した網羅性測定処理の内容を示すソースコードを、自動生成中のソースプログラム(C言語プログラム)に付加する(図9のステップS8)。
続いて、ソースコード変換手段32により、図形要素の種別コードを用いて、図式プログラムライブラリ記憶手段41から、その図形要素の種別(機能)に応じた処理内容を示すソースコードを取得し、その図形要素について設定された情報(パラメータへの設定値等)と組み合わせることにより、その図形要素に対応するソースコードを生成し、生成したソースコードを、自動生成中のソースプログラム(C言語プログラム)に、処理順に従って配置する(図9のステップS9)。このステップS9のソースコードの生成・配置処理は、図式プログラムを作成する既存のシステムと同様である。
一方、前述したステップS5で、テスト網羅性の測定対象の図形要素に該当しないと判断した場合には、前述したステップS6〜S8の処理を行うことなく、前述したステップS9のソースコード変換手段32によるソースコードの生成・配置処理を実行する。
例えば、図4の左側部分には、図3に示した図式プログラムをソースコード変換手段32によりソースプログラム(C言語プログラム)に変換した例が示されている。図4の左側部分は、図式プログラムを作成する既存のシステムで得られていたものである。関数func()が、図3のアルゴリズムに対応する部分である。関数limiter()は、リミッタ(limiter)ブロックの処理内容を示している。リミッタブロックは、図式プログラムライブラリ記憶手段41に予め用意されているものであるから、この関数limiter()のソースコードも、図式プログラムライブラリ記憶手段41に予め用意されていて、その内容が、ここに展開されたものである。
また、図6には、図3に示した図式プログラム中のリミッタブロックの処理内容がフローチャートで示されている。このフローチャートから明らかなように、リミッタブロックには、テストが必要となる3つのテストケースが存在する。テストケース1は、入力信号aが上限の設定値cよりも大きい場合に通るパス(分岐)であり、この場合には、上限の設定値cがリミッタブロックのリターン値kとなる。テストケース2は、入力信号aが下限の設定値dよりも小さい場合に通るパス(分岐)であり、この場合には、下限の設定値dがリミッタブロックのリターン値kとなる。テストケース3は、入力信号aが下限の設定値dから上限の設定値cまでの間の値になる場合のパス(分岐)であり、この場合には、入力信号aがそのままリミッタブロックのリターン値kとなる。
図4の右側部分は、図3に示した図式プログラムからテキスト形式のソースコードに変換する際に、図形要素であるリミッタブロックの処理内容に応じた網羅性測定処理を示すソースコードを、図4の左側部分のソースコードに付加したものである。図4の右側部分で、CHECK_TESTED_GT、CHECK_TESTED_LT、CHECK_TESTED_WIは、それぞれリミッタブロックの処理内容に応じた網羅性測定処理を示すソースコードであり、これらの網羅性測定処理を示すソースコードは、リミッタブロックを実行するソースコードであるx=limiter(a,c,d)の直前の位置に配置されて付加されている。
図8には、網羅性測定情報記憶手段45に書き込んで記憶させる網羅性測定情報45Aの構成例が示されている。図3に示した図式プログラムについて、判断文カバレッジを測定する場合には、この図式プログラム中のリミッタブロック内の3つのテストケースの実行の有無情報(「Yes」(実行済み)または「No」(未実行))が必要であるので、網羅性測定情報記憶手段45には、網羅性測定情報45Aの格納領域として、リミッタブロックの図形要素ID=「1」について、テストケースの番号=「1」、「2」、「3」の3つの有無情報の格納領域が設けられている。また、初期状態では、これらの有無情報は、「No」(未実行)に初期化されている。なお、リミッタブロックの他に、網羅性測定対象の図形要素があった場合には、例えば、図8中の2点鎖線の如く、図形要素ID=「2」、「3」、…について、それぞれテストケースの番号=「1」、「2」、…の有無情報の格納領域が設けられる。
前述したように、図4の右側部分には、網羅性測定処理を示すソースコードとして3つのコード(CHECK_TESTED_GT、CHECK_TESTED_LT、CHECK_TESTED_WI)が付加されているが、これらの3つのコード中の第1、第2パラメータは、網羅性測定処理を示すソースコードを実行して得られた網羅性測定情報45Aを、いずれの区画の領域に格納するかを示すものであり、重複しない値が生成されて設定される。第1パラメータは、網羅性測定情報45Aの格納領域指定用の図形要素IDであり、図4の例では、リミッタブロックの図形要素ID=「1」が設定されている。第2パラメータは、網羅性測定情報45Aの格納領域指定用の図形要素内のテストケースの番号であり、図4の例では、リミッタブロック内のテストケースの番号=「1」、「2」、「3」が設定されている。
また、3つのコード中の第3パラメータ以降については、以下の通りである。先ず、CHECK_TESTED_GT(1,1,a,c)は、入力信号aがcよりも大きい場合に、図8に示したリミッタブロックの図形要素ID=「1」で、かつ、リミッタブロック内のテストケースの番号=「1」である網羅性測定情報45Aの格納領域を、「Yes」(実行済み)にするという処理内容である。従って、テストケース1のパス(分岐)を通る入力が与えられた場合に行われる処理である。なお、リミッタブロック内のテストケース1が実行されたというログを残すために、図形要素ID=「1」、テストケースの番号=「1」を、テストパターンの番号と合わせて、測定履歴情報45B(図8参照)として出力するようにしてもよい。また、雛形のCHECK_TESTED_GTから実コードのCHECK_TESTED_GT(1,1,a,c)を生成する処理は、例えば、図式プログラムライブラリ記憶手段41に、予め用意されたCHECK_TESTED_GT(<id>,<case>,<in1>,<in2;U>)を格納しておき、<in1>を、第1入力(図4の例では「a」)に置き換え、<in2;U>を、図式プログラム上ではUに割り当てられていて第2パラメータである変数(図4の例では「c」)に置き換える処理等である。
また、CHECK_TESTED_LT(1,2,a,d)は、入力信号aがdよりも小さい場合に、図8に示したリミッタブロックの図形要素ID=「1」で、かつ、リミッタブロック内のテストケースの番号=「2」である網羅性測定情報45Aの格納領域を、「Yes」(実行済み)にするという処理内容である。従って、テストケース2のパス(分岐)を通る入力が与えられた場合に行われる処理である。なお、リミッタブロック内のテストケース2が実行されたというログを残すために、図形要素ID=「1」、テストケースの番号=「2」を、テストパターンの番号と合わせて、測定履歴情報45B(図8参照)として出力するようにしてもよい。また、雛形のCHECK_TESTED_LTから実コードのCHECK_TESTED_LT(1,2,a,d)を生成する処理は、例えば、図式プログラムライブラリ記憶手段41に、予め用意されたCHECK_TESTED_LT(<id>,<case>,<in1>,<in3;L>)を格納しておき、<in1>を、第1入力(図4の例では「a」)に置き換え、<in3;L>を、図式プログラム上ではLに割り当てられていて第3パラメータである変数(図4の例では「d」)に置き換える処理等である。
さらに、CHECK_TESTED_WI(1,3,a,c,d)は、入力信号aがdからcまでの間の場合に、図8に示したリミッタブロックの図形要素ID=「1」で、かつ、リミッタブロック内のテストケースの番号=「3」である網羅性測定情報45Aの格納領域を、「Yes」(実行済み)にするという処理内容である。従って、テストケース3のパス(分岐)を通る入力が与えられた場合に行われる処理である。なお、リミッタブロック内のテストケース3が実行されたというログを残すために、図形要素ID=「1」、テストケースの番号=「3」を、テストパターンの番号と合わせて、測定履歴情報45B(図8参照)として出力するようにしてもよい。また、雛形のCHECK_TESTED_WIから実コードのCHECK_TESTED_WI(1,3,a,c,d)を生成する処理は、例えば、図式プログラムライブラリ記憶手段41に、予め用意されたCHECK_TESTED_WI(<id>,<case>,<in1>,<in2;U>,<in3;L>)を格納しておき、<in1>を、第1入力(図4の例では「a」)に置き換え、<in2;U>を、図式プログラム上ではUに割り当てられていて第2パラメータである変数(図4の例では「c」)に置き換え、<in3;L>を、図式プログラム上ではLに割り当てられていて第3パラメータである変数(図4の例では「d」)に置き換える処理等である。
なお、リミッタ(limiter)ブロックの場合には、3つのテストケースを網羅すれば、判断文カバレッジが100%となることは、リミッタブロックの処理内容から予めわかっているので、必要なテストケース数やチェック方式(CHECK_TESTED_GT、CHECK_TESTED_LT、CHECK_TESTED_WIの3つのコードが必要ということ)も予めわかっている。従って、前述したように、図4の左側部分に示したリミッタブロックの処理内容(図5、図6参照)は、図式プログラムライブラリ記憶手段41に予め格納されているが、これらの情報(必要なテストケース数やチェック方式)も含めて図式プログラムライブラリ記憶手段41に予め格納されている。
そして、図9のステップS4〜S4Aのループが終了した時点で、作成済みの図式プログラムを構成する全ての図形要素(テスト網羅性の測定対象の図形要素および測定対象ではない図形要素)のソースコードについて、ソースコード変換手段32による処理順に従った配置処理が完了し、ソースプログラム(C言語プログラム)が完成している状態となるので、この完成したソースプログラム(C言語プログラム)を、ソースコード変換手段32により、ソースプログラム記憶手段43に記憶させる。
続いて、網羅性測定処理付加手段33により、図式プログラム記憶手段42に記憶されている作成済みの図式プログラムを構成する各図形要素のうちの網羅性測定対象の図形要素内のテストケースをテストするためのテストパターン(図7参照)の入力を受け付ける(図9のステップS10)。この入力は、プログラマにより行われるが、その際には、網羅性測定処理付加手段33により、図式プログラム記憶手段42から図式プログラムを構成する各図形要素の情報およびそれらの接続情報が読み込まれ、図式プログラム(図3参照)がディスプレイ装置60に画面表示される。
それから、網羅性測定処理付加手段33により、受け付けたテストパターンを用いて、テスト対象の図式プログラムを繰り返し実行するためのループ処理を含むテストプログラム(図7参照)を自動生成し、自動生成したテストプログラム(C言語プログラム)を、ソースプログラム記憶手段43に記憶させる(図9のステップS11)。
さらに、網羅性測定処理付加手段33により、テストケース情報(網羅性測定対象の各図形要素についての図形要素ID、および各図形要素内のテストケースの数を含む情報)を用いて、網羅性測定情報記憶手段45(図8参照)に、図形要素毎にテストケースの数に相当する網羅性測定情報45Aの格納領域を確保する(図9のステップS12)。この網羅性測定情報45Aの格納領域は、全テストケース分の実行の有無情報(「Yes」(実行済み)または「No」(未実行))の格納領域である。また、網羅性測定処理付加手段33により、これらの格納領域のすべてに、初期値として「No」(未実行)を記憶させる(ステップS12)。
図7の上側部分には、図3に示した図式プログラムのテストパターンの一例が示されている。この例では、2つのテストパターンが記述されており、1つ目のテストパターンは、リミッタブロック内のテストケース3(図4、図6参照)をテストするためのものであり、入力値aが10、出力値bが20、設定値が、c=100,d=−100であり、2つ目のテストパターンは、リミッタブロック内のテストケース1(図4、図6参照)をテストするためのものであり、入力値aが300、出力値bが200、設定値が、c=100,d=−100であることを示している。
図7の下側部分には、網羅性測定処理付加手段33により、図7の上側部分に示したテストパターンを、テストプログラム(C言語プログラム)に変換した例が示されている。図7の上側部分に示したテストパターンの各値は、test()の配列ta[]、tb[]、tc[]、td[]に格納されている。また、forループの中で、テスト対象の関数func()が呼び出され、図7の上側部分に示した2つのテストパターンによるテストが実行されるようになっているが、その際に、図4の右側部分に示された3つの網羅性測定処理の内容を示すソースコードのうちの対応するソースコードの処理が実行され、図8の網羅性測定情報45Aの格納領域に、「Yes」(実行済み)が設定されるようになっている。また、テストパターンを用いてテスト対象の関数func()を実行して得られた処理結果が、対応する図7の上側部分に示したテストパターンの出力値bと等しいか否かがチェックされ、関数printfで、そのチェック結果(等しい場合には「OK」、等しくない場合には「NG」)が、ディスプレイ装置60に画面表示されるようになっている。なお、図示されない印刷装置への出力としてもよい。また、このチェック結果を、網羅性測定情報記憶手段45にデータとして記録してもよく、例えば、各テストパターンを用いてテストが実施されたテストケースのログを示す測定履歴情報45Bの一部として記録してもよい(図8では、このチェック結果の図示は省略されている)。
続いて、実行形式変換手段34により、ソースコード変換手段32および網羅性測定処理付加手段33により生成されてソースプログラム記憶手段43に記憶されているソースプログラム(C言語プログラム)を、コンピュータで実行可能な機械語による実行形式プログラム(オブジェクトプログラム)に変換するコンパイルを実行し、コンパイルして得られたテスト対象の実行形式プログラムを、実行形式プログラム記憶手段44に記憶させる(図9のステップS13)。
また、実行形式変換手段34により、網羅性測定処理付加手段33により作成されてソースプログラム記憶手段43に記憶されているテストプログラム(C言語プログラム)をコンパイルし、コンパイルして得られたテストプログラムの実行形式プログラムを、実行形式プログラム記憶手段44に記憶させる(図9のステップS13)。
なお、これらのテスト対象の実行形式プログラムと、テストプログラムの実行形式プログラムとを、結合(リンク)して1つの実行形式プログラムとし、実行形式プログラム記憶手段44に記憶させてもよい。
それから、プログラム実行手段35により、テストプログラムの実行形式プログラムおよびテスト対象の実行形式プログラム、あるいはこれらを結合(リンク)した1つの実行形式プログラムを、実行形式プログラム記憶手段44から主記憶装置22にロードし、テストプログラムの実行形式プログラムを演算装置(CPU)21で実行し、テストプログラム内のループ処理で、テストパターンの数に相当する回数だけ、テスト対象の実行形式プログラムを演算装置(CPU)21で繰り返し実行することにより(結合(リンク)した1つの実行形式プログラムを実行する場合も、これと同様な処理となる。)、網羅性測定情報記憶手段45(図8参照)に、網羅性測定情報45Aとして、テストパターンでテストが実施されたテストケースの実行済みを示す情報(「Yes」)を書き込んで記憶させる(図9のステップS14)。また、プログラム実行手段35により、網羅性測定情報記憶手段45(図8参照)に、各テストパターンを用いてテストが実施されたテストケースのログを示す測定履歴情報45Bを記憶させてもよい(図9のステップS14)。
さらに、プログラム実行手段35により、図7の上側部分に示したテストパターンを用いてテスト対象の実行形式プログラムを実行した処理結果が、対応するテストパターンの出力値bと等しいか否かをチェックし、そのチェック結果(等しい場合には「OK」、等しくない場合には「NG」)を、ディスプレイ装置60に画面表示する(図9のステップS14)。
その後、網羅性測定結果出力手段36により、網羅性測定情報記憶手段45(図8参照)に記憶されている図形要素毎の各図形要素内のテストケースの実行の有無情報(「Yes」(実行済み)または「No」(未実行))からなる網羅性測定情報45Aを取得し、取得した網羅性測定情報45Aを用いて、図形要素毎に網羅率を算出し、算出した図形要素毎の網羅率、および図形要素毎の各図形要素内のテストケースの実行の有無情報を含む網羅性測定結果を、ディスプレイ装置60に画面表示する(図9のステップS15)。また、網羅性測定結果出力手段36により、図式プログラム全体の網羅率を算出し、ディスプレイ装置60に画面表示してもよい。
図7に示したテストパターンの例では、2つのテストパターン1,2により、図6のS601の判定でNOになった後、図6のS602の判定でNOになった場合(テストケース3)と、図6のS601の判定でYESになった場合(テストケース1)のみがテストされている。ここで、判断文カバレッジ(分岐網羅率(C1))の測定を行うものとすると、分岐点のすべての可能な出力のうち、テストで1回以上得られた出力の網羅率を測定する必要があるので、このリミッタブロックの場合には、図6のS601の判定は、全ての可能な出力(YES/NOの2つ)が網羅されているが、図6のS602の判定は、NOの出力のケースしかテストされておらず、YESの出力のケースはテストされていない。そこで、上記の2ケースに加え、図6のS601の判定でNOになった後、図6のS602の判定でYESになった場合(テストケース2)を加えると、図6のS602の判定も網羅できるため、判断文カバレッジは、3ケースで完全網羅(100%)となるが、図7の例では、そのうちの2ケースのみが実行されているので、この場合の網羅率は、2/3=66.7%となる。図8の網羅性測定情報45Aの例には、この状態が示されており、図形要素ID=「1」であるリミッタブロック内の3つのテストケースのうち、テストケースの番号=「1」、「3」の2ケースが「YES」(実行済み)となり、テストケースの番号=「2」のケースが「NO」(未実行)となっている。また、図8の測定履歴情報45Bの例を見ても、テストケースの番号=「2」のケースは、ログが残っていないので、実行されていないことがわかる。なお、図8の測定履歴情報45Bを見れば、1つのテストケースについて、複数のテストパターンにより重複してテストが行われたことも把握することができる。
このように図3に示した図式プログラムの例では、図式プログラムの処理内容と網羅性を満足するための条件が直接関係している(すなわち、図式プログラム中のリミッタブロックの場合は、網羅性を満足するための条件が、入力が上限値よりも大きい場合、上限値と下限値との間の場合、下限値よりも小さい場合の3ケースであり、リミッタ処理の内容と直結している)ため、網羅性を満足していない場合にも、いずれのテストケースをテストするためのテストパターンを追加すればよいか、判断が容易である。
そして、プログラマは、網羅性測定結果出力手段36により出力された網羅性測定結果を参照し、いずれの図形要素についての網羅性が不十分なのか、あるいはいずれの図形要素内のいずれのテストケースが実行されていないのかを把握し、必要に応じ、図9のステップS10に戻り、テストパターンを追加入力する。このテストパターンの追加入力は、網羅性測定処理付加手段33により受け付けられるが、この際には、網羅性測定処理付加手段33により、図式プログラム(図3参照)がディスプレイ装置60に画面表示されるので、プログラマは、図式プログラムと、網羅性測定結果出力手段36により出力された網羅性測定結果とを見比べながら、追加すべきテストパターンを考えることができる。なお、テストパターンの追加入力後は、図9のステップS12の処理のうち、格納領域の確保は省略することができるが、「No」への初期化は、再度実行した方がよい。また、図9のステップS13の処理のうち、テスト対象のプログラムのコンパイルは省略することができるが、テストプログラムのコンパイルは、再度実行する。
以上のようにしてテストパターンの補充を行い、再度、プログラム実行手段35による処理を実行し、十分な網羅性が得られた場合には、テスト網羅性に関する一連の処理を終了する(図9のステップS16)。
このような本実施形態によれば、次のような効果がある。すなわち、図形要素に対応する網羅性測定処理の内容を示す雛形情報を記憶する図式プログラムライブラリ記憶手段41と、網羅性測定処理付加手段33と、テスト対象のプログラムを実行して網羅性測定処理を実行するプログラム実行手段35と、網羅性測定情報記憶手段45(図8参照)と、網羅性測定結果出力手段36とを備えているので、テスト対象のプログラムのソースコードに、図式プログラムを構成する図形要素に対応する網羅性測定処理の内容を示すソースコードを付加することにより、網羅性を測定し、得られた網羅性測定情報を用いて図形要素毎のテスト網羅性を含む網羅性測定結果を出力することができるため、プログラマは、図形要素と対応付けてテストの網羅性を把握することができる。従って、プログラマは、C言語プログラム等のテキスト形式のソースコードで記述されたプログラム上で、既存のC言語用等の網羅率測定システムを用いて網羅率を測定する必要はなくなり、網羅性測定結果も、C言語プログラム等のソースプログラム上で確認するのではなく、図式プログラム上で、その図式プログラムを構成する図形要素と対応付けて確認することができる。このため、図式プログラムの網羅率が不足した場合には、その原因の特定作業や、テストパターンの補充作業を、C言語プログラム等のソースプログラムを意識することなく、直接に図式プログラムを見ながら行うことができ、これらの作業を効率的に実施することができる。
また、網羅性測定結果出力手段36は、網羅性測定結果として、図形要素毎の網羅率を画面表示および/または印刷するか、あるいは図形要素毎に各図形要素内のテストケースの実行の有無情報を画面表示および/または印刷する構成とされているので、いずれの図形要素のテストの網羅性が、どれぐらい不十分なのかを容易に把握することができ、テスト網羅率の不足原因の特定作業や、テストパターンの補充作業を、より一層、効率的に実施することができる。
さらに、網羅性測定情報記憶手段45(図8参照)に、網羅性測定情報45Aに加え、測定履歴情報45Bを出力して記憶させ、網羅性測定結果出力手段36により測定履歴情報45Bの画面表示および/または印刷も行うようにした場合には、プログラマは、測定履歴情報45Bを見れば、1つのテストケースについて、複数のテストパターンにより重複してテストが行われたことも把握することができるので、これによっても、テスト網羅率の不足原因の特定作業や、テストパターンの補充作業を、より一層、効率的に実施することができる。
なお、本発明は前記実施形態に限定されるものではなく、本発明の目的を達成できる範囲内での変形等は本発明に含まれるものである。
例えば、前記実施形態では、プログラム実行手段35は、テストパターンを用いて行われたテスト結果とテスト網羅性とを切り離し、テスト結果にかかわらず、すなわち入力値に対して予定した出力値が得られたか否か(「OK」または「NG」)にかかわらず、網羅性測定情報記憶手段45(図8参照)に、網羅性測定情報45Aとして、テストパターンでテストされたテストケースの実行済みを示す情報(「Yes」)を書き込んで記憶させる構成とされていたが、これに限定されず、例えば、テストパターンによるテスト結果が「OK」になった場合のみ、そのテストパターンでテストされたテストケースの実行済みを示す情報(「Yes」)を書き込んで記憶させる構成としてもよい。
また、前記実施形態では、網羅性測定処理付加手段33により、作成済みの図式プログラムを構成する図形要素について、図式プログラムライブラリ記憶手段41からテストケースの数を取得し、網羅性測定情報記憶手段45(図8参照)に、図形要素毎にテストケースの数に相当する網羅性測定情報45Aの格納領域を確保する構成とされていたが、このようにテストケースの数の格納領域を一括して確保する必要はない。例えば、プログラム実行手段35によりテスト対象の実行形式プログラムをループ処理で繰り返し実行することにより網羅性測定処理を繰り返し実行している過程で、プログラム実行手段35により、テストケースが実行される都度に、その実行されたテストケースについての網羅性測定情報45A、すなわちそのテストケースの実行済みを示す情報を、網羅性測定情報記憶手段45に書き込んでいってもよい。この場合、実行されなかったテストケースについては、そのテストケースの未実行を示す情報は、網羅性測定情報記憶手段45に書き込まれていないので、網羅性測定結果出力手段36は、主記憶装置22または補助記憶装置23に設けられたテストケース情報記憶手段(不図示)から、各図形要素についてのテストケースの数を取得し、各図形要素についての網羅率の算出を行い、得られた網羅性測定結果を出力すればよい。
さらに、前記実施形態では、図9のステップS12において、網羅性測定処理付加手段33により、全ての図形要素についての格納領域をまとめて確保する構成とされていたが、これに限定されるものではなく、各図形要素について1つずつ(1図形要素ずつ)、順次、テストケースの数の格納領域を確保してもよく、例えば、図9のステップS7において、取得したテストケースの数の格納領域を確保してもよい。
以上のように、本発明の図式プログラムのテスト網羅性測定装置およびその方法、並びにプログラムは、例えば、図形を用いてプログラムを記述し、これを自動的にC言語等のテキスト形式のプログラム言語に変換するシステムにおいて、プログラムのテストの網羅性を評価する場合に用いるのに適している。
10 図式プログラムのテスト網羅性測定装置
32 ソースコード変換手段
33 網羅性測定処理付加手段
34 実行形式変換手段
35 プログラム実行手段
36 網羅性測定結果出力手段
41 図式プログラムライブラリ記憶手段
43 ソースプログラム記憶手段
44 実行形式プログラム記憶手段
45 網羅性測定情報記憶手段
45A 網羅性測定情報

Claims (6)

  1. 図形を用いて記述された図式プログラムのテストの網羅性を測定するコンピュータにより構成された図式プログラムのテスト網羅性測定装置であって、
    前記図式プログラムの作成に用いるために予め用意された各図形要素の情報に関連付けて、前記各図形要素のテストの網羅性を測定するために予め用意された網羅性測定処理の内容を示す雛形情報を記憶する図式プログラムライブラリ記憶手段と、
    作成済みの前記図式プログラムが示す処理内容をテキスト形式のソースコードに変換する処理を実行するソースコード変換手段と、
    このソースコード変換手段による変換処理の際に、作成済みの前記図式プログラムを構成する図形要素に対応する前記網羅性測定処理の内容を示す雛形情報を、前記図式プログラムライブラリ記憶手段から取得し、取得した前記雛形情報を用いて、前記ソースコード変換手段による変換処理で得られた前記ソースコードに、前記網羅性測定処理の内容を示すソースコードを付加する処理を実行する網羅性測定処理付加手段と、
    この網羅性測定処理付加手段により前記網羅性測定処理の内容を示すソースコードを付加した状態の前記ソースコード変換手段により得られた前記ソースコードを、前記コンピュータで実行可能な実行形式プログラムに変換する処理を実行する実行形式変換手段と、
    この実行形式変換手段により得られたテスト対象の前記実行形式プログラムを実行して前記図形要素に対応する前記網羅性測定処理を実行することにより、網羅性測定情報記憶手段に前記図形要素の網羅性測定情報を書き込んで記憶させる処理を実行するプログラム実行手段と、
    前記網羅性測定情報記憶手段に記憶されている前記網羅性測定情報を取得し、取得した前記網羅性測定情報を用いて前記図形要素毎のテスト網羅性を含む網羅性測定結果を画面表示および/または印刷する処理を実行する網羅性測定結果出力手段と
    を備えたことを特徴とする図式プログラムのテスト網羅性測定装置。
  2. 前記プログラム実行手段は、
    前記網羅性測定情報記憶手段に、前記網羅性測定情報として、前記各図形要素内のテストケースの実行の有無情報を書き込んで記憶させる処理を実行する構成とされ、
    前記網羅性測定結果出力手段は、
    前記網羅性測定情報記憶手段に前記網羅性測定情報として記憶されている前記各図形要素内のテストケースの実行の有無情報を用いて、前記図形要素毎に網羅率を算出し、算出した前記図形要素毎の網羅率を含む前記網羅性測定結果を画面表示および/または印刷する処理と、前記図形要素毎に前記各図形要素内のテストケースの実行の有無情報を含む前記網羅性測定結果を画面表示および/または印刷する処理とのうちの少なくとも一方の処理を実行する構成とされている
    ことを特徴とする請求項1に記載の図式プログラムのテスト網羅性測定装置。
  3. 前記図式プログラムライブラリ記憶手段には、
    前記各図形要素の情報に関連付けて、前記網羅性測定処理の内容を示す雛形情報とともに、前記各図形要素についての図形要素内のテストケースの数も予め記憶され、
    前記網羅性測定処理付加手段は、
    作成済みの前記図式プログラムを構成する図形要素について、前記図式プログラムライブラリ記憶手段から前記テストケースの数を取得し、前記網羅性測定情報記憶手段に、前記図形要素毎に前記テストケースの数に相当する前記網羅性測定情報の格納領域を確保する処理を実行する構成とされている
    ことを特徴とする請求項1または2に記載の図式プログラムのテスト網羅性測定装置。
  4. 前記網羅性測定処理付加手段は、
    作成済みの前記図式プログラムを構成する図形要素内のテストケースをテストするためのテストパターンの入力を受け付け、受け付けた前記テストパターンを用いて、テスト対象の前記図式プログラムを繰り返し実行するためのループ処理を含むテストプログラムを生成する処理も実行する構成とされ、
    前記プログラム実行手段は、
    前記網羅性測定処理付加手段により生成された前記テストプログラムの実行形式プログラムを実行して前記ループ処理で前記テストパターンの数に相当する回数だけテスト対象の前記実行形式プログラムを繰り返し実行することにより、前記網羅性測定情報記憶手段に、前記網羅性測定情報として前記テストパターンでテストされた前記テストケースの実行済みを示す情報を記憶させる処理を実行する構成とされている
    ことを特徴とする請求項1〜3のいずれかに記載の図式プログラムのテスト網羅性測定装置。
  5. 図形を用いて記述された図式プログラムのテストの網羅性を測定するコンピュータにより構成された図式プログラムのテスト網羅性測定装置で実行される図式プログラムのテスト網羅性測定方法であって、
    前記図式プログラムの作成に用いるために予め用意された各図形要素の情報に関連付けて、前記各図形要素のテストの網羅性を測定するために予め用意された網羅性測定処理の内容を示す雛形情報を、図式プログラムライブラリ記憶手段に記憶しておき、
    ソースコード変換手段が、作成済みの前記図式プログラムが示す処理内容をテキスト形式のソースコードに変換する処理を実行し、
    網羅性測定処理付加手段が、前記ソースコード変換手段による変換処理の際に、作成済みの前記図式プログラムを構成する図形要素に対応する前記網羅性測定処理の内容を示す雛形情報を、前記図式プログラムライブラリ記憶手段から取得し、取得した前記雛形情報を用いて、前記ソースコード変換手段による変換処理で得られた前記ソースコードに、前記網羅性測定処理の内容を示すソースコードを付加する処理を実行し、
    実行形式変換手段が、前記網羅性測定処理付加手段により前記網羅性測定処理の内容を示すソースコードを付加した状態の前記ソースコード変換手段により得られた前記ソースコードを、前記コンピュータで実行可能な実行形式プログラムに変換する処理を実行し、
    プログラム実行手段が、前記実行形式変換手段により得られたテスト対象の前記実行形式プログラムを実行して前記図形要素に対応する前記網羅性測定処理を実行することにより、網羅性測定情報記憶手段に前記図形要素の網羅性測定情報を書き込んで記憶させる処理を実行し、
    網羅性測定結果出力手段が、前記網羅性測定情報記憶手段に記憶されている前記網羅性測定情報を取得し、取得した前記網羅性測定情報を用いて前記図形要素毎のテスト網羅性を含む網羅性測定結果を画面表示および/または印刷する処理を実行する
    ことを特徴とする図式プログラムのテスト網羅性測定方法。
  6. 請求項1〜4のいずれかに記載の図式プログラムのテスト網羅性測定装置として、コンピュータを機能させるためのプログラム。
JP2012033430A 2012-02-17 2012-02-17 図式プログラムのテスト網羅性測定装置およびその方法、並びにプログラム Active JP5834991B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012033430A JP5834991B2 (ja) 2012-02-17 2012-02-17 図式プログラムのテスト網羅性測定装置およびその方法、並びにプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012033430A JP5834991B2 (ja) 2012-02-17 2012-02-17 図式プログラムのテスト網羅性測定装置およびその方法、並びにプログラム

Publications (2)

Publication Number Publication Date
JP2013171350A JP2013171350A (ja) 2013-09-02
JP5834991B2 true JP5834991B2 (ja) 2015-12-24

Family

ID=49265253

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012033430A Active JP5834991B2 (ja) 2012-02-17 2012-02-17 図式プログラムのテスト網羅性測定装置およびその方法、並びにプログラム

Country Status (1)

Country Link
JP (1) JP5834991B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2560749B (en) * 2017-03-24 2020-10-14 Advanced Risc Mach Ltd Trace data representation
JP6556410B2 (ja) * 2017-04-19 2019-08-07 三菱電機株式会社 等価性検証装置
CN112363924B (zh) * 2020-11-10 2023-09-29 中国平安人寿保险股份有限公司 基于有向图的文本覆盖率测试方法及相关设备
CN114253862A (zh) * 2021-12-29 2022-03-29 湖南泛联新安信息科技有限公司 一种hdl代码仿真覆盖率异步事件驱动自动分析方法

Also Published As

Publication number Publication date
JP2013171350A (ja) 2013-09-02

Similar Documents

Publication Publication Date Title
Neto et al. A systematic mapping study of software product lines testing
Zugal et al. Creating declarative process models using test driven modeling suite
US20120116561A1 (en) Program testing apparatus, method of testing a program, and program testing program
Hasling et al. Model based testing of system requirements using UML use case models
US20080221834A1 (en) Method and system for enhanced fault detection workflow
US7853546B2 (en) Enhanced rule execution in expert systems
US20090271661A1 (en) Status transition test support device, status transition test support method, and recording medium
JP5834991B2 (ja) 図式プログラムのテスト網羅性測定装置およびその方法、並びにプログラム
JP5230587B2 (ja) ラダープログラムのプログラム試験装置、ラダープログラムのプログラム試験方法およびラダープログラムのプログラム試験用プログラム
Mijatov et al. Testing functional requirements in UML activity diagrams
CN116991751B (zh) 代码测试方法、装置、电子设备及存储介质
Bhatti Automatic measurement of source code complexity
JP2017220008A (ja) テスト支援装置、および、テスト支援方法
JP2009099111A (ja) 規則検査プログラム、規則検査方法および規則検査装置
JP4702194B2 (ja) プログラム開発支援装置、プログラム開発支援方法およびプログラム開発支援プログラム
JP2011170697A (ja) ソフトウェア構造分析装置
JP5811978B2 (ja) モデルベースの制御装置用のテストケース生成装置およびテストケース生成方法
JP2001273169A (ja) プログラムテスト仕様書生成装置
Aysolmaz et al. An effort prediction model based on BPM measures for process automation
JP5743663B2 (ja) テスト支援システム、テスト支援方法、及びプログラム
Plosch et al. Tool support for expert-centred code assessments
US20230059609A1 (en) Assistance information generation device, assistance information generation method, and program recording medium
JP6841667B2 (ja) ソフトウェア性能測定システム及びプログラム
Weber et al. Detecting inconsistencies in multi-view uml models
JP6433468B2 (ja) プログラム作成支援方法

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20140619

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20140620

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20140623

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150114

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150826

TRDD Decision of grant or rejection written
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20151005

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20151005

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20151006

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151019

R150 Certificate of patent or registration of utility model

Ref document number: 5834991

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250