(57)【要約】【課題】テストの実行を効率化することができる、テスト実行支援装置を提供する。【解決手段】テスト対象のテスト対象機能を指定する静的変数の初期値を含む処理対象プログラムから、初期値を取得する取得手段と、プログラム群に含まれる、テスト対象機能をテストするための個別テストプログラムの実行条件と初期値との対応情報と取得した初期値とに基づき、プログラム群から実行対象の個別テストプログラムを抽出して実行プログラム情報を生成し、実行プログラム情報に基づいて個別テストプログラムを抽出し個別テストプログラムを実行するテスト対象装置へ出力する抽出手段と、を備える。【選択図】      図１
2014232428.tif 000002
【特許請求の範囲】
【請求項１】
テスト対象のテスト対象機能を指定する静的変数の初期値を含む処理対象プログラム、及び実行プログラム情報に基づいて選択した、プログラム群に含まれる、前記テスト対象機能をテストするための個別テストプログラムを実行するテスト実行手段を含むテスト対象装置と、
前記処理対象プログラムから前記初期値を取得する取得手段、前記個別テストプログラムの実行条件と前記初期値との対応情報と、前記取得した初期値とに基づき、前記プログラム群から実行対象の前記個別テストプログラムを抽出して前記実行プログラム情報を生成し、前記テスト対象装置へ出力する抽出手段と、を含むテスト実行支援装置と、
を備えることを特徴とするテストシステム。
【請求項２】
前記抽出手段は、前記実行プログラム情報の生成に代えて、前記プログラム群から実行対象の前記個別テストプログラムを抽出して前記実行プログラム情報を生成する情報生成プログラムを作成して前記テスト対象装置へ出力し、
前記テスト対象装置は、前記処理対象プログラム、前記情報生成プログラム、及び前記実行プログラム情報に基づいて選択した前記個別テストプログラムを実行する
ことを特徴とする請求項１に記載のテストシステム。
【請求項３】
テスト対象のテスト対象機能を指定する静的変数の初期値を含む処理対象プログラムから、前記初期値を取得する取得手段と、
プログラム群に含まれる、前記テスト対象機能をテストするための個別テストプログラムの実行条件と前記初期値との対応情報と前記取得した初期値とに基づき、前記プログラム群から実行対象の前記個別テストプログラムを抽出して実行プログラム情報を生成し、前記実行プログラム情報に基づいて前記個別テストプログラムを抽出し前記個別テストプログラムを実行するテスト対象装置へ出力する抽出手段と、
を備えることを特徴とするテスト実行支援装置。
【請求項４】
前記抽出手段は、前記実行プログラム情報の生成に代えて、前記プログラム群から実行対象の前記個別テストプログラムを抽出して前記実行プログラム情報を生成する情報生成プログラムを作成し、前記テスト対象装置へ出力する
前記テスト対象装置は、前記処理対象プログラム、前記情報生成プログラム、及び前記実行プログラム情報に基づいて選択した前記個別テストプログラムを実行する
ことを特徴とする請求項３に記載のテスト実行支援装置。
【請求項５】
テスト対象のテスト対象機能を指定する静的変数の初期値を含む処理対象プログラムから、前記初期値を取得し、
プログラム群に含まれる、前記テスト対象をテストするための個別テストプログラムの実行条件と前記初期値との対応情報と前記取得した初期値とに基づき、前記プログラム群から実行対象の前記個別テストプログラムを抽出して実行プログラム情報を生成し、
前記処理対象プログラム、及び前記実行プログラム情報に基づいて選択した前記個別テストプログラムを実行する
ことを特徴とするテスト実行方法。
【請求項６】
前記実行プログラム情報の生成に代えて、前記プログラム群から実行対象の前記個別テストプログラムを抽出して前記実行プログラム情報を生成する情報生成プログラムを作成し、
前記処理対象プログラム、前記情報生成プログラム、及び前記実行プログラム情報に基づいて選択した前記個別テストプログラムを実行する
ことを特徴とする請求項５に記載のテスト実行方法。
【請求項７】
テスト実行支援装置が備えるコンピュータを、
テスト対象のテスト対象機能を指定する静的変数の初期値を含む処理対象のプログラムから、前記初期値を取得する取得手段と、
プログラム群に含まれる、前記テスト対象機能をテストするための個別テストプログラムの実行条件と前記初期値との対応情報と前記取得した初期値とに基づき、前記プログラム群から実行対象の前記個別テストプログラムを抽出して実行プログラム情報を生成する抽出手段と、
して機能させるためのテスト実行支援プログラム。
【請求項８】
前記抽出手段は、前記実行プログラム情報の生成に代えて、前記プログラム群から実行対象の前記個別テストプログラムを抽出して前記実行プログラム情報を生成する情報生成プログラムを作成する
ことを特徴とする請求項７に記載のテスト実行支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テストの実行を効率化することができる、テスト実行支援装置、テストシステム、テスト実行方法、及び、テスト実行支援プログラムに関する。
【背景技術】
【０００２】
プログラム（ソフトウェア）の品質向上のためには、様々な場合を想定したテストケースにおいて、網羅的にテストが行われる必要がある。通常、プログラムの動作に影響を与える項目（因子）は複数存在し、各項目は様々な値や条件（水準）をとりうる。そこで、テストケースは、各因子の各水準の組み合わせが広く網羅されるように設計されることが望ましい。
【０００３】
ところが、因子数をｍ（ｍは１以上の整数）、水準数をｎ（ｎは１以上の整数）とすると、因子の組み合わせ（テストケース）の数はｎのｍ乗個であり、因子の組み合わせが完全に網羅されることは困難である。
【０００４】
そこで、与えられた因子と水準に基づき、限られた個数でありながら効果的な組み合わせテストのテストケースを生成する技術が開発されてきた。このような、効果的な組み合わせテストのテストケースを生成する組み合わせテスト技法は、当業者に広く知られているので、ここでは詳しく説明しない（直交表、Ｐａｉｒｗｉｓｅ法(Ａｌｌ−Ｐａｉｒ法)等）。
【０００５】
例えば、組み合わせテスト技法を利用するプログラムテスト支援装置の例が、特許文献１に開示されている。特許文献１のプログラムテスト支援装置は、単体テストの所定のテスト項目毎に、テスト対象ソフトウェア、言語仕様、業務仕様等に基づいて、テストの因子と水準を分析する。特許文献１のプログラムテスト支援装置は、テストケース生成技法（Ａｌｌ−Ｐａｉｒ法や直交表を用いた手法や、代表値のみの組み合わせから１変数のみ値を変更する等の手法）に基づいて、分析結果からテストケースを生成する。特許文献１のプログラムテスト支援装置は、更に、テストケースに対応したテストプログラムを生成する。
【０００６】
ところで、多数のテストケースにおいて効率的にテストが実行されるためには、テストの実行自体が効率化されることが望ましい。
【０００７】
テストの実行を自動化する各種の技術がある。例えば、テストシナリオに沿ったテストの実行を自動化することができるテストシナリオ生成装置が、特許文献２に開示されている。
【０００８】
特許文献２のシナリオ生成装置は、テスト被対象装置が人手の操作だけではなく外部信号に基づいて動作する場合であっても、そのテスト被対象装置が正常に動作するか否かについてテストするテストシナリオを生成する。すなわち、特許文献２のシナリオ生成装置は、外部信号の特性の変化とテストパラメータに基づいて、テストシナリオを生成する。特許文献２のシナリオ生成装置は、テストシナリオをテスト装置に送信し、テスト装置は、テストシナリオに従ってテスト被対象装置の動作のテストを行う。
【０００９】
ところで、メモリ容量に制約のある組込みシステムでは、システムを動作させるプログラムがＲＯＭ（Read-Only Memory）に格納されることにより、ＲＡＭ（Random Access Memory）の使用量が削減されることがある。プログラムの動作中に内容が変化することの無い静的データがＲＯＭに格納されることで、ＲＡＭの使用量が更に削減される。一般に、同容量のＲＯＭとＲＡＭでは、ＲＯＭの方がコスト的に有利なので、上記のようなＲＡＭの使用量の削減対策は有効である。
【００１０】
このようなシステムでは、プログラムに含まれる機能のうち、実際に使用される機能が、静的データに基づいて決定されることがある。このような静的データは、静的変数の初期値としてプログラムにより保持されることがある。「静的変数」とは、プログラムの開始から終了まで、プログラムにより値が保持される変数（データ）である。初期値とは、プログラムの開始時に最初に設定される変数の値である。静的変数の初期値は、プログラム中で静的変数の宣言と同時に設定されることがある。
【００１１】
以下では特に、テスト対象の機能が静的変数の初期値により指定されるテスト対象（プログラム、又はプログラムが動作する装置を含む）のテストについて説明する。
【００１２】
このようなテストでは、テストケースが機能（１つの機能の、異なる動作形態を含む）毎に用意されている場合、機能毎、つまり静的変数の初期値に応じて、適切なテストケースが実行される必要がある。
【００１３】
また、静的変数の初期値により指定されるテスト対象の機能が複数存在し、さらに各テスト対象の機能の組み合わせによる、複数のテスト対象（プログラム又は装置）も存在することがある。このような場合では、テストプログラム中の静的変数の個数、又は静的変数の取り得る初期値の個数が多いとき、組み合わせテストケースの個数が膨大になる。そのため、適切な組み合わせテストケースを抽出し、各テストケースにおいてテストを実行するために、プログラムの実行に膨大な工数が必要であり、またプログラムの実行時間も膨大になる。
【００１４】
そのため、静的変数の初期値に基づきテスト対象機能が決定されるテスト対象（プログラム又は装置）において、各テストケースに対応した個別のテストの実行が効率化されることが望ましい。
【先行技術文献】
【特許文献】
【００１５】
【特許文献１】特開２０１２−２４８１０１号公報（第７−８ページ、図１、６−１０）
【特許文献２】特開２０１０−１２３０５２号公報（第５−１７ページ、図１、２、９、１０）
【発明の概要】
【発明が解決しようとする課題】
【００１６】
特許文献１のプログラムテスト支援装置は、テストケースに対応した多数のテストプログラムを生成する。ところが、特許文献１のプログラムテスト支援装置は、テストプログラムの信頼性のテスト、すなわち、テストケースが対応付けられていないテスト項目が存在しないことの判定を行うものであり、テストプログラムを実行する作業自体を効率化するものではない。そのため、特許文献１のプログラムテスト支援装置では、必ずしも、多数のテストケースに対応するテストを実行する作業を効率化できるとはいえない。なぜなら、判定対象のテスト項目には含まれない、他のテスト項目に対応するテストケースが含まれる可能性があるためである。
【００１７】
特許文献２のシナリオ生成装置は、外部信号の特性の変化とテストパラメータに基づいて、テストシナリオを生成する。しかし、生成されたテストシナリオを用いたテストの効率化、すなわち、生成されたテストシナリオに指定された個々のテスト項目に対応したテスト（以下、「項目別テスト」という。）自体の効率化までが実現される保証はない。すなわち、特許文献２のシナリオ生成装置は、必要なテスト項目のテストが行われるテストシナリオを生成するが、項目別テストについては効率化できない。
（発明の目的）
本発明の目的は、テストの実行を効率化することができる、テスト実行支援装置、テストシステム、テスト実行方法、及び、テスト実行支援プログラムを提供することにある。
【課題を解決するための手段】
【００１８】
本発明のテスト実行支援装置は、テスト対象のテスト対象機能を指定する静的変数の初期値を含む処理対象プログラムから、初期値を取得する取得手段と、プログラム群に含まれる、テスト対象機能をテストするための個別テストプログラムの実行条件と初期値との対応情報と取得した初期値とに基づき、プログラム群から実行対象の個別テストプログラムを抽出して実行プログラム情報を生成し、実行プログラム情報に基づいて個別テストプログラムを抽出し個別テストプログラムを実行するテスト対象装置へ出力する抽出手段と、を備えることを特徴とする。
【００１９】
本発明のテストシステムは、テスト対象のテスト対象機能を指定する静的変数の初期値を含む処理対象プログラム、及び実行プログラム情報に基づいて選択した、プログラム群に含まれる、テスト対象機能をテストするための個別テストプログラムを実行するテスト実行手段を含むテスト対象装置と、処理対象プログラムから初期値を取得する取得手段、個別テストプログラムの実行条件と初期値との対応情報と、取得した初期値とに基づき、プログラム群から実行対象の個別テストプログラムを抽出して実行プログラム情報を生成し、テスト対象装置へ出力する抽出手段と、を含むテスト実行支援装置と、を備えることを特徴とする。
【００２０】
本発明のテスト実行方法は、テスト対象のテスト対象機能を指定する静的変数の初期値を含む処理対象プログラムから、初期値を取得し、プログラム群に含まれる、テスト対象をテストするための個別テストプログラムの実行条件と初期値との対応情報と取得した初期値とに基づき、プログラム群から実行対象の個別テストプログラムを抽出して実行プログラム情報を生成し、処理対象プログラム、及び実行プログラム情報に基づいて選択した個別テストプログラムを実行することを特徴とする。
【００２１】
本発明のテスト実行支援プログラムは、テスト実行支援装置が備えるコンピュータを、テスト対象のテスト対象機能を指定する静的変数の初期値を含む処理対象のプログラムから、初期値を取得する取得手段と、プログラム群に含まれる、テスト対象機能をテストするための個別テストプログラムの実行条件と初期値との対応情報と取得した初期値とに基づき、プログラム群から実行対象の個別テストプログラムを抽出して実行プログラム情報を生成する抽出手段として機能させることを特徴とする。
【発明の効果】
【００２２】
本発明によれば、テストの実行を効率化することができるという効果がある。
【図面の簡単な説明】
【００２３】
【図１】本発明の第１の実施形態におけるテスト実行支援装置の構成の一例を示すブロック図である。
【図２】本発明の第１の実施形態におけるテスト実行支援装置のハードウェア構成の一例を示すブロック図である。
【図３】本発明の第１の実施形態におけるテスト実行支援装置の動作を示すフローチャートである。
【図４】本発明の第１の実施形態における、具体的なプログラム等の記述例を示す図である。
【図５】本発明の第１の実施形態におけるテスト実行支援装置の動作結果の具体例を説明するための図である。
【図６】本発明の第２の実施形態におけるテスト実行支援装置の動作を示すフローチャートである。
【図７】本発明の第２の実施形態におけるテスト実行支援装置の動作結果の具体例を説明するための図である。
【発明を実施するための形態】
【００２４】
以下、本発明の実施形態について図面を参照して詳細に説明する。尚、すべての図面において、同等の構成要素には同じ符号を付し、適宜説明を省略する。
（第１の実施形態）
図１は、本実施形態におけるテスト実行支援装置の構成の一例を示すブロック図である。
【００２５】
まず、テスト実行支援装置１００が前提とする、テスト対象装置について説明する。
【００２６】
テスト対象装置２００は、テストドライバを用いたテストが実行される装置（組み込みシステム、コンピュータ等）である。
【００２７】
テスト対象装置２００は、テスト実行手段２５０を備える。テスト実行手段２５０は、処理対象プログラム２１０と、テストドライバ２２０と、ドライバリスト２３０とに基づいて、テストを実行する。
【００２８】
処理対象プログラム２１０は、テスト対象装置２００上で実行されるプログラムである。テスト対象の機能は、処理対象プログラム２１０、又はテスト対象装置２００のハードウェアにより実現される。テスト対象である、テスト対象装置２００において実現される機能は、処理対象プログラム２１０中で記述された静的変数の初期値により指定される。
【００２９】
テストドライバ２２０は、テスト対象に対する各種のテストケースのためのテストの実行時に使用されるプログラム群である。テストドライバ２２０は、通常、テスト対象の機能毎に用意されるが、複数の機能のテストに対して共通なプログラムとして用意されてもよい。テストドライバ２２０には、特定の静的変数の初期値の組み合わせに対応するテストケース以外のテストケースのためのテストドライバも含まれる。
【００３０】
ドライバリスト２３０は、テスト対象のテストの実行に必要なテストドライバを示すリスト、又は必要なテストドライバを抽出するプログラムである。
【００３１】
テスト対象装置２００は、テスト実行手段２５０を用いて、ドライバリスト２３０に従ってテストドライバ２２０中の必要なテストドライバを選択して、処理対象プログラム２１０の一部を実行する。そして、テスト対象装置２００は、テスト実行手段２５０を用いて、テスト対象をテストし、テスト結果２８０を出力する。
【００３２】
テスト実行支援装置１００は、処理対象プログラム２１０とテストドライバ実行条件記述１３０とに基づいて、ドライバリスト２３０を生成する。
【００３３】
テストドライバ実行条件記述１３０は、テストドライバ２２０に含まれる各テストドライバが実行されるための、静的変数の初期値に関する条件である実行条件が記述されたデータである。実行条件とは、特定のテストドライバが実行されるための、静的変数の値が満たすべき条件を規定するもので、例えば、静的変数の値が取るべき値又は値の範囲といった条件である。テストドライバ実行条件記述１３０は、処理対象プログラム２１０及びテストドライバ２２０に応じて予め準備される。
【００３４】
テスト実行支援装置１００は、テストドライバ実行条件記述１３０と、静的変数抽出手段１１０と、テストドライバ抽出手段１２０とを備える。
【００３５】
静的変数抽出手段１１０は、処理対象プログラム２２０を解析して、処理対象プログラム２２０の機能を指定する静的変数の初期値のリストである「初期値リスト」を抽出し、テストドライバ抽出手段１２０に渡す。初期値リストは、静的変数の一覧と、それらの初期値を列挙したものである。したがって、静的変数の初期値自体のみでなく、静的変数の初期値を取得するプログラムも含まれてもよい。
【００３６】
テストドライバ抽出手段１２０は、静的変数抽出手段１１０に接続される。テストドライバ抽出手段１２０は、初期値リストと、テストドライバ実行条件記述１３０とに基づいて、テストドライバ２２０のうち、特定のテスト対象の機能をテストするテストドライバの一覧である「ドライバリスト」を抽出する。テストドライバ抽出手段１２０は、抽出結果を、ドライバリスト２３０に出力する。
【００３７】
図２は、本実施形態におけるテスト実行支援装置のハードウェア構成の一例を示すブロック図である。
【００３８】
テスト実行支援装置１０１は、記憶装置１０２と、ＣＰＵ（Central Processing Unit）１０３と、キーボード１０４と、モニタ１０５と、Ｉ／Ｏ（Input/Output）１０８とを備え、これらが内部バス１０６で接続されている。記憶装置１０２は、テストドライバ抽出手段１２０等のＣＰＵ１０３の動作プログラムを格納する。ＣＰＵ１０３は、テスト実行支援装置１０１全体を制御し、記憶装置１０２に格納された動作プログラムを実行し、Ｉ／Ｏ１０８を介してテストドライバ抽出手段１２０等のプログラムの実行やデータの送受信を行なう。なお、上記のテスト実行支援装置１０１の内部構成は一例である。テスト実行支援装置１０１は、ＣＰＵ１０３のみを備え、外部に備えられた、記憶装置１０２、キーボード１０４、モニタ１０５、及びＩ／Ｏ１０８を用いて動作してもよい。
【００３９】
次に、本実施形態の動作を説明する。
【００４０】
図３は、本実施形態におけるテスト実行支援装置１００の動作を示すフローチャートである。
【００４１】
静的変数抽出手段１１０は、処理対象プログラム２１０から、処理対象プログラム２１０の機能を指定する静的変数の初期値リストを抽出する（ステップＳ１１）。
【００４２】
次に、テストドライバ抽出手段１２０は、抽出された初期値リストと、テストドライバ実行条件記述１３０とに基づき、実行対象のテストドライバの一覧であるドライバリストを生成する（ステップＳ１２）。
【００４３】
図４は、本実施形態における、具体的なプログラム等の記述例を示す図である。図４（ａ）は、処理対象プログラム２１０の例である。図４（ｂ）は、テストドライバ２２０の例である。図４（ｃ）は、テストドライバ実行条件記述１３０の例である。
【００４４】
以下では、３つの機能Ａ、Ｂ、Ｃを有し、Ｃ言語で記述された処理対象プログラム２１０を具体例として説明する。尚、Ｃ言語は一例であり、本実施形態で使われるプログラム言語は、Ｃ言語に限定されない。
【００４５】
図４（ａ）の処理対象プログラム２１０には、以下の内容が記述されている。
【００４６】
第１−３行は、処理対象プログラム２１０の機能Ａ、Ｂ、Ｃを指定する静的変数“ｐａｒａｍｅｔｅｒ＿Ａ”、“ｐａｒａｍｅｔｅｒ＿Ｂ”、“ｐａｒａｍｅｔｅｒ＿Ｃ”の宣言である。静的変数には、それぞれ、初期値“ＯＮ”、“ＯＦＦ”、“ＯＮ”が設定される。つまり、機能Ａ、Ｃは有効化され、機能Ｂは無効化される。
【００４７】
第５−１３行は、処理対象プログラム２１０のメインルーチンである。第５行のメインルーチンの名称“ｍａｉｎ”は、テスト実行時に適当な名前に変更されてもよい。
【００４８】
処理対象プログラム２１０のメインプロセスが起動されると、まず、３つの静的変数の初期値に基づいて、３つの機能Ａ、Ｂ、Ｃを処理する３つのプロセスを起動するルーチンが順に処理される（第６−１１行）。各プロセス起動ルーチンは、対応する子プロセスを起動して終了し、起動された子プロセスはメインプロセス（メインルーチンに対応）の終了まで常駐する。起動された各子プロセスは、各子プロセスに対応する機能Ａ、Ｂ、Ｃの処理を行う。最後に、メインループが実行される（第１２行）。メインプロセスは、別途、終了が指示されるまで常駐する。
【００４９】
図４（ｂ）のテストドライバ２２０には、以下の内容が記述されている。
【００５０】
第１−６行は、処理対象プログラム２１０の機能Ａのテストを実行するテストドライバである。テストドライバ２２０が実行されると、まず、機能Ａのテストを実行するルーチン“ｔｅｓｔ＿ｆｕｎｃｔｉｏｎ＿Ａ”が実行され、実行結果（成功又は失敗）がルーチンの戻り値を通して変数“ｒｅｔ＿ｖａｌ”に設定される（第４行）。最後に、“ｒｅｔ＿ｖａｌ”に設定された値が正しい（“ＯＫ”）か否か検査する（第５行）。具体的には、変数“ｒｅｔ＿ｖａｌ”に設定された値が“ＯＫ”ならば実行結果は成功で何も表示せず、そうでなければエラーメッセージを表示する。
【００５１】
第８−１３行は、処理対象プログラム２１０の機能Ｂのテストを実行するテストドライバである（機能Ａの場合と同様）。
【００５２】
第１５−２０行は、処理対象プログラム２１０の機能Ｃのテストを実行するテストドライバである（機能Ａの場合と同様）。
【００５３】
図４（ｃ）のテストドライバ実行条件記述１３０には、特定のドライバを実行するための静的変数の初期値に関する実行条件として、以下の内容が記述されている。
【００５４】
第１−２行は、処理対象プログラム２１０の機能Ａのテストを実行するテストドライバを指定する行である。
【００５５】
処理対象プログラム２１０の機能Ａを指定する静的変数“ｐａｒａｍｅｔｅｒ＿Ａ”の初期値が“ＯＮ”であれば、テストドライバ“ｄｒｉｖｅｒ１”が実行される（第１行）。処理対象プログラム２１０の機能Ａを指定する静的変数“ｐａｒａｍｅｔｅｒ＿Ａ”の初期値が“ＯＦＦ”であれば、テストドライバ“ｄｒｉｖｅｒ２”が実行される（第２行）。
【００５６】
第３−４行は、処理対象プログラム２１０のそれぞれ機能Ｂ、Ｃのテストを実行するテストドライバを指定する行である。
【００５７】
それぞれ、処理対象プログラム２１０の機能Ｂ、Ｃのそれぞれを指定する静的変数“ｐａｒａｍｅｔｅｒ＿Ｂ”、“ｐａｒａｍｅｔｅｒ＿Ｃ”の初期値が“ＯＮ”であれば、テストドライバ“ｄｒｉｖｅｒ２”、“ｄｒｉｖｅｒ３”が実行される（第３、４行）。
【００５８】
図５は、本実施形態におけるテスト実行支援装置の動作結果の具体例を説明するための図である。
【００５９】
本動作例では、図４（ａ）、（ｂ）、（ｃ）に示したプログラム等が与えられた場合の動作を説明する。
【００６０】
図５（ａ）は、図３のステップＳ１１において、静的変数抽出手段１１０が、処理対象プログラム２１０から抽出した初期値リストの具体例を示す表である。
【００６１】
図５（ａ）の表の１、２、３行目は、それぞれ、静的変数“ｐａｒａｍｅｔｅｒ＿Ａ”、“ｐａｒａｍｅｔｅｒ＿Ｂ”、“ｐａｒａｍｅｔｅｒ＿Ｃ”が、初期値“ＯＮ”、“ＯＦＦ”、“ＯＮ”を有することを示す。それぞれ、図５（ａ）に示された処理対象プログラム２１０の機能Ａ、Ｂ、Ｃを指定する３つの静的変数の宣言に対応する。
【００６２】
図５（ｂ）は、図３のステップＳ１２において、テストドライバ抽出手段１２０が入力するテストドライバ実行条件記述１３０の具体例を示す表である。
【００６３】
図５（ｂ）の表の１、２、３、４行目には、それぞれ、図４（ｃ）に示されたテストドライバ実行条件記述１３０の実行条件の記述がそのまま入力される。
【００６４】
図５（ｃ）は、テストドライバ抽出手段１２０が出力するドライバリスト２３０の例を示す表である（ステップＳ１２）。
【００６５】
図５（ｃ）の表の１行目は、テストドライバ“ｄｒｉｖｅｒ１”が、実行対象のテストドライバであることを示す。図５（ｂ）によれば、テストドライバ“ｄｒｉｖｅｒ１”は、静的変数“ｐａｒａｍｅｔｅｒ＿Ａ”の初期値が“ＯＮ”の時に実行される。図５（ａ）によれば、“ｐａｒａｍｅｔｅｒ＿Ａ”の初期値は“ＯＮ”である。したがって、テストドライバ“ｄｒｉｖｅｒ１”は実行対象である。
【００６６】
図５（ｃ）の表の２行目は、テストドライバ“ｄｒｉｖｅｒ３”が、実行対象のテストドライバであることを示す。図５（ｂ）によれば、テストドライバ“ｄｒｉｖｅｒ３”は、静的変数“ｐａｒａｍｅｔｅｒ＿Ｃ”の初期値が“ＯＮ”の時に実行される。図５（ａ）によれば、“ｐａｒａｍｅｔｅｒ＿Ｃ”の初期値は“ＯＮ”である。したがって、テストドライバ“ｄｒｉｖｅｒ３”は実行対象である。
【００６７】
一方、図５（ｃ）の表は、テストドライバ“ｄｒｉｖｅｒ２”が実行対象のテストドライバではないことを示す。図５（ｂ）によれば、テストドライバ“ｄｒｉｖｅｒ２”は、“ｐａｒａｍｅｔｅｒ＿Ａ”の初期値が“ＯＦＦ”かつ“ｐａｒａｍｅｔｅｒ＿Ｂ”の初期値が“ＯＮ”の時に実行される。ところが、図５（ａ）によれば、“ｐａｒａｍｅｔｅｒ＿Ａ”の初期値は“ＯＮ”、“ｐａｒａｍｅｔｅｒ＿Ｂ”の初期値は“ＯＦＦ”である。したがって、テストドライバ“ｄｒｉｖｅｒ２”は実行対象ではない。
【００６８】
テスト対象装置２００のテスト実行手段２５０は、ドライバリスト２３０に基づき、テストドライバ２２０から処理対象プログラム２１０のテストに必要なテストドライバ“ｄｒｉｖｅｒ１”、“ｄｒｉｖｅｒ３”を選択して、処理対象プログラム２１０のテストを実行する。
【００６９】
以上説明したように、本実施形態におけるテスト実行支援装置１００では、静的変数抽出手段１１０が、処理対象プログラム２１０から、処理対象プログラム２１０における静的変数の初期値を抽出する。そして、テストドライバ抽出手段１２０が、抽出された静的変数の初期値と、テストドライバ実行条件記述１３０とから、処理対象のテストに必要なテストドライバを抽出する。そのため、テストを実行する際に、テストケースを検討し、必要なドライバを抽出する作業が必要なくなる。そのため、ユーザは、テストの準備に要する工数を低減することができる。従って、本実施形態におけるテスト実行支援装置１００は、テストの実行を効率化することができる。
（第２の実施形態）
テストドライバ抽出手段１２０は、初期値リストと、テストドライバ実行条件記述１３０とに基づいて、テストドライバ２２０のうち、処理対象プログラム２２０の機能をテストするテストドライバのリストである「ドライバリスト」を抽出し、テスト対象装置２００に渡す。ドライバリストは、テストドライバの一覧である。したがって、テストドライバの一覧自体のみでなく、テストドライバを抽出して実行するプログラムも含まれてもよい。
【００７０】
本実施形態の説明においては、第１の実施形態と本実施形態とで共通する説明は省略し、第１の実施形態に対する本実施形態の相違点のみについて説明する。
【００７１】
本発明の第２の実施形態におけるテスト実行支援装置１０５の構成は、図１に示した第１の実施形態におけるテスト実行支援装置１００の構成と同じである。
【００７２】
但し、本発明の第２の実施形態におけるテスト実行支援装置１０５の機能は、第１の実施形態におけるテスト実行支援装置１００の機能と異なる。
【００７３】
図６は、本実施形態におけるテスト実行支援装置の動作を示すフローチャートである。
【００７４】
テスト実行支援装置１０５の静的変数抽出手段１１５は、処理対象プログラム２１０から、処理対象プログラム２１０の機能を指定する静的変数の初期値を取得する取得プログラムを生成する（ステップＳ２１）。
【００７５】
次に、テスト実行支援装置１０５のテストドライバ抽出手段１２５は、静的変数の初期値を取得する取得プログラムと、テストドライバ実行条件記述１３０とに基づき、実行対象のテストドライバを抽出する取得プログラムを生成する（ステップＳ２２）。
【００７６】
図７は、本実施形態におけるテスト実行支援装置の動作結果の具体例を説明するための図である。
【００７７】
本動作例では、図４（ａ）、（ｂ）、（ｃ）に示したプログラム等が与えられた場合の動作を説明する。
【００７８】
図７の前半部（第１−９行、静的変数取得プログラム）は、静的変数抽出手段１１５がテストドライバ抽出手段１２５に渡す、処理対象プログラム２１０から抽出した静的変数の初期値を取得するプログラムの例を示すコードである（ステップＳ２１）。
【００７９】
図７のコードの１―３行目は、静的変数“ｐａｒａｍｅｔｅｒ＿Ａ”の初期値を戻り値として返すルーチン定義である。ルーチン名は、静的変数の名称に従って機械的に与えられる。
【００８０】
図７のコードの４―６、７−９行目は、それぞれ、同様に静的変数“ｐａｒａｍｅｔｅｒ＿Ｂ”、“ｐａｒａｍｅｔｅｒ＿Ｃ”の初期値を戻り値として返すルーチン定義である。
【００８１】
図７の後半部（第１０−２３行、テストドライバ実行プログラム）は、テストドライバ抽出手段１２０が出力するプログラムの例を示すコードである（ステップＳ２２）。
【００８２】
図７のコードの１１行目は、処理対象プログラム２１０のメインプロセスを起動するルーチン“ｒｕｎ＿ｔｅｓｔ＿ｍａｉｎ”である。ルーチン“ｒｕｎ＿ｔｅｓｔ＿ｍａｉｎ”は、処理対象プログラム２１０のメインプロセスを起動後に終了する。
【００８３】
図７のコードの第１３−１５行では、まず、処理対象プログラム２１０の機能Ａに対応する静的変数“ｐａｒａｍｅｔｅｒ＿Ａ”の初期値が、静的変数抽出手段１１５が生成したプログラムにより取得される。静的変数の初期値が“ＯＮ”ならば、処理対象プログラム２１０の機能Ａをテストするテストドライバ“ｄｒｉｖｅｒ１”が実行される。
【００８４】
図７のコードの第１６−１９行では、まず、処理対象プログラム２１０の機能Ａ及びＢに対応する静的変数“ｐａｒａｍｅｔｅｒ＿Ａ”及び“ｐａｒａｍｅｔｅｒ＿Ｂ”の初期値が、静的変数抽出手段１１５が生成したプログラムにより取得される。静的変数の初期値が共に“ＯＮ”ならば、処理対象プログラム２１０の機能Ａ、Ｂをテストするテストドライバ“ｄｒｉｖｅｒ２”が実行される。
【００８５】
図５（ｃ）のコードの第２０−２２行では、まず、処理対象プログラム２１０の機能Ｃに対応する静的変数“ｐａｒａｍｅｔｅｒ＿Ｃ”の初期値が、静的変数抽出手段１１５が生成したプログラムにより取得される。静的変数の初期値が“ＯＮ”ならば、処理対象プログラム２１０の機能Ｃをテストするテストドライバ“ｄｒｉｖｅｒ３”が実行される。
【００８６】
テスト対象装置２０５のテスト実行手段２５５は、テストドライバ抽出プログラム２３５に基づき、テストドライバ２２０から処理対象プログラム２１０のテストに必要なテストドライバ“ｄｒｉｖｅｒ１”、“ｄｒｉｖｅｒ３”を選択して、処理対象プログラム２１０のテストを実行する。
【００８７】
以上説明したように、本実施形態におけるテスト実行支援装置１０５では、静的変数抽出手段１１０が、処理対象プログラム２１０から、処理対象プログラム２１０における静的変数の初期値を抽出する。そして、テストドライバ抽出手段１２０が、抽出された静的変数の初期値と、テストドライバ実行条件記述１３０とから、処理対象プログラム２１０のテストに必要なテストドライバを抽出する。そのため、テストを行うユーザは、テストケースを検討し、必要なドライバを抽出する必要がない。そのため、ユーザは、テストの準備に要する工数を低減することができる。従って、本実施形態におけるテスト実行支援装置１００は、テストの実行を効率化することができる。
【００８８】
尚、図３、７の各処理は、ソフトウェアによって実行されてもよい。すなわち、各処理を行うためのコンピュータプログラムが、テスト実行支援装置が備えるＣＰＵ（例えば、図２のコンピュータ９０３）によって読み込まれ、実行されてもよい。プログラムを用いて各処理を行っても、上述の実施形態の処理と同内容の処理を行うことができる。そして、上記のプログラムは、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、フラッシュメモリ等の半導体記憶装置、光ディスク、磁気ディスク、光磁気ディスク等、非一時的な媒体に格納されてもよい。
【００８９】
あるいは、各処理は、個別の回路等の構成要素によって実行されてもよい。
【００９０】
尚、本願発明は、上述の実施形態に限定されるものではなく、本願発明の要旨を逸脱しない範囲で種々変更、変形して実施することができる。
【図１】
2014232428.tif 000003
【図２】
2014232428.tif 000004
【図３】
2014232428.tif 000005
【図４】
2014232428.tif 000006
【図５】
2014232428.tif 000007
【図６】
2014232428.tif 000008
【図７】
2014232428.tif 000009