(57)【特許請求の範囲】
【請求項１】
図形を用いて記述された図式プログラムのテストの網羅性を測定するコンピュータにより構成された図式プログラムのテスト網羅性測定装置であって、
前記図式プログラムの作成に用いるために予め用意された各図形要素の情報に関連付けて、前記各図形要素のテストの網羅性を測定するために予め用意された網羅性測定処理の内容を示す雛形情報を記憶する図式プログラムライブラリ記憶手段と、
作成済みの前記図式プログラムが示す処理内容をテキスト形式のソースコードに変換する処理を実行するソースコード変換手段と、
このソースコード変換手段による変換処理の際に、作成済みの前記図式プログラムを構成する図形要素に対応する前記網羅性測定処理の内容を示す雛形情報を、前記図式プログラムライブラリ記憶手段から取得し、取得した前記雛形情報を用いて、前記ソースコード変換手段による変換処理で得られた前記ソースコードに、前記網羅性測定処理の内容を示すソースコードを付加する処理を実行する網羅性測定処理付加手段と、
この網羅性測定処理付加手段により前記網羅性測定処理の内容を示すソースコードを付加した状態の前記ソースコード変換手段により得られた前記ソースコードを、前記コンピュータで実行可能な実行形式プログラムに変換する処理を実行する実行形式変換手段と、
この実行形式変換手段により得られたテスト対象の前記実行形式プログラムを実行して前記図形要素に対応する前記網羅性測定処理を実行することにより、網羅性測定情報記憶手段に前記図形要素の網羅性測定情報を書き込んで記憶させる処理を実行するプログラム実行手段と、
前記網羅性測定情報記憶手段に記憶されている前記網羅性測定情報を取得し、取得した前記網羅性測定情報を用いて前記図形要素毎のテスト網羅性を含む網羅性測定結果を画面表示および／または印刷する処理を実行する網羅性測定結果出力手段と
を備えたことを特徴とする図式プログラムのテスト網羅性測定装置。
【請求項２】
前記プログラム実行手段は、
前記網羅性測定情報記憶手段に、前記網羅性測定情報として、前記各図形要素内のテストケースの実行の有無情報を書き込んで記憶させる処理を実行する構成とされ、
前記網羅性測定結果出力手段は、
前記網羅性測定情報記憶手段に前記網羅性測定情報として記憶されている前記各図形要素内のテストケースの実行の有無情報を用いて、前記図形要素毎に網羅率を算出し、算出した前記図形要素毎の網羅率を含む前記網羅性測定結果を画面表示および／または印刷する処理と、前記図形要素毎に前記各図形要素内のテストケースの実行の有無情報を含む前記網羅性測定結果を画面表示および／または印刷する処理とのうちの少なくとも一方の処理を実行する構成とされている
ことを特徴とする請求項１に記載の図式プログラムのテスト網羅性測定装置。
【請求項３】
前記図式プログラムライブラリ記憶手段には、
前記各図形要素の情報に関連付けて、前記網羅性測定処理の内容を示す雛形情報とともに、前記各図形要素についての図形要素内のテストケースの数も予め記憶され、
前記網羅性測定処理付加手段は、
作成済みの前記図式プログラムを構成する図形要素について、前記図式プログラムライブラリ記憶手段から前記テストケースの数を取得し、前記網羅性測定情報記憶手段に、前記図形要素毎に前記テストケースの数に相当する前記網羅性測定情報の格納領域を確保する処理を実行する構成とされている
ことを特徴とする請求項１または２に記載の図式プログラムのテスト網羅性測定装置。
【請求項４】
前記網羅性測定処理付加手段は、
作成済みの前記図式プログラムを構成する図形要素内のテストケースをテストするためのテストパターンの入力を受け付け、受け付けた前記テストパターンを用いて、テスト対象の前記図式プログラムを繰り返し実行するためのループ処理を含むテストプログラムを生成する処理も実行する構成とされ、
前記プログラム実行手段は、
前記網羅性測定処理付加手段により生成された前記テストプログラムの実行形式プログラムを実行して前記ループ処理で前記テストパターンの数に相当する回数だけテスト対象の前記実行形式プログラムを繰り返し実行することにより、前記網羅性測定情報記憶手段に、前記網羅性測定情報として前記テストパターンでテストされた前記テストケースの実行済みを示す情報を記憶させる処理を実行する構成とされている
ことを特徴とする請求項１〜３のいずれかに記載の図式プログラムのテスト網羅性測定装置。
【請求項５】
図形を用いて記述された図式プログラムのテストの網羅性を測定するコンピュータにより構成された図式プログラムのテスト網羅性測定装置で実行される図式プログラムのテスト網羅性測定方法であって、
前記図式プログラムの作成に用いるために予め用意された各図形要素の情報に関連付けて、前記各図形要素のテストの網羅性を測定するために予め用意された網羅性測定処理の内容を示す雛形情報を、図式プログラムライブラリ記憶手段に記憶しておき、
ソースコード変換手段が、作成済みの前記図式プログラムが示す処理内容をテキスト形式のソースコードに変換する処理を実行し、
網羅性測定処理付加手段が、前記ソースコード変換手段による変換処理の際に、作成済みの前記図式プログラムを構成する図形要素に対応する前記網羅性測定処理の内容を示す雛形情報を、前記図式プログラムライブラリ記憶手段から取得し、取得した前記雛形情報を用いて、前記ソースコード変換手段による変換処理で得られた前記ソースコードに、前記網羅性測定処理の内容を示すソースコードを付加する処理を実行し、
実行形式変換手段が、前記網羅性測定処理付加手段により前記網羅性測定処理の内容を示すソースコードを付加した状態の前記ソースコード変換手段により得られた前記ソースコードを、前記コンピュータで実行可能な実行形式プログラムに変換する処理を実行し、
プログラム実行手段が、前記実行形式変換手段により得られたテスト対象の前記実行形式プログラムを実行して前記図形要素に対応する前記網羅性測定処理を実行することにより、網羅性測定情報記憶手段に前記図形要素の網羅性測定情報を書き込んで記憶させる処理を実行し、
網羅性測定結果出力手段が、前記網羅性測定情報記憶手段に記憶されている前記網羅性測定情報を取得し、取得した前記網羅性測定情報を用いて前記図形要素毎のテスト網羅性を含む網羅性測定結果を画面表示および／または印刷する処理を実行する
ことを特徴とする図式プログラムのテスト網羅性測定方法。
【請求項６】
請求項１〜４のいずれかに記載の図式プログラムのテスト網羅性測定装置として、コンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、図形を用いて記述された図式プログラムのテストの網羅性を測定するコンピュータにより構成された図式プログラムのテスト網羅性測定装置およびその方法、並びにプログラムに係り、例えば、図形を用いてプログラムを記述し、これを自動的にＣ言語等のテキスト形式のプログラム言語に変換するシステムにおいて、プログラムのテストの網羅性を評価する場合に利用できる。
【背景技術】
【０００２】
一般に、プログラムの作成に際しては、Ｃ言語等の高級言語を利用して原始プログラム（ソースコード）を記述し、これをコンパイラによりコンピュータで実行可能な機械語に変換し、実行形式プログラムを得る方法が用いられている。このような方法の場合、通常、ソースコードはテキスト形式で記述される。
【０００３】
このような方法でプログラムを作成するには、事前にプログラムの詳細設計を行って詳細設計書を作成し、これをＣ言語等の高級言語によるソースコードに変換するが、詳細設計書に記載されている情報はソースコードを作成するのに十分な設計情報であるため、詳細設計書に記載の情報をソースコードに変換する作業は、機械的な要素が多く含まれていて、二重作業となり冗長であるとか、変換作業に単純な人為ミスが混入する可能性があるといった問題点を持っていた。
【０００４】
そこで、このような問題点を解決するための技術として、プログラマが、ＣＡＤを用い、詳細設計書に記述されるような図面（図形）にプログラムとして必要となる情報を入力して図式プログラムを作成し、この図式プログラムから、従来、手作業で作成していたＣ言語等の高級言語によるプログラム（ソースコード）を自動的に生成させる技術が開発されている。例えば、モジュール関連図、処理フロー図、内部データ定義図、インタフェースデータ定義図を用いて、ソースプログラムを作成する技術が開示されている（特許文献１参照）。
【０００５】
ところで、近年、プログラムの不具合による社会インフラの停止等の問題が顕在化するようになってきており、プログラムの試験の重要性も高まっている。このため、プログラムの単体テストのレベルでは、プログラムの試験がどの程度網羅的に実施されたかを数値化した網羅率（カバレッジ）で、プログラムのテストの十分性を評価する手法が使われるようになってきている。このような手法では、プログラムのテストを自動的に実行できるように、自動テスト環境やプログラムに入力するパラメータ、実行結果の期待値等を用意し、テストを自動実行したうえで、そのテストで実行したテストケースのプログラム上での網羅率（テストを実施することができた範囲）を測定する。例えば、テスト対象のプログラムのテスト実行結果をファイルに保存し、正解集ファイルと比較し、その結果を履歴として保存する自動テスト技術が開示されている（特許文献２参照）。また、分岐命令割込みを利用して、判断文の網羅率を測定する技術が開示されている（特許文献３参照）。なお、網羅率にも、様々な指標での計算方法があり、特許文献３で使用されている判断文カバレッジ（分岐網羅率（Ｃ１））の他にも、行カバレッジ（命令網羅率（Ｃ０））、単純条件カバレッジ（条件網羅率（Ｃ２））等が、一般に知られている。
【０００６】
そして、これらの網羅率を測定した結果、予め決められた網羅率の目標値を参照するなどして、不十分であると判定された場合には、十分な網羅率を確保するために、テストパターン（パラメータへの入力値や、実行結果の期待値等からなるテスト実行に要する情報）を追加して対応する。このような手法は最近ではよく使用されていて、例えばＣ言語で記述されたプログラムの網羅率を測定しようとした場合には、既存のＣ言語用の網羅率測定システムを用いて、網羅率を測定することになる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開昭６０−１５９９３９号公報
【特許文献２】特開平５−５３８７３号公報
【特許文献３】特開平５−２５７７４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ところで、図形を用いて記述した図式プログラムを一旦Ｃ言語のようなテキスト形式の高級言語に変換してプログラムを作成する場合において、網羅率を測定するときには、生成されたＣ言語プログラムに、幾つかのテストパターン（パラメータへの入力値や、実行結果の期待値等からなるテスト実行に要する情報）を組み合わせ、既存のＣ言語用の網羅率測定システムを用いて網羅率を測定する必要があった。
【０００９】
この場合にも、網羅率を測定した結果、不十分であった場合には、テストパターンを追加してテストを実行することになる。しかし、Ｃ言語用の網羅率測定システムを用いているため、生成されたＣ言語プログラム上では、網羅率不足の原因は判別できるものの、その元になった図式プログラム上では、この図式プログラムを構成する図形要素との対応が付きにくく、いずれの図形要素のテストの網羅性が不十分なのか、あるいは、いずれの図形要素内のいずれのテストケースについてのテストが実行されていないのかを把握することが困難であった。このため、網羅率が不足する原因の特定作業や、テストパターンの補充作業を、効率的に実施することが困難であるという問題点があった。
【００１０】
本発明の目的は、テスト網羅率の不足原因の特定作業や、テストパターンの補充作業を、効率的に実施することができる図式プログラムのテスト網羅性測定装置およびその方法、並びにプログラムを提供するところにある。
【課題を解決するための手段】
【００１１】
本発明は、図形を用いて記述された図式プログラムのテストの網羅性を測定するコンピュータにより構成された図式プログラムのテスト網羅性測定装置であって、図式プログラムの作成に用いるために予め用意された各図形要素の情報に関連付けて、各図形要素のテストの網羅性を測定するために予め用意された網羅性測定処理の内容を示す雛形情報を記憶する図式プログラムライブラリ記憶手段と、作成済みの図式プログラムが示す処理内容をテキスト形式のソースコードに変換する処理を実行するソースコード変換手段と、このソースコード変換手段による変換処理の際に、作成済みの図式プログラムを構成する図形要素に対応する網羅性測定処理の内容を示す雛形情報を、図式プログラムライブラリ記憶手段から取得し、取得した雛形情報を用いて、ソースコード変換手段による変換処理で得られたソースコードに、網羅性測定処理の内容を示すソースコードを付加する処理を実行する網羅性測定処理付加手段と、この網羅性測定処理付加手段により網羅性測定処理の内容を示すソースコードを付加した状態のソースコード変換手段により得られたソースコードを、コンピュータで実行可能な実行形式プログラムに変換する処理を実行する実行形式変換手段と、この実行形式変換手段により得られたテスト対象の実行形式プログラムを実行して図形要素に対応する網羅性測定処理を実行することにより、網羅性測定情報記憶手段に図形要素の網羅性測定情報を書き込んで記憶させる処理を実行するプログラム実行手段と、網羅性測定情報記憶手段に記憶されている網羅性測定情報を取得し、取得した網羅性測定情報を用いて図形要素毎のテスト網羅性を含む網羅性測定結果を画面表示および／または印刷する処理を実行する網羅性測定結果出力手段とを備えたことを特徴とするものである。
【００１２】
このような本発明の図式プログラムのテスト網羅性測定装置においては、テスト対象のプログラムのソースコードに、図式プログラムを構成する図形要素に対応する網羅性測定処理の内容を示すソースコードを付加することにより、網羅性を測定し、得られた網羅性測定情報を用いて図形要素毎のテスト網羅性を含む網羅性測定結果を画面表示および／または印刷するので、プログラマは、図形要素と対応付けてテストの網羅性を把握することが可能となる。従って、Ｃ言語プログラム等のテキスト形式のソースコードで記述されたプログラム上で、既存のＣ言語用等の網羅率測定システムを用いて網羅率を測定する必要はなくなり、網羅性測定結果も、Ｃ言語プログラム等のソースプログラム上で確認するのではなく、図式プログラム上で、その図式プログラムを構成する図形要素と対応付けて確認することが可能となる。このため、図式プログラムの網羅率が不足した場合には、その原因の特定作業や、テストパターンの補充作業を、Ｃ言語プログラム等のソースプログラムを意識することなく、直接に図式プログラムを見ながら行うことができるようになり、これらの作業を効率的に実施することが可能となり、これらにより前記目的が達成される。
【００１３】
また、前述した図式プログラムのテスト網羅性測定装置において、プログラム実行手段は、網羅性測定情報記憶手段に、網羅性測定情報として、各図形要素内のテストケースの実行の有無情報を書き込んで記憶させる処理を実行する構成とされ、網羅性測定結果出力手段は、網羅性測定情報記憶手段に網羅性測定情報として記憶されている各図形要素内のテストケースの実行の有無情報を用いて、図形要素毎に網羅率を算出し、算出した図形要素毎の網羅率を含む網羅性測定結果を画面表示および／または印刷する処理と、図形要素毎に各図形要素内のテストケースの実行の有無情報を含む網羅性測定結果を画面表示および／または印刷する処理とのうちの少なくとも一方の処理を実行する構成とされていることが望ましい。
【００１４】
このように網羅性測定結果として、図形要素毎の網羅率を画面表示および／または印刷するか、あるいは図形要素毎に各図形要素内のテストケースの実行の有無情報を画面表示および／または印刷する構成とした場合には、いずれの図形要素のテストの網羅性が、どれぐらい不十分なのかを容易に把握することが可能となり、テスト網羅率の不足原因の特定作業や、テストパターンの補充作業を、より一層、効率的に実施することが可能となる。
【００１５】
より具体的には、次のような構成を採ることができる。例えば、前述した図式プログラムのテスト網羅性測定装置において、図式プログラムライブラリ記憶手段には、各図形要素の情報に関連付けて、網羅性測定処理の内容を示す雛形情報とともに、各図形要素についての図形要素内のテストケースの数も予め記憶され、網羅性測定処理付加手段は、作成済みの図式プログラムを構成する図形要素について、図式プログラムライブラリ記憶手段からテストケースの数を取得し、網羅性測定情報記憶手段に、図形要素毎にテストケースの数に相当する網羅性測定情報の格納領域を確保する処理を実行する構成とすることができる。
【００１６】
このように網羅性測定情報記憶手段に、図形要素毎にテストケースの数に相当する網羅性測定情報の格納領域を確保する構成とした場合には、網羅性測定情報を図形要素毎に容易かつ確実に記録し、取得することができるようになり、プログラマに対し、図形要素毎の網羅性測定結果を容易に示すことが可能となる。
【００１７】
なお、網羅性測定情報記憶手段に、網羅性測定情報の格納領域を確保するにあたっては、必ずしもこのように網羅性測定処理付加手段によりテストケースの数の格納領域を一括して確保する場合に限定されるものではなく、例えば、プログラム実行手段により網羅性測定処理を実行している過程で、プログラム実行手段により、網羅性測定情報記憶手段に、実行されたテストケースについての網羅性測定情報の格納領域を、１つずつ確保していくようにしてもよい。
【００１８】
また、前述した図式プログラムのテスト網羅性測定装置において、網羅性測定処理付加手段は、作成済みの図式プログラムを構成する図形要素内のテストケースをテストするためのテストパターンの入力を受け付け、受け付けたテストパターンを用いて、テスト対象の図式プログラムを繰り返し実行するためのループ処理を含むテストプログラムを生成する処理も実行する構成とされ、プログラム実行手段は、網羅性測定処理付加手段により生成されたテストプログラムの実行形式プログラムを実行してループ処理でテストパターンの数に相当する回数だけテスト対象の実行形式プログラムを繰り返し実行することにより、網羅性測定情報記憶手段に、網羅性測定情報としてテストパターンでテストされたテストケースの実行済みを示す情報を記憶させる処理を実行する構成とすることができる。
【００１９】
このようにループ処理でテスト対象の実行形式プログラムを繰り返し実行し、網羅性測定情報記憶手段に、テストを実施することができたテストケースの実行済みの情報を記憶させる構成とした場合には、テスト対象の実行形式プログラムに付加されている、図形要素に対応する網羅性測定処理を、容易かつ確実に繰り返し実行することが可能となり、網羅性測定情報を図形要素毎に容易かつ確実に記録することが可能となる。
【００２０】
また、以上に述べた本発明の図式プログラムのテスト網羅性測定装置により実現されるテスト網羅性測定方法として、以下のような本発明の図式プログラムのテスト網羅性測定方法が挙げられる。
【００２１】
すなわち、本発明は、図形を用いて記述された図式プログラムのテストの網羅性を測定するコンピュータにより構成された図式プログラムのテスト網羅性測定装置で実行される図式プログラムのテスト網羅性測定方法であって、図式プログラムの作成に用いるために予め用意された各図形要素の情報に関連付けて、各図形要素のテストの網羅性を測定するために予め用意された網羅性測定処理の内容を示す雛形情報を、図式プログラムライブラリ記憶手段に記憶しておき、ソースコード変換手段が、作成済みの図式プログラムが示す処理内容をテキスト形式のソースコードに変換する処理を実行し、網羅性測定処理付加手段が、ソースコード変換手段による変換処理の際に、作成済みの図式プログラムを構成する図形要素に対応する網羅性測定処理の内容を示す雛形情報を、図式プログラムライブラリ記憶手段から取得し、取得した雛形情報を用いて、ソースコード変換手段による変換処理で得られたソースコードに、網羅性測定処理の内容を示すソースコードを付加する処理を実行し、実行形式変換手段が、網羅性測定処理付加手段により網羅性測定処理の内容を示すソースコードを付加した状態のソースコード変換手段により得られたソースコードを、コンピュータで実行可能な実行形式プログラムに変換する処理を実行し、プログラム実行手段が、実行形式変換手段により得られたテスト対象の実行形式プログラムを実行して図形要素に対応する網羅性測定処理を実行することにより、網羅性測定情報記憶手段に図形要素の網羅性測定情報を書き込んで記憶させる処理を実行し、網羅性測定結果出力手段が、網羅性測定情報記憶手段に記憶されている網羅性測定情報を取得し、取得した網羅性測定情報を用いて図形要素毎のテスト網羅性を含む網羅性測定結果を画面表示および／または印刷する処理を実行することを特徴とするものである。
【００２２】
このような本発明の図式プログラムのテスト網羅性測定方法においては、前述した本発明の図式プログラムのテスト網羅性測定装置で得られる作用・効果がそのまま得られ、これにより前記目的が達成される。
【００２３】
また、本発明のプログラムは、前述した図式プログラムのテスト網羅性測定装置として、コンピュータを機能させるためのものである。
【００２４】
なお、上記のプログラムまたはその一部は、例えば、光磁気ディスク（ＭＯ）、コンパクトディスク（ＣＤ）を利用した読出し専用メモリ（ＣＤ−ＲＯＭ）、ＣＤレコーダブル（ＣＤ−Ｒ）、ＣＤリライタブル（ＣＤ−ＲＷ）、デジタル・バーサタイル・ディスク（ＤＶＤ）を利用した読出し専用メモリ（ＤＶＤ−ＲＯＭ）、ＤＶＤを利用したランダム・アクセス・メモリ（ＤＶＤ−ＲＡＭ）、フレキシブルディスク（ＦＤ）、磁気テープ、ハードディスク、読出し専用メモリ（ＲＯＭ）、電気的消去および書換可能な読出し専用メモリ（ＥＥＰＲＯＭ）、フラッシュ・メモリ、ランダム・アクセス・メモリ（ＲＡＭ）等の記録媒体に記録して保存や流通等させることが可能であるとともに、例えば、ローカル・エリア・ネットワーク（ＬＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、インターネット、イントラネット、エクストラネット等の有線ネットワーク、あるいは無線通信ネットワーク、さらにはこれらの組合せ等の伝送媒体を用いて伝送することが可能であり、また、搬送波に載せて搬送することも可能である。さらに、上記のプログラムは、他のプログラムの一部分であってもよく、あるいは別個のプログラムと共に記録媒体に記録されていてもよい。
【発明の効果】
【００２５】
以上に述べたように本発明によれば、テスト対象のプログラムのソースコードに、図式プログラムを構成する図形要素に対応させて予め用意された網羅性測定処理の内容を示すソースコードを付加し、これを実行形式に変換したプログラムを実行してテスト網羅性を測定し、得られた網羅性測定情報を用いて図形要素毎のテスト網羅性を含む網羅性測定結果を画面表示および／または印刷するので、プログラマは、図形要素と対応付けてテストの網羅性を把握することができ、図式プログラムの網羅率が不足した場合には、その原因の特定作業や、テストパターンの補充作業を、Ｃ言語プログラム等のソースプログラムを意識することなく、直接に図式プログラムを見ながら行うことができるため、これらの作業を効率的に実施することができるという効果がある。
【図面の簡単な説明】
【００２６】
【図１】本発明の一実施形態の図式プログラムのテスト網羅性測定装置の全体構成図。
【図２】前記実施形態のハードウェア構成図。
【図３】前記実施形態の図式プログラムの一例を示す図。
【図４】前記実施形態の図式プログラムのＣ言語プログラムへの変換例、および網羅性測定処理の内容を示すソースコードを付加した状態の一例を示す図。
【図５】前記実施形態のリミッタブロックの入出力関係を示す図。
【図６】前記実施形態のリミッタブロックの処理内容を示すフローチャートの図。
【図７】前記実施形態のテストパターンおよびテストプログラムの一例を示す図。
【図８】前記実施形態の網羅性測定情報記憶手段の構成の一例を示す図。
【図９】前記実施形態の図式プログラムのテスト網羅性測定装置によるテスト網羅性の測定処理の流れを示すフローチャートの図。
【発明を実施するための形態】
【００２７】
以下に本発明の一実施形態について図面を参照して説明する。図１には、本実施形態の図式プログラムのテスト網羅性測定装置１０の全体構成が示され、図２には、そのハードウェア構成が示されている。図３には、図式プログラムの一例が示され、図４には、図式プログラムのＣ言語プログラムへの変換例、および網羅性測定処理の内容を示すソースコードを付加した状態の一例が示されている。また、図５には、リミッタブロックの入出力関係が示され、図６には、リミッタブロックの処理内容がフローチャートで示されている。さらに、図７には、テストパターンおよびテストプログラムの一例が示され、図８には、網羅性測定情報記憶手段４５の構成例が示され、図９には、図式プログラムのテスト網羅性測定装置１０によるテスト網羅性の測定処理の流れがフローチャートで示されている。
【００２８】
図１において、図式プログラムのテスト網羅性測定装置１０は、コンピュータ本体により構成された装置本体２０と、マウスやキーボード等の入力装置５０と、液晶ディスプレイやＣＲＴディスプレイ等のディスプレイ装置６０とを備えている。また、図示は省略されているが、印刷装置を備えた構成としてもよい。
【００２９】
装置本体２０は、図式プログラム作成手段３１と、ソースコード変換手段３２と、網羅性測定処理付加手段３３と、実行形式変換手段３４と、プログラム実行手段３５と、網羅性測定結果出力手段３６と、図式プログラムライブラリ記憶手段４１と、図式プログラム記憶手段４２と、ソースプログラム記憶手段４３と、実行形式プログラム記憶手段４４と、網羅性測定情報記憶手段４５とを含んで構成されている。
【００３０】
また、装置本体２０は、ハードウェア構成としては、図２に示すように、演算装置（ＣＰＵ）２１と、主記憶装置（主メモリ、ここではキャッシュメモリを含むものとする。）２２と、ハードディスク等の補助記憶装置２３と、これらを接続するバス２４により構成されている。
【００３１】
図式プログラム作成手段３１は、図式プログラムライブラリ記憶手段４１に予め用意されて記憶されている各種の機能を有する図形要素（図式プログラムの構成要素であり、図３〜図６のリミッタブロックも含まれる。）の情報を用いて、プログラマによる図形要素の選択入力およびそれに付随させる情報（設定値等）の入力を受け付けるとともに、図形要素間の接続情報の入力も受け付け、ディスプレイ装置６０の画面上に、入力された図形要素を並べて表示するとともに、それらの接続関係も表示することにより（図３参照）、図形を用いたプログラムの作成を支援し、入力された図形要素の情報を、図形要素ＩＤと関連付け、また、入力された接続情報を、接続関係ＩＤと関連付けて、図式プログラム記憶手段４２に記憶させる処理を実行するものである。
【００３２】
なお、後述する図８や図４では、図形要素ＩＤについては、説明の便宜上、図式プログラム作成手段３１により作成された図式プログラムを構成する図形要素のうち、テスト網羅性の測定対象となる図形要素（図３〜図６のリミッタブロックを含む。）についてだけ付された状態で説明されている。
【００３３】
ソースコード変換手段３２は、ディスプレイ装置６０の画面上に表示しながらプログラマにより作成されて図式プログラム記憶手段４２に記憶されている作成済みの図式プログラムの情報（図式プログラムを構成する各図形要素の情報およびそれらの図形要素間の接続情報）を用いて、各図形要素の種別コードにより図式プログラムライブラリ記憶手段４１から各図形要素の種別（機能）に応じた処理内容を示すソースコードを取得し、各図形要素について設定されている情報（パラメータへの設定値等）と組み合わせることにより、図式プログラム（図３参照）で示される処理内容を、テキスト形式の計算機言語（高級言語）で記述したソースコード（図４参照）に変換するとともに、テスト網羅性の測定対象の図形要素については、網羅性測定処理付加手段３３に対し、網羅性測定処理の内容を示すソースコードの付加指令を出し、このようにして得られた全ての図形要素についてのソースコードを、処理順に配置してソースプログラム（本実施形態では、一例として、Ｃ言語プログラムとする。）を作成し、作成したソースプログラム（Ｃ言語プログラム）を、ソースプログラム記憶手段４３に記憶させる処理を実行するものである。なお、ソースコード変換手段３２は、網羅性測定処理付加手段３３による網羅性測定処理の内容を示すソースコードの付加を行っていない通常のソースプログラム（Ｃ言語プログラム）を自動生成する処理も実行するが、本実施形態では、本発明に係る内容として、網羅性測定処理の内容を示すソースコードが付加されているソースプログラム（Ｃ言語プログラム）の自動生成に絞って説明を行うものとする。
【００３４】
より具体的には、ソースコード変換手段３２は、先ず、図式プログラム記憶手段４２に記憶されている作成済みの図式プログラムを構成する各図形要素について、これらの図形要素の種別コード（どのような機能の図形要素であるのかを識別するためのコード）を用いて、各図形要素が、図式プログラムライブラリ記憶手段４１に網羅性測定処理の内容が記憶されているテスト網羅性の測定対象の図形要素に該当するか否かを判断し、テスト網羅性の測定対象の図形要素に該当すると判断した場合には、当該図形要素について設定されている情報（パラメータへの設定値等）および当該図形要素の種別コードを網羅性測定処理付加手段３３に送り、網羅性測定処理付加手段３３に対し、網羅性測定処理の内容を示すソースコードの付加指令を出し、一方、テスト網羅性の測定対象の図形要素に該当しないと判断した場合には、網羅性測定処理の内容を示すソースコードの付加指令を出さず、次に、図形要素の種別コードを用いて、図式プログラムライブラリ記憶手段４１から、図形要素の種別（機能）に応じた処理内容を示すソースコードを取得し、これに当該図形要素について設定されている情報（パラメータへの設定値等）を組み合わせることにより、図形要素の処理内容に対応するソースコードを作成し、作成したソースコードを、自動生成中のソースプログラム（Ｃ言語プログラム）に、処理順に配置していき、このような処理を、作成済みの図式プログラムを構成する全ての図形要素（テスト網羅性の測定対象の図形要素および測定対象ではない図形要素）について繰り返し実行する。
【００３５】
網羅性測定処理付加手段３３は、ソースコード変換手段３２による変換処理の際に、ソースコード変換手段３２からの指令を受け、図式プログラム記憶手段４２に記憶されている作成済みの図式プログラムを構成する各図形要素のうち、テスト網羅性の測定対象の図形要素について、ソースコード変換手段３２から受け取った図形要素の種別コードを用いて、その網羅性測定対象の図形要素に対応する網羅性測定処理の内容を示す雛形情報（パラメータ等が設定される前の状態のソースコード）を、図式プログラムライブラリ記憶手段４１から取得し、取得した雛形情報に、図形要素について設定されている情報（パラメータへの設定値等）を組み合わせることにより網羅性測定処理の内容を示すソースコード（図４参照）を作成し、ソースコード変換手段３２による変換処理で得られたソースコードに、作成した網羅性測定処理の内容を示すソースコードを付加する処理を実行するものである。ここで、網羅性測定処理の内容は、各図形要素の機能に応じて図形要素の種別毎に予め定められて用意されているものであり、網羅性測定処理の内容を示す雛形情報は、図形要素の種別コードにより図形要素の情報に関連付けられて図式プログラムライブラリ記憶手段４１に記憶されている。
【００３６】
また、網羅性測定処理付加手段３３は、図式プログラム記憶手段４２に記憶されている作成済みの図式プログラムを構成する各図形要素のうちの網羅性測定対象の図形要素について、これらの図形要素の種別コードを用いて、図式プログラムライブラリ記憶手段４１から、これらの図形要素内のテストケースの数を取得し、網羅性測定情報記憶手段４５（図８参照）に、図形要素毎にテストケースの数に相当する網羅性測定情報４５Ａの格納領域を確保する処理を実行する。より具体的には、本実施形態では、網羅性測定処理付加手段３３は、図形要素毎に取得したテストケースの数を、テストケース情報記憶手段（不図示）に記憶されているテストケース情報に追加していき、網羅性測定対象の図形要素のすべてについてのテストケースの数を取得した後に、それらの全テストケース分の実行の有無情報（「Ｙｅｓ」（実行済み）または「Ｎｏ」（未実行））の格納領域を確保し、さらに初期値として「Ｎｏ」（未実行）を記憶させる処理を実行する。
【００３７】
なお、図形要素毎に網羅性測定情報４５Ａの格納領域を確保するにあたっては、図形要素の種別毎に確保するのではなく、個々の図形要素のそれぞれについて確保する。すなわち、クラス毎に確保するのではなく、インスタンス毎に確保する。従って、図式プログラムの中に、同じ種別の図形要素が複数個あった場合には、その数だけ確保することになる。
【００３８】
さらに、網羅性測定処理付加手段３３は、図式プログラム記憶手段４２に記憶されている作成済みの図式プログラムを構成する各図形要素のうちの網羅性測定対象の図形要素内のテストケースをテストするためのテストパターン（図７参照）の入力を受け付け、受け付けたテストパターンを用いて、テスト対象のプログラムを繰り返し実行するためのループ処理を含むテストプログラム（図７参照）を自動生成し、自動生成したテストプログラム（本実施形態では、一例として、Ｃ言語プログラムとする。）を、ソースプログラム記憶手段４３に記憶させる処理も実行する。
【００３９】
実行形式変換手段３４は、ソースコード変換手段３２および網羅性測定処理付加手段３３により生成されてソースプログラム記憶手段４３に記憶されているソースプログラム（Ｃ言語プログラム）を、コンピュータで実行可能な機械語による実行形式プログラム（オブジェクトプログラム）に変換するコンパイルを実行し、コンパイルして得られた実行形式プログラムを、実行形式プログラム記憶手段４４に記憶させる処理を実行するものである。なお、実行形式変換手段３４は、網羅性測定処理付加手段３３による網羅性測定処理の内容を示すソースコードの付加を行っていない通常のソースプログラム（Ｃ言語プログラム）をコンパイルする処理も実行するが、本実施形態では、本発明に係る内容として、網羅性測定処理の内容を示すソースコードを付加されたソースプログラム（Ｃ言語プログラム）のコンパイルに絞って説明を行うものとする。
【００４０】
また、実行形式変換手段３４は、網羅性測定処理付加手段３３により作成されてソースプログラム記憶手段４３に記憶されているテストプログラム（Ｃ言語プログラム）をコンパイルし、コンパイルして得られたテストプログラムの実行形式プログラムを、実行形式プログラム記憶手段４４に記憶させる処理も実行する。
【００４１】
なお、実行形式変換手段３４は、プログラム実行手段３５によるテスト対象の実行形式プログラムおよびテストプログラムの実行形式プログラムの実行が、図２に示した演算装置（ＣＰＵ）２１を主体とする構成で行われることから、この演算装置２１の種別に対応したＣコンパイラで構成することができる。
【００４２】
プログラム実行手段３５は、実行形式変換手段３４によりコンパイルされて実行形式プログラム記憶手段４４に記憶されているテスト対象の実行形式プログラムを主記憶装置２２にロードし、これを演算装置（ＣＰＵ）２１で実行して網羅性測定対象の図形要素に対応する網羅性測定処理を実行することにより、網羅性測定情報記憶手段４５（図８参照）に、当該図形要素の網羅性測定情報４５Ａを書き込んで記憶させる処理を実行するものである。
【００４３】
より具体的には、プログラム実行手段３５は、網羅性測定処理付加手段３３により自動生成された後に実行形式変換手段３４によりコンパイルして得られたテストプログラムの実行形式プログラム、およびテスト対象の実行形式プログラムを、実行形式プログラム記憶手段４４から主記憶装置２２にロードし、テストプログラムの実行形式プログラムを演算装置（ＣＰＵ）２１で実行し、テストプログラム内のループ処理で、テストパターンの数に相当する回数だけ、テスト対象の実行形式プログラムを演算装置（ＣＰＵ）２１で繰り返し実行することにより、網羅性測定情報記憶手段４５（図８参照）に、網羅性測定情報４５Ａとして、テストパターンでテストが実施されたテストケースの実行済みを示す情報（「Ｙｅｓ」）を書き込んで記憶させる処理を実行する。
【００４４】
また、プログラム実行手段３５は、網羅性測定情報記憶手段４５（図８参照）に、網羅性測定情報４５Ａを出力するだけではなく、各テストパターンを用いてテストが実施されたテストケースのログを示す測定履歴情報４５Ｂを出力する処理も実行する。
【００４５】
網羅性測定結果出力手段３６は、網羅性測定情報記憶手段４５（図８参照）に記憶されている図形要素毎の各図形要素内のテストケースの実行の有無情報からなる網羅性測定情報４５Ａを取得し、取得した網羅性測定情報４５Ａを用いて、図形要素毎のテスト網羅性を含む網羅性測定結果を、ディスプレイ装置６０に画面表示する処理を実行するものである。また、網羅性測定結果出力手段３６は、図形要素毎のテスト網羅性を含む網羅性測定結果を、図示されない印刷装置で印刷する処理を実行してもよい。
【００４６】
より具体的には、網羅性測定結果出力手段３６は、網羅性測定情報記憶手段４５（図８参照）に網羅性測定情報４５Ａとして記憶されている各図形要素内のテストケースの実行の有無情報を用いて、図形要素毎に網羅率を算出し、算出した図形要素毎の網羅率を含む網羅性測定結果を、ディスプレイ装置６０に画面表示する処理を実行する。また、図形要素毎の網羅率だけではなく、図式プログラム全体の網羅率を算出し、ディスプレイ装置６０に画面表示する処理を実行してもよい。この際、図式プログラム全体の網羅率の算出方法としては、例えば、各図形要素の網羅率の積を取る方法や、平均を取る方法、あるいは図式プログラム全体の必要テストケースの和で実行済みのテストケースの和を割る方法等、様々な方法を採用することができる。さらに、網羅性測定結果出力手段３６は、図形要素毎の各図形要素内のテストケースの実行の有無情報を含む網羅性測定結果を、ディスプレイ装置６０に画面表示する処理も実行する。なお、これらの図形要素毎の網羅率の画面表示・印刷と、図形要素毎の各図形要素内のテストケースの実行の有無情報の画面表示・印刷とは、いずれか一方の画面表示・印刷でもよいが、プログラマに対し、より多くのテスト網羅性に関する情報を付与し、図式プログラムの網羅率が不足した場合における不足原因の特定作業やテストパターンの補充作業を、より効率的に実施することができるようにするという観点からは、双方の情報を画面表示・印刷することが好ましい。
【００４７】
図式プログラムライブラリ記憶手段４１は、予め用意された各種の機能を有する図形要素（作成する図式プログラムの構成要素となるものであり、図３〜図６のリミッタブロックも含まれる。）の情報（図形要素の種別（機能）に応じた処理内容に対応するソースコード）と、網羅性測定対象の図形要素内のテストケースの数と、網羅性測定対象の図形要素に対応する網羅性測定処理の内容を示す雛形情報（パラメータ等が設定される前の状態のソースコード）とを、図形要素の種別コードにより関連付けることにより、それぞれを対応させた状態で記憶するものである。なお、これらのうち、図形要素の情報については、図形を用いて図式プログラムを作成する既存のシステムに用意されているもの（例えば、特開２００８−３８１７の段落［００２１］に記載されている、機能ブロックに対応する実装モジュール等）と同様のものでよい。
【００４８】
図式プログラム記憶手段４２は、図式プログラム作成手段３１により入力された作成済みまたは作成途中の図式プログラムを記憶するものであり、より具体的には、作成済みまたは作成途中の図式プログラムを構成する各図形要素の情報（パラメータへの設定値や、図形要素の機能を識別するための種別コード等を含む。）を、図形要素ＩＤと関連付け、また、各図形要素間の接続情報を、接続関係ＩＤと関連付けて記憶するものである。
【００４９】
ソースプログラム記憶手段４３は、ソースコード変換手段３２および網羅性測定処理付加手段３３により作成された、ソースコードで記述されたテスト対象のプログラム（本実施形態では、Ｃ言語プログラム）と、網羅性測定処理付加手段３３により作成された、ソースコードで記述されたテストプログラム（本実施形態では、Ｃ言語プログラム）とを記憶するものである。
【００５０】
実行形式プログラム記憶手段４４は、実行形式変換手段３４によりコンパイルして得られたテスト対象の実行形式プログラムおよびテストプログラムの実行形式プログラムを記憶するものである。
【００５１】
網羅性測定情報記憶手段４５は、図８に示すように、プログラム実行手段３５により得られた網羅性測定対象の図形要素内のテストケースの実行の有無情報からなる網羅性測定情報４５Ａ、および各テストパターンを用いてテストが実施されたテストケースのログを示す測定履歴情報４５Ｂを記憶するものである。
【００５２】
そして、以上に述べた各種処理を実行する各手段３１〜３６は、装置本体２０を構成するコンピュータ本体の内部に設けられた演算装置（ＣＰＵ）２１、その作業領域である主記憶装置２２（図２参照）、および演算装置（ＣＰＵ）２１の動作手順を規定する１つまたは複数のプログラムにより実現される。なお、ここでいうプログラムは、テスト対象のプログラムやテストプログラムのことではない。
【００５３】
また、各記憶手段４１〜４５は、例えばハードディスク等の補助記憶装置２３（図２参照）により好適に実現されるが、記憶容量やアクセス速度等に問題が生じない範囲であれば、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュ・メモリ、ＲＡＭ、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＦＤ、磁気テープ、あるいはこれらの組合せ等を採用してもよい。
【００５４】
さらに、装置本体２０は、１台のコンピュータあるいは１つのＣＰＵにより実現されるものに限定されず、複数のコンピュータあるいは複数のＣＰＵで分散処理を行うことにより実現されるものであってもよい。
【００５５】
このような本実施形態においては、以下のようにして図式プログラムのテスト網羅性測定装置１０により、作成された図式プログラムについてテスト網羅性の測定処理が行われる。
【００５６】
図９において、先ず、図式プログラムのテスト網羅性測定装置１０の電源を入れてプログラムを立ち上げ、テスト網羅性の測定に関する一連の処理を開始する（ステップＳ１）。
【００５７】
次に、図式プログラム作成手段３１により、図式プログラムライブラリ記憶手段４１に予め用意されて記憶されている各種の機能を有する図形要素の情報を用いて、プログラマによる図形要素の選択入力およびそれに付随させる情報（設定値等）の入力を受け付けるとともに、図形要素間の接続情報の入力も受け付け、ディスプレイ装置６０の画面上に、入力された図形要素を並べて表示するとともに、それらの接続関係も表示することにより（図３参照）、図形を用いた図式プログラムの作成を支援し、入力された図形要素の情報を、図形要素ＩＤと関連付け、また、入力された接続情報を、接続関係ＩＤと関連付けて、図式プログラム記憶手段４２に記憶させる（図９のステップＳ２）。この図式プログラム作成手段３１による図式プログラムの作成時における入力装置５０からの入力受付処理や、ディスプレイ装置６０への画面表示処理は、図式プログラムを作成する既存のシステムと同様である。
【００５８】
図３には、図式プログラム作成手段３１により入力を受け付けた図式プログラムの一例が示されている。この図は、入力信号ａをリミッタ（limiter）で振幅制限し、リミッタ通過後の信号値を２倍して出力信号ｂを生成するアルゴリズムを示している。また、リミッタでは、上限値（Ｕ）としてｃが設定され、下限値（Ｌ）としてｄが設定されており、このリミッタは、これらの上下限値の範囲内に出力を制限することを示している。
【００５９】
ここで、リミッタ（limiter）ブロックは、図式プログラムを構成する図形要素の１種として、その内容情報（パラメータへの設定値が入力されていない状態の情報）が図式プログラムライブラリ記憶手段４１に予め用意されて記憶されているものである。図５には、図３に示した図式プログラム中のリミッタブロックの入出力関係が示されており、全範囲の値をとる入力信号ａに対し、ｄからｃまでの間の範囲でリターン値ｋが得られることが示されている。
【００６０】
続いて、作成を完了した状態の図式プログラムが図式プログラム記憶手段４２に記憶されている段階で、ソースコード変換手段３２により、この作成済みの図式プログラム（図３参照）で示される処理内容を、テキスト形式の計算機言語（ここでは、Ｃ言語とする。）で記述したソースコード（図４参照）に変換する処理を開始し、テストケース情報記憶手段（不図示）に記憶されているテストケース情報（網羅性測定対象の各図形要素についての図形要素ＩＤ、およびその図形要素内のテストケースの数を含む情報）をクリアした後に（図９のステップＳ３）、作成済みの図式プログラム（図３参照）を構成する全ての図形要素について、図式プログラムに分岐がない場合には、１つずつ順番に、あるいは図式プログラムに分岐がある場合には、例えば、本願出願人により提案されている特開２００６−２８５４８０に開示された手段等を用いて、ソースコードへの変換処理を実行する（図９のステップＳ４〜Ｓ４Ａ）。なお、テストケース情報は、主記憶装置２２（図２参照）内に記憶しておくだけでもよく、補助記憶装置２３に記憶させてもよいことから、説明の便宜上、テストケース情報記憶手段の図示は省略している。
【００６１】
先ずは、ソースコード変換手段３２により、図式プログラム記憶手段４２に記憶されている作成済みの図式プログラム（図３参照）を構成する各図形要素について、これらの図形要素の種別コード（どのような機能の図形要素であるのかを識別するためのコード）を用いて、各図形要素が、図式プログラムライブラリ記憶手段４１に網羅性測定処理の内容が記憶されているテスト網羅性の測定対象の図形要素に該当するか否かを判断し（図９のステップＳ５）、テスト網羅性の測定対象の図形要素に該当すると判断した場合には、当該図形要素について設定されている情報（パラメータへの設定値等）および当該図形要素の種別コードを網羅性測定処理付加手段３３に送り、網羅性測定処理付加手段３３に対し、網羅性測定処理の内容を示すソースコードの付加指令を出す。
【００６２】
それから、網羅性測定処理付加手段３３により、ソースコード変換手段３２から受け取った図形要素の種別コードを用いて、図式プログラムライブラリ記憶手段４１から、当該図形要素内のテストケースの数を取得し（図９のステップＳ６）、取得したテストケースの数を、当該図形要素についての図形要素ＩＤとともに、テストケース情報に追加する（図９のステップＳ７）。例えば、図３に示したリミッタブロックは、網羅性測定対象の図形要素であり、３つのテストケースがあるので（図４、図６参照）、このリミッタブロックについての図形要素ＩＤ（説明の便宜上、図８に示すように「１」とする。）と、テストケース数＝３とを、テストケース情報に追加する。
【００６３】
その後、網羅性測定処理付加手段３３により、ソースコード変換手段３２から受け取った図形要素の種別コードを用いて、その図形要素に対応する網羅性測定処理の内容を示す雛形情報（パラメータ等が設定される前の状態のソースコード）を、図式プログラムライブラリ記憶手段４１から取得し、取得した雛形情報に、図形要素について設定されている情報（パラメータへの設定値等）を組み合わせることにより網羅性測定処理の内容を示すソースコード（図４参照）を作成し、作成した網羅性測定処理の内容を示すソースコードを、自動生成中のソースプログラム（Ｃ言語プログラム）に付加する（図９のステップＳ８）。
【００６４】
続いて、ソースコード変換手段３２により、図形要素の種別コードを用いて、図式プログラムライブラリ記憶手段４１から、その図形要素の種別（機能）に応じた処理内容を示すソースコードを取得し、その図形要素について設定された情報（パラメータへの設定値等）と組み合わせることにより、その図形要素に対応するソースコードを生成し、生成したソースコードを、自動生成中のソースプログラム（Ｃ言語プログラム）に、処理順に従って配置する（図９のステップＳ９）。このステップＳ９のソースコードの生成・配置処理は、図式プログラムを作成する既存のシステムと同様である。
【００６５】
一方、前述したステップＳ５で、テスト網羅性の測定対象の図形要素に該当しないと判断した場合には、前述したステップＳ６〜Ｓ８の処理を行うことなく、前述したステップＳ９のソースコード変換手段３２によるソースコードの生成・配置処理を実行する。
【００６６】
例えば、図４の左側部分には、図３に示した図式プログラムをソースコード変換手段３２によりソースプログラム（Ｃ言語プログラム）に変換した例が示されている。図４の左側部分は、図式プログラムを作成する既存のシステムで得られていたものである。関数func()が、図３のアルゴリズムに対応する部分である。関数limiter()は、リミッタ（limiter）ブロックの処理内容を示している。リミッタブロックは、図式プログラムライブラリ記憶手段４１に予め用意されているものであるから、この関数limiter()のソースコードも、図式プログラムライブラリ記憶手段４１に予め用意されていて、その内容が、ここに展開されたものである。
【００６７】
また、図６には、図３に示した図式プログラム中のリミッタブロックの処理内容がフローチャートで示されている。このフローチャートから明らかなように、リミッタブロックには、テストが必要となる３つのテストケースが存在する。テストケース１は、入力信号ａが上限の設定値ｃよりも大きい場合に通るパス（分岐）であり、この場合には、上限の設定値ｃがリミッタブロックのリターン値ｋとなる。テストケース２は、入力信号ａが下限の設定値ｄよりも小さい場合に通るパス（分岐）であり、この場合には、下限の設定値ｄがリミッタブロックのリターン値ｋとなる。テストケース３は、入力信号ａが下限の設定値ｄから上限の設定値ｃまでの間の値になる場合のパス（分岐）であり、この場合には、入力信号ａがそのままリミッタブロックのリターン値ｋとなる。
【００６８】
図４の右側部分は、図３に示した図式プログラムからテキスト形式のソースコードに変換する際に、図形要素であるリミッタブロックの処理内容に応じた網羅性測定処理を示すソースコードを、図４の左側部分のソースコードに付加したものである。図４の右側部分で、CHECK_TESTED_GT、CHECK_TESTED_LT、CHECK_TESTED_WIは、それぞれリミッタブロックの処理内容に応じた網羅性測定処理を示すソースコードであり、これらの網羅性測定処理を示すソースコードは、リミッタブロックを実行するソースコードであるx=limiter(a,c,d)の直前の位置に配置されて付加されている。
【００６９】
図８には、網羅性測定情報記憶手段４５に書き込んで記憶させる網羅性測定情報４５Ａの構成例が示されている。図３に示した図式プログラムについて、判断文カバレッジを測定する場合には、この図式プログラム中のリミッタブロック内の３つのテストケースの実行の有無情報（「Ｙｅｓ」（実行済み）または「Ｎｏ」（未実行））が必要であるので、網羅性測定情報記憶手段４５には、網羅性測定情報４５Ａの格納領域として、リミッタブロックの図形要素ＩＤ＝「１」について、テストケースの番号＝「１」、「２」、「３」の３つの有無情報の格納領域が設けられている。また、初期状態では、これらの有無情報は、「Ｎｏ」（未実行）に初期化されている。なお、リミッタブロックの他に、網羅性測定対象の図形要素があった場合には、例えば、図８中の２点鎖線の如く、図形要素ＩＤ＝「２」、「３」、…について、それぞれテストケースの番号＝「１」、「２」、…の有無情報の格納領域が設けられる。
【００７０】
前述したように、図４の右側部分には、網羅性測定処理を示すソースコードとして３つのコード（CHECK_TESTED_GT、CHECK_TESTED_LT、CHECK_TESTED_WI）が付加されているが、これらの３つのコード中の第１、第２パラメータは、網羅性測定処理を示すソースコードを実行して得られた網羅性測定情報４５Ａを、いずれの区画の領域に格納するかを示すものであり、重複しない値が生成されて設定される。第１パラメータは、網羅性測定情報４５Ａの格納領域指定用の図形要素ＩＤであり、図４の例では、リミッタブロックの図形要素ＩＤ＝「１」が設定されている。第２パラメータは、網羅性測定情報４５Ａの格納領域指定用の図形要素内のテストケースの番号であり、図４の例では、リミッタブロック内のテストケースの番号＝「１」、「２」、「３」が設定されている。
【００７１】
また、３つのコード中の第３パラメータ以降については、以下の通りである。先ず、CHECK_TESTED_GT(1,1,a,c)は、入力信号ａがｃよりも大きい場合に、図８に示したリミッタブロックの図形要素ＩＤ＝「１」で、かつ、リミッタブロック内のテストケースの番号＝「１」である網羅性測定情報４５Ａの格納領域を、「Ｙｅｓ」（実行済み）にするという処理内容である。従って、テストケース１のパス（分岐）を通る入力が与えられた場合に行われる処理である。なお、リミッタブロック内のテストケース１が実行されたというログを残すために、図形要素ＩＤ＝「１」、テストケースの番号＝「１」を、テストパターンの番号と合わせて、測定履歴情報４５Ｂ（図８参照）として出力するようにしてもよい。また、雛形のCHECK_TESTED_GTから実コードのCHECK_TESTED_GT(1,1,a,c)を生成する処理は、例えば、図式プログラムライブラリ記憶手段４１に、予め用意されたCHECK_TESTED_GT(<id>,<case>,<in1>,<in2;U>)を格納しておき、<in1>を、第１入力（図４の例では「ａ」）に置き換え、<in2;U>を、図式プログラム上ではＵに割り当てられていて第２パラメータである変数（図４の例では「ｃ」）に置き換える処理等である。
【００７２】
また、CHECK_TESTED_LT(1,2,a,d)は、入力信号ａがｄよりも小さい場合に、図８に示したリミッタブロックの図形要素ＩＤ＝「１」で、かつ、リミッタブロック内のテストケースの番号＝「２」である網羅性測定情報４５Ａの格納領域を、「Ｙｅｓ」（実行済み）にするという処理内容である。従って、テストケース２のパス（分岐）を通る入力が与えられた場合に行われる処理である。なお、リミッタブロック内のテストケース２が実行されたというログを残すために、図形要素ＩＤ＝「１」、テストケースの番号＝「２」を、テストパターンの番号と合わせて、測定履歴情報４５Ｂ（図８参照）として出力するようにしてもよい。また、雛形のCHECK_TESTED_LTから実コードのCHECK_TESTED_LT(1,2,a,d)を生成する処理は、例えば、図式プログラムライブラリ記憶手段４１に、予め用意されたCHECK_TESTED_LT(<id>,<case>,<in1>,<in3;L>)を格納しておき、<in1>を、第１入力（図４の例では「ａ」）に置き換え、<in3;L>を、図式プログラム上ではＬに割り当てられていて第３パラメータである変数（図４の例では「ｄ」）に置き換える処理等である。
【００７３】
さらに、CHECK_TESTED_WI(1,3,a,c,d)は、入力信号ａがｄからｃまでの間の場合に、図８に示したリミッタブロックの図形要素ＩＤ＝「１」で、かつ、リミッタブロック内のテストケースの番号＝「３」である網羅性測定情報４５Ａの格納領域を、「Ｙｅｓ」（実行済み）にするという処理内容である。従って、テストケース３のパス（分岐）を通る入力が与えられた場合に行われる処理である。なお、リミッタブロック内のテストケース３が実行されたというログを残すために、図形要素ＩＤ＝「１」、テストケースの番号＝「３」を、テストパターンの番号と合わせて、測定履歴情報４５Ｂ（図８参照）として出力するようにしてもよい。また、雛形のCHECK_TESTED_WIから実コードのCHECK_TESTED_WI(1,3,a,c,d)を生成する処理は、例えば、図式プログラムライブラリ記憶手段４１に、予め用意されたCHECK_TESTED_WI(<id>,<case>,<in1>,<in2;U>,<in3;L>)を格納しておき、<in1>を、第１入力（図４の例では「ａ」）に置き換え、<in2;U>を、図式プログラム上ではＵに割り当てられていて第２パラメータである変数（図４の例では「ｃ」）に置き換え、<in3;L>を、図式プログラム上ではＬに割り当てられていて第３パラメータである変数（図４の例では「ｄ」）に置き換える処理等である。
【００７４】
なお、リミッタ（limiter）ブロックの場合には、３つのテストケースを網羅すれば、判断文カバレッジが１００％となることは、リミッタブロックの処理内容から予めわかっているので、必要なテストケース数やチェック方式（CHECK_TESTED_GT、CHECK_TESTED_LT、CHECK_TESTED_WIの３つのコードが必要ということ）も予めわかっている。従って、前述したように、図４の左側部分に示したリミッタブロックの処理内容（図５、図６参照）は、図式プログラムライブラリ記憶手段４１に予め格納されているが、これらの情報（必要なテストケース数やチェック方式）も含めて図式プログラムライブラリ記憶手段４１に予め格納されている。
【００７５】
そして、図９のステップＳ４〜Ｓ４Ａのループが終了した時点で、作成済みの図式プログラムを構成する全ての図形要素（テスト網羅性の測定対象の図形要素および測定対象ではない図形要素）のソースコードについて、ソースコード変換手段３２による処理順に従った配置処理が完了し、ソースプログラム（Ｃ言語プログラム）が完成している状態となるので、この完成したソースプログラム（Ｃ言語プログラム）を、ソースコード変換手段３２により、ソースプログラム記憶手段４３に記憶させる。
【００７６】
続いて、網羅性測定処理付加手段３３により、図式プログラム記憶手段４２に記憶されている作成済みの図式プログラムを構成する各図形要素のうちの網羅性測定対象の図形要素内のテストケースをテストするためのテストパターン（図７参照）の入力を受け付ける（図９のステップＳ１０）。この入力は、プログラマにより行われるが、その際には、網羅性測定処理付加手段３３により、図式プログラム記憶手段４２から図式プログラムを構成する各図形要素の情報およびそれらの接続情報が読み込まれ、図式プログラム（図３参照）がディスプレイ装置６０に画面表示される。
【００７７】
それから、網羅性測定処理付加手段３３により、受け付けたテストパターンを用いて、テスト対象の図式プログラムを繰り返し実行するためのループ処理を含むテストプログラム（図７参照）を自動生成し、自動生成したテストプログラム（Ｃ言語プログラム）を、ソースプログラム記憶手段４３に記憶させる（図９のステップＳ１１）。
【００７８】
さらに、網羅性測定処理付加手段３３により、テストケース情報（網羅性測定対象の各図形要素についての図形要素ＩＤ、および各図形要素内のテストケースの数を含む情報）を用いて、網羅性測定情報記憶手段４５（図８参照）に、図形要素毎にテストケースの数に相当する網羅性測定情報４５Ａの格納領域を確保する（図９のステップＳ１２）。この網羅性測定情報４５Ａの格納領域は、全テストケース分の実行の有無情報（「Ｙｅｓ」（実行済み）または「Ｎｏ」（未実行））の格納領域である。また、網羅性測定処理付加手段３３により、これらの格納領域のすべてに、初期値として「Ｎｏ」（未実行）を記憶させる（ステップＳ１２）。
【００７９】
図７の上側部分には、図３に示した図式プログラムのテストパターンの一例が示されている。この例では、２つのテストパターンが記述されており、１つ目のテストパターンは、リミッタブロック内のテストケース３（図４、図６参照）をテストするためのものであり、入力値ａが１０、出力値ｂが２０、設定値が、ｃ＝１００，ｄ＝−１００であり、２つ目のテストパターンは、リミッタブロック内のテストケース１（図４、図６参照）をテストするためのものであり、入力値ａが３００、出力値ｂが２００、設定値が、ｃ＝１００，ｄ＝−１００であることを示している。
【００８０】
図７の下側部分には、網羅性測定処理付加手段３３により、図７の上側部分に示したテストパターンを、テストプログラム（Ｃ言語プログラム）に変換した例が示されている。図７の上側部分に示したテストパターンの各値は、test()の配列ta[]、tb[]、tc[]、td[]に格納されている。また、forループの中で、テスト対象の関数func()が呼び出され、図７の上側部分に示した２つのテストパターンによるテストが実行されるようになっているが、その際に、図４の右側部分に示された３つの網羅性測定処理の内容を示すソースコードのうちの対応するソースコードの処理が実行され、図８の網羅性測定情報４５Ａの格納領域に、「Ｙｅｓ」（実行済み）が設定されるようになっている。また、テストパターンを用いてテスト対象の関数func()を実行して得られた処理結果が、対応する図７の上側部分に示したテストパターンの出力値ｂと等しいか否かがチェックされ、関数printfで、そのチェック結果（等しい場合には「ＯＫ」、等しくない場合には「ＮＧ」）が、ディスプレイ装置６０に画面表示されるようになっている。なお、図示されない印刷装置への出力としてもよい。また、このチェック結果を、網羅性測定情報記憶手段４５にデータとして記録してもよく、例えば、各テストパターンを用いてテストが実施されたテストケースのログを示す測定履歴情報４５Ｂの一部として記録してもよい（図８では、このチェック結果の図示は省略されている）。
【００８１】
続いて、実行形式変換手段３４により、ソースコード変換手段３２および網羅性測定処理付加手段３３により生成されてソースプログラム記憶手段４３に記憶されているソースプログラム（Ｃ言語プログラム）を、コンピュータで実行可能な機械語による実行形式プログラム（オブジェクトプログラム）に変換するコンパイルを実行し、コンパイルして得られたテスト対象の実行形式プログラムを、実行形式プログラム記憶手段４４に記憶させる（図９のステップＳ１３）。
【００８２】
また、実行形式変換手段３４により、網羅性測定処理付加手段３３により作成されてソースプログラム記憶手段４３に記憶されているテストプログラム（Ｃ言語プログラム）をコンパイルし、コンパイルして得られたテストプログラムの実行形式プログラムを、実行形式プログラム記憶手段４４に記憶させる（図９のステップＳ１３）。
【００８３】
なお、これらのテスト対象の実行形式プログラムと、テストプログラムの実行形式プログラムとを、結合（リンク）して１つの実行形式プログラムとし、実行形式プログラム記憶手段４４に記憶させてもよい。
【００８４】
それから、プログラム実行手段３５により、テストプログラムの実行形式プログラムおよびテスト対象の実行形式プログラム、あるいはこれらを結合（リンク）した１つの実行形式プログラムを、実行形式プログラム記憶手段４４から主記憶装置２２にロードし、テストプログラムの実行形式プログラムを演算装置（ＣＰＵ）２１で実行し、テストプログラム内のループ処理で、テストパターンの数に相当する回数だけ、テスト対象の実行形式プログラムを演算装置（ＣＰＵ）２１で繰り返し実行することにより（結合（リンク）した１つの実行形式プログラムを実行する場合も、これと同様な処理となる。）、網羅性測定情報記憶手段４５（図８参照）に、網羅性測定情報４５Ａとして、テストパターンでテストが実施されたテストケースの実行済みを示す情報（「Ｙｅｓ」）を書き込んで記憶させる（図９のステップＳ１４）。また、プログラム実行手段３５により、網羅性測定情報記憶手段４５（図８参照）に、各テストパターンを用いてテストが実施されたテストケースのログを示す測定履歴情報４５Ｂを記憶させてもよい（図９のステップＳ１４）。
【００８５】
さらに、プログラム実行手段３５により、図７の上側部分に示したテストパターンを用いてテスト対象の実行形式プログラムを実行した処理結果が、対応するテストパターンの出力値ｂと等しいか否かをチェックし、そのチェック結果（等しい場合には「ＯＫ」、等しくない場合には「ＮＧ」）を、ディスプレイ装置６０に画面表示する（図９のステップＳ１４）。
【００８６】
その後、網羅性測定結果出力手段３６により、網羅性測定情報記憶手段４５（図８参照）に記憶されている図形要素毎の各図形要素内のテストケースの実行の有無情報（「Ｙｅｓ」（実行済み）または「Ｎｏ」（未実行））からなる網羅性測定情報４５Ａを取得し、取得した網羅性測定情報４５Ａを用いて、図形要素毎に網羅率を算出し、算出した図形要素毎の網羅率、および図形要素毎の各図形要素内のテストケースの実行の有無情報を含む網羅性測定結果を、ディスプレイ装置６０に画面表示する（図９のステップＳ１５）。また、網羅性測定結果出力手段３６により、図式プログラム全体の網羅率を算出し、ディスプレイ装置６０に画面表示してもよい。
【００８７】
図７に示したテストパターンの例では、２つのテストパターン１，２により、図６のＳ６０１の判定でＮＯになった後、図６のＳ６０２の判定でＮＯになった場合（テストケース３）と、図６のＳ６０１の判定でＹＥＳになった場合（テストケース１）のみがテストされている。ここで、判断文カバレッジ（分岐網羅率（Ｃ１））の測定を行うものとすると、分岐点のすべての可能な出力のうち、テストで１回以上得られた出力の網羅率を測定する必要があるので、このリミッタブロックの場合には、図６のＳ６０１の判定は、全ての可能な出力（ＹＥＳ／ＮＯの２つ）が網羅されているが、図６のＳ６０２の判定は、ＮＯの出力のケースしかテストされておらず、ＹＥＳの出力のケースはテストされていない。そこで、上記の２ケースに加え、図６のＳ６０１の判定でＮＯになった後、図６のＳ６０２の判定でＹＥＳになった場合（テストケース２）を加えると、図６のＳ６０２の判定も網羅できるため、判断文カバレッジは、３ケースで完全網羅（１００％）となるが、図７の例では、そのうちの２ケースのみが実行されているので、この場合の網羅率は、２／３=６６．７％となる。図８の網羅性測定情報４５Ａの例には、この状態が示されており、図形要素ＩＤ＝「１」であるリミッタブロック内の３つのテストケースのうち、テストケースの番号＝「１」、「３」の２ケースが「ＹＥＳ」（実行済み）となり、テストケースの番号＝「２」のケースが「ＮＯ」（未実行）となっている。また、図８の測定履歴情報４５Ｂの例を見ても、テストケースの番号＝「２」のケースは、ログが残っていないので、実行されていないことがわかる。なお、図８の測定履歴情報４５Ｂを見れば、１つのテストケースについて、複数のテストパターンにより重複してテストが行われたことも把握することができる。
【００８８】
このように図３に示した図式プログラムの例では、図式プログラムの処理内容と網羅性を満足するための条件が直接関係している（すなわち、図式プログラム中のリミッタブロックの場合は、網羅性を満足するための条件が、入力が上限値よりも大きい場合、上限値と下限値との間の場合、下限値よりも小さい場合の３ケースであり、リミッタ処理の内容と直結している）ため、網羅性を満足していない場合にも、いずれのテストケースをテストするためのテストパターンを追加すればよいか、判断が容易である。
【００８９】
そして、プログラマは、網羅性測定結果出力手段３６により出力された網羅性測定結果を参照し、いずれの図形要素についての網羅性が不十分なのか、あるいはいずれの図形要素内のいずれのテストケースが実行されていないのかを把握し、必要に応じ、図９のステップＳ１０に戻り、テストパターンを追加入力する。このテストパターンの追加入力は、網羅性測定処理付加手段３３により受け付けられるが、この際には、網羅性測定処理付加手段３３により、図式プログラム（図３参照）がディスプレイ装置６０に画面表示されるので、プログラマは、図式プログラムと、網羅性測定結果出力手段３６により出力された網羅性測定結果とを見比べながら、追加すべきテストパターンを考えることができる。なお、テストパターンの追加入力後は、図９のステップＳ１２の処理のうち、格納領域の確保は省略することができるが、「Ｎｏ」への初期化は、再度実行した方がよい。また、図９のステップＳ１３の処理のうち、テスト対象のプログラムのコンパイルは省略することができるが、テストプログラムのコンパイルは、再度実行する。
【００９０】
以上のようにしてテストパターンの補充を行い、再度、プログラム実行手段３５による処理を実行し、十分な網羅性が得られた場合には、テスト網羅性に関する一連の処理を終了する（図９のステップＳ１６）。
【００９１】
このような本実施形態によれば、次のような効果がある。すなわち、図形要素に対応する網羅性測定処理の内容を示す雛形情報を記憶する図式プログラムライブラリ記憶手段４１と、網羅性測定処理付加手段３３と、テスト対象のプログラムを実行して網羅性測定処理を実行するプログラム実行手段３５と、網羅性測定情報記憶手段４５（図８参照）と、網羅性測定結果出力手段３６とを備えているので、テスト対象のプログラムのソースコードに、図式プログラムを構成する図形要素に対応する網羅性測定処理の内容を示すソースコードを付加することにより、網羅性を測定し、得られた網羅性測定情報を用いて図形要素毎のテスト網羅性を含む網羅性測定結果を出力することができるため、プログラマは、図形要素と対応付けてテストの網羅性を把握することができる。従って、プログラマは、Ｃ言語プログラム等のテキスト形式のソースコードで記述されたプログラム上で、既存のＣ言語用等の網羅率測定システムを用いて網羅率を測定する必要はなくなり、網羅性測定結果も、Ｃ言語プログラム等のソースプログラム上で確認するのではなく、図式プログラム上で、その図式プログラムを構成する図形要素と対応付けて確認することができる。このため、図式プログラムの網羅率が不足した場合には、その原因の特定作業や、テストパターンの補充作業を、Ｃ言語プログラム等のソースプログラムを意識することなく、直接に図式プログラムを見ながら行うことができ、これらの作業を効率的に実施することができる。
【００９２】
また、網羅性測定結果出力手段３６は、網羅性測定結果として、図形要素毎の網羅率を画面表示および／または印刷するか、あるいは図形要素毎に各図形要素内のテストケースの実行の有無情報を画面表示および／または印刷する構成とされているので、いずれの図形要素のテストの網羅性が、どれぐらい不十分なのかを容易に把握することができ、テスト網羅率の不足原因の特定作業や、テストパターンの補充作業を、より一層、効率的に実施することができる。
【００９３】
さらに、網羅性測定情報記憶手段４５（図８参照）に、網羅性測定情報４５Ａに加え、測定履歴情報４５Ｂを出力して記憶させ、網羅性測定結果出力手段３６により測定履歴情報４５Ｂの画面表示および／または印刷も行うようにした場合には、プログラマは、測定履歴情報４５Ｂを見れば、１つのテストケースについて、複数のテストパターンにより重複してテストが行われたことも把握することができるので、これによっても、テスト網羅率の不足原因の特定作業や、テストパターンの補充作業を、より一層、効率的に実施することができる。
【００９４】
なお、本発明は前記実施形態に限定されるものではなく、本発明の目的を達成できる範囲内での変形等は本発明に含まれるものである。
【００９５】
例えば、前記実施形態では、プログラム実行手段３５は、テストパターンを用いて行われたテスト結果とテスト網羅性とを切り離し、テスト結果にかかわらず、すなわち入力値に対して予定した出力値が得られたか否か（「ＯＫ」または「ＮＧ」）にかかわらず、網羅性測定情報記憶手段４５（図８参照）に、網羅性測定情報４５Ａとして、テストパターンでテストされたテストケースの実行済みを示す情報（「Ｙｅｓ」）を書き込んで記憶させる構成とされていたが、これに限定されず、例えば、テストパターンによるテスト結果が「ＯＫ」になった場合のみ、そのテストパターンでテストされたテストケースの実行済みを示す情報（「Ｙｅｓ」）を書き込んで記憶させる構成としてもよい。
【００９６】
また、前記実施形態では、網羅性測定処理付加手段３３により、作成済みの図式プログラムを構成する図形要素について、図式プログラムライブラリ記憶手段４１からテストケースの数を取得し、網羅性測定情報記憶手段４５（図８参照）に、図形要素毎にテストケースの数に相当する網羅性測定情報４５Ａの格納領域を確保する構成とされていたが、このようにテストケースの数の格納領域を一括して確保する必要はない。例えば、プログラム実行手段３５によりテスト対象の実行形式プログラムをループ処理で繰り返し実行することにより網羅性測定処理を繰り返し実行している過程で、プログラム実行手段３５により、テストケースが実行される都度に、その実行されたテストケースについての網羅性測定情報４５Ａ、すなわちそのテストケースの実行済みを示す情報を、網羅性測定情報記憶手段４５に書き込んでいってもよい。この場合、実行されなかったテストケースについては、そのテストケースの未実行を示す情報は、網羅性測定情報記憶手段４５に書き込まれていないので、網羅性測定結果出力手段３６は、主記憶装置２２または補助記憶装置２３に設けられたテストケース情報記憶手段（不図示）から、各図形要素についてのテストケースの数を取得し、各図形要素についての網羅率の算出を行い、得られた網羅性測定結果を出力すればよい。
【００９７】
さらに、前記実施形態では、図９のステップＳ１２において、網羅性測定処理付加手段３３により、全ての図形要素についての格納領域をまとめて確保する構成とされていたが、これに限定されるものではなく、各図形要素について１つずつ（１図形要素ずつ）、順次、テストケースの数の格納領域を確保してもよく、例えば、図９のステップＳ７において、取得したテストケースの数の格納領域を確保してもよい。
【産業上の利用可能性】
【００９８】
以上のように、本発明の図式プログラムのテスト網羅性測定装置およびその方法、並びにプログラムは、例えば、図形を用いてプログラムを記述し、これを自動的にＣ言語等のテキスト形式のプログラム言語に変換するシステムにおいて、プログラムのテストの網羅性を評価する場合に用いるのに適している。
【符号の説明】
【００９９】
１０  図式プログラムのテスト網羅性測定装置
３２  ソースコード変換手段
３３  網羅性測定処理付加手段
３４  実行形式変換手段
３５  プログラム実行手段
３６  網羅性測定結果出力手段
４１  図式プログラムライブラリ記憶手段
４３  ソースプログラム記憶手段
４４  実行形式プログラム記憶手段
４５  網羅性測定情報記憶手段
４５Ａ  網羅性測定情報
【図１】
0005834991.tif 000002
【図２】
0005834991.tif 000003
【図３】
0005834991.tif 000004
【図４】
0005834991.tif 000005
【図５】
0005834991.tif 000006
【図６】
0005834991.tif 000007
【図７】
0005834991.tif 000008
【図８】
0005834991.tif 000009
【図９】
0005834991.tif 000010