(57)【要約】【課題】テストの実施結果に応じて、再度テストを行う要員をアサインするようなテスト計画を作成するにあたり、テスト計画の作成者の作業負荷をかけることなく適正な計画を作成することを目的とする。【解決手段】テスト計画を作成するユーザは、メイン画面３００を用いて、テスト対象とするプロジェクト及びテスト要員の候補を選択し、テスト計画を作成する指示を行うと、プロジェクトを構成するクラスを解析することで、クラス間の関連性を見出し、関連性のあるクラスをグループとして分類し、分類したグループに見合うテスト要員を特定することでテスト計画を作成する【選択図】図３
2015011495.tif 000002
【特許請求の範囲】
【請求項１】
テスト要員のテスト対象とするモジュールに対するスキル情報を記憶する記憶手段と、
テスト対象とするモジュールを解析することで各モジュール間の関連性を解析する解析手段と、
前記解析手段によって関連性のあるモジュールをグループとして分類する分類手段と、
前記分類手段によって分類されたグループに対して前記記憶手段に記憶されたスキル情報を用いて前記テスト要員を割当てる割当手段と、
を備えたことを特徴とするテスト計画作成装置。
【請求項２】
クライアント端末とテスト計画作成装置とがネットワークを介して接続されたテスト計画作成システムであって、
前記クライアント端末は、
テスト対象とするモジュールを選択した後、テスト計画の作成指示の要求を行う要求手段と、
送信手段によって送信されたテスト計画情報を受信する受信手段と、
前記受信手段によって受信したテスト計画情報を表示部へ表示する表示手段と、
を備え、
前記テスト計画作成装置は、
テスト要員のテスト対象とするモジュールに対するスキル情報を記憶する記憶手段と、
前記要求手段によってテスト計画の作成指示の要求を受付けた後、前記選択されたモジュールを解析することで各モジュール間の関連性を解析する解析手段と、
前記解析手段によって関連性のあるモジュールをグループとして分類する分類手段と、
前記分類手段によって分類されたグループに対して前記記憶手段に記憶されたスキル情報を用いて前記テスト要員を割当てる割当手段と、
前記割当て手段によって割当てたグループに対応するテスト要員に関するテスト計画情報を前記クライアント端末へ送信する送信手段と、
を備えたことを特徴とするテスト計画作成システム。
【請求項３】
モジュールのテスト計画を作成するテスト計画作成装置の制御方法であって、
前記テスト計画作成装置は、
テスト対象とするモジュールを解析することで各モジュール間の関連性を解析する解析ステップと、
前記解析ステップによって関連性のあるモジュールをグループとして分類する分類ステップと、
前記分類ステップによって分類されたグループに対してテスト要員のテスト対象とするモジュールに対するスキル情報を記憶する記憶手段に記憶されたスキル情報を用いて前記テスト要員を割当てる割当ステップと、
を実行することを特徴とするテスト計画作成装置の制御方法。
【請求項４】
モジュールのテスト計画を作成するテスト計画作成装置において読取実行可能なプログラムであって、
前記テスト計画作成装置を、
テスト対象とするモジュールを解析することで各モジュール間の関連性を解析する解析手段と、
前記解析手段によって関連性のあるモジュールをグループとして分類する分類手段と、
前記分類手段によって分類されたグループに対してテスト要員のテスト対象とするモジュールに対するスキル情報を記憶する記憶手段に記憶されたスキル情報を用いて前記テスト要員を割当てる割当手段と、
して機能させることを特徴とするプログラム。
【請求項５】
クライアント端末とテスト計画作成装置とがネットワークを介して接続されたテスト計画作成システムの制御方法であって、
前記クライアント端末は、
テスト対象とするモジュールを選択した後、テスト計画の作成指示の要求を行う要求ステップと、
送信ステップによって送信されたテスト計画情報を受信する受信ステップと、
前記受信ステップによって受信したテスト計画情報を表示部へ表示する表示ステップと、
を実行し、
前記テスト計画作成装置は、
前記要求ステップによってテスト計画の作成指示の要求を受付けた後、前記選択されたモジュールを解析することで各モジュール間の関連性を解析する解析ステップと、
前記解析ステップによって関連性のあるモジュールをグループとして分類する分類ステップと、
前記分類ステップによって分類されたグループに対してテスト要員のテスト対象とするモジュールに対するスキル情報を記憶する記憶手段に記憶されたスキル情報を用いて前記テスト要員を割当てる割当ステップと、
前記割当ステップによって割当てたグループに対応するテスト要員に関するテスト計画情報を前記クライアント端末へ送信する送信ステップと、
を実行することを特徴とするテスト計画作成システムの制御方法。
【請求項６】
クライアント端末とテスト計画作成装置とがネットワークを介して接続されたテスト計画作成システムで読取実行可能なプログラムあって、
前記クライアント端末を、
テスト対象とするモジュールを選択した後、テスト計画の作成指示の要求を行う要求手段と、
送信手段によって送信されたテスト計画情報を受信する受信手段と、
前記受信手段によって受信したテスト計画情報を表示部へ表示する表示手段と、
して機能させ、
前記テスト計画作成装置を、
前記要求手段によってテスト計画の作成指示の要求を受付けた後、前記選択されたモジュールを解析することで各モジュール間の関連性を解析する解析手段と、
前記解析手段によって関連性のあるモジュールをグループとして分類する分類手段と、
前記分類手段によって分類されたグループに対してテスト要員のテスト対象とするモジュールに対するスキル情報を記憶する記憶手段に記憶されたスキル情報を用いて前記テスト要員を割当てる割当手段と、
前記割当て手段によって割当てたグループに対応するテスト要員に関するテスト計画情報を前記クライアント端末へ送信する送信手段と、
して機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアのテストにおけるテスト結果およびカバレッジ計測結果とアサインされた開発要員スキルとから、ソフトウェアのテストに関しての計画を策定することを可能にする技術に関する。
【背景技術】
【０００２】
近年、ソフトウェア開発を行うにあたり、作成したソフトウェアの単体テスト（以下、単体テスト）を実施する際に、テストの完了指標として、単体テストにおけるプログラムの手続きや関数単位での動作検証、機能確認と合わせて、ソフトウェアを構成するソースコードのカバレッジ率が１００％を満たすようなテストが求められるようになってきた。
【０００３】
単体テストの実施、カバレッジ測定においては、カバレッジ率の自動算出、カバレッジ通過箇所のユーザインタフェースへの表示などの機能を有した単体テストツールが使用されている。
【０００４】
しかし、単体テストの動作検証、機能検証、カバレッジ計測など、多数の単体テスト完了指標を達成するため、単体テストの動作検証、機能確認の結果や、カバレッジ測定によるカバレッジ率、カバレッジ未通過箇所の結果などを加味し、単体テスト後の効率よい作業計画を策定する必要がある。
【０００５】
しかし、単体テストの動作検証、機能確認の単体テスト結果、カバレッジ測定結果から、どこから単体テストを再度おこなえばよいかなどは、開発者の経験と判断に委ねられ、カバレッジ計測結果の解析、テストの再実施計画の策定など、人手によるスケジュールへの考慮が不可欠であり、工数がかかっていた。
【０００６】
また、テストの再実施計画の策定では、状況と要員スキルの見誤りにより、作業工数増加、作業の再実施などが発生する不都合があった。さらにテストの再実施計画の策定においては、要員のアサイン可能な工数の制限や、単体テストで使用できる機材制限などの考慮しなければいけない。
【０００７】
そこで、特許文献１では、ソフトウェア試験結果から試験結果の情報と不具合の発生個所から、不具合関連マップ（不具合が存在する可能性が大きい判断される欠陥候補関連情報）を特定し表示することで、不具合が発見される可能性の大きい箇所から優先的に試験を実施する様に利用者に促すソフトウェア試験及び開発支援装置並びに当該装置用プログラムが開示されている。
【０００８】
また、特許文献２では、テスト難易度算出式によるテスト難易度を算出し、優先度との関連付けの特定により、ＤＦＴ手法のテストフローを出力、表示させるテストフロー提示コンピュータプログラム、テストフロー提示コンピュータシステムが開示されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００９−２７７１１０号公報
【特許文献２】特開２０１１−１１８４９２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、特許文献１のソフトウェア試験及び開発支援装置は、ソフトウェア試験を実施して得られた情報と不具合が存在する箇所から、不具合関連マップを特定、表示することで、利用者に対し不具合が発見される可能性の大きい箇所から優先的に試験を実施する様に促すが、不具合関連マップ生成、利用によるテスト優先項目の提供をおこなうのみで、テスト実施結果から残作業における担当アサイン、スケジュール作成の機能は有していない。
【００１１】
また、特許文献２では、入力情報はＬＳＩの回路設計情報、パッケージ情報、ハードウェア情報などからテスト難易度算出式によるテスト難易度の算出と優先度との関連付けの特定、ＤＦＴ手法のテストフローを出力、表示をおこなうが、ＬＳＩにおけるテスト難易度算出、テストフロー作成のシステムであり、テスト実施結果におけるフローの最適化に主眼をおき、作成したフロー実施におけるスケジュール作成の機能は有していない。
【００１２】
そこで本発明では、テストの実施結果に応じて、再度テストを行う要員をアサインするようなテスト計画を作成するにあたり、テスト計画の作成者の作業負荷をかけることなく適正な計画を作成することが可能なテスト計画作成装置、システム、制御方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記目的を達成するための第１の発明は、テスト要員のテスト対象とするモジュールに対するスキル情報を記憶する記憶手段と、テスト対象とするモジュールを解析することで各モジュール間の関連性を解析する解析手段と、前記解析手段によって関連性のあるモジュールをグループとして分類する分類手段と、前記分類手段によって分類されたグループに対して前記記憶手段に記憶されたスキル情報を用いて前記テスト要員を割当てる割当手段と、を備えたことを特徴とする。
【００１４】
上記目的を達成するための第２の発明は、クライアント端末とテスト計画作成装置とがネットワークを介して接続されたテスト計画作成システムであって、前記クライアント端末は、テスト対象とするモジュールを選択した後、テスト計画の作成指示の要求を行う要求手段と、送信手段によって送信されたテスト計画情報を受信する受信手段と、前記受信手段によって受信したテスト計画情報を表示部へ表示する表示手段と、を備え、前記テスト計画作成装置は、テスト要員のテスト対象とするモジュールに対するスキル情報を記憶する記憶手段と、前記要求手段によってテスト計画の作成指示の要求を受付けた後、前記選択されたモジュールを解析することで各モジュール間の関連性を解析する解析手段と、前記解析手段によって関連性のあるモジュールをグループとして分類する分類手段と、前記分類手段によって分類されたグループに対して前記記憶手段に記憶されたスキル情報を用いて前記テスト要員を割当てる割当手段と、前記割当手段によって割当てたグループに対応するテスト要員に関するテスト計画情報を前記クライアント端末へ送信する送信手段と、を備えたことを特徴とする。
【００１５】
上記目的を達成するための第３の発明は、モジュールのテスト計画を作成するテスト計画作成装置の制御方法であって、前記テスト計画作成装置は、テスト対象とするモジュールを解析することで各モジュール間の関連性を解析する解析ステップと、前記解析ステップによって関連性のあるモジュールをグループとして分類する分類ステップと、前記分類ステップによって分類されたグループに対してテスト要員のテスト対象とするモジュールに対するスキル情報を記憶する記憶手段に記憶されたスキル情報を用いて前記テスト要員を割当てる割当ステップと、を実行することを特徴とする。
【００１６】
上記目的を達成するための第４の発明は、モジュールのテスト計画を作成するテスト計画作成装置において読取実行可能なプログラムであって、前記テスト計画作成装置を、テスト対象とするモジュールを解析することで各モジュール間の関連性を解析する解析手段と、前記解析手段によって関連性のあるモジュールをグループとして分類する分類手段と、前記分類手段によって分類されたグループに対してテスト要員のテスト対象とするモジュールに対するスキル情報を記憶する記憶手段に記憶されたスキル情報を用いて前記テスト要員を割当てる割当手段と、して機能させることを特徴とする。
【００１７】
上記目的を達成するための第５の発明は、クライアント端末とテスト計画作成装置とがネットワークを介して接続されたテスト計画作成システムの制御方法であって、前記クライアント端末は、テスト対象とするモジュールを選択した後、テスト計画の作成指示の要求を行う要求ステップと、送信ステップによって送信されたテスト計画情報を受信する受信ステップと、前記受信ステップによって受信したテスト計画情報を表示部へ表示する表示ステップと、を実行し、前記テスト計画作成装置は、前記要求ステップによってテスト計画の作成指示の要求を受付けた後、前記選択されたモジュールを解析することで各モジュール間の関連性を解析する解析ステップと、前記解析ステップによって関連性のあるモジュールをグループとして分類する分類ステップと、前記分類ステップによって分類されたグループに対してテスト要員のテスト対象とするモジュールに対するスキル情報を記憶する記憶手段に記憶されたスキル情報を用いて前記テスト要員を割当てる割当ステップと、前記割当ステップによって割当てたグループに対応するテスト要員に関するテスト計画情報を前記クライアント端末へ送信する送信ステップと、を実行することを特徴とする。
【００１８】
上記目的を達成するための第６の発明は、クライアント端末とテスト計画作成装置とがネットワークを介して接続されたテスト計画作成システムで読取実行可能なプログラムあって、前記クライアント端末を、テスト対象とするモジュールを選択した後、テスト計画の作成指示の要求を行う要求手段と、送信手段によって送信されたテスト計画情報を受信する受信手段と、前記受信手段によって受信したテスト計画情報を表示部へ表示する表示手段と、して機能させ、前記テスト計画作成装置を、前記要求手段によってテスト計画の作成指示の要求を受付けた後、前記選択されたモジュールを解析することで各モジュール間の関連性を解析する解析手段と、前記解析手段によって関連性のあるモジュールをグループとして分類する分類手段と、前記分類手段によって分類されたグループに対してテスト要員のテスト対象とするモジュールに対するスキル情報を記憶する記憶手段に記憶されたスキル情報を用いて前記テスト要員を割当てる割当手段と、前記割当て手段によって割当てたグループに対応するテスト要員に関するテスト計画情報を前記クライアント端末へ送信する送信手段と、して機能させることを特徴とする。
【発明の効果】
【００１９】
本発明によれば、テストの実施結果に応じて、再度テストを行う要員をアサインするようなテスト計画を作成するにあたり、テスト対象となるプログラム間の関係を解析することで要員のアサインを行うため、テスト計画の作成者の作業負荷をかけることなく適正な計画を作成することができる、という効果を奏する。
【図面の簡単な説明】
【００２０】
【図１】本発明におけるテスト計画作成システムが適応されるシステムの構成を示す図である。
【図２】本発明におけるテスト計画作成システムを構成する各情報処理装置のハードウェア構成を示す図である。
【図３】本発明におけるテスト計画を作成するための基本的な処理を示すフローチャートである。
【図４】本発明におけるクラス図のデータ解析処理を示すフローチャートである。
【図５】本発明におけるクラスグループ生成処理を示すフローチャートである。
【図６】本発明におけるクラスグループ合成処理を示すフローチャートである。
【図７】本発明におけるクラスグループ内付加情報生成処理を示すフローチャートである。
【図８】本発明におけるクラス図データの解析結果に対して単体テスト結果データを反映する処理を示すフローチャートである。
【図９】本発明における単体テスト計画作成処理を示すフローチャートである。
【図１０】本発明における単体テスト計画作成処理を示すフローチャートである。
【図１１】本発明におけるメイン画面の構成を示す構成図である。
【図１２】本発明における単体テスト結果データ選択画面の構成を示す構成図である。
【図１３】本発明におけるプロジェクト／ソース選択画面の構成を示す構成図である。
【図１４】本発明におけるアサイン要員選択画面の構成を示す構成図である。
【図１５】本発明における単体テスト計画出力画面の構成を示す構成図である。
【図１６】本発明における単体テスト結果用テーブルの構成を示す構成図である。
【図１７】本発明におけるプロジェクト/ソース用テーブルの構成を示す構成図である。
【図１８】本発明におけるアサイン要員サマリー情報用テーブルの構成を示す構成図である。
【図１９】本発明における要員情報用テーブルの構成を示す構成図である。
【図２０】本発明におけるクラス図データテーブルの構成を示す構成図である。
【図２１】本発明におけるクラスグループデータテーブルの構成を示す構成図である。
【図２２】本発明におけるアサイン要員単体テスト計画データ用テーブルの構成を示す構成図である。
【発明を実施するための形態】
【００２１】
以下、図面を参照して、本発明の実施形態を詳細に説明する。
【００２２】
図１は、本発明の実施形態における情報処理システム（テスト計画作成システム）の構成を示す図である。
【００２３】
尚、図１のネットワーク１０３上に接続される各種端末の構成は一例であり、用途や目的に応じて様々な構成例があることは言うまでもない。
【００２４】
ＰＣ１０１は、開発の設計、製造、およびテスト作業などの開発作業を行う開発者が使用するクライアント端末である。クライアント端末は、ネットワーク１０３を介して、構成管理サーバ１０２やアプリケーションサーバやファイルサーバとしての機能を有するアプリケーション/ファイルサーバ１０４、クライアント端末間とデータの送受信が可能である。
【００２５】
次に、図１のクライアント端末１０１、構成管理サーバ１０２、アプリケーション/ファイルサーバ１０４の各種端末のハードウェア構成について、図２を用いて説明する。
【００２６】
図２は、本発明の実施形態における各種端末のハードウェア構成を示す図である。
【００２７】
ＣＰＵ２０１は、システムバス２０４に接続される各デバイスやコントローラを統括的に制御する。
【００２８】
また、ＲＯＭ２０２あるいは外部メモリ２１１には、ＣＰＵ２０１の制御プログラムであるＢＩＯＳ(Basic Input / Output System)やオペレーティングシステムプログラム（以下、ＯＳ）や、各サーバ或いは各ＰＣの実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。ＲＡＭ２０３は、ＣＰＵ２０１の主メモリ、ワークエリア等として機能する。
【００２９】
ＣＰＵ２０１は、処理の実行に際して必要なプログラム等をＲＡＭ２０３にロードして、プログラムを実行することで各種動作を実現するものである。
【００３０】
また、入力コントローラ（入力Ｃ）２０５は、キーボード２０９や不図示のマウス等のポインティングデバイスからの入力を制御する。
【００３１】
ビデオコントローラ（ＶＣ）２０６は、ＣＲＴディスプレイ（ＣＲＴ）２１０等の表示器への表示を制御する。表示器はＣＲＴだけでなく、液晶ディスプレイでも構わない。これらは必要に応じて管理者が使用するものである。本発明には直接関係があるものではない。
【００３２】
メモリコントローラ（ＭＣ）２０７は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶するハードディスク（ＨＤ）やフロッピーディスク（登録商標  ＦＤ）或いはＰＣＭＣＩＡカードスロットにアダプタを介して接続されるコンパクトフラッシュメモリ等の外部メモリ２１１へのアクセスを制御する。
【００３３】
通信Ｉ／Ｆコントローラ（通信Ｉ／ＦＣ）２０８は、ネットワークを介して、外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、ＴＣＰ／ＩＰを用いたインターネット通信等が可能である。
【００３４】
なお、ＣＰＵ２０１は、例えばＲＡＭ２０３内の表示情報用領域へアウトラインフォントの展開（ラスタライズ）処理を実行することにより、ＣＲＴ２１０上での表示を可能としている。また、ＣＰＵ２０１は、ＣＲＴ２１０上の不図示のマウスカーソル等でのユーザ指示を可能とする。
【００３５】
本発明を実現するためのテスト計画作成プログラムは、外部メモリ２１１に記録されており、必要に応じてＲＡＭ２０３にロードされることによりＣＰＵ２０１によって実行されるものである。さらに、本発明に係わるテスト計画プログラムが用いる定義ファイル及び各種情報テーブルは、外部メモリ２１１に格納されており、これらについての詳細な説明は後述する。
【００３６】
次に、テスト計画作成システムの基本的な処理フローについて、図３を用いて説明する。
【００３７】
図３は、本発明におけるテスト計画作成システムにおけるテスト計画を作成するための基本的な処理フローを示す図である。
【００３８】
以下、一例について説明する。
【００３９】
上述したように、クライアント端末１０１と構成管理サーバ１０２やアプリケーション/ファイルサーバ１０４は、ネットワーク１０３を介して相互に接続されている。
【００４０】
そして、クライアント端末１０１は、構成管理サーバ１０２から提供される各種操作画面を介して、開発作業で作成した成果物（ドキュメント、ソースコード、テストコードなど）の登録、更新などの処理を実行する。
【００４１】
構成管理サーバ１０２では、単体テスト結果、プログラムを構成するプロジェクト、プログラムソース、各開発要員の要員名、要員の開発の担当範囲、要員が開発作業の成果物作成にかかった作業時間の分析と要員の割当てを行うために用いる要員のスキル等の情報を示す分析データ等を保持する。
【００４２】
これらに相当するデータは、各プロジェクトで規定した分析データを格納するネットワーク１０３上のサーバであれば、例えば、アプリケーション/ファイルサーバ１０４などに格納されていてもよい。
【００４３】
尚、本発明の実施形態では、各プロジェクトは、クラス設計に基づいて、開発を行うことで得られた成果物として開発したプログラムソースに対するテスト計画を作成するものとする。
【００４４】
クラス設計を行う際には、統一モデリング言語（ＵＭＬ、Ｕｎｉｆｉｅｄ  Ｍｏｄｅｌｉｎｇ  Ｌａｎｇｕａｇｅ）を用いてクラス図を描き、クラスの属性、クラス間の関係等からシステムの構造を記述することで設計を行う。尚、クラス図については、周知のものであるため説明を割愛する。
【００４５】
まず、ステップＳ１０１では、クライアント端末１０１は、アプリケーション/ファイルサーバ１０４から提供されるテスト計画作成システムのメイン画面（図１１参照）を表示する。
【００４６】
メイン画面３００は、単体テスト結果のデータ名を表示するテスト結果名称表示欄３０１、単体テスト結果のデータを選択するための単体テスト結果データ選択画面（図１２参照）を表示する際に押下するためのテスト結果選択ボタン３０２を備えている。
【００４７】
単体テスト結果データ選択画面４００は、既に実施した単体テスト結果のデータを表示するための画面であり、単体テスト結果のデータ（プロジェクト名）を一覧表示するための単体テスト結果データ表示領域４０１を備えている。
【００４８】
また、単体テスト結果データ選択画面４００は、ユーザが、キーボード２０９やマウス等の入力デバイスを用いて、単体テスト結果データ表示領域４０１に表示された単体テスト結果のデータの選択を確定させる際に押下するためのＯＫボタン４０２、当該選択を解除して、本画面を閉じる際に押下するためのキャンセルボタン４０３を備えている。
【００４９】
尚、単体テスト結果データ表示領域４０１へ表示するデータは、単体テスト結果用テーブル（図１６参照）に記憶した単体テスト結果に関するデータを表示する。
【００５０】
図１６には、単体テスト結果用テーブルにおけるデータ構造を示す。
【００５１】
単体テスト結果用テーブルは、プロジェクト毎に作成を行い、各プロジェクトには、それぞれプロジェクトを構成するパッケージを識別するための情報を保持しており、更に、各パッケージには、パッケージを構成するクラスを識別するための情報を保持している。
【００５２】
そして、クラス毎に、単体テストの結果を、例えば、問題なしと判定した場合、その件数をＯＫ件数として保持し、一方、問題ありと判定した場合、その件数をＮＧ件数として備えている。
【００５３】
また、クラス毎に、単体テストの結果として、カバレッジの計測結果を保持することが可能であり、カバレッジ率、クラスにおけるプログラムの総ステップ数、クラスを構成する総ステップ数に対してのテストを行ったステップ数を示すカバレッジ達成ステップ数等を備えている。
【００５４】
更に、単体テスト結果用テーブルは、プロジェクトを構成するプログラムのソースコードを保持するプロジェクト／ソースデータを備えており、更に、プロジェクト／ソースデータには、ソースコードの言語に関する情報をも備えている。
【００５５】
尚、パッケージ［  ］、クラス［  ］の［  ］は、１つのプロジェクト内に複数のパッケージ、１つのパッケージに複数のクラスを備えることが可能であるため、それらを識別するための情報を記憶するためのものである。
【００５６】
また、メイン画面３００は、プロジェクト／ソースデータの名称を表示するためのプロジェクト／ソース名称表示欄３０３、プロジェクト／ソースデータを選択するためのプロジェクト／ソース選択画面（図１３参照）を表示するためのプロジェクト／ソース選択ボタン３０４を備えている。
【００５７】
プロジェクト／ソース選択画面５００は、プロジェクトの名称を表示するためのプロジェクト／ソース表示領域５０１を備えている。
【００５８】
また、プロジェクト／ソース選択画面５００は、ユーザが、キーボード２０９やマウス等の入力デバイスを用いて、プロジェクト／ソース表示領域５０１に表示された単体テスト結果のデータの選択を確定させる際に押下するためのＯＫボタン５０２、当該選択を解除して、本画面を閉じる際に押下するためのキャンセルボタン５０３を備えている。
【００５９】
尚、プロジェクト／ソース表示領域５０１へ表示するデータは、プロジェクト/ソース用テーブル（図１７参照）に記憶したプロジェクトあるいはソースに関するデータを表示する。
【００６０】
図１７には、プロジェクト/ソース用テーブルにおけるデータ構造を示す。
【００６１】
プロジェクト/ソース用テーブルは、プロジェクトの名称を示すプロジェクト名、プロジェクトを構成するパッケージの名称を示すパッケージ名、プロジェクトを構成するプログラムのソースコードを保持するソース［  ］を備えている。尚、プロジェクト名には開発言語情報を含む構成をとっても良い。
【００６２】
また、前述したように、パッケージ［  ］、クラス［  ］の［  ］は、１つのプロジェクト内に複数のパッケージ、１つのパッケージに複数のクラスを備えることが可能であるため、それらを識別するための情報を記憶するためのものである。
【００６３】
メイン画面３００は、アサンインした要員の名称を一覧表示するためのアサイン済み要員表示領域３０５、アサインすべく要員を選択するためのアサイン要員選択画面（図１４参照）を表示する際に押下するためのアサイン要員選択ボタン３０６を備えている。
【００６４】
アサイン要員選択画面６００は、アサイン対象となる要員の名称を一覧表示するためのアサイン対象要員表示領域６０１、アサイン対象要員表示領域６０１に表示された要員を選択するためのアサイン要員選択欄６０２を備えている。
【００６５】
アサイン要員選択画面６００は、ユーザが、キーボード２０９やマウス等の入力デバイスを用いて、アサイン対象要員表示領域６０１に表示されたアサイン対象となる要員から、アサインすべく要員の選択を確定させる際に押下するためのＯＫボタン６０３、当該選択を解除して、本画面を閉じる際に押下するためのキャンセルボタン６０４を備えている。
【００６６】
尚、アサイン対象要員表示領域６０１へ表示するデータは、アサイン要員サマリー情報用テーブル（図１８参照）に記憶したアサイン可能な要員に関するデータを表示する。
【００６７】
図１８には、アサイン要員サマリー情報用テーブルにおけるデータ構造を示す。
【００６８】
アサイン要員サマリー情報用テーブルは、アサイン可能な要員の数を示すアサイン要員数、アサイン要員選択欄６０２で選択された数を示すアサイン選択要員数、アサイン可能な要員の情報を示すアサイン可能要員情報を備えている。
【００６９】
アサイン可能要員情報は、複数のアサイン可能な要員の情報を備えており、アサイン可能な要員の詳細情報を示す要員情報、アサインを指示されたか否かを示すアサイン選択有無（アサイン要員選択欄６０２で選択された要員）を備えている。
【００７０】
また、アサイン［  ］の［  ］は、アサイン可能要員情報内に複数の要員情報を備えることが可能であるため、それらを識別するための情報を記憶するためのものである。
【００７１】
尚、要員情報については、図１９に示す要員情報用テーブルに記憶された情報に該当する。要員情報用テーブルは、アサイン要員が開発した担当範囲（例えば、パッケージ名やソース名等）や、身につけている開発言語、単位時間当たりに開発を行うことが可能なステップ数、障害が発生した時に調査委にかかる時間等の開発に関わるスキル等に関する情報データを記憶する。尚、要員情報用テーブルに記憶された要員情報を予めアサイン要員サマリー情報用テーブルに設定しておくことで、アサインの選択有無を行うことが可能である。
【００７２】
ステップＳ１０２では、ユーザによって、メイン画面３００からテスト結果選択ボタン３０２が押下されたことを検知し、単体テスト結果データ選択画面４００を起動すると共に、単体テスト結果用テーブルから単体テスト結果のデータを取得して単体テスト結果データ表示領域４０１へプロジェクト名を表示する。
【００７３】
そして、ＯＫボタン４０２が押下されたことを検知すると、単体テスト結果データ表示領域４０１に表示されたプロジェクト名から選択された、テスト計画の対象となるレコードを取得し、単体テスト結果データ選択画面４００を閉じて、メイン画面３００のテスト結果名称表示欄３０１へ取得したレコードのプロジェクト名を表示する。
【００７４】
一方、キャンセルボタン４０３が押下されたことを検知すると、単体テスト結果のデータの選択を中止するため、単体テスト結果データ選択画面４００を閉じて、メイン画面３００へ遷移する。
【００７５】
ステップＳ１０３では、ステップＳ１０２で選択した単体テスト結果データに単体テスト結果に対応するプロジェクト/ソースデータがあるか否かを判定し、プロジェクト/ソースデータが存在する場合、ステップＳ１０４へ処理を進め、存在しない場合、ステップＳ１０５へ処理を進める。
【００７６】
ステップＳ１０４では、単体テスト結果データ内のプロジェクト/ソースデータのデータ名をメイン画面３００のプロジェクト／ソース名称表示欄３０３に表示する。
【００７７】
一方、ステップＳ１０５では、ステップＳ１０２で選択した単体テスト結果データに単体テスト結果に対応するプロジェクト/ソースデータがない場合、メイン画面３００のプロジェクト／ソース選択ボタン３０４が押下されたことを検知した後、プロジェクト／ソース選択画面５００を表示する。
【００７８】
そして、プロジェクト／ソース用テーブルからプロジェクトあるいはソースに関するデータを取得して、プロジェクト名をプロジェクト／ソース表示領域５０１へ表示する。
【００７９】
その後、ＯＫボタン５０２が押下されたことを検知した後、プロジェクト／ソース表示領域５０１に対して選択されたレコードを取得する。
【００８０】
一方、キャンセルボタン５０３が押下されたことを検知すると、プロジェクトあるいはソースの選択を中止するため、プロジェクト／ソース選択画面５００を閉じて、メイン画面３００へ遷移する。
【００８１】
ステップＳ１０６では、ステップＳ１０２において選択した単体テスト結果データのプロジェクト名と、ステップＳ１０５において選択したプロジェクトあるいはソースに関するデータ、つまりプロジェクト名が、同一であるか否かを判定し、同一であると判定した場合、プロジェクト／ソース選択画面５００を閉じて、選択したレコードのプロジェクト名をプロジェクト／ソース名称表示欄３０３へ表示して、ステップＳ１０７へ処理を進め、同一であると判定しない場合、ステップＳ１０５へ処理を戻す。
【００８２】
ステップＳ１０７では、アサイン要員選択ボタン３０６が押下されたことを検知した後、アサイン要員選択画面６００を起動すると共に、アサイン要員サマリー情報用テーブルからアサイン可能な要員に関するデータを取得してアサイン対象要員表示領域６０１へ要員名を表示する。
【００８３】
その後、ＯＫボタン６０３が押下されたことを検知した後、アサイン対象要員表示領域６０１に対応するアサイン要員選択欄６０２に対して選択されたレコードを取得して、アサイン要員選択画面６００を閉じて、メイン画面３００のアサイン済み要員表示領域３０５にアサインする要員名を表示する。
【００８４】
そして、アサイン要員選択欄６０２に対して選択された要員に関して、アサイン要員サマリー情報用テーブルのアサイン選択有無を「有」として設定し、更に、アサイン選択要員数に設定された数に、アサイン要員選択欄６０２に対して選択した数の分だけ加算して設定する。
【００８５】
一方、キャンセルボタン６０４が押下されたことを検知すると、アサインする要員の選択を中止するため、アサイン要員選択画面６００を閉じる。
【００８６】
ステップＳ１０８では、メイン画面３００の実行ボタン３０７が押下されたことを検知すると、ステップＳ１０２で選択した単体テスト結果データ、ステップＳ１０５で選択したプロジェクトあるいはソースに関するデータ、ステップＳ１０７で選択したアサインする要員に関するデータを用いて、単体テストの計画を作成する。
【００８７】
ステップＳ１０９では、ステップＳ１０５で選択したプロジェクトあるいはソースに関するデータからクラス図のデータを作成する。
【００８８】
図２０には、クラス図を作成するために必要なデータ（以下、クラス図データ）を記憶するためのクラス図データテーブルの構成が示されている。
【００８９】
クラス図データテーブルは、プロジェクト毎に作成を行い、各プロジェクトには、それぞれプロジェクトを構成するパッケージを識別するための情報を保持しており、更に、各パッケージには、パッケージを構成するクラスを識別するための情報を保持している。
【００９０】
そして、クラス図データテーブルクラス毎に、継承を行っている、あるいは参照を行っているクラスに関する情報（継承クラス、参照クラス）や、クラス図において当該クラスの階層等の情報を示す解析データを備えている。
【００９１】
この解析データは、クラス図におけるルートとなるクラスからの階層を示すｌｅｖｅｌ、クラスがルートであるか否かを示すｒｏｏｔフラグ、本クラスと関連し、かつ１つ上の階層であるクラスを示すｐｒｅｖ、本クラスと関連し、かつ１つ下の階層であるクラスを示すｎｅｘｔを備えている。
【００９２】
尚、パッケージ［  ］、クラス［  ］、継承しているクラス［  ］、継承されているクラス［  ］、参照しているクラス［  ］、参照されているクラス［  ］の［  ］は、１つのプロジェクト内に複数のパッケージ、１つのパッケージに複数のクラス、１つのクラスに対して、複数の継承しているクラス、継承されているクラス、参照しているクラス、及び参照されているクラスを備えることが可能であるため、それらを識別するための情報を記憶するためのものである。
【００９３】
本ステップでは、１パッケージに対してクラス図の作成を行うため、１パッケージに含まれるソースコードを解析することで、このようなクラス図に関するデータを作成する。
【００９４】
ステップＳ１１０では、ステップＳ１０９において作成したクラス図データの解析を行う。
【００９５】
本ステップにおける詳細な内容については、図４に示すフローチャートを用いて後述するが、概要としては、以下のようなことを行う。
【００９６】
ステップＳ１０９において作成したクラス図のデータから、クラス図を構成するクラスをノード、クラス間の継承関係とクラス間の参照関係を辺としたグラフとし、継承関係においては、ある２つのクラス間の継承関係において継承されているクラスを親、継承しているクラスを子、参照関係においては、２つの参照関係において参照されているクラスを親、参照しているクラスを子とし、クラス間の継承関係と参照関係の親から子へ向かう有向辺とする。
【００９７】
全クラスにおいて、どのクラスも継承していない、かつ、どのクラスも参照していないクラス（以下、ｒｏｏｔクラス）と、どのクラスからも継承されていない、かつ、どのクラスからも参照されていないクラス（以下、ｌｅａｆクラス）を両端ノードとした最長パス探索をおこない、クラス間の関連の算出と、ｒｏｏｔクラスが複数のｌｅａｆクラスを含み各々のｒｏｏｔクラスとｌｅａｆクラスの最長パスが求められているクラスのまとまりをクラスグループとする。
【００９８】
作成した各クラスグループにおいて、各クラスグループに含まれるクラスが重複する場合、重複するクラスを含むクラスグループ同士のクラスグループ和集合となるクラスグループを作成する。
【００９９】
作成したクラスグループにおいて最長パスを保持するｒｏｏｔクラスをｌｅｖｅｌ＝１とし、ｌｅｖｅｌ＝１のｒｏｏｔクラスから継承関係と参照関係とによる階層付けをおこない、クラスグループにおける全クラスのｌｅｖｅｌを付加することにより、ｒｏｏｔクラスからの関係度合い、影響度合いを規定する。
【０１００】
ステップＳ１１１では、ステップＳ１１０で解析を行ったクラス図データに対して、ステップＳ１０２で選択した単体テスト結果データの反映を行う。
【０１０１】
本ステップにおける詳細な内容については、図１４に示すフローチャートを用いて後述するが、概要としては、ステップＳ１１０で作成したクラスグループに対して、全てのクラスの単体テスト結果データを設定し、単体テストの動作検証及び機能確認等の単体テスト結果がＮＧのクラスには、ＮＧの影響度の設定、単体テストの動作検証及び機能確認等の単体テスト結果のＯＫあるいはＮＧの数の総和、ＮＧの影響度の総和、クラスグループとしての総カバレッジ率の設定を行う。
【０１０２】
ステップＳ１１２では、ステップＳ１１１において単体テスト結果データを反映した各クラスグループに対し、単体テストの動作検証及び機能確認等の単体テスト結果がＮＧのクラスとカバレッジ未達成のクラスに対して、ステップＳ１０７において選択したアサインする要員に対して割当を行うと共に、ＮＧの影響度による単体テストの再実施時の実施順序の組み替えにより、単体テストの計画を作成する。尚、本ステップにおける詳細な内容は、図９及び図１０に示すフローチャートを用いて後述する。
【０１０３】
ステップＳ１１３では、ステップＳ１１２で作成した単体テスト計画データを用いて、単体テスト計画出力画面（図１５参照）を表示する。
【０１０４】
単体テスト計画出力画面７００は、単体テストを行う要員計画を出力するためのものであり、左から順に、アサインされた要員の名称、単体テスト結果がＮＧのクラスであるか、あるいは、カバレッジ未達成のクラスであるかを示す分類、クラスグループを一意に識別する情報、再度、単体テストの対象となるクラスの名称、障害が発生した際に一意に振られる障害番号といった項目に対応して、再度、単体テストを行う日程を棒グラフ状に示している。
【０１０５】
図４は、クラス図のデータ解析処理を示すフローチャートである。
【０１０６】
まず、ステップＳ２０１及びステップＳ２０２において、ステップＳ１０９において作成したクラス図の全クラスからｒｏｏｔとなるクラスの検索を行い、ｒｏｏｔとなるクラスに対しては、クラス図データにおけるｒｏｏｔフラグにｒｏｏｔを設定する。
【０１０７】
つまり、ステップＳ２０１では、クラス図データに含まれる継承しているクラスに設定がされておらず、継承されているクラスに設定がなされており、参照しているクラスに設定がされておらず、参照されているクラスに設定がなされているクラスを検索する。
【０１０８】
検索した結果、該当するクラスが存在した場合、ステップＳ２０２へ処理を進め、該当するクラスが存在しない場合、クラス図データに対して全クラスの検索を行ったか否かを判定し、検索を行った場合、ステップＳ２０３へ処理を進め、検索を行っていない場合、次のクラスに対して検索を行うため、ステップＳ２０１へ処理を戻す。
【０１０９】
ステップＳ２０２では、ステップＳ２０１において該当するクラスに関して、クラス図データにおけるｒｏｏｔフラグにｒｏｏｔを設定し、クラス図データに対して全クラスの検索を行ったか否かを判定し、検索を行った場合、ステップＳ２０３へ処理を進め、検索を行っていない場合、次のクラスに対して検索を行うため、ステップＳ２０１へ処理を戻す。
【０１１０】
ステップＳ２０３では、クラス図データの各クラスに対して、ｌｅｖｅｌに０を設定することで初期化を行い、ｐｒｅｖ、ｎｅｘｔには、ＮＵＬＬを設定することで初期化を行う。
【０１１１】
ステップＳ２０４では、クラスグループを特定するために用いる因数をＸとし、Ｘに１を設定することで初期化を行う。
【０１１２】
ステップＳ２０５からステップＳ２０８では、その処理概要として、クラス図データに含まれるｒｏｏｔフラグがｒｏｏｔとなる各クラス（以下、ｒｏｏｔクラス）からｌｅａｆとなるクラス（ｌｅａｆクラス）までの最長パス探索を行い、クラス間の算出と、ｒｏｏｔクラスが複数のｌｅａｆクラスを含み、各々のｒｏｏｔクラスとｌｅａｆクラスとの最長パスが求められているクラスのまとまりをクラスグループとして、クラスグループの作成を行う。
【０１１３】
ステップＳ２０５では、クラス図データに含まれるｒｏｏｔフラグがｒｏｏｔのｒｏｏｔクラスを取得し、配列として作成したクラスグループ［Ｘ］（Ｘは、ステップＳ２０４にて前述した因数。以下、グループ番号）に対して、取得したｒｏｏｔクラス（クラス名）を追加する。
【０１１４】
尚、ｒｏｏｔフラグを有するクラスが存在しない場合は、ステップＳ２０９へ処理を進める。
【０１１５】
ステップＳ２０６では、ステップＳ２０５において追加したｒｏｏｔクラスのｌｅｖｅｌに１を設定する。
【０１１６】
ステップＳ２０７では、ステップＳ２０５においてクラスグループ［Ｘ］に追加したｒｏｏｔクラスを起点に、ｌｅａｆクラスまでの最長パス探索と、ｌｅａｆクラスまでの最長パス探索で得られたｒｏｏｔクラスに関連するクラスをクラスグループ［Ｘ］に追加することで、クラスグループの作成を行う。尚、本ステップにおける詳細内容は、図５に示すフローチャートを用いて後述する。
【０１１７】
ステップＳ２０８では、次のクラスグループを作成するため、クラスグループを識別するための因数Ｘのインクリメントを行った後、ステップＳ２０５へ処理を進める。
【０１１８】
ステップＳ２０９では、ステップＳ２０８までで作成したクラスグループにおいて、各クラスグループに含まれるクラスが重複する場合、重複するクラスを含むクラスグループ同士のクラスグループ和集合となるクラスグループを作成する。尚、本ステップにおける詳細内容は、図６に示すフローチャートを用いて後述する。
【０１１９】
ステップＳ２１０では、ステップＳ２０９で合成したクラスグループに於いて、最長パスを保持するｒｏｏｔクラスのｌｅｖｅｌを１とし、ｌｅｖｅｌを１としたｒｏｏｔクラスから継承関係と参照関係とによる階層付けを行い、合成したクラスグループにおける全クラスのｌｅｖｅｌを付加することにより、ｒｏｏｔクラスに対する関係度合、影響度合いを規定する。尚、本ステップにおける詳細内容は、図７に示すフローチャートを用いて後述する。
【０１２０】
図５は、クラスグループ生成処理の処理フローを示す図である。
【０１２１】
ステップＳ３０１では、初回の処理として、クラスグループ［Ｘ］からｒｏｏｔクラスを取得して処理の対象とし、対象とするクラスがｌｅａｆクラスであるか否かを判定し、ｌｅａｆクラスであると判定した場合、処理を終了し、ｌｅａｆクラスでないと判定した場合、ステップS３０２へ処理を進め、以後、継承関係、参照関係にあるクラスに対し、継承と参照のクラス間の関係を走査する。
【０１２２】
尚、ステップＳ３０１における判定方法としては、対象とするクラスのクラス図データの継承クラスに継承されているクラスが存在せず、かつ、関連クラスの参照されているクラスも存在しない場合、ｌｅａｆクラスと判定し、継承されているクラスが存在するか、あるいは、参照されているクラスが存在する場合、ｌｅａｆクラスでないと判定する。
【０１２３】
ステップＳ３０２以後では、対象とするクラスが継承されている各クラス（対象とするクラスを継承している各クラス）と対象とするクラスが参照されている各クラス（対象とするクラスを参照している）に対し、対象とするクラスとの親子関係走査の処理の繰り返しを指定する。具体的には、各クラスのクラス図データのｐｒｅｖとｎｅｘｔを決定する処理をおこなう。
【０１２４】
ステップＳ３０２では、継承されているクラスのｌｅｖｅｌ、及び、参照されているクラスのｌｅｖｅｌが対象クラスとするｌｅｖｅｌよりも大きいか否かを判定し、大きいと判定した場合、次の対象とするクラスを選定（対象とするクラスが存在しなければ処理を終了する）してステップＳ３０２へ処理を進め、大きいと判定しない場合、ステップＳ３０３へ処理を進める。
【０１２５】
ステップＳ３０３では、継承されているクラスと参照されているクラスとのｌｅｖｅｌに対象とするクラスのｌｅｖｅｌに１を加算した値を設定する。
【０１２６】
ステップＳ３０４では、継承されている各々のクラスのクラス図データのｐｒｅｖ、及び、参照されている各々のクラスのｐｒｅｖが対象とするクラスのｐｒｅｖと異なるか否かを判定し、異なると判定した場合、ステップＳ３０５へ処理を進め、異なると判定しない場合、ステップＳ３０７へ処理を進める。
【０１２７】
ステップＳ３０５では、継承されている各々のクラス、及び、参照されている各々のクラスのクラス図データのｐｒｅｖに設定されているクラスのクラス図データのｎｅｘｔに対し、継承されているクラス、及び、参照されているクラスを削除する。
【０１２８】
ステップＳ３０６では、継承されている各々のクラス、及び、参照されている各々のクラスのクラス図データのｐｒｅｖに対象とするクラスを設定する。
【０１２９】
ステップＳ３０７では、対象とするクラスのクラス図データのｎｅｘｔに継承されている各々のクラス、及び、参照されている各々のクラスを設定する。
【０１３０】
ステップＳ３０８では、継承されている各々のクラス、及び、参照されている各々のクラスをクラスグループ［Ｘ］に追加する。尚、クラスグループ［Ｘ］の構成については、図２１に示すクラスグループデータテーブルの構成を備える。
【０１３１】
クラスグループデータテーブルは、クラスグループを一意に識別するためのグループ番号（ここでは、因数Ｘに該当）、クラスグループにおける各クラスの単体テスト結果あるいはカバレッジ計測結果をサマリーしたクラスグループ単体テスト結果サマリー（詳細後述）、クラスグループ同士をマージすることができるか否かを示すマージフラグを備えている。
【０１３２】
このマージフラグは、初期設定時には、ＯＦＦが設定されており、ＯＦＦが設定されているクラスグループはマージの対象となり、マージされたクラスグループには、ＯＮが設定され、以後、クラスグループ同士のマージ対象から除外する。
【０１３３】
また、クラスグループデータテーブルは、クラスグループを構成するクラスに関する情報を備えており、このクラスに関する情報として、継承クラス、関連クラス、解析データを備えており、それぞれ前述した構成と同様な構成を有するが、解析データの影響範囲クラス数とサブグループ番号とを備えた点が異なる（後述）。
【０１３４】
また、クラスの情報として、そのクラスの単体テスト結果とカバレッジ計測結果との情報をも備えている（後述）。
【０１３５】
図６は、クラスグループ合成処理の処理フローを示す図である。
【０１３６】
ステップＳ４０１では、ステップＳ２０５〜Ｓ２０８で作成したクラスグループに対し、クラスグループのｒｏｏｔクラスとｌｅａｆクラスとの最長パスが長い順にクラスグループをソートする。
【０１３７】
クラスグループのクラスでｌｅａｆクラスのｌｅｖｅｌが一番大きい値を最長パスとし、クラスグループをソートする。つまり、ｌｅｖｅｌに設定された値の昇順にソートを行う。
【０１３８】
ステップＳ４０２では、ステップＳ４０３〜Ｓ４１３で生成する合成クラスグループを識別するためのグループ番号の初期化をおこなう。ここでは、合成クラスグループのグループ番号を示す変数としてｋを用いて、ｋに１を代入する。
【０１３９】
ステップＳ４０３では、ソート済みのクラスグループから１つのクラスグループを選択し、選択したクラスグループのクラスグループデータのマージフラグがＯＦＦの場合、ステップＳ４０４へ処理を進め、選択したクラスグループのマージフラグがＯＦＦでない場合、次のクラスグループの選択をおこない、処理を継続する。次のクラスグループが存在しない場合は、処理を終了する。
【０１４０】
ステップＳ４０４では、選択したクラスグループのクラスグループデータのクラスのうち、ｒｏｏｔフラグにｒｏｏｔが設定されているクラスのｒｏｏｔフラグをｇｒｏｕｐ_ｒｏｏｔに設定する。
【０１４１】
ステップＳ４０５では、選択したクラスグループのクラスグループデータ［ｉ］を合成クラスグループ［ｋ］のクラスグループデータとして設定する。
【０１４２】
ステップＳ４０６では、ステップＳ４０５で設定した合成クラスグループ［ｋ］の全クラスのサブグループ番号を０に設定する。
【０１４３】
ステップＳ４０７では、選択したクラスグループの最長パス以下のクラスグループを選択し、選択したクラスグループのクラスグループデータのマージフラグがＯＦＦの場合、ステップＳ４０８へ処理を進め、選択したクラスグループのクラスグループデータのマージフラグがＯＦＦでない場合、ステップＳ４０７にて次のクラスグループの選択をおこない、処理を継続する。次のクラスグループデータが存在しない場合は、ステップＳ４１２へ処理を進める。
【０１４４】
ステップＳ４０８では、ステップＳ４０３で選択したクラスグループ［ｉ］に含まれるクラスとステップＳ４０７で選択したクラスグループ［ｊ］に含まれるクラスで、重複しているクラスがある場合、ステップＳ４０９へ処理を進め、重複しているクラスがない場合、ステップＳ４０７にて次のクラスグループの選択をおこない、処理を継続する。次のクラスグループデータが存在しない場合は、ステップＳ４１２へ処理を進める。
【０１４５】
ステップＳ４０９では、ステップＳ４０７で選択したクラスグループのクラスグループデータを合成クラスグループのクラスグループデータにマージして設定する。
【０１４６】
このマージする処理は、単に、同一のグループ番号を最長パスが長いクラスグループのグループ番号に合わせる。
【０１４７】
ステップＳ４１０では、ステップＳ４０９において、ステップＳ４０３で選択したクラスグループに含まれるクラスとステップＳ４０７で選択したクラスグループに含まれるクラスで、重複していないクラスに対して、合成クラスグループの該当クラスのサブグループ番号にユニークなサブグループ番号を設定する。
【０１４８】
ステップＳ４１１では、ステップＳ４０７で選択したクラスグループのクラスグループデータのマージフラグをＯＮに設定する。
【０１４９】
ステップＳ４１１の処理終了以後、ステップＳ４０７にて次のクラスグループの選択をおこない、処理を継続する。次のクラスグループデータが存在しない場合は、ステップＳ４１２へ処理を進める。
【０１５０】
ステップＳ４１２では、ステップＳ４０７〜Ｓ４１１の処理終了以後、ステップＳ４０３で選択したクラスグループのクラスグループデータ［ｉ］のマージフラグをＯＮに設定する。
【０１５１】
ステップＳ４１３では、次の合成クラスグループ生成の準備、合成クラスグループのグループ番号のインクリメントをおこなう。
【０１５２】
ステップＳ４１３の処理終了以後、ステップＳ４０３にて次のクラスグループの選択をおこない、処理を継続する。次のクラスグループデータが存在しない場合は、処理を終了する。
【０１５３】
図７は、クラスグループ内付加情報生成処理の処理フローを示す図である。
【０１５４】
ステップＳ５０１では、合成クラスグループを選択し、選択した合成クラスグループ［ｉ］のクラスグループデータの全クラスに対し、ｌｅｖｅｌを０に初期化する。
【０１５５】
ステップＳ５０２では、選択した合成クラスグループ［ｉ］のクラスグループデータのクラスで、ｒｏｏｔフラグがｇｒｏｕｐ_ｒｏｏｔのクラスのｌｅｖｅｌに１を設定する。
【０１５６】
ステップＳ５０３では、選択した合成クラスグループ［ｉ］のクラスグループデータのクラスで、ｒｏｏｔフラグがｇｒｏｕｐ_ｒｏｏｔのクラスを起点に、ｒｏｏｔフラグがｇｒｏｕｐ_ｒｏｏｔのクラスから合成クラスグループ［ｉ］に含まれるｌｅａｆのクラスまでを各クラスのｎｅｘｔを辿り、ｒｏｏｔフラグがｇｒｏｕｐ_ｒｏｏｔのクラスからｌｅａｆのクラスまでに「経由したｎｅｘｔの数に１を加算した値」を各クラスのｌｅｖｅｌに設定する。
【０１５７】
具体的には、ｒｏｏｔフラグがｇｒｏｕｐ_ｒｏｏｔのクラスのｎｅｘｔに設定されている各クラスを辿り、ｒｏｏｔフラグがｇｒｏｕｐ_ｒｏｏｔのクラスのｎｅｘｔから辿った各クラスはｌｅｖｅｌに２を設定する。
【０１５８】
ｌｅｖｅｌを２に設定した各クラスのｎｅｘｔを辿り、ｌｅｖｅｌが２のクラスのｎｅｘｔから辿ったクラスのｌｅｖｅｌは３を設定する。同様の処理をｌｅａｆのクラスまで繰り返し行う。
【０１５９】
ステップＳ５０４では、選択した合成クラスグループ［ｉ］のクラスグループデータのクラスで、ｒｏｏｔフラグがｒｏｏｔのクラスを選択する。但し、ｒｏｏｔフラグにｇｒｏｕｐ_ｒｏｏｔが設定されているクラスは含まない。
【０１６０】
ステップＳ５０５では、ステップＳ５０４で選択した合成クラスグループ［ｉ］のクラスを起点に、ｌｅｖｅｌが１以上のクラスまで各クラスのｎｅｘｔを辿り、ステップＳ５０４で選択した合成クラスグループ［ｉ］のクラスからｌｅｖｅｌが１以上のクラスまでに「経由したｎｅｘｔの数に１を加算した値」を各クラスのｌｅｖｅｌに設定する。
【０１６１】
ステップＳ５０６では、ステップＳ５０４で選択した合成クラスグループ［ｉ］のクラスを起点に、ｌｅｖｅｌが１以上のクラスがあった場合、ｌｅｖｅｌが１以上のクラスを基準としたステップＳ５０４で選択した合成クラスグループ［ｉ］のクラスまでの各クラスのｌｅｖｅｌに対して、ｌｅｖｅｌが１以上のクラスのｌｅｖｅｌから「経由したｐｒｅｖの数」を減算した値を設定する。
【０１６２】
また、ステップＳ５０４で選択した合成クラスグループ［ｉ］のクラスまでのｌｅｖｅｌの再設定後、ステップＳ５０４で選択した合成クラスグループ［ｉ］のクラスからｌｅｖｅｌが１以上のクラスまでの各クラスのｌｅｖｅｌの設定値、ステップＳ５０４で選択した合成クラスグループ［ｉ］のクラスからｌｅｖｅｌが１以上のクラスまでの経路には表れない、ステップＳ５０４で選択した合成クラスグループ［ｉ］のクラスからｌｅａｆクラスまでの経路における各クラスのｌｅｖｅｌの確認を行う。
【０１６３】
ステップＳ５０４で選択した合成クラスグループ［ｉ］のクラスからｌｅｖｅｌが１以上のクラスまでの経路には表れないステップＳ５０４で選択した合成クラスグループ［ｉ］のクラスからｌｅａｆのクラスまでの経路における各クラスのｌｅｖｅｌに対しては、以下の値を設定する。
【０１６４】
ステップＳ５０４で選択した合成クラスグループ［ｉ］のクラスからｌｅｖｅｌが１以上のクラスまで「経由したｐｒｅｖの数」を用いた再設定後のｌｅｖｅｌに、ステップＳ５０４で選択した合成クラスグループ［ｉ］のクラスから「経由したｎｅｘｔの数」の値を加算して得られた値を、ｌｅｖｅｌが１以上のクラスからｌｅａｆクラスまでのｌｅｖｅｌに設定を行う。
【０１６５】
ステップＳ５０５の処理を終了すると、ステップＳ５０４にて、ステップＳ５０１において選択している合成クラスグループ［ｉ］のクラスグループデータのクラスから、次のｒｏｏｔフラグがｒｏｏｔのクラスの選択をおこない、処理を継続する。次のクラスグループデータが存在しない場合は、ステップＳ５０６へ処理を進める。
【０１６６】
ステップＳ５０６では、ステップＳ５０４、及びステップＳ５０５の処理終了後、ステップＳ５０１で選択した合成クラスグループの各クラスについて、影響範囲クラス数の設定をおこなう。
【０１６７】
影響範囲クラス数とは、任意のクラスから各ｌｅａｆクラスまでにたどるクラスの合計である。具体的には、任意のクラスから各ｌｅａｆクラスまでｎｅｘｔで辿った全てのクラスの数である。
【０１６８】
ステップＳ５０６の処理終了後、ステップＳ５０１にて次の合成クラスグループの選択をおこない、処理を継続する。次の合成クラスグループデータが存在しない場合は、処理を終了する。
【０１６９】
本処理におけるサブグループ番号、算出した影響範囲クラス数については、クラスグループデータテーブルへ記憶される。
【０１７０】
図８は、クラス図データの解析結果に対して単体テスト結果データを反映する処理フローを示す図である。
【０１７１】
ステップＳ６０１では、合成クラスグループ［ｉ］を選択し、選択した合成クラスグループ［ｉ］のクラスグループデータの全クラスに対し、単体テスト結果データを設定する。単体テスト結果データとは、動作検証、機能確認の単体テスト結果とカバレッジ測定結果であり、前述したように単体テスト結果用テーブルに記憶されたクラス毎のデータに該当する。
【０１７２】
ステップＳ６０２では、ステップＳ６０１で選択した合成クラスグループ［ｉ］のクラスグループデータの全クラスに対し、単体テスト結果のＮＧ影響度を設定する。
【０１７３】
単体テスト結果のＮＧ影響度とは、任意のクラスにおける単体テストで発生した単体テスト結果がＮＧになった際の他の関連するクラスへの影響度合いを示し、任意のクラスの「単体テスト結果のＮＧ件数に影響範囲クラス数を乗算する」ことで算出する。
【０１７４】
ステップＳ６０３では、ステップＳ６０１で選択した合成クラスグループ［ｉ］のクラスグループデータに対し、単体テスト結果サマリーのＯＫ総件数を設定する。単体テスト結果サマリーのＯＫ総件数は、合成クラスグループ［ｉ］のクラスグループデータの全クラスの単体テスト結果ＯＫ件数の総和である。
【０１７５】
ステップＳ６０４では、ステップＳ６０１で選択した合成クラスグループ［ｉ］のクラスグループデータに対し、単体テスト結果サマリーのＮＧ総影響度を設定する。単体テスト結果サマリーのＮＧ総影響度は、合成クラスグループ［ｉ］のクラスグループデータの全クラスの単体テスト結果ＮＧ影響度の総和である。
【０１７６】
ステップＳ６０５では、ステップＳ６０１で選択した合成クラスグループ［ｉ］のクラスグループデータに対し、単体テスト結果サマリーのＮＧ総件数を設定する。単体テスト結果サマリーのＮＧ総件数は、合成クラスグループのクラスグループデータの全クラスの単体テスト結果ＮＧ件数の総和である。
【０１７７】
ステップＳ６０６では、ステップＳ６０１で選択した合成クラスグループ［ｉ］のクラスグループデータに対し、カバレッジ計測結果サマリーの総ステップ数を設定する。カバレッジ測定結果サマリーの総ステップ数は、合成クラスグループ［ｉ］のクラスグループデータの全クラスのカバレッジ計測結果のステップ数の総和である。
【０１７８】
ステップＳ６０７では、ステップＳ６０１で選択した合成クラスグループ［ｉ］のクラスグループデータに対し、カバレッジ計測結果サマリーのカバレッジ達成総ステップ数を設定する。
【０１７９】
カバレッジ測定結果サマリーのカバレッジ達成総ステップ数は、合成クラスグループ［ｉ］のクラスグループデータの全クラスのカバレッジ達成ステップ数の総和である。
【０１８０】
ステップＳ６０８では、ステップＳ６０１で選択した合成クラスグループ［ｉ］のクラスグループデータに対し、カバレッジ測定結果サマリーの総カバレッジ率を設定する。
【０１８１】
カバレッジ測定結果サマリーの総カバレッジ率は、合成クラスグループ［ｉ］のカバレッジ測定結果サマリーの「カバレッジ達成総ステップ数を総ステップ数で除算して得られた値」である。
【０１８２】
ステップＳ６０８以後、ステップＳ６０１にて次の合成クラスグループの選択をおこない、処理を継続する。次の合成クラスグループが存在しない場合は、処理を終了する。
【０１８３】
本処理において算出した各結果値については、クラスグループデータテーブルへ記憶される。
【０１８４】
図９及び図１０は、単体テスト計画作成処理フローを示す図である。
【０１８５】
ステップＳ７０１では、単体テスト対象となる合成クラスグループのクラスグループデータのクラスに対するソースコードの開発言語と、ステップＳ１０７にて選択されたアサイン要員のアサイン要員情報の実装スキルの開発言語が一致する場合、ステップＳ７０３へ処理を進め、一致しない場合、ステップＳ７０２に処理を進め、ステップＳ７０２では、エラーを表示し、処理を終了して、メイン画面３００へ戻る。
【０１８６】
ステップＳ７０３では、各合成クラスグループのクラスグループデータにおいて、単体テスト結果にＮＧがある場合、ステップＳ７０４へ処理を進め、単体テスト結果にＮＧがない場合、ステップＳ７１６へ処理を進める。
【０１８７】
各合成クラスグループのクラスグループデータにおける単体テスト結果のＮＧの有無は、クラスグループデータの単体テスト結果サマリーのＮＧ総件数が０でない、もしくは、クラスグループデータの全クラスの単体テスト結果ＮＧ件数が０でないことで、単体テスト結果のＮＧが有と判定し、単体テスト結果サマリーのＮＧ総件数が０である、もしくは、クラスグループデータの全クラスの単体テスト結果ＮＧ件数が０であることで、単体テスト結果のＮＧが無と判定する。
【０１８８】
ステップＳ７０４では、合成クラスグループのクラスグループデータにおいて、単体テスト結果にＮＧがあるクラスの開発担当者がステップＳ１０７にて選択したアサイン要員に含まれている場合、ステップＳ７０５へ処理を進め、単体テスト結果にＮＧがあるクラスの開発担当者がステップＳ１０７にて選択したアサイン要員に含まれていない場合、ステップＳ７０７へ処理を進める。
【０１８９】
この判定は、前述した要員情報の担当範囲に、ＮＧがあるクラスが設定されているか否かによって判定を行う。
【０１９０】
ステップＳ７０５では、単体テスト結果にＮＧがある合成クラスグループを合成クラスグループのクラスグループデータの単体テスト結果サマリーのＮＧ総影響度が大きい順に、開発担当のアサイン要員単体テスト計画データの障害担当のクラスグループのグループ番号に設定する。
【０１９１】
各アサイン要員の単体テスト計画データを設定するアサイン要員単体テスト計画データ用テーブルを図２２にて示す。
【０１９２】
アサイン要員単体テスト計画データ用テーブルは、アサイン要員に対して、障害対応としてアサインした際に、対象となるクラスグループにおいて（グループ番号）、対応に要する総時間、対応開始日、対応終了日、対応すべくクラス名、当該クラスにおいて対応に要する対応時間、対応開始日、対応終了日、クラスにおいて単体テスト結果がＮＧとなった障害番号を備えている。
【０１９３】
一方、アサイン要員に対して、カバレッジ測定対応としてアサインした際に、対象となるクラスグループにおいて（グループ番号）、対応に要する総時間、対応開始日、対応終了日、対応すべくクラス名、当該クラスにおいて対応に要する対応時間、対応開始日、対応終了日を備えている。
【０１９４】
ステップＳ７０６では、ステップＳ７０５において設定した単体テスト結果にＮＧがある合成クラスグループの単体テスト結果がＮＧの項目に対して、アサイン要員の対応時間を算出し、アサイン要員単体テスト計画データの障害担当のクラスグループのクラスのクラス名、対応期間の対応時間、対応ＮＧ項目と、アサイン要員単体テスト計画データの障害担当のクラスグループの対応期間の対応総時間を設定する。クラスグループの対応総時間は、各クラスの対応期間の対応時間の総和である。
【０１９５】
単体テスト結果がＮＧの項目の対応時間は、「単体テスト結果のＮＧ件数にアサイン要員情報の１件あたりの障害調査対応時間を乗算して得られた値」で算出する。
【０１９６】
また、単体テスト結果がＮＧの項目の対応時間は、アサイン要員が単体テスト結果にＮＧがあるクラスの開発担当者か、開発担当者でないかにより、対応時間の差を担当者係数として加味する。担当者係数はシステム利用者などの外部から指定されるものとする。
【０１９７】
担当者係数を含めた単体テスト結果がＮＧの項目の対応時間は「（単体テスト結果のＮＧ件数）に（担当者係数にアサイン要員情報の１件あたりの障害調査対応時間を乗算して得られた値）を乗算して得られた値」である。以後の処理において、アサイン要員が開発担当者か、開発担当者でないかにより、対応時間には担当者係数が加味されるものとする。
【０１９８】
ステップＳ７０７では、いまだ担当が割当っていない単体テスト結果にＮＧがある合成クラスグループに対し、ステップＳ１０７において選択したアサイン要員で対応時間を算出する。
【０１９９】
算出したアサイン要員ごとの対応時間を組合せ、対応時間の合計の差異が最小となる組合せを算出し、各アサイン要員のアサイン要員単体テスト計画データの障害担当のクラスグループのグループ番号と対応期間の対応総時間の設定と、アサイン要員単体テスト計画データの障害担当のクラスグループのクラスのクラス名、対応期間の対応時間、対応ＮＧ項目を設定する。
【０２００】
ステップＳ７０８では、ステップＳ７０７までの各アサイン要員のアサイン要員単体テスト計画データの障害担当のクラスグループの対応期間の対応総時間について、対応総時間が最大のアサイン要員に対し、合成クラスグループ単位で他のアサイン要員へ組み換えることにより、単体テスト結果がＮＧとなった対応ＮＧ項目の対応期間短縮が可能か否かを判定し、組み換えが可能な場合、ステップＳ７０９へ処理を進め、組み換えが可能でない場合、ステップＳ７１０へ処理を進める。
【０２０１】
ステップＳ７０９では、ステップＳ７０８においてアサイン要員単体テスト計画データの障害担当のクラスグループの対応期間の対応総時間が最大のアサイン要員で、合成クラスグループ単位で他要員への組み換えが可能な合成クラスグループに対し、合成クラスグループ単位の単体テスト結果がＮＧとなった対応ＮＧ項目のアサイン要員ごとの対応時間を算出する。
【０２０２】
算出したアサイン要員ごとの対応時間を組合せ、対応時間の合計の差異が最小となる組合せを算出し、各アサイン要員のアサイン要員単体テスト計画データの障害担当のクラスグループのグループ番号と対応期間の対応総時間の設定と、アサイン要員単体テスト計画データの障害担当のクラスグループのクラスのクラス名、対応期間の対応時間、対応ＮＧ項目を設定する。
【０２０３】
ステップＳ７０９の処理終了後、再度、ステップＳ７０８の判定を行う。ステップＳ７０８とステップＳ７０９にて、ステップＳ７０８にて組み換えが可能でなくなるまで、処理を繰り返す。
【０２０４】
ステップＳ７１０では、本ステップまでに設定した各アサイン要員のアサイン要員単体テスト計画データについて、単体テスト結果にＮＧがある合成クラスグループを合成クラスグループのクラスグループデータの単体テスト結果サマリーのＮＧ総影響度が大きい順に、各アサイン要員のアサイン要員単体テスト計画データの障害担当のクラスグループの対応期間に終了日を設定する。尚、開始日については、予め設定しておくものとし、終了日は、開始日から対応総時間より定まる。
【０２０５】
ステップＳ７１１では、各アサイン要員のアサイン要員単体テスト計画データについて、各合成クラスグループにおいて、単体テスト結果がＮＧのクラスを合成クラスグループのクラスグループデータのクラスにおける単体テスト結果のＮＧ影響度が高い順で、ｌｅｖｅｌが低い順に、各アサイン要員のアサイン要員単体テスト計画データの障害担当のクラスグループのクラスの対応期間に終了日を設定する。尚、開始日については、予め設定しておくものとし、終了日は、開始日から対応総時間より定まる。
【０２０６】
ステップＳ７１２では、ステップＳ７１１までの各アサイン要員のアサイン要員単体テスト計画データの障害担当のクラスグループの対応期間の対応総時間について、対応総時間が最大のアサイン要員に対し、各合成クラスグループのクラスグループデータのクラスにおいてサブグループ番号が０でない単体テスト結果がＮＧの各クラスが他のアサイン要員への組み換えにより、単体テスト結果がＮＧとなった対応ＮＧ項目の対応期間短縮が可能か否かを判定し、組み換えが可能な場合、ステップＳ７１３へ処理を進め、組み換えが可能でない場合、ステップＳ７１６へ処理を進める。
【０２０７】
ステップＳ７１３では、ステップＳ７１２で各アサイン要員のアサイン要員単体テスト計画データの障害担当のクラスグループの対応期間の対応総時間が最大のアサイン要員に対し、各合成クラスグループのクラスグループデータのクラスにてサブグループ番号が０でない単体テスト結果がＮＧの各クラスにおいて、各合成クラスグループのクラスグループデータの単体テスト結果がＮＧの各クラスの対応ＮＧ項目と、各合成クラスグループのクラスグループデータのクラスにおいてサブグループ番号が０でない単体テスト結果がＮＧの各クラスの対応ＮＧ項目の関連有無を判定し、関連がないと判定した場合、ステップＳ７１４へ処理を進め、関連があると判定した場合、ステップＳ７１６へ処理を進める。
【０２０８】
ステップＳ７１４では、ステップＳ７１２で各アサイン要員のアサイン要員単体テスト計画データの障害担当のクラスグループの対応期間の対応総時間が最大のアサイン要員に対し、各合成クラスグループのクラスグループデータのクラスにおいてサブグループ番号が０でない単体テスト結果がＮＧの各クラスにおいて、各合成クラスグループのクラスグループデータの単体テスト結果がＮＧの各クラスの対応ＮＧ項目と関連がないサブグループ番号が０でない単体テスト結果がＮＧの各クラスの対応ＮＧ項目について、アサイン要員ごとの対応時間を算出する。尚、対応ＮＧ項目の関連性については、予め定義しておいても良い。（例えば、関連する障害番号を対応づけて定義しておく。）
【０２０９】
算出したアサイン要員ごとの対応時間を組合せ、対応時間の合計の差異が最小となる組合せを算出し、各アサイン要員のアサイン要員単体テスト計画データの障害担当のクラスグループのグループ番号と対応期間の対応総時間の設定と、アサイン要員単体テスト計画データの障害担当のクラスグループのクラスのクラス名、対応期間の対応時間、対応ＮＧ項目を設定する。
【０２１０】
ステップＳ７１５では、各アサイン要員のアサイン要員単体テスト計画データについて、各合成クラスグループにおいて、単体テスト結果がＮＧのクラスを合成クラスグループのクラスグループデータのステップＳ７１４にて追加したサブグループ番号が０でない単体テスト結果がＮＧの各クラスにおいて、クラスにおける単体テスト結果のＮＧ影響度が高い順で、ｌｅｖｅｌが低い順に、各アサイン要員のアサイン要員単体テスト計画データの障害担当のクラスグループのクラスの対応期間に終了日を設定する。尚、開始日については、予め設定しておくものとし、終了日は、開始日から対応総時間より定まる。
【０２１１】
ステップＳ７１５の処理終了後、再度、ステップＳ７１２の判定を行う。ステップＳ７１２〜ステップＳ７１５にて、ステップＳ７１２にて組み換えが可能でない、かつ、ステップＳ７１３にて関連ない項目がなくなるまで、処理を繰り返す。
【０２１２】
ステップＳ７１６では、各合成クラスグループのクラスグループデータにおいて、カバレッジ測定結果が１００％でない場合、ステップＳ７１７へ処理を進め、カバレッジ測定結果が１００％の場合、処理を終了する。
【０２１３】
各合成クラスグループのクラスデータにおけるカバレッジ測定結果は、クラスグループデータの単体テスト結果サマリーのカバレッジ計測結果サマリーの総カバレッジ率に設定された値、もしくは、クラスグループデータの全クラスのカバレッジ計測結果のカバレッジ率に設定された値で判定する。
【０２１４】
ステップＳ７１７では、各合成クラスグループのクラスグループデータのカバレッジ計測結果が１００％でないクラスで、単体テスト結果がＮＧの項目を含まないクラスがある場合、ステップＳ７１８へ処理を進め、単体テスト結果がＮＧの項目を含まないクラスがない場合、処理を終了する。
【０２１５】
ステップＳ７１８では、ステップＳ７１７で処理した各合成クラスグループのクラスグループデータのカバレッジ測定結果が１００％でないクラスで、単体テスト結果がＮＧの項目を含まないクラスを収集する。（以下、合成クラスグループにおける単体テストカバレッジ未達成箇所と記載）
【０２１６】
ステップＳ７１９では、合成クラスグループのクラスグループデータにおいて、単体テストカバレッジ未達成箇所があるクラスの開発担当者がステップＳ１０７にて選択したアサイン要員に含まれている場合、ステップＳ７２０へ処理を進め、アサイン要員に含まれていない場合、ステップＳ７２２へ処理を進める。この判定方法は、ステップＳ７０４で説明した通りである。
【０２１７】
ステップＳ７２０では、単体テストカバレッジ未達成箇所がある合成クラスグループを合成クラスグループのクラスグループデータの単体テスト結果サマリーの総カバレッジ率が低い順に、開発担当のアサイン要員単体テスト計画データのカバレッジ担当のクラスグループのグループ番号に設定する。
【０２１８】
ステップＳ７２１では、ステップＳ７２０で設定した単体テストカバレッジ未達成箇所がある合成クラスグループの各単体テストカバレッジ未達成箇所に対して、アサイン要員の対応時間を算出し、アサイン要員単体テスト計画データのカバレッジ担当のクラスグループのクラスのクラス名、対応期間の対応時間と、アサイン要員単体テスト計画データのカバレッジ担当のクラスグループの対応期間の対応総時間を設定する。尚、クラスグループの対応総時間は、各クラスの対応期間の対応時間の総和である。
【０２１９】
単体テストカバレッジ未達成箇所の対応時間は、「（ステップ数からカバレッジ達成ステップ数を減算して得られた値）を（単位時間あたりの実装ステップ数）で除算して得られた値」で算出する。
【０２２０】
また、単体テストカバレッジ未達成箇所の対応時間は、アサイン要員が単体テストカバレッジ未達成箇所のクラスの開発担当者か、開発担当者でないかにより、対応時間の差を担当者係数として加味する。尚、担当者係数はシステム利用者などの外部から指定されるものとする。
【０２２１】
担当者係数を含めた単体テストカバレッジ未達成箇所の対応時間は「（ステップ数からカバレッジ達成ステップ数を減算して得られた値）を（担当係数に単位時間あたりの実装ステップ数を乗算して得られた値）で除算して得られた値」である。以後の処理において、アサイン要員が開発担当者か、開発担当者でないかにより、対応時間には担当者係数が加味されるものとする。
【０２２２】
ステップＳ７２２では、ステップＳ７２１までに担当が割当たっていない単体テストカバレッジ未達成箇所がある合成クラスグループに対し、ステップＳ１０７にて選択したアサイン要員で対応時間を算出する。
【０２２３】
算出したアサイン要員ごとの対応時間を組合せ、対応時間の合計の差異が最小となる組合せを算出し、各アサイン要員のアサイン要員単体テスト計画データのカバレッジ担当のクラスグループのグループ番号と対応期間の対応総時間の設定と、アサイン要員単体テスト計画データのカバレッジ担当のクラスグループのクラスのクラス名、対応期間の対応時間を設定する。
【０２２４】
ステップＳ７２３では、ステップＳ７２２までの各アサイン要員のアサイン要員単体テスト計画データのカバレッジ担当のクラスグループの対応期間の対応総時間について、対応総時間が最大のアサイン要員に対し、合成クラスグループ単位で他のアサイン要員への組み換えにより、単体テストカバレッジ未達成箇所の対応期間短縮が可能か否かを判定し、組み換えが可能と判定した場合、ステップＳ７２４へ処理を進め、組み換えが可能でないと判定した場合、ステップＳ７２５へ処理を進める。
【０２２５】
ステップＳ７２４では、ステップＳ７２３にてアサイン要員単体テスト計画データのカバレッジ担当のクラスグループの対応期間の対応総時間が最大のアサイン要員で、合成クラスグループ単位で他要員への組み換えが可能な合成クラスグループに対し、合成クラスグループ単位の単体テストカバレッジ未達成箇所のアサイン要員ごとの対応時間を算出する。
【０２２６】
算出したアサイン要員ごとの対応時間を組合せ、対応時間の合計の差異が最小となる組合せを算出し、各アサイン要員のアサイン要員単体テスト計画データのカバレッジ担当のクラスグループのグループ番号と対応期間の対応総時間の設定と、アサイン要員単体テスト計画データのカバレッジ担当のクラスグループのクラスのクラス名、対応期間の対応時間を設定する。
【０２２７】
ステップＳ７２４の処理以後、再度、ステップＳ７２３における判定を行う。ステップＳ７２３及びステップＳ７２４にて、ステップＳ７２３にて組み換えが可能でなくなるまで、処理を繰り返す。
【０２２８】
ステップＳ７２５では、ステップＳ７２５までに設定した各アサイン要員のアサイン要員単体テスト計画データについて、単体テストカバレッジ未達成箇所がある合成クラスグループを合成クラスグループのクラスグループデータのカバレッジ測定結果サマリーの総カバレッジ率が小さい順に、各アサイン要員のアサイン要員単体テスト計画データのカバレッジ担当のクラスグループの対応期間に終了日を設定する。尚、開始日については、予め設定しておくものとし、終了日は、開始日から対応総時間より定まる。
【０２２９】
また、ステップＳ７２６では、各合成クラスグループにおいて、単体テスト結果がＮＧのクラスを合成クラスグループのクラスグループデータのクラスにおけるカバレッジ測定結果のカバレッジ率が低い順に、各アサイン要員のアサイン要員単体テスト計画データのカバレッジ担当のクラスグループのクラスの対応期間に終了日を設定する。尚、開始日については、予め設定しておくものとし、終了日は、開始日から対応総時間より定まる。
【０２３０】
ステップＳ７２７では、ステップＳ７２６までの各アサイン要員のアサイン要員単体テスト計画データのカバレッジ担当のクラスグループの対応期間の対応総時間について、対応総時間が最大のアサイン要員に対し、各合成クラスグループのクラスグループデータのクラスにおいてサブグループ番号が０でない単体テストカバレッジ未達成箇所のある各クラスが他のアサイン要員への組み換えにより、単体テストカバレッジ未達成箇所の対応期間短縮が可能か判定し、組み換えが可能と判定した場合、ステップＳ７２８へ処理を進め、組み換えが可能でないと判定した場合、処理を終了する。
【０２３１】
ステップＳ７２８では、ステップＳ７２７で各アサイン要員のアサイン要員単体テスト計画データのカバレッジ担当のクラスグループの対応期間の対応総時間が最大のアサイン要員に対し、各合成クラスグループのクラスグループデータのクラスにおいてサブグループ番号が０でない単体テストカバレッジ未達成箇所のある各クラスにおいて、アサイン要員ごとの対応時間を算出する。
【０２３２】
算出したアサイン要員ごとの対応時間を組合せ、対応時間の合計の差異が最小となる組合せを算出し、各アサイン要員のアサイン要員単体テスト計画データのカバレッジ担当のクラスグループのグループ番号と対応期間の対応総時間の設定と、アサイン要員単体テスト計画データのカバレッジ担当のクラスグループのクラスのクラス名、対応期間の対応時間を設定する。
【０２３３】
ステップＳ７２９では、各アサイン要員のアサイン要員単体テスト計画データについて、各合成クラスグループにおいて、単体テストカバレッジ未達成箇所のあるクラスを合成クラスグループのクラスグループデータのステップＳ７２８にて追加したサブグループ番号が０でない単体テストカバレッジ未達成箇所がある各クラスにおいて、合成クラスグループのクラスグループデータのクラスにおけるカバレッジ測定結果のカバレッジ率が低い順に、各アサイン要員のアサイン要員単体テスト計画データのカバレッジ担当のクラスグループのクラスの対応期間に終了日を設定する。尚、開始日については、予め設定しておくものとし、終了日は、開始日から対応総時間より定まる。
【０２３４】
ステップＳ７２９の処理以後、再度、ステップＳ７２７の判定をおこなう。ステップＳ７２７〜ステップＳ７２９にて、ステップＳ７２７にて組み換えが可能でなくなるまで、処理を繰り返す。
【０２３５】
本処理を終了すると、単体テスト計画出力画面７００に対して、アサイン要員単体テスト計画データからデータを取得して、表示を行うことで、ユーザはテスト計画を参照することが可能となる。
【０２３６】
以上、実施形態例を詳述したが、本発明によれば、テストの実施結果に応じて、再度テストを行う要員をアサインするようなテスト計画を作成するにあたり、テスト対象となるプログラム間の関係を解析することで要員のアサインを行うため、テスト計画の作成者の作業負荷をかけることなく適正な計画を作成することができる。
【０２３７】
また、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【０２３８】
また、本発明におけるプログラムは、各処理方法をコンピュータが実行可能（読取可能）なプログラムであり、本発明の記憶媒体は、各処理方法をコンピュータが実行可能なプログラムが記憶されている。
【０２３９】
なお、本発明におけるプログラムは、各装置の処理方法ごとのプログラムであってもよい。
【０２４０】
以上のように、前述した実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムを読取り実行することによっても、本発明の目的が達成されることは言うまでもない。
【０２４１】
この場合、記録媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記憶した記録媒体は本発明を構成することになる。プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク，ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＥＥＰＲＯＭ、シリコンディスク等を用いることができる。
【０２４２】
また、コンピュータが読み出したプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータで稼働しているＯＳ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０２４３】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０２４４】
また、本発明は、複数の機器から構成されるシステムに適用しても、１つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。
【０２４５】
この場合、本発明を達成するためのプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０２４６】
さらに、本発明を達成するためのプログラムをネットワーク上のサーバ，データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステム、あるいは装置が、本発明の効果を享受することが可能となる。なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【０２４７】
１０１    クライアント端末
１０２    構成管理サーバ
１０３    ネットワーク
１０４    アプリケーション/ファイルサーバ１０４
２０１    ＣＰＵ
２０２    ＲＯＭ
２０３    ＲＡＭ
２０４    システムバス
２０５    入力コントローラ
２０６    ビデオコントローラ
２０７    メモリコントローラ
２０８    通信Ｉ／Ｆコントローラ
２０９    キーボード
２１０    ディスプレイ
２１１    外部メモリ（ＨＤ／ＦＤ）
【図１】
2015011495.tif 000003
【図２】
2015011495.tif 000004
【図３】
2015011495.tif 000005
【図４】
2015011495.tif 000006
【図５】
2015011495.tif 000007
【図６】
2015011495.tif 000008
【図７】
2015011495.tif 000009
【図８】
2015011495.tif 000010
【図９】
2015011495.tif 000011
【図１０】
2015011495.tif 000012
【図１１】
2015011495.tif 000013
【図１２】
2015011495.tif 000014
【図１３】
2015011495.tif 000015
【図１４】
2015011495.tif 000016
【図１５】
2015011495.tif 000017
【図１６】
2015011495.tif 000018
【図１７】
2015011495.tif 000019
【図１８】
2015011495.tif 000020
【図１９】
2015011495.tif 000021
【図２０】
2015011495.tif 000022
【図２１】
2015011495.tif 000023
【図２２】
2015011495.tif 000024