(57)【要約】【課題】プログラムの所定範囲内におけるテストについて適切なカバレージ測定を行なうことができるカバレージ測定装置を提供する。【解決手段】カバレージ測定装置は、制御プログラムを取得し、制御プログラムの実行パスを抽出し、抽出した実行パスの中からＦＳＭを抽出し、上記実行パスの抽出時又はＦＳＭの抽出時にテスト対象の絞り込みを行い、テスト実行ログ情報を取得し、取得したテスト実行ログ情報を参照し、抽出したＦＳＭに基づいたカバレージ測定を行う。このように、テスト対象の絞り込みを行なわせているので、テスト対象のプログラムの内、実際に必要とされるテスト項目を絞り込んでカバレージ測定を行うことができる。【選択図】図４
2009181549.tif 000002
【特許請求の範囲】
【請求項１】
制御プログラムを取得する制御プログラム取得手段と、
前記制御プログラムの実行パスを抽出する実行パス抽出手段と、
前記実行パス抽出手段が抽出した実行パスの中からＦＳＭを抽出するＦＳＭ抽出手段と、
テスト実行ログ情報を取得するテスト実行ログ情報取得手段と、
前記テスト実行ログ情報取得手段が取得したテスト実行ログ情報を参照して、前記ＦＳＭ抽出手段が抽出したＦＳＭに基づいたカバレージ測定を行うカバレージ測定手段と、
前記実行パス抽出手段又は前記ＦＳＭ抽出手段に対して、テスト対象の絞込みを行わせるテスト対象絞込み制御手段と、
を備えることを特徴とするカバレージ測定装置。
【請求項２】
前記制御プログラムから、所定の着目した出力項目に関連するプログラムである出力項目関連プログラムを抽出する出力項目関連プログラム抽出手段をさらに備え、
前記テスト対象絞込み制御手段は、前記実行パス抽出手段に対して、前記出力項目関連プログラムの実行パスを抽出させる請求項１に記載のカバレージ測定装置。
【請求項３】
前記テスト対象絞込み制御手段は、前記ＦＳＭ抽出手段に対して、抽出した実行パスの内、定義済みの機能に関する実行パスに基づいてＦＳＭを抽出させる請求項１に記載のカバレージ測定装置。
【請求項４】
前記機能の機能パターンを抽出する機能パターン抽出手段をさらに備え、
前記テスト対象絞込み制御手段は、前記ＦＳＭ抽出手段に対して、前記機能パターン抽出手段が抽出した機能パターンに基づいてＦＳＭを抽出させる請求項３に記載のカバレージ測定装置。
【請求項５】
制御プログラムを取得する制御プログラム取得工程と、
前記制御プログラムの実行パスを抽出する実行パス抽出工程と、
前記実行パス抽出工程で抽出した実行パスの中からＦＳＭを抽出するＦＳＭ抽出工程と、
テスト実行ログ情報を取得するテスト実行ログ情報取得工程と、
前記テスト実行ログ情報取得工程で取得したテスト実行ログ情報を参照して、前記ＦＳＭ抽出工程で抽出したＦＳＭに基づいたカバレージ測定を行うカバレージ測定工程と、
前記実行パス抽出工程又は前記ＦＳＭ抽出工程で、テスト対象の絞込みを行わせるテスト対象絞込み制御工程と、
を備えることを特徴とするカバレージ測定方法
【請求項６】
コンピュータによって実行されるカバレージ測定プログラムであって、
制御プログラムを取得する制御プログラム取得手段と、
前記制御プログラムの実行パスを抽出する実行パス抽出手段と、
前記実行パス抽出手段が抽出した実行パスの中からＦＳＭを抽出するＦＳＭ抽出手段と、
テスト実行ログ情報を取得するテスト実行ログ情報取得手段と、
前記テスト実行ログ情報取得手段が取得したテスト実行ログ情報を参照して、前記ＦＳＭ抽出手段が抽出したＦＳＭに基づいたカバレージ測定を行うカバレージ測定手段と、
前記実行パス抽出手段又は前記ＦＳＭ抽出手段に対して、テスト対象の絞込みを行わせるテスト対象絞込み制御手段、として前記コンピュータを機能させることを特徴とするカバレージ測定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御システムのテストにおけるカバレージを測定するカバレージ測定装置に関する。
【背景技術】
【０００２】
制御システムのテストにおけるカバレージを測定する技術が、例えば、特許文献１に記載されている。具体的に、特許文献１のカバレージ測定装置は、フローグラフを作成し、実際に実行するコード部分のみにカバレージ測定を絞り、さらに動的束縛を含んだコードについても絞込みを行う。これにより、上記カバレージ測定装置は、カバレージの測定精度を高めることができる。
【０００３】
【特許文献１】特開２００６−２９３７４０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記の特許文献１は、実際に実行する全てのコードについてカバレージ測定を行なっているため、ある特定の機能等、プログラムの一部についてテストが正確になされたか否かを判別することができない。
【０００５】
本発明は、上記のような課題を解決するためになされたものであり、プログラムの所定範囲内におけるテストについて適切なカバレージ測定を行なうことができるカバレージ測定装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の１つの観点では、カバレージ測定装置は、制御プログラムを取得する制御プログラム取得手段と、前記制御プログラムの実行パスを抽出する実行パス抽出手段と、前記実行パス抽出手段が抽出した実行パスの中からＦＳＭを抽出するＦＳＭ抽出手段と、テスト実行ログ情報を取得するテスト実行ログ情報取得手段と、前記テスト実行ログ情報取得手段が取得したテスト実行ログ情報を参照して、前記ＦＳＭ抽出手段が抽出したＦＳＭに基づいたカバレージ測定を行うカバレージ測定手段と、前記実行パス抽出手段又は前記ＦＳＭ抽出手段に対して、テスト対象の絞込みを行わせるテスト対象絞込み制御手段と、を備える。
【０００７】
ここでいうカバレージとは、プログラムテストの実行網羅率をいう。上記のカバレージ測定装置は、テスト対象項目を抽出し、テスト実行結果を参照して、テスト対象項目をどの程度網羅しているかを測定する。制御プログラム取得手段は、テスト対象のプログラムである制御プログラムを取得し、実行パス抽出手段は、上記制御プログラムの実行パスを抽出し、ＦＳＭ抽出手段は、上記実行パス抽出手段が抽出した実行パスの中からＦＳＭを抽出する。テスト実行ログ情報取得手段は、テスト実行ログ情報を取得する。カバレージ測定手段は、前記テスト実行ログ情報取得手段が取得したテスト実行ログ情報を用いて、前記ＦＳＭ抽出手段が抽出したＦＳＭに基づいてカバレージを測定する。
【０００８】
このように、カバレージ測定装置は、ＦＳＭ抽出手段が抽出したＦＳＭに基づいてカバレージを測定する。
【０００９】
なお、上記のカバレージ測定装置は、テスト対象絞込み制御手段を備えており、上記テスト対象絞込み制御手段が、上記実行パス抽出手段又はＦＳＭ抽出手段に対してテスト対象の絞り込みを行なわせる。
【００１０】
従って、カバレージ測定装置は、テスト対象のプログラムの内、実際に必要とされるテスト項目を絞り込んでカバレージ測定を行うので、不要なテストが行われていないことによりカバレージ測定結果が低い値になってしまうことを回避することができ、適切なカバレージ測定結果を提供することが可能となる。
【００１１】
上記のカバレージ測定装置の一態様では、前記制御プログラムから、所定の着目した出力項目に関連するプログラムである出力項目関連プログラムを抽出する出力項目関連プログラム抽出手段をさらに備え、前記テスト対象絞込み制御手段は、前記実行パス抽出手段に対して、前記出力項目関連プログラムの実行パスを抽出させる。
【００１２】
この態様では、出力項目関連プログラム抽出手段が、保持しているファイル等で定められた出力項目に影響するプログラムを抽出する。ここで、出力項目とは、関数内の処理を実行した結果得られる出力値をいう。そして、テスト対象絞込み制御手段が、実行パス抽出手段に対して出力項目関連プログラムの実行パスを抽出させる。これにより、出力項目を絞り込んでテストを実行した場合にカバレージ測定装置に対して出力項目を定義しておけば、カバレージ測定装置は、テスト対象を当該出力項目に絞り込むことができるので、当該出力項目に関するカバレージ測定結果を提供することができる。
【００１３】
上記のカバレージ測定装置の他の一態様では、前記テスト対象絞込み制御手段は、前記ＦＳＭ抽出手段に対して、抽出した実行パスの内、定義済みの機能に関する実行パスに基づいてＦＳＭを抽出させる。
【００１４】
この態様では、テスト対象絞込み制御手段は、ＦＳＭ抽出手段に対して、抽出済みの実行パスの内、ファイル等により定義済みの機能に関する実行パスを特定させ、特定させた実行パスに関するＦＳＭを抽出させる。これにより、カバレージ測定装置は、テスト対象の機能が、制御プログラム中の一部の機能である場合に、当該テスト対象の機能について、定義しておくことにより、テスト対象の機能に関するカバレージを適切に測定することができる。
【００１５】
上記のカバレージ測定装置の他の一態様では、前記機能の機能パターンを抽出する機能パターン抽出手段をさらに備え、前記テスト対象絞込み制御手段は、前記ＦＳＭ抽出手段に対して、前記機能パターン抽出手段が抽出した機能パターンに基づいてＦＳＭを抽出させる。
【００１６】
この態様では、機能パターン抽出手段は、前記機能の機能パターンを抽出する。ここで、機能パターンとは、当該機能を実現するパターンを意味する。そして、テスト対象絞込み制御手段は、ＦＳＭ抽出手段に対して、上記機能パターンに適合するパターンを特定させ、特定したパターンに基づいてＦＳＭを抽出させる。これにより、カバレージ測定装置は、条件に応じて処理内容が異なる機能について、適切にテストパターンを特定することができ、当該機能に関するテストについて、適切なカバレージ測定結果を提供することができる。
【００１７】
本発明の他の観点では、制御プログラムを取得する制御プログラム取得工程と、前記制御プログラムの実行パスを抽出する実行パス抽出工程と、前記実行パス抽出工程で抽出した実行パスの中からＦＳＭを抽出するＦＳＭ抽出工程と、テスト実行ログ情報を取得するテスト実行ログ情報取得工程と、前記テスト実行ログ情報取得工程で取得したテスト実行ログ情報を参照して、前記ＦＳＭ抽出工程で抽出したＦＳＭに基づいたカバレージ測定を行うカバレージ測定工程と、前記実行パス抽出工程又は前記ＦＳＭ抽出工程で、テスト対象の絞込みを行わせるテスト対象絞込み制御工程と、を備える。この方法によっても、テスト対象のプログラムの内、実際に必要とされるテスト項目を絞り込んでカバレージ測定を行うので、不要なテストが行われていないことによりカバレージ測定結果が低い値になってしまうことを回避することができ、適切なカバレージ測定結果を提供することが可能となる。
【００１８】
本発明の更なる他の観点では、コンピュータによって実行されるカバレージ測定プログラムであって、制御プログラムを取得する制御プログラム取得手段と、前記制御プログラムの実行パスを抽出する実行パス抽出手段と、前記実行パス抽出手段が抽出した実行パスの中からＦＳＭを抽出するＦＳＭ抽出手段と、テスト実行ログ情報を取得するテスト実行ログ情報取得手段と、前記テスト実行ログ情報取得手段が取得したテスト実行ログ情報を参照して、前記ＦＳＭ抽出手段が抽出したＦＳＭに基づいたカバレージ測定を行うカバレージ測定手段と、前記実行パス抽出手段又は前記ＦＳＭ抽出手段に対して、テスト対象の絞込みを行わせるテスト対象絞込み制御手段、として前記コンピュータを機能させる。このプログラムによってもテスト対象のプログラムの内、実際に必要とされるテスト項目を絞り込んでカバレージ測定を行うので、不要なテストが行われていないことによりカバレージ測定結果が低い値になってしまうことを回避することができ、適切なカバレージ測定結果を提供することが可能となる。
【発明を実施するための最良の形態】
【００１９】
以下、図面を参照して本発明の好適な実施の形態について説明する。
【００２０】
［プログラムテストの概略説明］
図１（Ａ）、図１（Ｂ）、及び図２を用いてプログラムテストの概略説明をする。図１（Ａ）に示すように、一般的にいう単体テストの場合、テスト対象のプログラムを保持する装置が、テスト入力セットを使用してテスト対象のプログラムを実行し、プログラム実結果を出力する。また、上記装置は、テストを実行した機能に関する情報を有するテスト実行ログ情報も出力する。上記装置は、当該テスト実行ログ情報を参照すれば、プログラム中のどの機能をテストしたかを判別することができる。
【００２１】
図１（Ｂ）に示すような、制御対象（例えば、エンジン等）と、制御装置（例えば、ＥＣＵ（Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ））とが閉ループ系を構成する制御システムについてテストを行う場合、図２に示すように、制御モードが切り替わることによって発生する不具合が存在するため、テスト状況を測定する装置は、テストにおいて各モードやモード間の遷移ケースがテストされたのか判断する必要がある。なお、モードとその遷移を表すモデルにＦＳＭ（Ｆｉｎｉｔｅ  Ｓｔａｔｅ  Ｍａｃｈｉｎｅ）があり、当該ＦＳＭに基づいて、テストケースの網羅状況を判別することができる。具体的には、テスト実行した状態遷移数を全状態遷移数（テストをすべき状態遷移数）で除算することによりテストケースの網羅状況（カバレージ）を判別することができる。
【００２２】
［カバレージ測定装置］
図３に本実施例におけるカバレージ測定装置を実現するコンピュータ１００の模式図を示す。コンピュータ１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｏｒ  Ｕｎｉｔ）１１と、メモリ１２と、入力装置１３と、ハードディスク１４と、ディスプレイ１５と、インタフェース１６とを備える。これらは、システムバス１０を介して接続されている。ＣＰＵ１１は、コンピュータ１の制御中枢として機能すると共に、各種のプログラムを実行する。メモリ１２は、例えばＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）であり、ＣＰＵ１１の作業領域として機能し、そこは処理途中のデータ等が記憶される。ハードディスク１４には、カバレージ測定プログラムが記憶されている。
【００２３】
入力装置１３は、例えばキーボードやマウスであり、オペレータが指示を入力するための入力手段として機能する。インタフェース１６は、外部機器との間で通信を行う機能を有する。ＣＰＵ１１は、インタフェース１６を介して各種データを取得する。
【００２４】
［カバレージ測定ユニット］
図４は、カバレージ測定ユニット２００の機能ブロック図である。カバレージ測定ユニット２００は、実態的には、コンピュータ１００の構成要素により構成される。図４に示すように、カバレージ測定ユニット２００は、制御プログラム取得部２０１、テスト対象絞込み制御部２０２、出力項目関連プログラム抽出部２０３、実行パス抽出部２０４、機能パターン抽出部２０５、ＦＳＭ抽出部２０６、テストシミュレーション部２０７、及びカバレージ測定部２０８を備える。
【００２５】
制御プログラム取得部２０１は、インタフェース１６を介してテスト対象のプログラムである制御プログラムを取得する。テスト対象絞込み制御部２０２は、テスト対象の状態遷移数の絞込みの制御を行う。具体的に、テスト対象絞込み制御部２０２は、実行パス抽出部２０４に対して、所定の出力情報に関連する実行パスのみを抽出させたり、ＦＳＭ抽出部２０６に対して、所定の機能に関するＦＳＭのみを抽出させたりする。
【００２６】
出力項目関連プログラム抽出部２０３は、後述する実行パス抽出部２０４が構文解析した内容を用いて、予めテスト対象として定義されている出力項目に関連するプログラムのみを抽出する。具体例については、後述する。なお、出力項目とは、関数内の処理を実行した結果得られる出力値をいう。
【００２７】
実行パス抽出部２０４は、制御プログラム取得部２０１が取得した制御プログラムに対して構文解析をし、テスト対象絞込み制御部２０２の命令に応じて、上記出力項目関連プログラム抽出部２０３が抽出したプログラムに基づいてパスを抽出する。
【００２８】
機能パターン抽出部２０５は、プログラム内の関数における、所定の機能パターンを抽出する。
【００２９】
ＦＳＭ抽出部２０６は、テスト対象絞込み制御部２０２の命令に応じて、実行パス抽出部２０４が抽出した実行パスに基づいてＦＳＭを抽出する。具体的には、ＦＳＭ抽出部２０６は、プログラム全体の機能の内、指定された機能に関するパスに基づいてＦＳＭを抽出したり、プログラム中の関数内から、所定の機能パターンに関するＦＳＭを抽出したりする。
【００３０】
テストシミュレーション部２０７は、テストを実行し、テスト実行ログ情報を取得する。テスト実行ログ情報とは、テストを実行したパス等の情報を含むログ情報をいう。
【００３１】
カバレージ測定部２０８は、取得したテスト実行ログ情報を参照してＦＳＭ抽出部２０６が抽出したＦＳＭに基づいたカバレージ測定を行う。
【００３２】
なお、本実施例では、テストシミュレーション部２０７がテスト実行ログ情報取得手段として機能する。
【００３３】
［出力項目対応パス抽出方法］
次に、出力項目に対応するパスの抽出方法について説明する。ここで、出力項目に対応するパスの抽出方法とは、テスト対象の出力項目として定義されている出力項目に関する処理を含むパスのみを抽出する方法をいう。なお、出力項目の定義方法として、ファイルに記載しておく方法や、入力装置を介して入力された情報を用いる方法などがある。
【００３４】
まず、実行パス抽出部２０４は、制御プログラム取得部２０１が取得した制御プログラム（テスト対象のプログラム）について構文解析を行う。そして、出力項目関連プログラム抽出部２０３は、上記構文解析した結果を用いて、予め定義されている出力項目に影響するプログラム（例えば、出力項目について演算等を行っている個所等）である出力項目関連プログラムを抽出する。
【００３５】
そして、テスト対象絞込み制御部２０２は、実行パス抽出部２０４に対して、出力項目関連プログラム抽出部２０３が抽出した出力項目関連プログラムに関する実行パスのみを抽出させる。
【００３６】
例えば、図５のサンプルプログラムのように、入力項目が（ｕ）で、出力項目が（ｘ、ｙ）である場合において、ブロック２の計算は出力項目ｘに影響しない。したがって、テスト対象の出力項目がｘに限定されているならば、ブロック２内の分岐に関するパスをカバレージに組み込むことは無駄であるため、実行パス抽出部２０４は、図６に示すようにブロック１内が同一でブロック２内の処理が異なるパス（例えば、パスＣ）を排除し、実行パスをパスＡ及びパスＢの２つとすることができる。
【００３７】
また、関数単位で見た場合、図５のサンプルプログラムは、図７（Ａ）のようにデータフローとして考えられる。出力項目関連プログラム抽出部２０３が、図７（Ｂ）のような関数がある場合、対象とする出力を起点として関数の依存関係をたどっていき、実行パス抽出部２０４が当該依存関係に基づいてパスを抽出することにより、出力項目に関するパスのみを抽出することが可能となる。なお、図７（Ｂ）における例の場合、テスト対象絞込み制御部２０２は、実行パス抽出部２０４に対して、関数Ｆ６、関数Ｆ７、関数Ｆ９を通過するパスを抽出対象から除外させる。
【００３８】
このように、カバレージ測定ユニット２００は、予め定義されている出力項目に関するプログラムである出力項目関連プログラムを抽出し、当該出力項目関連プログラムに基づいて実行パスを抽出する。そして、カバレージ測定ユニット２００は、当該実行パスに基づいてＦＳＭを抽出し、当該ＦＳＭに基づいてカバレージ測定を行えば、定義されている出力項目に関するカバレージ測定結果を提供することができる。
【００３９】
この場合、カバレージ測定ユニット２００は、定義された出力項目に関する実行パスに基づいたＦＳＭを抽出しているので、定義された出力項目以外の実行パスについてのテストがなされているか否かを測定対象とすることがない。
【００４０】
従って、カバレージ測定ユニット２００は、定義された出力項目以外の出力項目に関する実行パスに関してテストが行われていないことにより、カバレージ測定結果が低くなるということを回避することができる。
【００４１】
［出力項目対応パス抽出処理］
次に、出力項目対応パス抽出処理について、図８に示すフローチャートを用いて説明する。この処理は、コンピュータ１００内のＣＰＵ１１が、予め用意されたプログラムを実行することにより実現される。
【００４２】
まず、実行パス抽出部２０４は、テスト対象である制御プログラムについて、構文解析をする（ステップＳ２１）。
【００４３】
そして、出力項目について定義されている場合、出力項目関連プログラム抽出部２０３は、出力項目関連プログラムを抽出する（ステップＳ２２）。
【００４４】
そして、テスト対象絞込み制御部２０２は、実行パス抽出部２０４に対してステップＳ２２で抽出した出力項目関連プログラムに基づいて実行パスを抽出させて（ステップＳ２３）、出力項目対応パス抽出処理を終了する。
【００４５】
［指定機能を通過する実行パスに基づいたＦＳＭ抽出方法］
次に、指定機能を通過する実行パスに基づいたＦＳＭ抽出方法について説明する。指定機能を通過する実行パスに基づいたＦＳＭ抽出方法とは、実行パス抽出部２０４が抽出した実行パスの内、予め定義されている機能を実行するために必要となる実行パスを特定し、特定した実行パスについてＦＳＭを抽出する方法をいう。
【００４６】
最初に、指定機能を通過するパスであるか否かに関わらず全てのパスに基づいてＦＳＭを抽出する例を図９（Ａ）及び図９（Ｂ）を用いて説明する。実行パス抽出部２０４が、図９（Ａ）に示すような実行パスＡ〜実行パスＣを抽出した場合、当該実行パスＡ〜実行パスＣに用いて、ＦＳＭを抽出する。抽出したＦＳＭの例を図９（Ｂ）に示す。
【００４７】
図９（Ｂ）のＦＳＭは、例えば、実行パスＡの通りに処理していた際に、所定の条件Ｔ１を満たすと、実行パスＣに従って処理することを示す。
【００４８】
次に、予め定義された機能に基づいてＦＳＭを抽出する例を図１０（Ａ）及び図１０（Ｂ）を用いて示す。図１０（Ａ）に、テスト対象の機能が設定されている場合のフローチャートの例を示し、機能１５０Ａ及び機能１５０Ｂがテスト対象の機能として定義されているものとする。
【００４９】
この場合、ＦＳＭ抽出部２０６は、実行パス抽出部２０４が抽出した実行パスの内、テスト対象の機能１５０Ａ又は機能１５０Ｂを実行する実行パスＡ及び実行パスＢを特定する。そして、ＦＳＭ抽出部２０６は、図９（Ｂ）に示すような実行パスＡ及び実行パスＢに関するＦＳＭを抽出する。
【００５０】
このように、カバレージ測定ユニット２００は、定義された機能を実行する実行パスについてのＦＳＭのみを抽出し、当該ＦＳＭに基づいてカバレージ測定を行うので、定義された機能以外のテストが実行されていないことによりカバレージ測定結果が低い結果になってしまうことを回避することができる。即ち、カバレージ測定ユニット２００は、定義された機能に関するテスト実行状況についての適切な指標を提供することができる。
【００５１】
［機能に基づくＦＳＭ抽出方法］
機能に基づくＦＳＭ抽出方法とは、ある特定の機能に関するパターンを抽出し、抽出したパターンに基づいてＦＳＭを抽出する方法をいう。図１１〜図１５を用いて、機能に基づくＦＳＭ抽出方法の具体例を示す。
【００５２】
大きなロジックの一部に図１１の例のような１次フィルタの次定数を切り替えるロジックと、他のロジックとを混在して一つの関数として機能しているものとする。このとき、プログラム全体の中で１次フィルタの次定数の切替によって問題が発生しないかテストしたいものとする（なお、切替は他にも存在する）。
【００５３】
例として、図１１の機能は、図１２のようなプログラムとして実装できる。機能パターン抽出部２０５は、実行パス抽出部２０４が抽出した実行パスの中から関数内における機能パターンを抽出する。そうすると、機能パターン抽出部２０５は、図１３に示すような同定パターンを抽出することができる。
【００５４】
そして、テスト対象絞込み制御部２０２は、ＦＳＭ抽出部２０６に対して、図１４に示すような機能パターン抽出部２０５が抽出した機能パターンにマッチする実行パスを特定させ、図１５に示すように、特定した実行パスに基づいてＦＳＭを抽出させる。
【００５５】
このように、カバレージ測定ユニット２００は、カバレージ定義として、着目したい機能を実現している機能パターンを定義し、コードの中から機能パターンを発見、その部分のみをカバーすべきモードとして定義することによって注目したい機能のみに焦点を絞ることができる。
【００５６】
また、カバレージ測定ユニット２００は、条件に応じて処理内容が異なる機能について、適切にテストパターンを特定することができ、当該機能に関するテストについて、適切なカバレージ測定結果を提供することができる。
【００５７】
［カバレージ測定処理］
次に、カバレージ測定処理について、図１６に示すフローチャートを用いて説明する。この処理は、コンピュータ１００内のＣＰＵ１１が、予め用意されたプログラムを実行することにより実現される。
【００５８】
まず、制御プログラム取得部２０１が、テスト対象のプログラムである制御プログラムを取得する（ステップＳ３１）。
【００５９】
そして、カバレージ測定ユニット２００が、出力項目対応パス抽出処理を行う（ステップＳ３２）。具体的な処理内容については、既に説明済みなので、省略する。
【００６０】
次に、テスト対象絞込み制御部２０２が、ＦＳＭ抽出部２０６に対して実行パス抽出部２０４が抽出した実行パスを用いて、予め定義されている機能を通過するパスのみに基づいてＦＳＭを抽出させる（ステップＳ３３）。次に、機能パターン抽出部２０５が、所定の関数内における機能パターンを抽出し、テスト対象絞込み制御部２０２は、ＦＳＭ抽出部２０６に対して上記機能パターンに基づいたＦＳＭを抽出させる（ステップＳ３４）。
【００６１】
そして、テストシミュレーション部２０７がテストシミュレーションを行い、テスト実行ログ情報を取得する（ステップＳ３５）。そして、カバレージ測定部２０８は、取得したテスト実行ログ情報を参照してＦＳＭ抽出部２０６が抽出したＦＳＭに基づいたカバレージ測定を行い（ステップＳ３６）、カバレージ測定処理を終了する。
【００６２】
以上のように、カバレージ測定ユニット２００は、実行パス抽出部２０４又はＦＳＭ抽出部２０６に対してテスト対象の絞り込みを行なわせているので、テスト対象のプログラムの内、実際に必要とされるテスト項目を絞り込んでカバレージ測定を行う。
【００６３】
従って、カバレージ測定ユニット２００は、不要なテストが行われていないことによりカバレージ測定結果が低い値になってしまうことを回避することができ、適切なカバレージ測定結果を提供することが可能となる。
【００６４】
［変形例］
カバレージ測定ユニット２００は、テストシミュレーション部２０７がテストシミュレーションした結果のテスト実行ログ情報を取得する場合について述べたが、他の装置でテストシミュレーションしたテスト実行ログ情報を、インタフェース１６を介して取得するようにしても良い。
【図面の簡単な説明】
【００６５】
【図１】プログラムテストの概念図である。
【図２】特定の制御モードに起因する不具合の例を説明するための図である。
【図３】本発明におけるカバレージ測定装置を実現するコンピュータのブロック図である。
【図４】本発明におけるカバレージ測定ユニットの機能ブロック図である。
【図５】出力項目対応パス抽出方法を説明するためサンプルプログラムの図である。
【図６】サンプルプログラム内の有効パスを説明する図である。
【図７】複数の関数を含むプログラムから有効パスを特定する例を説明する図である。
【図８】出力項目対応パス抽出処理を示すフローチャートである。
【図９】実行パスからＦＳＭを抽出する例を説明する図である。
【図１０】テスト対象機能を絞った場合の、実行パスからＦＳＭを抽出する例を説明する図である。
【図１１】サンプル関数の例を示す図である。
【図１２】サンプル関数のフローチャートである。
【図１３】サンプル関数内の機能パターンを示す図である。
【図１４】機能パターンにマッチするパターンを示す図である。
【図１５】機能パターンにマッチするパターンに基づいて生成したＦＳＭの例を示す図である。
【図１６】カバレージ測定処理のフローチャートである。
【符号の説明】
【００６６】
１００  コンピュータ
２００  カバレージ測定ユニット
２０１  制御プログラム取得部
２０２  テスト対象絞込み制御部
２０３  出力項目関連プログラム抽出部
２０４  実行パス抽出部
２０５  機能パターン抽出部
２０６  ＦＳＭ抽出部
２０７  テストシミュレーション部
２０８  カバレージ測定部
【図１】
2009181549.tif 000003
【図２】
2009181549.tif 000004
【図３】
2009181549.tif 000005
【図４】
2009181549.tif 000006
【図５】
2009181549.tif 000007
【図６】
2009181549.tif 000008
【図７】
2009181549.tif 000009
【図８】
2009181549.tif 000010
【図９】
2009181549.tif 000011
【図１０】
2009181549.tif 000012
【図１１】
2009181549.tif 000013
【図１２】
2009181549.tif 000014
【図１３】
2009181549.tif 000015
【図１４】
2009181549.tif 000016
【図１５】
2009181549.tif 000017
【図１６】
2009181549.tif 000018