(57)【特許請求の範囲】
【請求項１】
制御プログラムを取得する制御プログラム取得手段と、
制御プログラムを解析して実行パスを抽出する実行パス抽出手段と、
実行パス中の関数について、入力空間を同定する入力空間同定手段と、
前記同定された入力空間を分割した離散区分を設定する離散区分設定手段と、
前記離散区分に基づき、テストのカバレージを測定するカバレージ測定手段と、
前記カバレージの測定結果を出力するカバレージ測定結果出力手段と、
を備えたことを特徴とするカバレージ測定装置。
【請求項２】
前記実行パス毎に、実行パス中の関数を複数の関数に分割する関数分割手段をさらに備え、
前記入力空間同定手段は、前記分割した関数毎に入力空間を同定し、
前記カバレージ測定手段は、各関数のカバレージ測定結果に基づいて関数全体のカバレージを測定することを特徴とする請求項１に記載のカバレージ測定装置。
【請求項３】
前記カバレージ測定手段は、前記複数の関数のカバレージ測定結果の内、最も低いカバレージ測定結果をカバレージ測定結果とすることを特徴とする請求項２に記載のカバレージ測定装置。
【請求項４】
前記関数を同定する関数同定手段をさらに備え、
前記離散区分設定手段は、前記同定された関数の特性に基づき、離散区分を設定することを特徴とする請求項１乃至３のいずれか一項に記載のカバレージ測定装置。
【請求項５】
前記離散区分設定手段は、前記同定された関数について、関数の変化量に基づいて離散区分を設定することを特徴とする請求項４に記載のカバレージ測定装置。
【請求項６】
制御プログラムを取得する制御プログラム取得工程と、
制御プログラムを解析して実行パスを抽出する実行パス抽出工程と、
実行パス中の関数について、入力空間を同定する入力空間同定工程と、
前記同定された入力空間を分割した離散区分を設定する離散区分設定工程と、
前記離散区分に基づき、テストのカバレージを測定するカバレージ測定工程と、
前記カバレージの測定結果を出力するカバレージ測定結果出力工程と、
を備えることを特徴とするカバレージ測定方法。
【請求項７】
コンピュータによって実行されるカバレージ測定プログラムであって、
制御プログラムを取得する制御プログラム取得手段、
制御プログラムを解析して実行パスを抽出する実行パス抽出手段、
実行パス中の関数について、入力空間を同定する入力空間同定手段、
前記同定された入力空間を分割した離散区分を設定する離散区分設定手段、
前記離散区分に基づき、テストのカバレージを測定するカバレージ測定手段、
前記カバレージの測定結果を出力するカバレージ測定結果出力手段、として前記コンピュータを機能させることを特徴とするカバレージ測定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御システム等のプログラムテストにおけるカバレージを測定するカバレージ測定装置に関する。
【背景技術】
【０００２】
制御システム等、各種プログラムのテストにおけるカバレージを測定する際、実行パスのみに基づいてカバレージを測定すると、実行パス中の関数の入出力値によって、異常出力があることについてテストが行われていなくても、カバレージ測定結果が１００％となる場合がある。よって、カバレージ測定の信頼性に問題が生じる可能性がある。従って、実行パスだけでなく、実行パス中の関数の入出力結果に関するカバレージ測定も行う方が望ましい。
【０００３】
関数の全ての入力値に対するテストの網羅率を測定すると、良いカバレージ測定結果を得るために、テスト処理に負荷がかかるため、テストケースの対象となる入力値をある程度絞る必要がある。
【０００４】
なお、データの分布状態に応じて空間分割を自動的に行う解析装置について、特許文献１に記載されている。
【０００５】
【特許文献１】特開２００６−１５５５５７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は、上記のような課題を解決するためになされたものであり、プログラム中の関数の入出力結果に関するテストについて、適切なカバレージ測定結果を提供するカバレージ測定装置を提供することにある。
【課題を解決するための手段】
【０００７】
本発明の１つの観点では、カバレージ測定装置は、制御プログラムを取得する制御プログラム取得手段と、制御プログラムを解析して実行パスを抽出する実行パス抽出手段と、実行パス中の関数について、入力空間を同定する入力空間同定手段と、前記同定された入力空間を分割した離散区分を設定する離散区分設定手段と、前記離散区分に基づき、テストのカバレージを測定するカバレージ測定手段と、前記カバレージの測定結果を出力するカバレージ測定結果出力手段と、を備える。
【０００８】
ここでいうカバレージとは、プログラムテストの実行網羅率をいう。上記のカバレージ測定装置は、テスト実行結果を参照して、テスト対象項目をどの程度網羅しているかを測定する。制御プログラム取得手段は、テスト対象のプログラムである制御プログラムを取得し、実行パス抽出手段は、上記制御プログラムの実行パスを抽出し、入力空間同定手段は、実行パス中の関数について入力空間を同定する。ここで、入力空間とは、関数の入力値の範囲をいう。離散区分設定手段は、入力空間を分割した離散区分を所定方法に基づいて設定する。カバレージ測定手段は、上記離散区分に基づき、テストのカバレージを測定する。例えば、カバレージ測定手段は、テストを実行した装置等で出力するテスト実行ログ情報を参照して、テストを実行した離散区分の数を、離散区分の数で除算した値をカバレージ測定結果とする。カバレージ測定結果出力手段は、カバレージ測定手段が測定したカバレージ測定結果を出力する。具体的に、カバレージ測定結果出力手段は、カバレージ測定結果を、表示装置に表示したり、所定のファイルに出力したりする。
【０００９】
このように、カバレージ測定装置は、制御プログラム中の実行パス中の関数について、入力値の範囲を特定し、入力範囲を所定の方法で分割した空間である離散区分を設定し、離散区分に対応するテストの実行率に基づいてカバレージ測定している。これによれば、カバレージ測定装置は、実行パス中の関数の入出力に関して信頼性のあるカバレージ測定を行うことができる。
【００１０】
上記のカバレージ測定装置の一態様では、前記実行パス毎に、実行パス中の関数を複数の関数に分割する関数分割手段をさらに備え、前記入力空間同定手段は、前記分割した関数毎に入力空間を同定し、前記カバレージ測定手段は、各関数のカバレージ測定結果に基づいて関数全体のカバレージを測定する。
【００１１】
この態様では、関数分割手段が関数を細分化し、カバレージ測定手段が細分化した関数に対するカバレージ測定結果に基づいて実行パス全体のカバレージ測定を行う。これによれば、カバレージ測定装置は、分割した関数に対してカバレージ測定を行っているので、関数の入力パラメタが複数あっても、良好なカバレージ測定結果を得るために膨大なテストを実行する必要がなくなる。
【００１２】
上記のカバレージ測定装置の他の一態様では、前記カバレージ測定手段は、前記複数の関数のカバレージ測定結果の内、最も低いカバレージ測定結果をカバレージ測定結果とする。
【００１３】
この態様では、カバレージ測定装置が、細分化した関数のカバレージ測定結果の内、最も低いカバレージ測定結果を、実行パス全体のカバレージ測定結果として測定するので、最も信頼度のあるカバレージ測定結果を提供することができる。
【００１４】
上記のカバレージ測定装置の他の一態様では、前記関数を同定する関数同定手段をさらに備え、前記離散区分設定手段は、前記同定された関数の特性に基づき、離散区分を設定する。
【００１５】
この態様では、カバレージ測定装置が、関数の特性を把握して、関数の特性に基づいて、離散区分を設定するので、関数の複雑度に左右されることなく、信頼度の高いカバレージ測定結果を提供することができる。
【００１６】
上記のカバレージ測定装置の他の一態様では、前記同定された関数について、変化量に基づいて離散区分を設定する。
【００１７】
この態様では、カバレージ測定装置が、関数の出力値の変化量に基づいて離散区分を設定することにより、関数の複雑度に左右されることなく、信頼度の高いカバレージ測定結果を提供することができる。
【００１８】
本発明の他の観点では、制御プログラムを取得する制御プログラム取得工程と、制御プログラムを解析して実行パスを抽出する実行パス抽出工程と、実行パス中の関数について、入力空間を同定する入力空間同定工程と、前記同定された入力空間を分割した離散区分を設定する離散区分設定工程と、前記離散区分に基づき、テストのカバレージを測定するカバレージ測定工程と、前記カバレージの測定結果を出力するカバレージ測定結果出力工程と、を備える。
【００１９】
この方法によっても、制御プログラム中の実行パス中の関数について、入力値の範囲を特定し、入力範囲を所定の方法で分割した空間である離散区分を設定し、離散区分に対応するテストの実行率に基づいてカバレージ測定しているので、実行パス中の関数の入出力に関して信頼性のあるカバレージ測定を行うことができる。
【００２０】
本発明の更なる他の観点では、コンピュータによって実行されるカバレージ測定プログラムであって、制御プログラムを取得する制御プログラム取得手段、制御プログラムを解析して実行パスを抽出する実行パス抽出手段、実行パス中の関数について、入力空間を同定する入力空間同定手段、前記同定された入力空間を分割した離散区分を設定する離散区分設定手段、前記離散区分に基づき、テストのカバレージを測定するカバレージ測定手段、前記カバレージの測定結果を出力するカバレージ測定結果出力手段、として前記コンピュータを機能させる。このプログラムによっても、制御プログラム中の実行パス中の関数について、入力値の範囲を特定し、入力範囲を所定の方法で分割した空間である離散区分を設定し、離散区分に対応するテストの実行率に基づいてカバレージ測定しているので、実行パス中の関数の入出力に関して信頼性のあるカバレージ測定を行うことができる。
【発明を実施するための最良の形態】
【００２１】
以下、図面を参照して本発明の好適な実施の形態について説明する。
【００２２】
［プログラムテストの概略説明］
図１を用いてプログラムテストの概略説明をする。図１に示すように、テスト対象のプログラムを保持する装置が、テスト入力セットを使用してテスト対象のプログラムを実行し、プログラム実行結果を出力する。また、上記装置は、テストを実行した機能に関する情報を有するテスト実行ログ情報も出力する。上記装置は、当該テスト実行ログ情報を参照すれば、プログラム中のどの機能をテストしたかを判別することができる。
【００２３】
テスト対象となる制御プログラムは、図２に示すように、センサ入力ストリームから、複数の関数（例えば、関数Ｆ１等）を介してアクチュエータ出力ストリームを算出するデータフローとして考えられる。図２のような算出機能は、図３（Ａ）及び図３（Ｂ）に示すような、リアルタイムＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）上の制御プログラムで実装される。
【００２４】
図２に示した関数は、図４に示すように、入力値ｕ、出力値ｙの入出力系としてみなすことができ、一定時間毎に実行される。各関数は、図５に示すような条件分岐に応じて出力し、各実行パス（実行パス２５０Ａ、実行パス２５０Ｂ）は制御モードと考えることができる。
【００２５】
ある実行パスに沿って考えるとき、図６（Ａ）に示すような出力値ｙが、入力値ｕのみに依存する場合（以下、状態量無しプログラムとも呼ぶ）と、図６（Ｂ）に示すような入力値ｕと、過去に関数を通過した際に算出した値である状態値ｘに依存する場合（以下、状態量有りプログラムとも呼ぶ）がある。これらのプログラムは、図７に示すような差分方程式で表すことができる。
【００２６】
従来のＭＣＤＣ（Ｍｏｄｉｆｉｅｄ  Ｃｏｎｄｉｔｉｏｎ  Ｄｅｃｉｓｉｏｎ  Ｃｏｖｅｒａｇｅ）などの分岐構造に基づくカバレージでは、連続的な入力空間の１点を通過すればカバーしたことになるため、漏れが生じる。
【００２７】
例えば、図８（Ａ）に示すような関数Ｐのような、入力値に基づいて、ＴｒｕｅかＦａｌｓｅが決まる場合、図８（Ｂ）に示す入力セットにより、関数Ｐの出力値を網羅することになる。従って、図８（Ｃ）のような関数Ｐを含む関数ｆは、図８（Ｂ）に示す入力セットについてテストを行えば（実行パス２５０Ｃ及び実行パス２５０Ｄ）、パスカバレージが１００％に達する。
【００２８】
しかし、関数ｆ内の、関数ｈ１（ｕ）及び関数ｈ２（ｕ）の入出力が、図９（Ａ）及び図９（Ｂ）に示すような入出力関係にある場合、パスカバレージが１００％に達していても図１０に示すような異常領域を検出することができないという問題点がある。
【００２９】
以下に記載するカバレージ測定装置は、上記のような異常領域に関するテストの網羅状況を適切に測定する。
【００３０】
［カバレージ測定装置］
図１１に本実施例におけるカバレージ測定装置を実現するコンピュータ１００の模式図を示す。コンピュータ１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｏｒ  Ｕｎｉｔ）１１と、メモリ１２と、入力装置１３と、ハードディスク１４と、ディスプレイ１５と、インタフェース１６とを備える。これらは、システムバス１０を介して接続されている。ＣＰＵ１１は、コンピュータ１の制御中枢として機能すると共に、各種のプログラムを実行する。メモリ１２は、例えばＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）であり、ＣＰＵ１１の作業領域として機能し、そこは処理途中のデータ等が記憶される。ハードディスク１４には、カバレージ測定プログラムが記憶されている。
【００３１】
入力装置１３は、例えばキーボードやマウスであり、オペレータが指示を入力するための入力手段として機能する。インタフェース１６は、外部機器との間で通信を行う機能を有する。ＣＰＵ１１は、インタフェース１６を介して各種データを取得する。
【００３２】
［カバレージ測定ユニット］
図１２は、カバレージ測定ユニット２００の機能ブロック図である。カバレージ測定ユニット２００は、実態的には、コンピュータ１００の構成要素により構成される。図１２に示すように、カバレージ測定ユニット２００は、制御プログラム取得部２０１、実行パス抽出部２０２、関数分割部２０３、関数同定部２０４、入力空間同定部２０５、離散区分設定部２０６、カバレージ測定部２０７、及びカバレージ測定結果出力部２０８を備える。
【００３３】
制御プログラム取得部２０１は、インタフェース１６を介してテスト対象のプログラムである制御プログラムを取得する。
【００３４】
実行パス抽出部２０２は、取得した制御プログラムに対して構文解析をし、実行パスを抽出する。
【００３５】
関数分割部２０３は、実行パス中の関数をさらに細分化する。関数を細分化する基準として、機能毎に分割する方法等がある。
【００３６】
関数同定部２０４は、入力パラメタに対する出力結果をサンプリングして、各関数の特性を定義する。ここでいう関数の特性とは、関数形をいう。
【００３７】
入力空間同定部２０５は、入力パラメタ及び状態値の入力範囲を意味する入力空間を特定する。ここで、状態値とは、過去に関数を実行した際に算出した値の内、保持している値をいう。
【００３８】
離散区分設定部２０６は、上記入力空間を分割した離散区分を所定方法に基づいて設定する。ここで、離散区分を設定する方法として、入力範囲をＮ等分に分割する方法や関数同定部２０４が同定した関数の特性に基づいて離散区分を設定する方法等がある。
【００３９】
カバレージ測定部２０７は、テストシュミレーション等により出力されたテスト実行ログ情報を用いて、上記離散区分に基づいてカバレージ測定をする。
【００４０】
カバレージ測定結果出力部２０８は、カバレージ測定部２０７が測定したカバレージ測定結果をディスプレイ１５等に表示したり、測定結果を含めたファイルを生成したりする。
【００４１】
［入力空間分割によるカバレージ測定方法（第１実施例）］
次に、入力空間分割によるカバレージ測定方法について説明する。ここで、入力空間分割によるカバレージ測定方法とは、関数の入力範囲を特定すると共に、当該関数の入力範囲を分割して、分割した領域に基づいてカバレージ測定する方法をいう。
【００４２】
まず、制御プログラム取得部２０１が制御プログラムを取得し、実行パス抽出部２０２が、制御プログラム（テスト対象のプログラム）について、構文解析を行い、実行パスを特定する。
【００４３】
そして、入力空間同定部２０５は、実行パス中の関数における入力パラメタや状態値の入力範囲を特定する。そして、離散区分設定部２０６は、入力空間同定部２０５が特定した入力範囲に基づいて、図１３（Ａ）及び図１３（Ｂ）に示すように入力空間を分割した離散区分を設定する。
【００４４】
そして、カバレージ測定部２０７は、上記離散区分に基づいてカバレージを算出する。具体的に、カバレージ測定部２０７は、図１３（Ｃ）に示す式のように、テスト実行した離散区分の数を、離散区分全体数で除算した値を空間カバレージ測度として測定する。
【００４５】
このように、カバレージ測定ユニット２００は、実行パスにおける関数について、入力パラメタや状態値の入力範囲を特定し、当該入力範囲を分割した離散区分を設定し、離散区分の網羅率に基づいてカバレージを算出している。
【００４６】
これによれば、カバレージ測定ユニット２００は、ただ単に関数の実行有無に基づいてカバレージ測定する場合に比して、信頼性のあるカバレージ測定結果を提供することができる。
【００４７】
［関数分割によるカバレージ測定方法（第２実施例）］
次に、関数分割によるカバレージ測定方法について説明する。ここで、関数分割によるカバレージ方法とは、関数を細分化し、細分化した関数毎にカバレージ測定を行い、当該関数毎のカバレージ測定結果に基づいて、実行パスのカバレージを測定する方法をいう。
【００４８】
関数分割によるカバレージ測定方法は、関数の入力パラメタや状態値が複数存在する場合に、上記入力空間分割によるカバレージ測定方法によりカバレージを測定すると、以下の式１に示すように、テスト対象となる離散区分が指数的に増えてしまい、網羅すべきテスト数が膨大となるという問題点を解消する方法である。
【００４９】
【数１】
0004893695.tif 000002
【００５０】
まず、制御プログラム取得部２０１が制御プログラムを取得し、実行パス抽出部２０２が制御プログラム（テスト対象のプログラム）について、構文解析を行い、実行パスを特定する。
【００５１】
そして、関数分割部２０３が実行パス中の関数について、十分小さな関数に分割する。ここで、関数分割部２０３が分割する基準として、機能毎で分割する方法や入力パラメタ毎に関連する関数に分割する方法等がある。概念的な例を図１４（Ａ）及び図１４（Ｂ）に示す。関数分割部２０３は、図１４（Ａ）に示すような関数Ｐを図１４（Ｂ）で示すように、関数Ｐ１、関数Ｐ２に分割する。
【００５２】
そして、入力空間同定部２０５は、実行パス中の関数における入力パラメタや状態値の入力範囲を特定する。そして、離散区分設定部２０６は、入力空間同定部２０５が特定した入力範囲を分割した離散区分を設定する。そして、カバレージ測定部２０７は、上記離散区分に基づいて関数毎にカバレージを測定し、図１４（Ｃ）に示すように、最も低いカバレージ結果の関数のカバレージ結果を関数全体のカバレージ結果とする。
【００５３】
このように、カバレージ測定ユニット２００は、実行パスにおける関数を分割して、分割した関数について入力パラメタや状態値の入力範囲を特定し、当該入力範囲を分割した離散区分を設定し、離散区分の網羅率に基づいてカバレージを測定している。
【００５４】
これよれば、カバレージ測定ユニット２００は、分割した関数に対してカバレージ測定を行っているので、関数の入力パラメタが複数あっても、良好なカバレージ測定結果を得るために膨大なテストを実行する必要がなくなる。
【００５５】
なお、カバレージ測定ユニット２００は、各関数のカバレージ測定結果の内、最も低いカバレージ測定結果を関数全体のカバレージ測定結果とする場合について述べたが、本発明は、これに限られず、各関数のカバレージ測定結果の平均値を関数全体のカバレージ測定結果とするようにしても良い。
【００５６】
［区分粒度設定によるカバレージ測定方法（第３実施例）］
次に、区分粒度設定によるカバレージ測定方法について説明する。ここで、区分粒度設定によるカバレージ測定方法とは、所定方法により、関数の特性を判断し、関数の特性に基づいて離散区分を決定し、決定した離散区分に基づいてカバレージを測定する方法をいう。
【００５７】
関数の入力値等の範囲に基づいて、離散区分を細かく設定すれば、問題の検出能力が上がるが、図１５（Ａ）に示すような単純な関数に対して細かい離散区分を設定すると、１００％に達するテストを生成するのに時間がかかり、図１５（Ｂ）に示すような複雑な関数に対して粗い離散区分を設定すると問題の検出能力が低くなってしまうという問題点があるが、区分粒度設定によるカバレージ測定方法を用いることにより、上記問題点を解消することができる。
【００５８】
まず、制御プログラム取得部２０１が、制御プログラムを取得し、実行パス抽出部２０２が制御プログラム（テスト対象のプログラム）について、構文解析を行い、実行パスを特定する。
【００５９】
そして、関数分割部２０３は、実行パス中の関数について、十分小さな関数に分割する。ここで、関数分割部２０３が分割する基準として、機能毎で分割する方法や変数に基づいて分割する方法等がある。
【００６０】
そして、関数同定部２０４は、関数形を同定する。具体的に、関数同定部２０４は、関数について、複数の入力パラメタに対する出力値から関数形を同定する。
【００６１】
そして、入力空間同定部２０５は、実行パス中の関数における入力パラメタや状態値の入力範囲を特定する。そして、離散区分設定部２０６は、関数形に基づいて入力空間同定部２０５が特定した入力範囲を分割した離散区分を設定する。具体的に、離散区分設定部２０６は、入力空間同定部２０５が特定した入力範囲について、関数の出力値の変化量に基づいて離散区分を設定する。そして、カバレージ測定部２０７は、上記離散区分に基づいてカバレージを測定する。例えば、カバレージ測定部２０７は、最も低いカバレージ結果の関数のカバレージ結果を関数全体のカバレージ結果とする。
【００６２】
このように、カバレージ測定ユニット２００は、実行パスにおける関数を分割して、分割した関数について、関数形を同定して、関数形の特徴に応じて離散区分を設定し、当該離散区分に基づいてカバレージ測定を行っている。
【００６３】
よって、カバレージ測定ユニット２００は、図１５（Ｃ）に示すように単純な関数には、粗く離散区分を設定し、図１５（Ｄ）に示すように複雑な関数には、細かく離散区分を設定する。
【００６４】
これにより、カバレージ測定ユニット２００は、単純な関数であるにも関わらず、細かい離散区分を設定してしまったり、複雑な関数であるにも関わらず粗い離散区分を設定してしまったりすることを回避することができる。
【００６５】
また、カバレージ測定ユニット２００は、関数の出力値の変化量に基づいて離散区分を設定することにより、関数の複雑度に左右されることなく、信頼度の高いカバレージ測定結果を提供することができる。
【００６６】
従って、カバレージ測定ユニット２００は、テスト処理負荷とカバレージ測定の信頼度とのバランスが取れたカバレージ測定を実現することができる。
【００６７】
［カバレージ測定処理手順］
次に、カバレージ測定処理について、図１６に示すフローチャートを用いて説明する。この処理は、コンピュータ１００内のＣＰＵ１１が、予め用意されたプログラムを実行することにより実現される。
【００６８】
ここで、カバレージ測定処理手順とは、上記「関数分割によるカバレージ測定方法」、「関数分割によるカバレージ測定方法」、及び「区分粒度設定によるカバレージ測定方法」を実行することをいう。
【００６９】
なお、上記測定方法の内、１つ又は２つを適用したプログラムをカバレージ測定処理として適用するようにしても良い。
【００７０】
まず、制御プログラム取得部２０１は、制御プログラムを取得する（ステップＳ１）。そして、実行パス抽出部２０２は、テスト対象である制御プログラムについて、構文解析し、実行パスを特定する（ステップＳ２）。
【００７１】
そして、関数分割部２０３は、実行パス内の関数について、十分小さい関数に分割する（ステップＳ３）。そして、関数同定部２０４は、関数分割部２０３が分割した関数について、関数形を同定する（ステップＳ４）。そして、入力空間同定部２０５は、各関数について、入力空間を同定する（ステップＳ５）。そして、離散区分設定部２０６は、各関数について、離散区分の設定を行う（ステップＳ６）。そして、カバレージ測定部２０７は、各関数に対してカバレージを測定し（ステップＳ７）、カバレージ測定結果出力部２０８は、カバレージ測定結果を出力し（ステップＳ８）、カバレージ測定処理を終了する。
【図面の簡単な説明】
【００７２】
【図１】プログラムテストの概念図である。
【図２】制御プログラムのデータフローを示す図である。
【図３】リアルタイム制御プログラムの例を示す図である。
【図４】関数の入出力を示す図である。
【図５】プログラムの条件分岐を示す図である。
【図６】状態量なしのプログラム及び状態量ありのプログラムの例を示す図である。
【図７】状態量なし及び状態量ありのプログラムに関する差分方程式の例を示す図である。
【図８】カバレージ対象のプログラムの例を示す図である。
【図９】カバレージ対象のプログラム内の関数の入出力例を説明する図である。
【図１０】カバレージ対象のプログラム内の関数の入出力における異常領域を示す図である。
【図１１】本発明におけるカバレージ測定装置を実現するコンピュータのブロック図である。
【図１２】本発明におけるカバレージ測定ユニットの機能ブロック図である。
【図１３】入力空間の分割の例を示す図である。
【図１４】関数分割の例を示す図である。
【図１５】関数の粒度設定の例を示す図である。
【図１６】カバレージ測定処理のフローチャートである。
【符号の説明】
【００７３】
１００  コンピュータ
２００  カバレージ測定ユニット
２０１  制御プログラム取得部
２０２  実行パス抽出部
２０３  関数分割部
２０４  関数同定部
２０５  入力空間同定部
２０６  離散区分設定部
２０７  カバレージ測定部
２０８  カバレージ測定結果出力部
【図１】
0004893695.tif 000003
【図２】
0004893695.tif 000004
【図３】
0004893695.tif 000005
【図４】
0004893695.tif 000006
【図５】
0004893695.tif 000007
【図６】
0004893695.tif 000008
【図７】
0004893695.tif 000009
【図８】
0004893695.tif 000010
【図９】
0004893695.tif 000011
【図１０】
0004893695.tif 000012
【図１１】
0004893695.tif 000013
【図１２】
0004893695.tif 000014
【図１３】
0004893695.tif 000015
【図１４】
0004893695.tif 000016
【図１５】
0004893695.tif 000017
【図１６】
0004893695.tif 000018