(57)【要約】      （修正有）【課題】単体テスト用のテストケースを結合テストケースに流用する。【解決手段】情報処理装置１０（ＰＣ）が行う第１モジュールのテスト方法は、第２モジュール又は第２モジュールと同一の応答を行うテストモジュールを、第１モジュールに結合させる結合手順１０Ｆ３と、少なくとも第１モジュールを含むモジュール群の結合テストを行う結合テスト手順１０Ｆ５と、第２モジュール又はテストモジュールのうち、どちらが第１モジュールに結合されているかを示す判定データに基づいて、第１モジュール及び第２モジュールについての結合テスト結果と、第１モジュールについての結合テスト結果と、のいずれかを出力するテスト結果出力手順１０Ｆ７とを含む。【選択図】図１２
2018194955.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置が行う第１モジュールのテスト方法であって、
第２モジュール又は第２モジュールと同一の応答を行うテストモジュールを前記第１モジュールに結合させる結合手順と、
少なくとも前記第１モジュールを含むモジュール群の結合テストを行う結合テスト手順と、
前記第２モジュール又は前記テストモジュールのうち、どちらが前記第１モジュールに結合されているかを示す判定データに基づいて、前記第１モジュール及び前記第２モジュールについての結合テスト結果と、前記第１モジュールについての結合テスト結果と、のいずれかを出力するテスト結果出力手順と
を含むテスト方法。
【請求項２】
前記テスト結果出力手順は、前記第１モジュールに前記第２モジュールが結合している場合、前記第１モジュール及び前記第２モジュールについての結合テスト結果を出力し、前記第１モジュールに前記テストモジュールが結合している場合、前記第１モジュールについての結合テスト結果を出力する
請求項１に記載のテスト方法。
【請求項３】
前記結合テスト手順は、前記第１モジュールに前記第２モジュールが結合している場合、前記結合テストとして前記第１モジュール及び前記第２モジュールについての結合テストを行い、前記第１モジュールに前記テストモジュールが結合している場合、前記結合テストとして前記第１モジュールについての結合テストを行う
請求項１又は２に記載のテスト方法。
【請求項４】
前記第１モジュール及び前記第２モジュールは、プログラム言語又はハードウェア記述言語で記載されたファイルである請求項１乃至３のいずれか１項に記載のテスト方法。
【請求項５】
前記判定データは、前記第１モジュールのリンク先を示すリンク情報である
請求項１乃至４のいずれか１項に記載のテスト方法。
【請求項６】
前記判定データは、前記第１モジュールのリンクするモジュールの種類を示すフラグ情報である
請求項１乃至４のいずれか１項に記載のテスト方法。
【請求項７】
前記第１モジュールに、前記テストモジュールが結合されていると判定すると、前記結合テスト手順では、前記第２モジュールについての結合テストを行わない請求項１乃至６のいずれか１項に記載のテスト方法。
【請求項８】
前記第１モジュールの単体テストを行う単体テスト手順をさらに含み、
前記単体テストと、前記結合テストとは、同一のインタフェース及びパラメータを使用する請求項１乃至７のいずれか１項に記載のテスト方法。
【請求項９】
前記テストモジュールは、スタブである請求項１乃至８のいずれか１項に記載のテスト方法。
【請求項１０】
コンピュータに第１モジュールのテスト方法を実行させるためのプログラムであって、
第２モジュール又は第２モジュールと同一の応答を行うテストモジュールを前記第１モジュールに結合させる結合手順と、
少なくとも前記第１モジュールを含むモジュール群の結合テストを行う結合テスト手順と、
前記第２モジュール又は前記テストモジュールのうち、どちらが前記第１モジュールに結合されているかを示す判定データに基づいて、前記第１モジュール及び前記第２モジュールについての結合テスト結果と、前記第１モジュールについての結合テスト結果と、のいずれかを出力するテスト結果出力手順と
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テスト方法及びプログラムに関する。
【背景技術】
【０００２】
従来、ソフトウェア開発において、コーディングしたプログラムをモジュール単位でテストする単体テストと、複数のモジュールを結合させてテストする結合テストとが知られている。
【０００３】
また、テストにおいて、テストに使用されるモジュールと同様の振る舞いを代行させるため、スタブ（ｓｔｕｂ）を用いる技術が知られている。具体的には、まず、テストドライバが、テスト対象モジュールを依存モジュール及びスタブの結合によって構成する。そして、テスト対象モジュールから依存モジュールへの呼び出しが検出されると、モジュール実行手段は、所定の条件に基づいて、依存モジュールを実行するか又はスタブを実行するかを決定する。このようにして、テストに使用されるモジュールの振る舞いをスタブによって部分的に変更したり、又は、補ったりすることができる技術が知られている（例えば、特許文献１等である）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−１２９１３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来の技術では、単体テストを実行するためのテストケースと、結合テストを実行するためのテストケースとを別々に用意する必要がある。すなわち、単体テスト用のテストケースが、結合テストに流用できない問題がある。
【０００６】
そこで、本発明の実施形態に係るテスト方法は、単体テスト用のテストケースを結合テスト用のテストケースに流用させることを目的にする。
【課題を解決するための手段】
【０００７】
一側面によれば、情報処理装置が行う第１モジュールのテスト方法は、
第２モジュール又は第２モジュールと同一の応答を行うテストモジュールを前記第１モジュールに結合させる結合手順と、
少なくとも前記第１モジュールを含むモジュール群の結合テストを行う結合テスト手順と、
前記第２モジュール又は前記テストモジュールのうち、どちらが前記第１モジュールに結合されているかを示す判定データに基づいて、前記第１モジュール及び前記第２モジュールについての結合テスト結果と、前記第１モジュールについての結合テスト結果と、のいずれかを出力するテスト結果出力手順と
を含む。
【０００８】
また、上記の目的を達成するため、前記テスト結果出力手順は、前記第１モジュールに前記第２モジュールが結合している場合、前記第１モジュール及び前記第２モジュールについての結合テスト結果を出力し、前記第１モジュールに前記テストモジュールが結合している場合、前記第１モジュールについての結合テスト結果を出力する。
【０００９】
また、上記の目的を達成するため、前記結合テスト手順は、前記第１モジュールに前記第２モジュールが結合している場合、前記結合テストとして前記第１モジュール及び前記第２モジュールについての結合テストを行い、前記第１モジュールに前記テストモジュールが結合している場合、前記結合テストとして前記第１モジュールについての結合テストを行う。
【００１０】
また、上記の目的を達成するため、前記第１モジュール及び前記第２モジュールは、プログラム言語又はハードウェア記述言語で記載されたファイルである。
【００１１】
また、上記の目的を達成するため、前記判定データは、前記第１モジュールのリンク先を示すリンク情報である。
【００１２】
また、上記の目的を達成するため、前記判定データは、前記第１モジュールのリンクするモジュールの種類を示すフラグ情報である。
【００１３】
また、上記の目的を達成するため、前記第１モジュールに、前記テストモジュールが結合されていると判定すると、前記結合テスト手順では、前記第２モジュールについての結合テストを行わない。
【００１４】
また、上記の目的を達成するため、前記第１モジュールの単体テストを行う単体テスト手順をさらに含み、前記単体テストと、前記結合テストとは、同一のインタフェース及びパラメータを使用する。
【００１５】
また、上記の目的を達成するため、前記テストモジュールは、スタブである。
【００１６】
一側面によれば、コンピュータに第１モジュールのテスト方法を実行させるためのプログラムは、
第２モジュール又は第２モジュールと同一の応答を行うテストモジュールを前記第１モジュールに結合させる結合手順と、
少なくとも前記第１モジュールを含むモジュール群の結合テストを行う結合テスト手順と、
前記第２モジュール又は前記テストモジュールのうち、どちらが前記第１モジュールに結合されているかを示す判定データに基づいて、前記第１モジュール及び前記第２モジュールについての結合テスト結果と、前記第１モジュールについての結合テスト結果と、のいずれかを出力するテスト結果出力手順と
を実行させる。
【００１７】
以上のような構成であると、結合手順によって、情報処理装置は、第１モジュールに、第２モジュール又はテストモジュールを結合させることができる。
【００１８】
そして、情報処理装置は、判定データによって、第１モジュールに第２モジュールが結合されているか、又は、第１モジュールにテストモジュールが結合されているかを判定できる。
【００１９】
そして、情報処理装置は、第１モジュールに第２モジュールが結合されている場合には、第１モジュール及び第２モジュールについての結合テストを行う。一方で、情報処理装置は、第１モジュールにテストモジュールが結合されている場合には、第１モジュールについての結合テストを行い、第２モジュールについてのテストを省略する。このように、結合されているモジュールによって、結合テストを切り替える。このようにすると、情報処理装置は、効率的にテストを行うことができ、単体テスト用のテストケースを結合テスト用のテストケースに流用させることができる。
【００２０】
また、情報処理装置は、プログラム言語で記載されたファイル以外にも、ハードウェア記述言語で記載されたファイル等をテストの対象とすることができる。
【００２１】
さらに、情報処理装置は、テストモジュールが結合されていると判定する場合において、結合テスト手順で、第２モジュールについての結合テストを行わないようにすると、無駄なテストが行われるのを少なくすることができる。
【００２２】
さらにまた、情報処理装置は、単体テストと、結合テストとに、同一のインタフェース及びパラメータを使用すると、単体テストのテストケースを結合テストのテストケースに流用できる。
【００２３】
また、情報処理装置は、テストモジュールをスタブとしてテストを行ってもよい。
【発明の効果】
【００２４】
単体テスト用のテストケースを結合テストケースに流用させることができる。
【図面の簡単な説明】
【００２５】
【図１】本発明の一実施形態に係る情報処理装置のハードウェア構成例を示すブロック図である。
【図２】本発明の一実施形態に係る第１モジュールの単体テストを行うための構成例を示すブロック図である。
【図３】本発明の一実施形態に係るプログラムＡ用のテストケース例を示す図である。
【図４】本発明の一実施形態に係る第２モジュールの単体テストを行うための構成例を示すブロック図である。
【図５】本発明の一実施形態に係るプログラムＢ用のテストケース例を示す図である。
【図６】本発明の一実施形態に係るモックを使用する結合テストを行うための構成例を示すブロック図である。
【図７】本発明の一実施形態に係るプログラムＢを使用する結合テストを行うための構成例を示すブロック図である。
【図８】本発明の一実施形態に係る結合テスト用のテストケースを生成するための変換テーブル例を示す図である。
【図９】本発明の一実施形態に係るテスト方法の全体処理例を示すフローチャートである。
【図１０】本発明の一実施形態に係るテスト方法における単体テストの処理例を示すフローチャートである。
【図１１】本発明の一実施形態に係るテスト方法における結合テストの処理例を示すフローチャートである。
【図１２】本発明の一実施形態に係る情報処理装置の機能構成例を示す機能ブロック図である。
【発明を実施するための形態】
【００２６】
以下、本発明の実施形態について、添付の図面を参照しながら説明する。
【００２７】
＜情報処理装置のハードウェア構成例＞
例えば、テストは、以下のような情報処理装置上で行われる。
【００２８】
図１は、本発明の一実施形態に係る情報処理装置のハードウェア構成例を示すブロック図である。例えば、情報処理装置は、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）１０等である。図示するように、ＰＣ１０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０Ｈ１と、記憶装置１０Ｈ２と、入力装置１０Ｈ３と、出力装置１０Ｈ４と、インタフェース１０Ｈ５とを有するハードウェア構成である。
【００２９】
ＣＰＵ１０Ｈ１は、演算装置及び制御装置である。記憶装置１０Ｈ２は、メモリ等の主記憶装置である。また、記憶装置１０Ｈ２は、補助記憶装置を更に有してもよい。入力装置１０Ｈ３は、キーボード等であって、ユーザによる操作を入力する。出力装置１０Ｈ４は、ディスプレイ等であって、ユーザに処理結果等を出力する。インタフェース１０Ｈ５は、コネクタ等であって、ネットワーク又はケーブル等を介して外部装置とデータを送受信する。これらのハードウェア資源は、バス１０Ｈ６によって接続され、相互にデータを送受信する。
【００３０】
なお、テストを実行する情報処理装置は、図示するようなハードウェア構成に限られない。例えば、情報処理装置は、図示するハードウェア構成に、内部又は外部に更に演算装置、制御装置又は記憶装置を有するハードウェア構成でもよい。また、情報処理装置は、例えば、サーバ等でもよい。
【００３１】
＜単体テストの構成例＞
以下、図１に示すＰＣ１０又はＰＣ１０以外の装置上でプログラミングされた複数のモジュールを単体テスト及び結合テストする場合を例に説明する。まず、テスト対象とする第１モジュールの例を「プログラムＡ」とし、第２モジュールの例を「プログラムＢ」とする。したがって、プログラムＡ及びプログラムＢは、単体テストの対象である。
【００３２】
そして、プログラムＡ及びプログラムＢは、結合されて使用されるモジュールであるとする。したがって、結合テストは、プログラムＡ及びプログラムＢを結合して行われる。
【００３３】
すなわち、以下の例では、プログラムＡの単体テスト、プログラムＢの単体テスト及びプログラムＡとプログラムＢとを結合させた結合テストを行う例で説明する。
【００３４】
＜第１モジュールの単体テストの構成例＞
まず、プログラムＡは、例えば、以下のような構成で単体テストが行われる。
【００３５】
図２は、本発明の一実施形態に係る第１モジュールの単体テストを行うための構成例を示すブロック図である。図示するように、プログラムＡがＰＣ１０に入力され、プログラムＡの単体テストを行うプログラムを以下「テストドライバＤＵＡ」という。
【００３６】
また、プログラムＡは、実行する上で、プログラムＢ及びプログラムＸをＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）によってコールする仕様であるとする。したがって、プログラムＡには、プログラムＢ及びプログラムＸを結合させるか、又は、プログラムＢ及びプログラムＸの代わりとなるそれぞれのスタブ又はモック等のモジュール（以下「テストモジュール」という。）を結合させないと、プログラムＡは、テスト及び処理の実行ができないモジュールであるとする。
【００３７】
テストモジュールは、結合されるモジュールがまだ開発中等の場合に、本来結合されるモジュールの代わりに結合されるモジュールである。具体的には、テストモジュールは、テストにおいてコールされると、モジュールと同一の戻り値を返す等といったテストに必要な反応をする。モジュールの仕様によっては、他のモジュールからの戻り値を待って次の処理を行うモジュールがある。したがって、このような仕様である場合には、何らかの戻り値を返すモジュールが結合されないと、モジュールは、戻り値を待ち続け、処理が進まない場合がある。このような場合があるため、便宜上、戻り値を返すテストモジュールがないと、モジュールをテストできない場合がある。
【００３８】
他にも、プログラムを実行するためのコンパイルでは、実行するプログラムがコールするモジュールが結合されていないと、コンパイラは、コンパイルエラーとする場合が多い。すなわち、コンパイルエラーとなると、テスト等は、中断される。そこで、開発中のモジュールに代えて、テストモジュールを結合すると、コンパイルエラーとなるのを防ぐことができる。したがって、テストモジュールは、テストの際に実行するプログラムに結合される。
【００３９】
図示する例は、プログラムＢのテストモジュールとなる「モックＭＢ」及びプログラムＸのテストモジュールとなる「モックＭＸ」をプログラムＢ及びプログラムＸの代わりに結合させて、プログラムＡの単体テストを行う構成である。
【００４０】
したがって、テストドライバＤＵＡは、例えば、図示するように、テスト制御部ＣＴＡ、モック設定部ＳＥＡ及びテスト実行部ＥＸＡを有する機能構成である。また、モック設定部ＳＥＡは、モックＭＸ用のモック設定部ＳＥＭＸ及びモックＭＢ用のモック設定部ＳＥＭＢを有する機能構成である。
【００４１】
テスト制御部ＣＴＡは、例えば、リスト形式でテストケースを記憶し、テストケースによって指定されるテストを行うため、モック設定部ＳＥＡ及びテスト実行部ＥＸＡに処理を要求する。例えば、プログラムＡ用のテストケースは、以下のように生成される。
【００４２】
図３は、本発明の一実施形態に係るプログラムＡ用のテストケース例を示す図である。
【００４３】
図示するテストケースでは、「テスト名」は、各テストを特定できる名称等が入力される。したがって、この例では、「テスト名」の１行分が、１つのテストの内容を示す。
【００４４】
また、図示するテストケースでは、「テスト対象」は、テストされるモジュール（図２に示す例では、プログラムＡである。）において、テストするインタフェース及びパラメータを示す。具体的には、「テスト対象」における「ＡＰＩ名」は、プログラムＡのＡＰＩのうち、テスト対象とするＡＰＩを特定できるＡＰＩの名称等を示す。そして、「テスト対象」における「引数」は、「ＡＰＩ名」で定まるＡＰＩに設定するパラメータの例である。したがって、「引数」には、各ＡＰＩの仕様に基づいて定まる値が入力される。
【００４５】
「テスト対象」における「戻り値」は、テストが実行された結果、他のモジュール等から返される値である。すなわち、「戻り値」は、いわゆる期待値である。つまり、テストの結果、「テスト対象」の「戻り値」に設定される通りの値が他のモジュール等から返されると、テスト対象としたモジュールの機能は、仕様通りに生成されている、すなわち、バグがなく、正常に作成されたと判断される。
【００４６】
「モック設定」は、各テストにおいて、テストに関係するモックの設定を示す。具体的には、図２に示す例では、テストによって、モックＭＸ、モックＭＢ又はこれら両方のモックがプログラムＡのテストに関係するモックとなる。したがって、図２に示す例では、「モック設定」には、モックＭＸ又はモックＭＢが有するＡＰＩについての設定が入力される。具体的には、「モック設定」における「ＡＰＩ名」は、テストにおいてコールされるモックＭＸ又はモックＭＢが有するＡＰＩを特定できる名称等を示す。そして、「モック設定」における「引数」は、テストの際にＡＰＩに設定される値を示す。また、「モック設定」における「戻り値」は、各モックのＡＰＩをコールすると、モックから返される期待値を示す。
【００４７】
なお、テストケースは、図示する形式及び項目に限られない。また、引数及び戻り値の形式及び値は、仕様等によって定まる。
【００４８】
例えば、図３に示すテストケースに基づいて単体テストを行う場合には、図２に示す構成では、テスト制御部ＣＴＡが、テストケースに基づいて、モック設定部ＳＥＡ及びテスト実行部ＥＸＡに実行するＡＰＩ及びパラメータ等を通知する。具体的には、「テストＡ１」では、テスト制御部ＣＴＡは、テスト実行部ＥＸＡに、「ＡＰＩａ１」及び「（１，１）」というＡＰＩ名及び引数を通知する。
【００４９】
さらに、テスト制御部ＣＴＡは、モック設定部ＳＥＭＸに、モックＭＸ用の設定となる「モック設定」における「ＡＰＩ名」及び「引数」を通知する。具体的には、テスト制御部ＣＴＡは、モック設定部ＳＥＭＸに、「テストＡ１」における「ＡＰＩｘ１」及び「１」等を通知する。そして、モック設定部ＳＥＭＸは、通知された引数等をモックＭＸに設定する。
【００５０】
同様に、テスト制御部ＣＴＡは、モック設定部ＳＥＭＢに、モックＭＢ用の設定となる「モック設定」における「ＡＰＩ名」及び「引数」を通知する。具体的には、テスト制御部ＣＴＡは、モック設定部ＳＥＭＢに、「テストＡ１」における「ＡＰＩｂ１」及び「１」等を通知する。そして、モック設定部ＳＥＭＢは、通知された引数等をモックＭＢに設定する。
【００５１】
テスト制御部ＣＴＡは、テスト実行部ＥＸＡに、プログラムＡのテストにおいて、テスト対象とするＡＰＩ名、引数及び戻り値を通知する。そして、テスト実行部ＥＸＡは、通知されたＡＰＩをコールする。なお、ＡＰＩのコールには、通知された引数が設定される。次に、テスト実行部ＥＸＡは、モジュールから戻り値が返されるのを待機する。続いて、テスト実行部ＥＸＡは、テストにおいて各モジュールが処理結果、返す戻り値と、通知された戻り値、すなわち、期待値とを比較する。比較の結果、戻り値が一致すると、テスト実行部ＥＸＡは、テスト成功、すなわち、テスト対象としたモジュールが仕様通りに動くことを記憶する。一方で、比較の結果、戻り値が一致しないと、テスト実行部ＥＸＡは、テスト失敗、すなわち、テスト対象としたモジュールにバグがあることを記憶する。
【００５２】
＜第２モジュールの単体テストの構成例＞
次に、プログラムＢは、例えば、以下のような構成で単体テストが行われる。
【００５３】
図４は、本発明の一実施形態に係る第２モジュールの単体テストを行うための構成例を示すブロック図である。図示するように、プログラムＢがＰＣ１０に入力され、プログラムＢの単体テストを行うプログラムを以下「テストドライバＤＵＢ」という。
【００５４】
例えば、テストドライバＤＵＢは、図２に示すテストドライバＤＵＡと同様に、テスト制御部ＣＴＢ、モック設定部ＳＥＢ及びテスト実行部ＥＸＢを有する機能構成である。また、モック設定部ＳＥＢは、モックＭＹ用のモック設定部ＳＥＭＹを有する機能構成である。
【００５５】
図示するように、テスト対象となるプログラムＢは、プログラムＹを結合して実行される仕様であるとする。したがって、プログラムＢの単体テストでは、プログラムＹのテストモジュールとなるモックＭＹが使用されるとする。
【００５６】
また、プログラムＢ用のテストケースは、例えば、以下のように生成される。
【００５７】
図５は、本発明の一実施形態に係るプログラムＢ用のテストケース例を示す図である。図は、図３と同様の形式で、プログラムＢ用のテストケースの例を示す。
【００５８】
プログラムＢは、図４に示すように、モックＭＹが結合されてテストが行われるプログラムである。したがって、図５に示すように、「モック設定」には、モックＭＹが有する「ＡＰＩｙ１」及び「ＡＰＩｙ２」等のＡＰＩの設定が入力される。
【００５９】
＜結合テストの構成例＞
プログラムＡの結合テストは、例えば、以下のように、モックＭＢを結合させた構成又はプログラムＢを結合させた構成で行われる。
【００６０】
図６は、本発明の一実施形態に係るモックを使用する結合テストを行うための構成例を示すブロック図である。
【００６１】
図７は、本発明の一実施形態に係るプログラムＢを使用する結合テストを行うための構成例を示すブロック図である。
【００６２】
図６に示す構成例と、図７に示す構成例とを比較すると、プログラムＡの下位モジュールに結合されるモジュールが、図６に示す構成例では、モックＭＢであるのに対して、図７に示す構成例では、プログラムＢである点が異なる。
【００６３】
なお、図６及び図７に示すテストドライバＤＵＡ及びテストドライバＤＵＢのそれぞれの構成は、図２及び図４に示す単体テスト用の構成例と同一であるとする。
【００６４】
例えば、各モジュールの開発状況に応じて、テストモジュールは、開発が完了したモジュールに置き換えられる。具体的には、特に、ウォータフォール型の開発モデルでは、各モジュールの単体テストが完了すると、結合テストを行う場合が多い。図示する例では、まず、図２に示す構成によって、プログラムＡの単体テストが行われる。そして、プログラムＡの単体テストが完了すると、図６に示すように、プログラムＡの結合テストが行われる。この場合には、プログラムＢは、まだ開発中であって、図４に示すような構成等によって単体テストが行われている状態である場合が多い。
【００６５】
すなわち、プログラムＢの開発状況に応じて、プログラムＡの結合テストは、図６に示すように、テストモジュールを使用する構成から、図７に示すように、モジュールを使用する構成に切り替えられる場合がある。
【００６６】
また、図６に示すように、モックＭＢを使用する結合テストでは、モック設定部ＳＥＭＢは、モックＭＢの設定を行う。一方で、図７に示すように、プログラムＢを使用する結合テストでは、モック設定部ＳＥＭＢは、モックＭＢの設定を行わない。
【００６７】
さらに、図６に示すようなモックＭＢを使用する結合テストでは、プログラムＢ用のテストが省略される。一方で、図７に示すようなプログラムＢを使用する結合テストでは、プログラムＢ用のテストが行われる。
【００６８】
したがって、各単体テストのテストケースは、結合テスト用に、例えば、以下のように変換される。
【００６９】
図８は、本発明の一実施形態に係る結合テスト用のテストケースを生成するための変換テーブル例を示す図である。図は、プログラムＡ用のテストケース、すなわち、図３に示すテストケースを結合テスト用に変換する変換テーブルの例を示す。
【００７０】
結合テストのテストケースは、各単体テストのそれぞれのテストケースを合わせて生成される。具体的には、図６又は図７に示す構成において行われるテストケースは、図３に示すテストケース及び図５に示すテストケースに基づいて生成される。また、図示する変換テーブルに基づく変換は、図６に示すようにテストモジュールを使用する構成か、図７に示すようにモジュールを使用する構成かによって行われるテストを変える処理である。
【００７１】
図示する変換例では、「テストＡ１」が「テストＢ１」に変換される。図３に示す単体テストのテストケースでは、モックＭＢを使用するため、「テストＡ１」では、「モック設定」において「ＡＰＩｂ１」のように、モックＭＢの設定が行われる。このような設定は、図７に示すようなプログラムＢを使用する構成には適さないため、変換テーブルによって、図５に示す「テストＢ１」に変換される。図５における「テストＢ１」は、図示するように、プログラムＢをテストするため、モックＭＹ等の設定が含まれるテストである。このように、変換によって、モックＭＢを使用するテストから、テストドライバＤＵＢが行うテストに変換される。具体的には、「テストＡ１」の変換では、まず、図３に示す「テストＡ１」が参照される。そして、図３に示す「テストＡ１」では、「モック設定」が入力されている。この例では、図３に示す「モック設定」に、「ＡＰＩｂ１」及び「ＡＰＩｘ１」についての設定が入力されているため、「ＡＰＩｂ１」が変換対象であると判断される。
【００７２】
「ＡＰＩｂ１」を変換するには、図５に示すテストケースにおいて、「テスト対象」における「ＡＰＩ名」、「引数」及び「戻り値」が同一の設定である「テストＢ１」が検索される。このようにして、変換後のテストが特定される。
【００７３】
なお、単体テストのテストケースに、該当するテストが存在しない場合がある。このような場合には、結合テストのテストケースに、新たにテストが追加されてもよい。例えば、「テストＡ４」における「ＡＰＩｂ２」の設定は、図５に示すテストケースにはないテストである。
【００７４】
一方で、仕様上、エラーとなる動作、いわゆる異常系のテストは、結合テストでは、条件等を整えるのが難しい場合がある。このような場合には、例えば、図８に示す「テストＡ４」のように、「テストを行わない」とし、単体テストで行うテストであっても、結合テストでは、テストが行われないように変換してもよい。
【００７５】
また、モックＭＸのように、結合テストでも引き続きテストモジュールを使用する場合には、モックＭＸについてのテストは、変換対象としないとしてもよい。例えば、図３におけるテストケースでは、「モック設定」の「ＡＰＩ名」が「ＡＰＩｘ１」等のテストである。
【００７６】
変換テーブルは、例えば、結合テストの準備等で用意される。
【００７７】
＜全体処理例＞
図９は、本発明の一実施形態に係るテスト方法の全体処理例を示すフローチャートである。
【００７８】
ステップＳ１０では、情報処理装置は、単体テストを行う。例えば、単体テストは、以下のように行われる。
【００７９】
図１０は、本発明の一実施形態に係るテスト方法における単体テストの処理例を示すフローチャートである。
【００８０】
ステップＳ１０１では、情報処理装置は、テストドライバに単体テストを指示する。具体的には、プログラムＡの単体テストが行われる場合には、図２に示すテストドライバＤＵＡが、ユーザの操作等に基づいて、起動する。同様に、プログラムＢの単体テストが行われる場合には、図４に示すテストドライバＤＵＢが、ユーザの操作等に基づいて、起動する。また、テストドライバは、起動すると、テスト制御部を起動させて引数等を参照して、これから行うテストの種類が単体テストであることを把握する。
【００８１】
ステップＳ１０２では、情報処理装置は、テストケースに基づいて、実行するテストを決定する。具体的には、図３に示すようなテストケースである場合には、情報処理装置は、先頭のテストである「テストＡ１」から順にテストを行うようにする。なお、テストの順序は、テストケースに記載される順序に限られない。例えば、情報処理装置は、テストケースに記載される各テストをランダムな順序で行うように決定してもよい。
【００８２】
ステップＳ１０３では、情報処理装置は、テストケースに基づいて、単体テストの設定を各構成に通知する。以下、図２に示す構成によるプログラムＡの単体テストであって、かつ、図３に示すテストケースによるテストを行う例で説明する。
【００８３】
この例では、ステップＳ１０２で決定されたテスト名のテストを実現する設定が、テスト制御部ＣＴＡから、モック設定部ＳＥＡ及びテスト実行部ＥＸＡに通知される。すなわち、テスト制御部ＣＴＡから、モック設定部ＳＥＡには、図３に示す「モック設定」の内容等が通知され、一方で、テスト実行部ＥＸＡには、図３に示す「テスト対象」の内容等が通知される。このように、通知がされると、情報処理装置は、単体テストを実行する準備を行うことができる。
【００８４】
ステップＳ１０４では、情報処理装置は、テストを実行する。例えば、図２に示す構成では、テスト実行部ＥＸＡによって、プログラムＡの単体テストが実行される。また、テストは、例えば、テストケースにおける「テスト対象」の「戻り値」、すなわち、期待値と、プログラムＡから返される戻り値とを比較することで実現される。具体的には、情報処理装置は、比較の結果、期待値と、プログラムＡがプログラムＡから返される戻り値とが異なると、エラーログを出力する。このように、テストによって、プログラムＡにバグがないかをチェックした結果が生成される。
【００８５】
ステップＳ１０５では、情報処理装置は、すべてのテストが完了したか否かを判断する。例えば、図３に示すテストケースでは、「テストＡ１」乃至「テストＡ４」等のそれぞれのテストがいずれもステップＳ１０４で実行された場合には、情報処理装置は、すべてのテストが完了したと判断する。なお、プログラムＢの単体テストも続けて行う場合には、図５に示す「テストＢ１」乃至「テストＢ４」等のテストまで実行された場合に、情報処理装置は、すべてのテストが完了したと判断する。
【００８６】
次に、すべてのテストが完了したと情報処理装置が判断すると（ステップＳ１０５でＹＥＳ）、情報処理装置は、ステップＳ１０を終了する。一方で、すべてのテストが完了していないと情報処理装置が判断すると（ステップＳ１０５でＮＯ）、情報処理装置は、ステップＳ１０２に進む。
【００８７】
なお、単体テスト手順は、図示する手順に限られず、他の手順で実現されてもよい。
【００８８】
図９に戻り、ステップＳ２０では、情報処理装置は、結合テストを行う。例えば、結合テストは、以下のように行われる。
【００８９】
図１１は、本発明の一実施形態に係るテスト方法における結合テストの処理例を示すフローチャートである。
【００９０】
ステップＳ２０１では、情報処理装置は、テストドライバに結合テストを指示する。具体的には、結合テストを行う場合には、まず、結合テストの対象となるモジュールのうち、最も上位のモジュール用のテストドライバが、ユーザの操作等に基づいて、起動する。具体的には、図６及び図７に示す構成では、テストドライバＤＵＡが最上位のテストドライバとなり、起動する。また、テストドライバＤＵＡは、起動すると、テスト制御部を起動させて引数等を参照して、これから行うテストの種類が結合テストであることを把握する。
【００９１】
ステップＳ２０２では、情報処理装置は、テストケースに基づいて、実行するテストを決定する。なお、結合テストは、図８に示す変換テーブルによって、テストケースが結合テスト用に変換されるのが望ましい。
【００９２】
ステップＳ２０３では、情報処理装置は、結合されるモジュールがテストモジュールであるか否か判断する。具体的には、テストドライバＤＵＡが結合テストと行う場合では、情報処理装置は、図６のように、プログラムＡにモックＭＢが結合されているか、又は、図７のように、プログラムＡにプログラムＢが結合されているかを判断する。そして、プログラムＡにモックＭＢが結合されていると判定すると、情報処理装置は、結合されるモジュールがテストモジュールであると判断する。
【００９３】
結合されるモジュールがテストモジュールであるか否かは、判定データに基づいて判定される。判定データは、例えば、プログラムＡが有するリンク先を示すコード等（以下「リンク情報」という。）である。つまり、プログラムＡは、リンク情報によって、リンク先をモックＭＢとするか又はプログラムＢとするかが定まる。したがって、情報処理装置は、リンク情報がプログラムＢを指すコードとなっていると、結合されるモジュールがテストモジュールでないと判断する。一方で、情報処理装置は、リンク情報がモックＭＢを指すコードとなっていると、結合されるモジュールがテストモジュールであると判断する。
【００９４】
なお、情報処理装置は、リンク情報に限られず、例えば、あらかじめ設定される結合されるモジュールがテストモジュールであるか否かを示すデータ等の判定データに基づいて、判断してもよい。すなわち、判定データは、例えば、フラグ情報等である。具体的には、モックＭＢのようなテストモジュールである場合には、フラグ情報に「ＯＮ」が設定され、一方で、プログラムＢのようなモジュールである場合には、フラグ情報に「ＯＦＦ」が設定される。したがって、情報処理装置は、判定データに「ＯＮ」が設定されているか「ＯＦＦ」が設定されているかを判定すると、結合されるモジュールがテストモジュールであるか否かを判断できる。
【００９５】
次に、結合されるモジュールがテストモジュールであると情報処理装置が判断すると（ステップＳ２０３でＹＥＳ）、情報処理装置は、ステップＳ２０４に進む。一方で、結合されるモジュールがテストモジュールでないと情報処理装置が判断すると（ステップＳ２０３でＮＯ）、情報処理装置は、ステップＳ２０５に進む。
【００９６】
ステップＳ２０４では、情報処理装置は、テストを省略する設定を行う。具体的には、図６に示すような構成であると、情報処理装置は、後段のステップＳ２０６でプログラムＢについてのテストが省略されるように設定する。図６に示す構成では、プログラムＡに結合されるモジュールは、テストモジュールであるため、プログラムＢについてのテストは、実行されても、実行できない又は無駄な場合が多い。したがって、ステップＳ２０４では、情報処理装置は、テストモジュールが結合されていると判断されたモジュールについてのテストが後段のステップＳ２０６で行われないようにする。例えば、情報処理装置は、テストケースにおいて、テストモジュールに該当するテストをスキップして、次のテストを行うようにする。
【００９７】
このようにすると、情報処理装置は、実行できない又は無駄なテストを減らし、テスト時間を短くすることができる。
【００９８】
ステップＳ２０５では、情報処理装置は、テストケースに基づいて、結合テストの設定を各構成に通知する。まず、図７に示す構成による結合テストを行う例で説明する。
【００９９】
この例では、ステップＳ２０２で決定されたテスト名のテストを実現する設定が、テスト制御部ＣＴＡから、モック設定部ＳＥＡ及びテスト実行部ＥＸＡに通知される。また、プログラムＢに対するテストが含まれる場合には、テスト制御部ＣＴＡから、テスト制御部ＣＴＢに設定が通知される。なお、更に下位となるモジュールがある構成では、更に下位のテスト制御部に通知が行われてもよい。
【０１００】
以上のような、テスト制御部ＣＴＡから、テスト制御部ＣＴＢへの設定の通知は、ステップＳ２０３による判定によって、通知が行われるか否かが切り替わる。
【０１０１】
また、図７に示すように、プログラムＢが結合される構成では、モックＭＢに対する設定等が行われない。したがって、モック設定部ＳＥＭＢは、設定を行わないように制限される。
【０１０２】
以上のような、モック設定部ＳＥＭＢによる設定の制限は、ステップＳ２０３による判定によって、制限されるか否かが切り替わる。
【０１０３】
このように、ステップＳ２０３による判定でプログラムＢのようなモジュールが結合されていると判定される場合には、情報処理装置は、不要なモックＭＢに対する設定を制限することで、エラーの増加又は処理時間が長くなるのを防ぐことができる。一方で、ステップＳ２０３による判定でモックＭＢのようなテストモジュールが結合されていると判定される場合には、情報処理装置は、テストドライバＤＵＡ及びテストドライバＤＵＢを結合テストのため連動させ、結合テストに用いるモックＭＢ等を設定できる。
【０１０４】
一方で、図６に示すように、テストモジュールが結合される構成では、ステップＳ２０４によって、プログラムＢについてのテストが省略される。したがって、情報処理装置は、図６に示すように、テスト制御部ＣＴＢが動作して、プログラムＢについてのテストが制限される。
【０１０５】
なお、ステップＳ２０５では、情報処理装置は、下位モジュールにテストケースを通知するのではなく、テストケースが示すＡＰＩ名、引数及び期待値となる戻り値等の内容を通知してもよい。そして、下位モジュール側では、通知された内容のうち、自モジュールについての内容を探し出してから、ステップＳ２０６でテストが実行されてもよい。
【０１０６】
ステップＳ２０６では、情報処理装置は、テストを実行する。例えば、ステップＳ２０６では、単体テストと同様にテストが実行される。すなわち、テストは、例えば、期待値と、プログラムＡから返される戻り値とを比較することで実現される。
【０１０７】
ステップＳ２０７では、情報処理装置は、すべてのテストが完了したか否かを判断する。例えば、図３に示すテストケースでは、「テストＡ１」乃至「テストＡ４」等のそれぞれのテストがいずれもステップＳ２０６で実行された場合には、情報処理装置は、すべてのテストが完了したと判断する。なお、プログラムＢのテストも続けて行う場合には、図５に示す「テストＢ１」乃至「テストＢ４」等のテストまで実行された場合に、情報処理装置は、すべてのテストが完了したと判断する。また、ステップＳ２０４で省略されたテストは、完了したテストと判断される。
【０１０８】
次に、すべてのテストが完了したと情報処理装置が判断すると（ステップＳ２０７でＹＥＳ）、情報処理装置は、ステップＳ２０８に進む。一方で、すべてのテストが完了していないと情報処理装置が判断すると（ステップＳ２０７でＮＯ）、情報処理装置は、ステップＳ２０２に進む。
【０１０９】
ステップＳ２０８では、情報処理装置は、テスト結果を出力する。具体的には、情報処理装置は、ステップＳ２０５で実行されたそれぞれのテスト結果を出力する。出力されるテスト結果は、判定データに基づく判定によって切り替わる。すなわち、判定データに基づいて、プログラムＡにモックＭＢが結合していると判定されると、情報処理装置は、プログラムＡについての結合テスト結果を出力する。一方で、判定データに基づいて、プログラムＡにプログラムＢが結合していると判定されると、情報処理装置は、プログラムＡ及びプログラムＢについての両方の結合テスト結果を出力する。
【０１１０】
以上のような全体処理が行われると、単体テスト用のテストケースを流用して、結合テストで単体テストと同じようなテストを行うことができる。
【０１１１】
＜機能構成例＞
図１２は、本発明の一実施形態に係る情報処理装置の機能構成例を示す機能ブロック図である。例えば、ＰＣ１０は、結合部１０Ｆ３と、判定部１０Ｆ４と、結合テスト部１０Ｆ５と、テスト結果出力部１０Ｆ７とを含む機能構成である。なお、ＰＣ１０は、図示するように、単体テスト部１０Ｆ１と、単体テスト部１０Ｆ２と、変換部１０Ｆ６とを更に含む機能構成であるのが望ましい。以下、図示する機能構成を例に説明する。
【０１１２】
単体テスト部１０Ｆ１及び単体テスト部１０Ｆ２は、各モジュールに対して単体テストを実行する単体テスト手順を行う。例えば、単体テスト部１０Ｆ１及び単体テスト部１０Ｆ２は、ＣＰＵ１０Ｈ１（図１参照）等によって実現される。
【０１１３】
結合部１０Ｆ３は、プログラムＡとプログラムＢとを結合させる結合手順を行う。又は、結合部１０Ｆ３は、プログラムＡとモックＭＢとを結合させる結合手順を行う。例えば、結合部１０Ｆ３は、ＣＰＵ１０Ｈ１（図１参照）等によって実現される。
【０１１４】
判定部１０Ｆ４は、プログラムＢ又はモックＭＢのうち、どちらがプログラムＡに結合されているかを判定データに基づいて判定する判定手順を行う。例えば、判定部１０Ｆ４は、ＣＰＵ１０Ｈ１（図１参照）等によって実現される。
【０１１５】
結合テスト部１０Ｆ５は、少なくともプログラムＡを含むモジュール群の結合テストを行う結合テスト手順を行う。例えば、結合テスト部１０Ｆ５は、ＣＰＵ１０Ｈ１（図１参照）等によって実現される。
【０１１６】
テスト結果出力部１０Ｆ７は、プログラムＡについての結合テスト結果か、又は、プログラムＡ並びにプログラムＢについての結合テスト結果かのうち、いずれかの結合テスト結果を出力するテスト結果出力手順を行う。テスト結果出力部１０Ｆ７が出力するテスト結果は、判定データ、すなわち、判定部１０Ｆ４による判定結果に基づいて切り替わる。例えば、テスト結果出力部１０Ｆ７は、ＣＰＵ１０Ｈ１（図１参照）等によって実現される。
【０１１７】
まず、ＰＣ１０は、プログラムＡ及びプログラムＢ等の第１モジュール及び第２モジュールを単体テスト部１０Ｆ１及び１０Ｆ２によって、単体テストすることができる。また、各単体テストには、モックＭＢ、ＭＸ及びＭＹ等のテストモジュールが用いられる。このようにテストモジュールを用いると、開発中等で単体テストに使用できないモジュールがあっても、テストモジュールで代用することで、ＰＣ１０は、テストケースＣＡ１及びＣＡ２が示す単体テストを実行できる。
【０１１８】
例えば、単体テストは、図２及び図４のような構成によって実現される。また、単体テストは、例えば、図１０に示すようなフローによって実現される。
【０１１９】
そして、ＰＣ１０は、結合部１０Ｆ３によって、プログラムＡ及びプログラムＢを結合して結合テストを行う。一方で、プログラムＢ等の第２モジュールが結合テストに使用できない場合には、プログラムＡにモックＭＢが結合される。このようにして、ＰＣ１０は、プログラムＡに、プログラムＢ又はプログラムＢと同一の応答をするモックＭＢ等を結合させて、結合テストが実行できるようにする。
【０１２０】
例えば、プログラムＡ及びモックＭＢを結合させた場合には、図６に示すような構成によって、結合テストが実現される。一方で、プログラムＡ及びプログラムＢを結合させた場合には、図７に示すような構成によって、結合テストが実現される。また、結合テストは、例えば、図１１に示すようなフローによって実現される。
【０１２１】
したがって、プログラムＡに結合されるモジュールの種類によって、行われる結合テストは、切り替わる。そのため、出力されるテスト結果も、連動して切り替わる。
【０１２２】
結合テストでは、例えば、同一のインタフェース及びパラメータについてのテストが行われる。すなわち、ＰＣ１０は、各単体テストで行われるそれぞれのテストを結合テストでも行うようにする。このために、ＰＣ１０は、変換部１０Ｆ６によって、各単体テストで用いられるテストケースを変換して組み合わせて結合テスト用のテストケースを生成するのが望ましい。このようにすると、ＰＣ１０は、単体テストで行われたテストを漏れなく、かつ、かぶりなく結合テストで実行することができる。このように、例えば、図８に示すような変換テーブルがあると、ＰＣ１０は、単体テストのテストケースを結合テストに流用できる。したがって、ＰＣ１０は、結合テスト用のテストケースがユーザによってあらかじめ単体テスト用のテストケースとは別に用意されなくとも、結合テストを実行できる。
【０１２３】
なお、結合テストでは、テストケースに対応するテストを下位モジュール等に実行させる場合には、テスト名でなく、ＡＰＩ名、引数及び期待値となる戻り値等が下位モジュール等に通知されてもよい。そして、通知された下位モジュール等は、通知されたＡＰＩ名、引数及び期待値となる戻り値等の内容から、自モジュールについてのテストであるか否かを判断する。そして、自モジュールについてのテストであると判断すると、通知された下位モジュール等は、通知された内容に基づいて、テストモジュール等を設定する。このようにすると、図８に示すような変換テーブル等がなくとも、ＰＣ１０は、単体テスト用のテストケースを流用して結合テストを行うことができる。
【０１２４】
さらに、結合テストでは、すべてのテストが実行されなくともよい。例えば、モジュールには、処理の内容によって、いわゆる分岐が存在する場合が多い。具体的には、Ｃ言語では、「ｉｆ」文又は「ｃａｓｅ」文等があると、処理は、条件によって分岐する。テストでは、分岐がすべて網羅されるようにテストケースが生成される、すなわち、いわゆる網羅率が「１００パーセント」となるようにテストケースが準備されるのが望ましい。しかし、仕様等によっては、発生させにくい条件が含まれる場合がある。例えば、いわゆる異常系の条件は、低い確率でしか発生しなかったり、長時間処理を実行しないと発生しない条件であったり、発生しても大きな影響がなかったりする場合がある。このようなテストケースは、単体テストの方でテストが十分に行われていれば、結合テストの方では、すべての条件を網羅する必要性が低い場合がある。
【０１２５】
なお、網羅率は、分岐の網羅に限られず、例えば、文網羅、条件網羅、経路網羅、入口／出口網羅、ビット網羅又はこれらの組み合わせ等でもよい。すなわち、網羅率は、いわゆるカバレッジ（ｃｏｖｅｒａｇｅ）分析等で調査できる数値であればよい。
【０１２６】
このようなテストケースは、一部又は全部が省略されてもよい。例えば、ループとなる処理が続き、長時間テストが行われているような場合等では、ＰＣ１０は、途中でテストを打ち切ったり、一部のテストを省略したりしてもよい。このようにして、ＰＣ１０は、必要性の低いテストを省略すると、テストを効率的に行うことができる。
【０１２７】
また、ＰＣ１０は、テストが実行されている時間が長かったり、処理回数等が大きい値となったりした場合には、ループ等を打ち切ってテストの一部を中断させるように通知してもよい。テストは、条件によっては、無限ループに入ったり、発生の可能性が低い条件等を作ろうとしたりすると、テストを実行している時間又は処理回数が増大する場合がある。このような場合には、ＰＣ１０は、無限ループを回避する等によって、テストを効率化させてもよい。
【０１２８】
また、テストよっては、一方の単体テストでは、実行されるのに、他方の単体テストでは、実行されないテストがある場合もある。このようなテストは、整合を取るため、例えば、結合テストでは、実行されないように省略されてもよい。
【０１２９】
また、ＰＣ１０は、判定部１０Ｆ４によって、第１モジュールに結合されているモジュールがテストモジュールであるか、第２モジュールであるかを判定する。例えば、判定手順は、ステップＳ２０３のような処理である。そして、例えば、図６に示すような構成、すなわち、テストモジュールを結合して結合テストを行う場合には、ＰＣ１０は、ステップＳ２０４のように、テストモジュールについてのテストを省略する。このように、ＰＣ１０は、第１モジュールに結合されているモジュールの種類によって、結合テストを切り替える。
【０１３０】
テストモジュールは、第２モジュールの代わりであって、テストモジュールをテストしても、モジュールの品質向上等にはつながらない場合が多い。そこで、ＰＣ１０は、テストモジュールに対するテストが実行されるのを回避するため、テストモジュールが結合されている場合には、テストモジュールについてのテストを省略する。このようにすると、ＰＣ１０は、無駄なテストが実行されるのを防ぐことができ、テストが実行される時間を短くする等によって、テストを効率化させることができる。
【０１３１】
＜その他の実施形態＞
なお、情報処理装置は、複数の装置であってもよい。すなわち、実施形態は、１つ以上の情報処理装置を有する情報処理システム等によって実現されてもよい。
【０１３２】
さらに、情報処理装置は、３つ以上のモジュールを単体テスト及び結合テストしてもよい。すなわち、結合テストは、３つ以上のモジュールを結合したテストでもよい。
【０１３３】
また、テスト方法は、プログラム等のソフトウェアをデバックするのに行われるテストに限られない。すなわち、テスト対象とするモジュールは、Ｃ言語等のプログラム言語によって記載されたソースコードのファイルに限られない。例えば、モジュールは、Ｖｅｒｉｌｏｇ等のＨＤＬ（Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ、ハードウェア記述言語）等で記載されたソースコードのファイル等でもよい。すなわち、ＨＤＬ等の場合には、テストドライバは、テストベンチ等でもよく、テストに、いわゆる検証（ａｓｓｅｒｔｉｏｎ）が含まれてもよい。
【０１３４】
本発明に係る実施形態は、情報処理装置又は情報処理システム等のコンピュータに、上記のテスト方法に係る各手順を実行させるためのプログラムによって実現されてもよい。また、プログラムは、コンピュータが読み取り可能な記録媒体に格納して頒布することができる。
【０１３５】
以上、本発明の好ましい実施例について説明したが、本発明は、説明した実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形又は変更が可能である。
【符号の説明】
【０１３６】
１０  ＰＣ
Ａ、Ｂ  プログラム
ＭＢ、ＭＸ、ＭＹ  モック
ＣＴＡ、ＣＴＢ  テスト制御部
ＳＥＡ、ＳＥＢ、ＳＥＭＢ、ＳＥＭＸ、ＳＥＭＹ  モック設定部
ＥＸＡ、ＥＸＢ  テスト実行部
１０Ｆ１、１０Ｆ２  単体テスト部
１０Ｆ３  結合部
１０Ｆ４  判定部
１０Ｆ５  結合テスト部
１０Ｆ６  変換部
１０Ｆ７  テスト結果出力部
【図１】
2018194955.tif 000003
【図２】
2018194955.tif 000004
【図３】
2018194955.tif 000005
【図４】
2018194955.tif 000006
【図５】
2018194955.tif 000007
【図６】
2018194955.tif 000008
【図７】
2018194955.tif 000009
【図８】
2018194955.tif 000010
【図９】
2018194955.tif 000011
【図１０】
2018194955.tif 000012
【図１１】
2018194955.tif 000013
【図１２】
2018194955.tif 000014