(57)【要約】【課題】ソフトウェアのテストを行うにあたり、テストユーザに負荷をかけることなく、テストの網羅性を向上させることが可能なテスト支援装置、テスト支援システム、制御方法、及びプログラムを提供すること【解決手段】テストの対象となるソフトウェアのソースコードを解析することで、そのソースコード内の関数、関数等を構成する引数、戻り値、使用構造体などの因子を抽出し、当該因子に対して使用する因子を選択し（ステップＳ２００）、選択した各因子に対する水準値を設定した後（ステップＳ２０１）、各因子同士の水準値の組み合わせを作成することで、テストデータの作成を行う（ステップＳ２０２）。【選択図】図４
2014170494.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアのテストを支援するためのテスト支援装置であって、
前記ソフトウェアのソースコードを解析することによってテスト対象となる因子情報を抽出する抽出手段と、
前記抽出手段によって抽出した因子情報の各因子に対して水準値を設定するための水準値設定手段と、
前記抽出手段によって抽出した因子情報と前記水準値設定手段によって設定した水準値を用いて、各因子同士の水準値の組み合わせを作成することで、テストデータを作成するテストデータ作成手段と、
を備えたことを特徴とするテスト支援装置。
【請求項２】
前記抽出手段は、前記因子情報として、ソースコードの関数を抽出し、前記水準値設定手段は、前記抽出手段によって抽出したソースコードの関数で用いられるパラメータを因子として水準値を設定することを特徴とする請求項１に記載のテスト支援装置。
【請求項３】
テスト対象となるソースコードの関数を選択するための選択手段を更に備え、
前記抽出手段は、前記選択手段によって選択したソースコードの関数を抽出することを特徴とする請求項２に記載のテスト支援装置。
【請求項４】
クライアント端末とテスト支援装置とがネットワークを介して接続されたテスト支援システムであって、
前記クライアント端末は、
抽出手段によって抽出した因子情報を受信する第１のクライアント受信手段と、
前記第１のクライアント受信手段によって受信した因子情報の各因子に対して水準値を設定するための水準値設定手段と、
前記水準値設定手段によって設定した因子に対する水準値を前記テスト支援装置へ送信するクライアント送信手段と、
テスト支援装置送信手段によって作成したテストデータを受信する第２のクライアント受信手段と、
前記第２のクライアント受信手段によって受信したテストデータを表示する表示手段と、
を備え、
前記テスト支援装置は、
ソースコードを解析することによってテスト対象となる因子情報を抽出する抽出手段と、
前記クライアント送信手段によって送信された因子に対する水準値を受信するテスト支援装置受信手段と、
前記テスト支援装置受信手段によって受信した因子に対する水準値を用いて、各因子同士の水準値の組み合わせを作成することで、テストデータを作成するテストデータ作成手段と、
前記テストデータ作成手段によって作成したテストデータを前記クライアント端末へ送信するテスト支援装置送信手段と、
を備えたことを特徴とするテスト支援システム。
【請求項５】
ソフトウェアのテストを支援するためのテスト支援装置の制御方法であって、
前記テスト支援装置の抽出手段が、ソースコードを解析することによってテスト対象となる因子情報を抽出する抽出ステップと、
前記テスト支援装置の水準値設定ステップが、前記抽出ステップによって抽出した因子情報の各因子に対して水準値を設定するための水準値設定ステップと、
前記テスト支援装置の前記抽出ステップによって抽出した因子情報と前記水準値設定ステップによって設定した水準値を用いて、各因子同士の水準値の組み合わせを作成することで、テストデータを作成するテストデータ作成ステップと、
を実行することを特徴とするテスト支援装置の制御方法。
【請求項６】
ソフトウェアのテストを支援するためのテスト支援装置で読取実行可能なプログラムであって、
前記テスト支援装置を、
前記ソフトウェアのソースコードを解析することによってテスト対象となる因子情報を抽出する抽出手段と、
前記抽出手段によって抽出した因子情報の各因子に対して水準値を設定するための水準値設定手段と、
前記抽出手段によって抽出した因子情報と前記水準値設定手段によって設定した水準値を用いて、各因子同士の水準値の組み合わせを作成することで、テストデータを作成するテストデータ作成手段と、
して機能させることを特徴とするプログラム。
【請求項７】
クライアント端末とテスト支援装置とがネットワークを介して接続されたテスト支援システムの制御方法であって、
前記クライアント端末は、
抽出ステップによって抽出した因子情報を受信する第１のクライアント受信ステップと、
前記第１のクライアント受信ステップによって受信した因子情報の各因子に対して水準値を設定するための水準値設定ステップと、
前記水準値設定ステップによって設定した因子に対する水準値を前記テスト支援装置へ送信するクライアント送信ステップと、
テスト支援装置送信ステップによって作成したテストデータを受信する第２のクライアント受信ステップと、
前記第２のクライアント受信ステップによって受信したテストデータを表示する表示ステップと、
を実行し、
前記テスト支援装置は、
ソースコードを解析することによってテスト対象となる因子情報を抽出する抽出ステップと、
前記クライアント送信ステップによって送信された因子に対する水準値を受信するテスト支援装置受信ステップと、
前記テスト支援装置受信ステップによって受信した因子に対する水準値を用いて、各因子同士の水準値の組み合わせを作成することで、テストデータを作成するテストデータ作成ステップと、
前記テストデータ作成ステップによって作成したテストデータを前記クライアント端末へ送信するテスト支援装置送信ステップと、
を実行することを特徴とするテスト支援システムの制御方法。
【請求項８】
クライアント端末とテスト支援装置とがネットワークを介して接続されたテスト支援システムにおいて読取実行可能なプログラムであって、
前記クライアント端末を、
抽出手段によって抽出した因子情報を受信する第１のクライアント受信手段と、
前記第１のクライアント受信手段によって受信した因子情報の各因子に対して水準値を設定するための水準値設定手段と、
前記水準値設定手段によって設定した因子に対する水準値を前記テスト支援装置へ送信するクライアント送信手段と、
テスト支援装置送信手段によって作成したテストデータを受信する第２のクライアント受信手段と、
前記第２のクライアント受信手段によって受信したテストデータを表示する表示手段と、
して機能させ、
前記テスト支援装置を、
ソースコードを解析することによってテスト対象となる因子情報を抽出する抽出手段と、
前記クライアント送信手段によって送信された因子に対する水準値を受信するテスト支援装置受信手段と、
前記テスト支援装置受信手段によって受信した因子に対する水準値を用いて、各因子同士の水準値の組み合わせを作成することで、テストデータを作成するテストデータ作成手段と、
前記テストデータ作成手段によって作成したテストデータを前記クライアント端末へ送信するテスト支援装置送信手段と、
して機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアのテストを行うにあたり、特に単体テスト時におけるホワイトボックステストの網羅性を高める技術に関する。
【背景技術】
【０００２】
近年、ウォーターフォール型のシステム開発において、詳細設計から単体テスト迄の開発工程では、それぞれの工程で定義された開発成果物のレビューをもってフェーズ移行を実施している。
【０００３】
詳細設計にて定義された仕様書に従い、開発工程を得て生成された開発成果物（ソースコード）は、単体テストにて主にテストの網羅性をもって検証評価を計り次工程への移行審議を行う必要がある。
【０００４】
単体テストの観点としては、テストの網羅率を主体としており、テストのシナリオに関しては、明確な縛りが無いようなことがあげられる。
【０００５】
一般的に、単体テストをホワイトボックステストとして評価する際に、テストの網羅率を計測するが、単体テスト自体は、開発者主体で設計し計測する。
【０００６】
そして、単体テストの計測者のレポートを基に、単体テストのテスト内容を評価検討し、問題が無い事、次工程への申し送りを確認して単体テストへの移行審議を終える。
【０００７】
そこで、テストの網羅性が要求されるにあたり、テストの網羅性を客観的に保障する為のシステム的な応援機構が提供されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１１−１１３２７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、単体テストの完了を審議し、次工程への移行判断を行うにあたり、テストの網羅性の数値成績を中心とした判断となっているが、網羅性を示す数値の妥当性を客観的に保障する術が無い為、その妥当性を確認する為に人的レビューを持って担保を取る状況にある。
【００１０】
つまり、テストの網羅性の問題点として、網羅性が品質には直結しない、網羅率は操作が可能である、網羅した結果は収集できるが、その妥当性はレビューにて判断する、レビュー時に単体テストのテストケースが仕様に基づいたコードかどうか、過不足が無いかを人的に判断する等の問題がある。
【００１１】
また、人的レビューにおける属人性の問題点として、全ての状況を人が認識し判断する事は不可能である、仕様を理解してその組み合わせを正しく満たしているかの判断はレビューアのスキルに左右される、属人性が存在し、均質化が難しい、基準があいまいになりやすい、網羅率向上が基準化してしまう等の問題がある。
【００１２】
特許文献１に記載された発明では、プログラムを解析したうえで、実装ロジックに着目して必要なテストデータ、テストロジックを生成する機構を備えている。
【００１３】
しかし、この場合は、プログラムやデータを自動生成する事は行わず、テストの網羅性を客観的に保障する為のシステム的な応援機構のみが提供されており、網羅性そのものの正当性を向上させることはできず、また、属人性の排除も実現できていない。
【００１４】
そこで、本発明では、ソフトウェアのテストを行うにあたり、テストユーザに負荷をかけることなく、テストの網羅性を向上させることが可能なテスト支援装置、テスト支援システム、制御方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１５】
上記課題を解決するための第１の発明は、ソフトウェアのテストを支援するためのテスト支援装置であって、前記ソフトウェアのソースコードを解析することによってテスト対象となる因子情報を抽出する抽出手段と、前記抽出手段によって抽出した因子情報の各因子に対して水準値を設定するための水準値設定手段と、前記抽出手段によって抽出した因子情報と前記水準値設定手段によって設定した水準値を用いて、各因子同士の水準値の組み合わせを作成することで、テストデータを作成するテストデータ作成手段と、を備えたことを特徴とする。
【００１６】
上記課題を解決するための第２の発明は、クライアント端末とテスト支援装置とがネットワークを介して接続されたテスト支援システムであって、前記クライアント端末は、抽出手段によって抽出した因子情報を受信する第１のクライアント受信手段と、前記第１のクライアント受信手段によって受信した因子情報の各因子に対して水準値を設定するための水準値設定手段と、前記水準値設定手段によって設定した因子に対する水準値を前記テスト支援装置へ送信するクライアント送信手段と、テスト支援装置送信手段によって作成したテストデータを受信する第２のクライアント受信手段と、前記第２のクライアント受信手段によって受信したテストデータを表示する表示手段と、を備え、前記テスト支援装置は、ソースコードを解析することによってテスト対象となる因子情報を抽出する抽出手段と、前記クライアント送信手段によって送信された因子に対する水準値を受信するテスト支援装置受信手段と、前記テスト支援装置受信手段によって受信した因子に対する水準値を用いて、各因子同士の水準値の組み合わせを作成することで、テストデータを作成するテストデータ作成手段と、前記テストデータ作成手段によって作成したテストデータを前記クライアント端末へ送信するテスト支援装置送信手段と、を備えたことを特徴とする。
【００１７】
上記課題を解決するための第３の発明は、ソフトウェアのテストを支援するためのテスト支援装置の制御方法であって、前記テスト支援装置の抽出手段が、ソースコードを解析することによってテスト対象となる因子情報を抽出する抽出ステップと、前記テスト支援装置の水準値設定ステップが、前記抽出ステップによって抽出した因子情報の各因子に対して水準値を設定するための水準値設定ステップと、前記テスト支援装置の前記抽出ステップによって抽出した因子情報と前記水準値設定手段によって設定した水準値を用いて、各因子同士の水準値の組み合わせを作成することで、テストデータを作成するテストデータ作成ステップと、を実行することを特徴とする。
【００１８】
上記課題を解決するための第４の発明は、ソフトウェアのテストを支援するためのテスト支援装置で読取実行可能なプログラムであって、前記テスト支援装置を、前記ソフトウェアのソースコードを解析することによってテスト対象となる因子情報を抽出する抽出手段と、前記抽出手段によって抽出した因子情報の各因子に対して水準値を設定するための水準値設定手段と、前記抽出手段によって抽出した因子情報と前記水準値設定手段によって設定した水準値を用いて、各因子同士の水準値の組み合わせを作成することで、テストデータを作成するテストデータ作成手段と、して機能させることを特徴とする。
【００１９】
上記課題を解決するための第５の発明は、クライアント端末とテスト支援装置とがネットワークを介して接続されたテスト支援システムの制御方法であって、前記クライアント端末は、抽出ステップによって抽出した因子情報を受信する第１のクライアント受信ステップと、前記第１のクライアント受信ステップによって受信した因子情報の各因子に対して水準値を設定するための水準値設定ステップと、前記水準値設定ステップによって設定した因子に対する水準値を前記テスト支援装置へ送信するクライアント送信ステップと、テスト支援装置送信ステップによって作成したテストデータを受信する第２のクライアント受信ステップと、前記第２のクライアント受信ステップによって受信したテストデータを表示する表示ステップと、を実行し、前記テスト支援装置は、ソースコードを解析することによってテスト対象となる因子情報を抽出する抽出ステップと、前記クライアント送信ステップによって送信された因子に対する水準値を受信するテスト支援装置受信ステップと、前記テスト支援装置受信ステップによって受信した因子に対する水準値を用いて、各因子同士の水準値の組み合わせを作成することで、テストデータを作成するテストデータ作成ステップと、前記テストデータ作成ステップによって作成したテストデータを前記クライアント端末へ送信するテスト支援装置送信ステップと、を備えたことを特徴とする。
【００２０】
上記課題を解決するための第６の発明は、クライアント端末とテスト支援装置とがネットワークを介して接続されたテスト支援システムにおいて読取実行可能なプログラムであって、前記クライアント端末を、抽出手段によって抽出した因子情報を受信する第１のクライアント受信手段と、前記第１のクライアント受信手段によって受信した因子情報の各因子に対して水準値を設定するための水準値設定手段と、前記水準値設定手段によって設定した因子に対する水準値を前記テスト支援装置へ送信するクライアント送信手段と、テスト支援装置送信手段によって作成したテストデータを受信する第２のクライアント受信手段と、前記第２のクライアント受信手段によって受信したテストデータを表示する表示手段と、して機能させ、前記テスト支援装置を、ソースコードを解析することによってテスト対象となる因子情報を抽出する抽出手段と、前記クライアント送信手段によって送信された因子に対する水準値を受信するテスト支援装置受信手段と、前記テスト支援装置受信手段によって受信した因子に対する水準値を用いて、各因子同士の水準値の組み合わせを作成することで、テストデータを作成するテストデータ作成手段と、前記テストデータ作成手段によって作成したテストデータを前記クライアント端末へ送信するテスト支援装置送信手段と、して機能させることを特徴とする。
【発明の効果】
【００２１】
本発明によれば、ソフトウェアのテストを行うにあたり、当該ソフトウェアを構成するプログラムを解析して得られた因子を用いてテスト仕様を構築することで、テストユーザに負荷をかけることなく、テストの網羅性を向上させることができる、という効果を奏する。
【図面の簡単な説明】
【００２２】
【図１】本発明の実施形態に係る単体テスト支援システムの構成の一例を示すシステム構成図である。
【図２】本発明の実施形態に係るクライアント端末、及びサーバのハードウェアの構成を示す構成図である。
【図３】本発明の実施形態に係る単体テスト支援システムにおいて実行される単体テストの評価に関する処理の流れを示すフローチャートである。
【図４】本発明の実施形態に係る単体テスト支援システムにおいて実行されるテスト設定支援の処理の流れを示すフローチャートである。
【図５】本発明の実施形態に係る単体テスト支援システムにおいて実行される入力因子選択の処理の流れを示すフローチャートである。
【図６】本発明の実施形態に係る単体テスト支援システムにおいて実行される水準値情報入力の処理の流れを示すフローチャートである。
【図７】本発明の実施形態に係る単体テスト支援システムにおいて実行されるテストデータ構築支援の処理の流れを示すフローチャートである。
【図８】本発明の実施形態におけるテスト設計支援画面の構成を示す構成図である。
【図９】本発明の実施形態における因子入力支援画面の構成を示す構成図である。
【図１０】本発明の実施形態における水準値情報入力画面の構成を示す構成図である。
【図１１】本発明の実施形態における因子解析データファイルの構成を示す構成図である。
【図１２】本発明の実施形態におけるテストデータファイルの構成を示す構成図である。
【図１３】本発明の実施形態におけるテストシナリオ一覧画面の構成を示す構成図である。
【図１４】本発明の実施形態におけるテスト結果画面の構成を示す構成図である。
【発明を実施するための形態】
【００２３】
以下、図面を参照して、本発明の実施形態を詳細に説明する。
【００２４】
図１は、本発明の単体テスト支援システムの構成の一例を示すシステム構成図である。
【００２５】
単体テスト支援システムは、１又は複数のクライアント端末１０１、１０２、および１又は複数のサーバ１０３が、ローカルエリアネットワーク（ＬＡＮ）１０４を介して接続される構成となっている。
【００２６】
サーバ１０３は、クライアント端末１０１、１０２からの、テスト設計の支援依頼に応じて、単体テストで用いるデータを作成するにあたり、テスト対象となるソフトウェアのソースコードから必要な因子情報（関数等を構成する引数、戻り値、使用構造体など）の解析と抽出処理を実行する。
【００２７】
クライアント端末１０１、１０２は、サーバ１０３において抽出した因子情報を画面等へ表示すると共に、表示された因子情報から、必要とする因子の選択とその因子に対する水準値の情報の入力とに応じて、サーバ１０３は、テストデータの基となる組み合わせ表を作成する。
【００２８】
そして、クライアント端末１０１、１０２において、作成した組み合わせ表を表示することで、テストデータの出力が可能となる。尚、組み合わせ表の作成は、カバレッジ率等の目的に応じた網羅率の向上を図るために、様々な組み合わせを作成することが可能であり、この組み合わせ表の作成には、既存の技術でもある組み合わせWEBサービスライブラリ等の汎化されたロジックを使用する。
【００２９】
以下、図２を用いて、図１に示したサーバ１０３のハードウェア構成について説明する。
【００３０】
図２において、２０１はＣＰＵで、システムバス２０４に接続される各デバイスやコントローラを統括的に制御する。また、ＲＯＭ２０２あるいは外部メモリ２１１には、ＣＰＵ２０１の制御プログラムであるＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  ／  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）やオペレーティングシステムプログラム（以下、ＯＳ）や、各サーバ或いは各ＰＣの実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。
【００３１】
２０３はＲＡＭで、ＣＰＵ２０１の主メモリ、ワークエリア等として機能する。ＣＰＵ２０１は、処理の実行に際して必要なプログラム等をＲＯＭ２０２あるいは外部メモリ２１１からＲＡＭ２０３にロードして、該ロードしたプログラムを実行することで各種動作を実現するものである。
【００３２】
また、２０５は入力コントローラで、キーボード（ＫＢ）２０９や不図示のマウス等のポインティングデバイス等からの入力を制御する。２０６はビデオコントローラで、ＣＲＴディスプレイ（ＣＲＴ）２１０等の表示器への表示を制御する。
【００３３】
なお、図２では、ＣＲＴ２１０と記載しているが、表示器はＣＲＴだけでなく、液晶ディスプレイ等の他の表示器であってもよい。これらは必要に応じて管理者が使用するものである。
【００３４】
２０７はメモリコントローラで、ブートプログラム，各種のアプリケーション，フォントデータ，ユーザファイル、編集ファイル、各種データ等を記憶する外部記憶装置（ハードディスク（ＨＤ））や、フレキシブルディスク（ＦＤ）、或いはＰＣＭＣＩＡカードスロットにアダプタを介して接続されるコンパクトフラッシュ（登録商標）メモリ等の外部メモリ２１１へのアクセスを制御する。
【００３５】
２０８は通信Ｉ／Ｆコントローラで、ネットワーク（例えば、図１に示したＬＡＮ１０４）を介して外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、ＴＣＰ／ＩＰを用いた通信等が可能である。
【００３６】
なお、ＣＰＵ２０１は、例えばＲＡＭ２０３内の表示情報用領域へアウトラインフォントの展開（ラスタライズ）処理を実行することにより、ＣＲＴ２１０上での表示を可能としている。また、ＣＰＵ２０１は、ＣＲＴ２１０上の不図示のマウスカーソル等でのユーザ指示を可能とする。
【００３７】
本発明を実現するための後述する各種プログラムは、外部メモリ２１１に記録されており、必要に応じてＲＡＭ２０３にロードされることによりＣＰＵ２０１によって実行されるものである。さらに、上記プログラムの実行時に用いられる定義ファイル等も、外部メモリ２１１に格納されており、これらについての詳細な説明も後述する。
【００３８】
尚、クライアント端末１０１、１０２におけるハードウェアの構成もサーバ１０３の構成とほぼ同等な構成を有するので説明を省略し、以降、同じ符号を用いて説明する。
【００３９】
以下、図３に示すフローチャートを参照して、単体テスト支援システム１００における単体テストの評価に関する処理の流れについて説明する。尚、本処理における各ステップは、ＣＰＵ２０１の制御の下、実行される。また、クライアント端末１０１における処理を記載して説明を行うが、クライアント端末１０２における処理としても何ら問題はない（以下、同様）。
【００４０】
ステップＳ１００では、クライアント端末１０１は、図８に示すテスト設計支援画面をＣＲＴ２１０へ表示する。
【００４１】
テスト設計支援画面３００は、テスト対象とするソフトウェア（ファイル）、及び、テスト対象となる関数を選択するためのテスト対象選択メニュー３０１、テスト対象となるソフトウェア（ファイル）の関数を表示させるための対象関数表示エリア３０２を備えている。
【００４２】
テスト対象選択メニュー３０１において、テスト対象とするソフトウェア（ファイル）を選択する場合は、テスト対象選択メニュー３０１の上段に位置するファイル選択のラベルを、ＫＢ２０９を介して選択すると、ファイル選択画面（不図示）がＣＲＴ２１０へ表示され、ファイル選択画面（不図示）には、クライアント端末１０１の外部メモリ２１１へ保存したファイルを表示選択させることで、当該ファイルの選択が可能である。
【００４３】
また、テスト設計支援画面３００は、入力する因子を表示するための入力因子表示エリア３０３、テストで用いるデータを表示するためのテストデータ表示エリア３０４、組み合わせ表が出力されるファイル（後述）の名称を表示するための出力ファイル名表示エリア３０５、テストを一意に識別するためのテスト観点種別情報を入力するためのテスト観点種別表示欄３０６、及び因子や水準値等の組み合わせ評価技法（例えば、Ａｌｌｐａｉｒ法等）の表示を行うためのテスト設計手法表示領域３０７を備えている。
【００４４】
更に、テスト設計支援画面３００は、因子を入力する際に押下するためのＡｄｄボタン３０８、テスト設計が完了した際に押下するためのＯＫボタン３０９を備えている。
【００４５】
ステップＳ１０１では、クライアント端末１０１は、ステップＳ１０１においてユーザ操作によって選択された単体テストの対象とするソフトウェア（ファイル）を取得して、サーバ１０３へ送信する。
【００４６】
そして、サーバ１０３は、送信されたソフトウェア（ファイル）に対して、当該ソフトウェア（ファイル）を構成するソースコードを解析することで、ソースコードの関数及び当該関数の因子情報を抽出する。尚、この関数及び因子情報を抽出する方法としては、従来から存在する方法を適用する。
【００４７】
そして、ステップＳ１０３では、サーバ１０３は、ステップＳ１０２で抽出された解析結果を、図１１に示すＸＭＬ（Extensible  Markup  Language）形式の因子解析データファイル６００として出力し、クライアント端末１０１に送信する。
【００４８】
図１１には、因子解析データファイル６００の一例が示されている。
【００４９】
因子解析データファイル６００は、ソースコードに含まれる関数に関するデータを示す関数解析データ６０１、ソースコードに含まれる構造体に関するデータを示す構造体解析データ６０２、ソースコードに含まれる共用体に関するデータを示す共用体解析データ６０３の３つの解析データから構成される。これらの解析データには、其々を構成するパラメータが含まれ、さらに、入力系、あるいは、出力系を識別する情報を外部メモリ２１１へ予め記憶させておき、この解析データが何れに該当するのかを判別する。
【００５０】
ステップＳ１０４では、クライアント端末１０１は、ステップＳ１０３において送信された因子解析データファイル６００に含まれる因子情報を取得し、ユーザに対してテスト設計支援および、テストデータファイル７００（図１２参照、詳細後述）を作成するテスト設計支援処理を実行する。尚、本処理については、図４から図６に示すフローチャートを用いて後述する。
【００５１】
ステップＳ１０５では、クライアント端末１０１は、テストシナリオ一覧画面８００（図１３参照）をＣＲＴ２１０へ表示し、ステップＳ１０４によって作成したテストデータファイル７００を用いて、ユーザが実行した単体テストの結果に関する情報を、テストシナリオ一覧画面８００へ表示する。尚、テストデータファイル７００を用いて、単体のテストを実行する方法については、従来から存在する方法を用いることで実現する。この際に、テストデータファイル７００をテストの実行結果が出力された実行結果ファイル（不図示）と、をファイル名等で対応させて外部メモリ２１１へ保存する。
【００５２】
テストシナリオ一覧画面８００は、テスト対象とするソフトウェア及び関数に対応して、実行したテスト結果の一覧をリスト表示しており、各テストのテスト結果を表示するためのテスト結果一覧表示領域８０１を備えている。
【００５３】
テスト結果一覧表示領域８０１には、テストデータファイル７００のファイル名を表示するためのテストデータ名表示欄８０２、そのテスト対象とした関数の名称を表示する関数名表示欄８０３、テストの実行結果ファイル（不図示）の名称を表示するテスト結果ファイル名表示欄８０４を備え、テスト結果ファイル名表示欄８０４には、Ａｄｄボタン８０５を、ＫＢ２０９を用いて、クライアント端末１０１、あるいは、サーバ１０３に保管された実行結果ファイル（不図示）を読み込んで、そのファイルの名称を表示する。
【００５４】
ステップＳ１０６では、クライアント端末１０１は、前述したように、実行結果ファイル（不図示）を読み込んで、実行結果データを取り込む処理を実行し、ステップＳ１０７では、クライアント端末１０１は、ステップＳ１０６で取得した実行結果ファイル（不図示）のファイル名をテスト結果ファイル名表示欄８０４へ表示する。
【００５５】
ステップＳ１０７では、クライアント端末１０１は、テスト結果一覧表示領域８０１に表示されたレコードのうち、１レコードがＫＢ２０９によって選択されたことを検知すると、図１４に示すテスト結果情報画面９００をＣＲＴ２１０へ表示する。
【００５６】
テスト結果情報画面９００は、テストの実行結果を一覧でリスト表示するための画面であり、そのテストの実行結果、例えば、実施すべき総テスト回数、現在のテスト実行数、テスト結果が水準値等を用いた条件を満たすか否かを示す情報（満たす場合、ＯＫとし、満たさない場合、ＮＧとする等）、テスト対象とするＬＯＣ（Ｌｉｎｅｓ
Ｏｆ Ｃｏｄｅ）、テスト実行済みのＬＯＣやＬＯＣに関してのテスト実行率等に関する情報を表示するためのテスト結果表示領域９０１を備えている。
【００５７】
尚、テスト結果リスト表示領域８０１において複数のレコードが選択された場合、テスト結果表示領域９０１に選択された複数のレコードに該当するテスト実行結果を表示しても良いし、テスト結果情報画面９００へ遷移するためのボタン（不図示）をテストシナリオ一覧画面８００へ備えておき、このボタンを押下することで、テスト結果リスト表示領域８０１に表示された全てのレコードのテスト結果の情報をテスト結果表示領域９０１に表示しても良い。
【００５８】
そして、ステップＳ１０８では、クライアント端末１０１は、テスト結果情報画面９００へ表示した実行結果データをサーバ１０３へ送信し、サーバ１０３は、自身の外部メモリ２１１に備えたデータベース（不図示）へ記憶する。
【００５９】
次に、図４に示すフローチャートを参照して、単体テスト支援システム１００におけるテスト設計支援の処理の流れについて説明する。尚、本処理における各ステップは、ＣＰＵ２０１の制御の下、実行される。
【００６０】
ステップＳ２００では、ステップＳ１０３で出力された因子解析データファイル６００を基に、単体テストに用いる入力因子を選択する。尚、本処理の詳細については、図５に示すフローチャートを用いて後述する。
【００６１】
ステップＳ２０１では、ステップＳ２００において選択された入力因子に対して、水準値となる値を設定する。尚、本処理の詳細については、図６に示すフローチャートを用いて後述する。
【００６２】
ステップＳ２０２では、ステップＳ２００で選択された入力因子と、ステップＳ２０１で設定された水準値を基に、単体テストのデータを作成するための因子と水準値との組み合わせ表を作成する。尚、本処理の詳細については、図７に示すフローチャートを用いて後述する。
【００６３】
次に、図５に示すフローチャートを参照して、単体テスト支援システムにおける入力因子の選択の処理の流れについて説明する。尚、本処理における各ステップは、ＣＰＵ２０１の制御の下、実行される。
【００６４】
ステップＳ３００では、クライアント端末１０１は、テスト対象選択メニュー３０１の下段の機能選択のラベルの選択を検知すると、関数選択画面（不図示）をＣＲＴ２１０へ表示し、ステップＳ１０３において解析して得られた関数名の一覧を当該関数選択画面（不図示）へ表示した後、ユーザによって関数選択画面（不図示）から関数の選択を受付けると、テスト設計支援画面３００の対象関数表示エリア３０２に、選択した関数の名称を表示する。
【００６５】
ステップＳ３０１では、クライアント端末１０１は、ユーザにより、Ａｄｄボタン３０８が押下されたか否かを判定し、押下されたと判定した場合は、ステップＳ３０２へ処理を進め、押下されたと判定しない場合、ステップＳ３００へ処理を進める。
【００６６】
ステップＳ３０２では、クライアント端末１０１は、ステップＳ１００で選択したファイルの名称、ステップＳ３００において選択された関数の名称等のファイル及び関数を識別するための情報をサーバ１０３へ送信し、サーバ１０３は、ファイル及び関数を識別するための情報に該当する因子情報を因子解析データファイル６００から抽出し、サーバ１０３は、抽出した因子情報をクライアント端末１０１へ送信する。
【００６７】
ステップＳ３０３では、クライアント端末１０１は、図９に示す因子入力支援画面４００をＣＲＴ２１０へ表示する。
【００６８】
因子入力支援画面４００は、テストを一意に識別するためのテスト観点種別情報を入力するためのテスト観点種別欄４０１、因子や水準値等の組み合わせ評価技法（例えば、Ａｌｌｐａｉｒ法等）の選択を行うためのテスト設計手法選択欄４０２、テストで用いるデータとして使用するインプットのパラメータ（因子情報）を表示するインプットパラメータ表示領域４０３、アウトプットのパラメータ（因子情報）を表示するアウトプットパラメータ表示領域４０４を備えている。
【００６９】
インプットパラメータ表示領域４０３には、入力する因子とするインプットのパラメータを選択するためのインプットパラメータ選択ボックス４０５、インプットのパラメータの情報（型、変数名）を表示するためのインプットパラメータ情報表示領域４０６、アウトプットパラメータ表示領域４０４には、入力する因子とするアウトプットのパラメータを選択するためのアウトプットパラメータ選択ボックス４０７、アウトプットのパラメータの情報（型、変数名）を表示するためのアウトプットパラメータ情報表示領域４０８を備えている。
【００７０】
尚、インプットパラメータ情報表示領域４０６及びアウトプットパラメータ情報表示領域４０８には、其々、読み込んだ因子解析データファイル６００から抽出した因子情報の各パラメータを表示する。
【００７１】
因子入力支援画面４００は、入力する因子とする各パラメータを選択した後、確定する際に押下するためのＣｒｅａｔｅボタン４０９、あるいは、選択を中止して、因子入力支援画面４００を閉じるためのＣａｎｃｅｌボタン４１０を備えている。
【００７２】
この因子入力支援画面４００を用いることにより、これまでユーザの属人性に依存していたテストで用いるパラメータの抽出を機械的に行うことが出来るようになり、属人性の排除を実現できる。
【００７３】
ステップＳ３０４では、クライアント端末１０１は、ユーザからのテスト観点種別欄４０１への入力を受付け、ステップＳ３０５では、クライアント端末１０１は、ユーザから、テスト設計手法選択欄４０２に対しての選択を受付ける。
【００７４】
ステップＳ３０６では、クライアント端末１０１は、ユーザから、インプットパラメータ選択ボックス４０５及びアウトプットパラメータ選択ボックス４０７に対しての選択を受付ける。
【００７５】
ステップＳ３０７では、クライアント端末１０１は、Ｃｒｅａｔｅボタン４０９が押下されたか否かを判定し、押下されたと判定した場合、ステップＳ３０９へ処理を進め、押下されたと判定しない場合、ステップＳ３０５へ処理を進める。
【００７６】
ステップＳ３０８では、クライアント端末１０１は、テスト観点種別欄４０１、テスト設計手法選択欄４０２、インプットパラメータ選択ボックス４０５及びアウトプットパラメータ選択ボックス４０７の選択を受付けたパラメータに関する情報を因子情報としてサーバ１０３へ送信する。
【００７７】
次に、図６に示すフローチャートを参照して、単体テスト支援システムにおける水準値の情報を入力する処理の流れについて説明する。尚、本処理における各ステップは、ＣＰＵ２０１の制御の下、実行される。
【００７８】
ステップＳ４００では、クライアント端末１０１は、図１０に示す水準値入力画面５００をＣＲＴ２１０へ表示する。
【００７９】
水準値入力画面５００は、入力する因子としたパラメータに関する水準値に関する情報を表示するための水準値情報表示領域５０１を備えている。
【００８０】
水準値情報表示領域５０１には、設定した水準値を削除する際に押下するための水準値削除ボタン５０２、水準値を追加する際に押下するための水準値追加ボタン５０３、水準値を入力するための水準値入力欄５０４、水準値の種別（例えば、正常値あるいは異常値）を選択するための水準値種別選択欄５０５、各パラメータに対して水準値情報の入力を確定した際に押下するためのＯＫボタン５０６、及び水準値情報の入力を中止する際に押下するためのＣａｎｃｅｌボタン５０７を備えている。
【００８１】
水準値追加ボタン５０３を押下することにより、水準値入力欄５０４、及び水準値種別選択欄５０５が、押下した水準値追加ボタン５０３が存在する下の段へ新たに表示される。
【００８２】
尚、本ステップでは、クライアント端末１０１は、ステップＳ３０８においてサーバ１０３へ送信した因子情報等を受信し、この因子情報等に含まれるパラメータをそのパラメータの数の分だけ、それぞれの水準値情報表示領域５０１に表示する。
【００８３】
この水準値入力画面５００を用いることにより、これまでホワイトボックステストによりソースコードから網羅性を確保していた部分が、仕様に基づくブラックボックステストの実施と、品質上の網羅性向上を実現することが可能となる。
【００８４】
ステップＳ４０１では、クライアント端末１０１は、ユーザから、各水準値情報表示領域５０１の水準値入力欄５０４への入力を受付け、ステップＳ４０２では、ユーザから、各水準値情報表示領域５０１の水準値種別選択欄５０５に対しての選択を受付ける。
【００８５】
ステップＳ４０３では、クライアント端末１０１は、ユーザによって、ＯＫボタン５０６が押下されたか否かを判定し、押下されたと判定した場合、ステップＳ４０４へ処理を進め、押下されたと判定しない場合、ステップＳ４０１へ処理を進める。
【００８６】
ステップＳ４０４では、クライアント端末１０１は、水準値入力画面５００に対して入力されたパラメータに対応した水準値情報を取得して、サーバ１０３へ送信する。
【００８７】
次に、図７に示すフローチャートを参照して、単体テスト支援システム１００におけるテストデータ構築支援に関する処理の流れについて説明する。尚、本処理における各ステップは、ＣＰＵ２０１の制御の下、実行される。
【００８８】
ステップＳ５００では、サーバ１０３は、ステップＳ３０８で送信された因子情報と、ステップＳ４０４で送信されたパラメータに対応した水準値情報とを用いて、組み合わせ表を作成してファイルとして記憶する。
【００８９】
この組み合わせは、前述したように、様々な組み合わせを作成することが可能であり、この組み合わせ表の作成には、既存の技術でもある組み合わせＷＥＢサービスライブラリ等の汎化されたロジックを使用する。その方法としては、因子入力支援画面４００のテスト設計手法選択欄４０２において設定された評価技法（例えば、Ａｌｌｐａｉｒ法等）を用いて、組み合わせを行う。
【００９０】
ステップＳ５０１では、サーバ１０３は、ステップＳ５００において作成した組み合わせ表に関する情報を取得して、クライアント端末１０１へ送信する。
【００９１】
ステップＳ５０２では、クライアント端末１０１は、ステップＳ５０１において送信された組み合わせ表に関する情報を用いて、テストデータ表示エリア３０４へ表示すると共に、出力ファイル名表示エリア３０５に組み合わせ表のファイル名を表示する。また、テスト観点種別欄４０１、テスト設計手法選択欄４０２に設定した各情報を、テスト観点種別表示欄３０６、テスト設計手法表示領域３０７へ表示する。
【００９２】
尚、この水準値については、適宜、テストデータ表示エリア３０４を、ＫＢ２０９を介して、直接修正することが可能である。
【００９３】
この処理により、因子情報と仕様に基づく水準値情報を漏れなく組み合わせたテストで用いるためのデータを構築すること出来、仕様網羅性をも向上させるテストの実施を実現できる。
【００９４】
ステップＳ５０３では、クライアント端末１０１は、ＯＫボタン３０９が押下されたか否かを判定し、押下されたと判定した場合、ステップＳ５０４へ処理を進め、ステップＳ５０４では、クライアント端末１０１は、出力ファイル名表示エリア３０５に表示された名称をファイル名として、組み合わせ表の情報を用いて、組み合わせ表をＣＳＶ（Comma  Separated  Values）形式のファイルで出力することで、テストで用いるデータの作成を行う。
【００９５】
図１２には、このファイルの構成例が示されている。
【００９６】
このファイル（テストデータファイル７００）は、最上行であるタイトル行７０１、最上行から２行目以降のデータ行７０２から構成されており、タイトル行７０１には、因子入力支援画面４００で選択したパラメータ（インプット、アウトプット、グローバル）、戻り値などの項目が全て表示され、データ行７０２には、組み合わせ表の情報に従ったテストで用いるデータが設定される。
【００９７】
以上、本発明によれば、ソフトウェアのテストを行うにあたり、当該ソフトウェアを構成するプログラムを解析して得られた因子を用いてテスト仕様を構築することで、テストユーザに負荷をかけることなく、テストの網羅性を向上させることができる。
【００９８】
以上、実施形態例を詳述したが、本発明は、例えば、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【００９９】
また、本発明におけるプログラムは、各処理方法をコンピュータが実行可能（読み取り可能）なプログラムであり、本発明の記憶媒体は、各処理方法をコンピュータが実行可能
【０１００】
なプログラムが記憶されている。
【０１０１】
なお、本発明におけるプログラムは、各装置の処理方法ごとのプログラムであってもよい。
【０１０２】
以上のように、前述した実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムを読取り実行することによっても、本発
【０１０３】
明の目的が達成されることは言うまでもない。
【０１０４】
この場合、記録媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記憶した記録媒体は本発明を構成することになる。
【０１０５】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＥＥＰＲＯＭ、シリコンディスク等を用いることができる。
【０１０６】
また、コンピュータが読み出したプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータで稼働しているＯＳ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１０７】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１０８】
また、本発明は、複数の機器から構成されるシステムに適用しても、１つの機器からなる装置に適用してもよい。
【０１０９】
また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０１１０】
さらに、本発明を達成するためのプログラムをネットワーク上のサーバ，データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステム、あるいは装置が、本発明の効果を享受することが可能となる。なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【０１１１】
１００    単体テスト支援システム
１０１    クライアント端末
１０２    クライアント端末
１０３    サーバ
１０４    ネットワーク
２０１    ＣＰＵ
２０２    ＲＯＭ
２０３    ＲＡＭ
２０４    システムバス
２０５    入力コントローラ
２０６    ビデオコントローラ
２０７    メモリコントローラ
２０８    通信Ｉ／Ｆコントローラ
２０９    ＫＢ
２１０    ＣＲＴ
２１１    外部メモリ
【図１】
2014170494.tif 000003
【図２】
2014170494.tif 000004
【図３】
2014170494.tif 000005
【図４】
2014170494.tif 000006
【図５】
2014170494.tif 000007
【図６】
2014170494.tif 000008
【図７】
2014170494.tif 000009
【図８】
2014170494.tif 000010
【図９】
2014170494.tif 000011
【図１０】
2014170494.tif 000012
【図１１】
2014170494.tif 000013
【図１２】
2014170494.tif 000014
【図１３】
2014170494.tif 000015
【図１４】
2014170494.tif 000016