(57)【要約】【課題】プロジェクト内外の制約のもとで効率的なテスト計画を作成可能とする。【解決手段】テストケースに関する品質リスクの値と複雑度の値とを乗算し、該乗算値が高いものを優先順位が高いものとして各テストケース間での実施優先度を算出するテストケース優先度算出部１０２と、テストケースの規模および複雑度を工数予測モデル式に適用して必要工数を算出するテスト工数算出部１０３と、テストケースに必要な人員リソースの割り当てを行ってテスト計画を生成し、制約条件に応じて所定期限までに実施すべきテストケースの部分集合を定義したテストマイルストンが示すテスト実施完了時期が所定期限を越える場合、制約条件のパターンに応じて予め定めた対応処理内容に従って所定期限を達成するテストケースの実施順序を算出してテスト計画のデータを更新するテスト計画算出部１０４と、テスト計画のデータを表示するテスト計画表示部１０５とからテスト計画作成装置を構成する。【選択図】図１
2011257947.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアシステムのテスト計画を作成するコンピュータ装置が、
記憶手段にて予めデータを保持する各テストケースについて、テストケースに関する不具合発生確率である品質リスクの値と、テストケースに含まれるサブシステムプログラムの構成の複雑さを示す複雑度の値とを乗算し、該乗算値が高いものを優先順位が高いものとして各テストケース間での実施優先度を算出し記憶手段に格納する処理と、
テストケースの規模および複雑度の各データを所定の工数予測モデル式に適用して、各テストケースを実施するために必要な工数を算出し記憶手段に格納する処理と、
各テストケースの工数を記憶手段から読み出し、実施優先度が最も高いテストケースから順に前記工数に必要な人員リソースの割り当てを行ってテスト計画を生成し、記憶手段に格納する処理と、
テスト計画中でのプロジェクト内外の制約条件に応じて所定期限までに実施すべきテストケースの部分集合を定義したテストマイルストンのデータを、これが格納された記憶手段より読み出し、該テストマイルストンが規定するテストケース集合のテスト実施完了時期が前記所定期限を越える場合、前記制約条件のパターンに応じて予め定めた対応処理内容に従って、前記所定期限を達成するテストケースの実施順序を算出してテスト計画のデータを更新する処理と、
記憶手段からテスト計画のデータを読み出して出力装置にて表示する処理と、
を実行することを特徴とするテスト計画作成方法。
【請求項２】
前記コンピュータ装置は、
記憶手段において、前記テストマイルストンに関する制約条件として、当該テストマイルストンで実施すべきテストケースによって確保すべき品質状況の変更可否を定義する品質属性と、当該テストマイルストンの期限の変更可否を定義する期限属性と、当該テストマイルストンの実施期間における人員リソースの追加可否を定義する工数属性の各データを有し、
テストマイルストンが規定するテストケース集合のテスト実施完了時期が前記所定期限を越える場合、前記テストマイルストンの品質属性、期限属性、及び、工数属性の各値が取りうるパターンに応じて予め定めた対応処理内容に従って、前記所定期限を達成するテストケースの実施順序を算出してテスト計画のデータを更新する、
ことを特徴とする請求項１に記載のテスト計画作成方法。
【請求項３】
前記コンピュータ装置は、
テストマイルストンが規定するテストケース集合のテスト実施完了時期が前記所定期限を越える場合、前記テストマイルストンの品質属性、期限属性、及び、工数属性の各値が取りうるパターンに応じて予め定めた複数の対応処理内容に従って、前記所定期限を達成するテストケースの実施順序を複数算出してテスト計画のデータを複数生成して記憶手段に格納することを特徴とする請求項２に記載のテスト計画作成方法。
【請求項４】
前記コンピュータ装置は、
複数のテスト計画のデータを記憶手段から読み出して出力装置にて表示することを特徴とする請求項３に記載のテスト計画作成方法。
【請求項５】
前記コンピュータ装置は、
テスト対象となるテストケースを構成するサブテストプログラムにおける設計段階の品質情報を記載したサブシステム設計品質、及び、過去にテストされたサブシステムプログラムにおける品質実績を格納したサブシステム品質実績の各データを、これが格納された記憶手段から読み出し、前記サブシステム品質実績が示すサブシステムの属性とサブシステムプログラムの品質実績との相関について回帰分析を行って品質予測モデル式を生成し、該品質予測モデル式に前記サブシステム設計品質が示すサブシステムの属性値を適用することで、該当サブシステムプログラムの品質値を予測し、該当テストケースにおけるサブシステムプログラムの構成に応じて予め定めた算定式に前記サブシステムプログラムの品質値を適用して品質リスクを算定し、該品質リスクの値と、テストケースに含まれるサブシステムプログラムの構成の複雑さを示す複雑度の値とを乗算し、該乗算値が高いものを優先順位が高いものとして各テストケース間での実施優先度を算出し記憶手段に格納する、
ことを特徴とする請求項１に記載のテスト計画作成方法。
【請求項６】
前記コンピュータ装置は、
テストテースの実施工数実績を、これが格納された記憶手段より読み出し、該実施工数実績が示すテストケースの規模および複雑度と実施工数との相関について回帰分析を行って工数予測モデル式を生成し、該工数予測モデル式に、テスト対象となるテストケースの規模および複雑度の各データを適用して、各テストケースを実施するために必要な工数を算出し記憶手段に格納する、
ことを特徴とする請求項１に記載のテスト計画作成方法。
【請求項７】
前記コンピュータ装置は、
ソフトウェアシステムに関するプロジェクト計画のデータを記憶手段に格納しており、該記憶手段でのプロジェクト計画の変更を検知し、前記各処理の少なくともいずれかを再実行してテスト計画を再生成することを特徴とする請求項１に記載のテスト計画作成方法。
【請求項８】
ソフトウェアシステムのテスト計画を作成するコンピュータ装置であり、
記憶手段にて予めデータを保持する各テストケースについて、テストケースに関する不具合発生確率である品質リスクの値と、テストケースに含まれるサブシステムプログラムの構成の複雑さを示す複雑度の値とを乗算し、該乗算値が高いものを優先順位が高いものとして各テストケース間での実施優先度を算出し記憶手段に格納する、テストケース優先度算出部と、
テストケースの規模および複雑度の各データを所定の工数予測モデル式に適用して、各テストケースを実施するために必要な工数を算出し記憶手段に格納する、テスト工数算出部と、
各テストケースの工数を記憶手段から読み出し、実施優先度が最も高いテストケースから順に前記工数に必要な人員リソースの割り当てを行ってテスト計画を生成し、記憶手段に格納し、テスト計画中でのプロジェクト内外の制約条件に応じて所定期限までに実施すべきテストケースの部分集合を定義したテストマイルストンのデータを、これが格納された記憶手段より読み出し、該テストマイルストンが規定するテストケース集合のテスト実施完了時期が前記所定期限を越える場合、前記制約条件のパターンに応じて予め定めた対応処理内容に従って、前記所定期限を達成するテストケースの実施順序を算出してテスト計画のデータを更新する、テスト計画算出部と、
記憶手段からテスト計画のデータを読み出して出力装置にて表示する、テスト計画表示部と、
を備えることを特徴とするテスト計画作成装置。
【請求項９】
ソフトウェアシステムのテスト計画を作成するコンピュータ装置に、
記憶手段にて予めデータを保持する各テストケースについて、テストケースに関する不具合発生確率である品質リスクの値と、テストケースに含まれるサブシステムプログラムの構成の複雑さを示す複雑度の値とを乗算し、該乗算値が高いものを優先順位が高いものとして各テストケース間での実施優先度を算出し記憶手段に格納する処理と、
テストケースの規模および複雑度の各データを所定の工数予測モデル式に適用して、各テストケースを実施するために必要な工数を算出し記憶手段に格納する処理と、
各テストケースの工数を記憶手段から読み出し、実施優先度が最も高いテストケースから順に前記工数に必要な人員リソースの割り当てを行ってテスト計画を生成し、記憶手段に格納する処理と、
テスト計画中でのプロジェクト内外の制約条件に応じて所定期限までに実施すべきテストケースの部分集合を定義したテストマイルストンのデータを、これが格納された記憶手段より読み出し、該テストマイルストンが規定するテストケース集合のテスト実施完了時期が前記所定期限を越える場合、前記制約条件のパターンに応じて予め定めた対応処理内容に従って、前記所定期限を達成するテストケースの実施順序を算出してテスト計画のデータを更新する処理と、
記憶手段からテスト計画のデータを読み出して出力装置にて表示する処理と、
を実行させることを特徴とするテスト計画作成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テスト計画作成方法、テスト計画作成装置、およびテスト計画作成プログラムに関するものであり、具体的には、ソフトウェアシステムの品質及び信頼性を向上させるためのテストの計画技術に関し、プロジェクト内外の制約のもとで効率的なテスト計画を作成可能とする技術に関する。
【背景技術】
【０００２】
近年のソフトウェアシステムの高機能化に伴い、実施すべきソフトウェアのテストケースも膨大な数となっている。不具合の発生する可能性が高いテストケースを優先的に計画するなどテストケースの実施順序に着目したテスト計画方法は、こうした現況に対応する有効な手段と言える。
【０００３】
ソフトウェアシステムのテスト計画技術としては、例えば、ソフトウェアシステムのプログラムモジュールごとの品質情報を設定するモジュール品質情報設定工程と、前記品質情報から前記プログラムモジュールの不具合検出工数を予測するモジュール不具合検出工数予測工程と、前記モジュールと前記ソフトウェアシステムの仕様書から抽出される仕様項目との対応関係を表すモジュール・仕様項目対応関係情報を設定するモジュール・仕様項目対応関係設定工程と、前記不具合検出工数と前記モジュール・仕様項目対応関係情報とから仕様項目不具合検出工数を予測する仕様項目不具合検出工数予測工程と、前記仕様項目不具合検出工数に基づいて、前記ソフトウェアシステムのテストに利用可能なテストリソースを配分するテスト計画を作成するテスト計画作成工程とを備えたことを特徴とするテスト計画作成支援方法（特許文献１参照）などが提案されている。
【０００４】
また、製品に不具合が出た場合の顧客に対する迷惑度を品質リスクと捉え、与えられたテスト期間の早い段階で品質リスクを逓減するテスト技術（非特許文献１参照）なども提案されている。このテスト技術においては、迷惑度を、「不具合が発生してしまった時の顧客への影響度」と「不具合の発生する確率」との積と定義し、品質リスクを「テストケースを実施しなかった場合に不具合が発生するリスク」と定義している。また、許容できる品質リスクの位置を品質目標とし、品質リスクの高いテストケースを優先的に計画することで、短期間で品質目標に到達することを可能としている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−２５６２０６号公報
【非特許文献】
【０００６】
【非特許文献１】「Ｒｉｓｋ  Ｂａｓｅｄ  Ｔｅｓｔｉｎｇの実践方法と適用事例からの考察〜短期間で要求品質を確保する〜」（石田他、ソフトウェアテストシンポジウム２００８東京予稿集）
【発明の概要】
【発明が解決しようとする課題】
【０００７】
一方、ソフトウェアシステムの高機能化に伴い、テストケースも複雑化してきている。そのため、テスト実施のために特殊な装置（例：実装先の機器等であり、テスト用に利用可能な期間が他者との関係で限定的なものなど）を使用する場合もある。また、製品出荷の時期等の関係から、部分的に顧客先で先行テストを実施する場合も多い。
【０００８】
こうした場合、特殊な装置が使用できる期間や、顧客側でのテスト計画が規定する各種期限等など、プロジェクト外部の制約を考慮したテスト計画を立案する必要がある。また、特殊な装置の使用できる期間や顧客先のテスト計画等に合わせて、所定期限までに実施しておくべきテストケースを実施完了し、品質を確保しておく必要もある。
【０００９】
しかしながら、現実問題として、テストケースを実施するための工数の制約などにより、計画どおりにテストケースを実施することが困難な場合も多い。そのため、顧客とのテスト期限延期の交渉など、制約軽減への対処も必要である。このように、プロジェクト内外の制約を見極めると共に、様々な制約のもとでプロジェクト外部への影響を最小限に抑え、かつ、効率的なテスト計画を立案することが求められる。
【００１０】
他方、このような観点を踏まえてその解決手法を示す従来技術は提案されていない。そこで、本発明の目的は、プロジェクト内外の制約のもとで効率的なテスト計画を作成可能とする技術を提供することにある。
【課題を解決するための手段】
【００１１】
上記課題を解決する本発明のテスト計画作成方法は、ソフトウェアシステムのテスト計画を作成するコンピュータ装置が、以下の処理を実行することを特徴とするものである。
【００１２】
すなわち、コンピュータ装置は、記憶手段にて予めデータを保持する各テストケースについて、テストケースに関する不具合発生確率である品質リスクの値と、テストケースに含まれるサブシステムプログラムの構成の複雑さを示す複雑度の値とを乗算し、該乗算値が高いものを優先順位が高いものとして各テストケース間での実施優先度を算出し記憶手段に格納する処理を実行する。
【００１３】
また、前記コンピュータ装置は、テストケースの規模および複雑度の各データを所定の工数予測モデル式に適用して、各テストケースを実施するために必要な工数を算出し記憶手段に格納する処理を実行する。
【００１４】
また、前記コンピュータ装置は、各テストケースの工数を記憶手段から読み出し、実施優先度が最も高いテストケースから順に前記工数に必要な人員リソースの割り当てを行ってテスト計画を生成し、記憶手段に格納する処理を実行する。
【００１５】
また、前記コンピュータ装置は、テスト計画中でのプロジェクト内外の制約条件に応じて所定期限までに実施すべきテストケースの部分集合を定義したテストマイルストンのデータを、これが格納された記憶手段より読み出し、該テストマイルストンが規定するテストケース集合のテスト実施完了時期が前記所定期限を越える場合、前記制約条件のパターンに応じて予め定めた対応処理内容に従って、前記所定期限を達成するテストケースの実施順序を算出してテスト計画のデータを更新する処理を実行する。
【００１６】
また、前記コンピュータ装置は、記憶手段からテスト計画のデータを読み出して出力装置にて表示する処理を実行する。
【００１７】
また、本発明のテスト計画作成装置は、ソフトウェアシステムのテスト計画を作成するコンピュータ装置であり、以下の各機能部を備えている。
【００１８】
すなわち、テスト計画作成装置は、記憶手段にて予めデータを保持する各テストケースについて、テストケースに関する不具合発生確率である品質リスクの値と、テストケースに含まれるサブシステムプログラムの構成の複雑さを示す複雑度の値とを乗算し、該乗算値が高いものを優先順位が高いものとして各テストケース間での実施優先度を算出し記憶手段に格納する、テストケース優先度算出部を備えている。
【００１９】
また、前記テスト計画作成装置は、テストケースの規模および複雑度の各データを所定の工数予測モデル式に適用して、各テストケースを実施するために必要な工数を算出し記憶手段に格納する、テスト工数算出部を備えている。
【００２０】
また、前記テスト計画作成装置は、各テストケースの工数を記憶手段から読み出し、実施優先度が最も高いテストケースから順に前記工数に必要な人員リソースの割り当てを行ってテスト計画を生成し、記憶手段に格納し、テスト計画中でのプロジェクト内外の制約条件に応じて所定期限までに実施すべきテストケースの部分集合を定義したテストマイルストンのデータを、これが格納された記憶手段より読み出し、該テストマイルストンが規定するテストケース集合のテスト実施完了時期が前記所定期限を越える場合、前記制約条件のパターンに応じて予め定めた対応処理内容に従って、前記所定期限を達成するテストケースの実施順序を算出してテスト計画のデータを更新する、テスト計画算出部を備えている。
【００２１】
また、前記テスト計画作成装置は、記憶手段からテスト計画のデータを読み出して出力装置にて表示する、テスト計画表示部を備えている。
【００２２】
また、本発明のテスト計画作成プログラムは、ソフトウェアシステムのテスト計画を作成するコンピュータ装置に、以下の処理を実行させるものとなる。
【００２３】
すなわち、前記テスト計画作成プログラムは、コンピュータ装置に、記憶手段にて予めデータを保持する各テストケースについて、テストケースに関する不具合発生確率である品質リスクの値と、テストケースに含まれるサブシステムプログラムの構成の複雑さを示す複雑度の値とを乗算し、該乗算値が高いものを優先順位が高いものとして各テストケース間での実施優先度を算出し記憶手段に格納する処理と、テストケースの規模および複雑度の各データを所定の工数予測モデル式に適用して、各テストケースを実施するために必要な工数を算出し記憶手段に格納する処理と、各テストケースの工数を記憶手段から読み出し、実施優先度が最も高いテストケースから順に前記工数に必要な人員リソースの割り当てを行ってテスト計画を生成し、記憶手段に格納する処理と、テスト計画中でのプロジェクト内外の制約条件に応じて所定期限までに実施すべきテストケースの部分集合を定義したテストマイルストンのデータを、これが格納された記憶手段より読み出し、該テストマイルストンが規定するテストケース集合のテスト実施完了時期が前記所定期限を越える場合、前記制約条件のパターンに応じて予め定めた対応処理内容に従って、前記所定期限を達成するテストケースの実施順序を算出してテスト計画のデータを更新する処理と、記憶手段からテスト計画のデータを読み出して出力装置にて表示する処理と、を実行させる。
【発明の効果】
【００２４】
本発明によれば、プロジェクト内外の制約のもとで効率的なテスト計画が作成可能となる。
【図面の簡単な説明】
【００２５】
【図１】本実施形態におけるテスト計画作成装置の構成例を示す図である。
【図２】本実施形態におけるサブシステム設計品質のデータ例を示す図である。
【図３】本実施形態におけるサブシステム品質実績のデータ例を示す図である。
【図４】本実施形態におけるテストケースのデータ例を示す図である。
【図５】本実施形態におけるサブシステムプログラムの構成例を示す図である。
【図６】本実施形態におけるサブシステム呼び出し関係の例を示す図である。
【図７】本実施形態におけるサブシステムプログラムの品質状況例を示す図である。
【図８】本実施形態におけるサブシステムプログラムの品質リスク計算例を示す図である。
【図９】本実施形態のテスト計画作成方法の処理フロー例１を示す図である。
【図１０】本実施形態におけるテスト実施工数実績のデータ例を示す図である。
【図１１】本実施形態におけるサブシステム呼び出し関係例を示す図である。
【図１２】本実施形態のテスト計画作成方法の処理フロー例２を示す図である。
【図１３】本実施形態のテスト計画作成方法の処理フロー例３を示す図である。
【図１４】本実施形態におけるテストマイルストンのデータ例を示す図である。
【図１５】本実施形態におけるテストケース構成例を示す図である。
【図１６】本実施形態におけるテストマイルストンの属性値パターンと対応内容との関係例を示す図である。
【図１７】本実施形態におけるテストマイルストン延期の概念例を示す図である。
【図１８】本実施形態におけるテストケース削除の概念例を示す図である。
【図１９】本実施形態における工数追加の概念例を示す図である。
【図２０】本実施形態のテスト計画作成方法の処理フロー例４を示す図である。
【図２１】本実施形態のテスト計画作成方法の処理フロー例５を示す図である。
【図２２】本実施形態のテスト計画作成方法の処理フロー例６を示す図である。
【図２３】本実施形態のテスト計画作成方法の処理フロー例７を示す図である。
【図２４】本実施形態のテスト計画作成方法の処理フロー例８を示す図である。
【図２５】本実施形態のテスト計画作成方法の処理フロー例９を示す図である。
【図２６】本実施形態における表示例１を示す図である。
【図２７】本実施形態における表示例２を示す図である。
【図２８】本実施形態における表示例３を示す図である。
【図２９】本実施形態における表示例４を示す図である。
【図３０】他実施形態におけるテスト計画作成装置の構成例を示す図である。
【図３１】他実施形態におけるテスト計画作成方法の処理フロー例を示す図である。
【発明を実施するための形態】
【００２６】
−−−装置構成の例−−−
以下に本発明の実施形態について図面を用いて詳細に説明する。図１は、本実施形態におけるテスト計画作成装置の構成例を示す図である。図１に示すテスト計画作成装置１０１（以下、処理装置１０１）は、プロジェクト内外の制約のもとで効率的なテスト計画を作成可能とするコンピュータシステムである。この処理装置１０１としては、サーバなどコンピュータを想定できる。従って当然ながら、処理装置１０１は、各種プログラムやデータ類を保持する不揮発性の記憶手段（ハードディスクドライブ等）、実行データやプログラム類の一時的な読み出し先となる揮発性のメモリ（ＲＡＭなど）、プログラムを記憶装置から読み出して実行するＣＰＵ、キーボードやマウスなどの入力装置やディスプレイなどの出力装置とのデータ入出力処理を担うインターフェイスを備えている。後述する各機能部１０２〜１０６らは記憶手段に格納された対応プログラムを処理装置１０１のＣＰＵが実行することで実現される機能部と言える。また、前記記憶手段には、サブシステム設計品質１０７、サブシステムプログラム１０８、テストケース１０９、テストマイルストン１１０、プログラム計画１１１、サブシステム品質実績１１２、テスト実施工数実績１１３の各データが格納されている（処理装置１０１がアクセス可能であれば、ネットワーク中の他装置など記憶手段の所在先は問わない）。
【００２７】
続いて、処理装置１０１が備える機能部について説明する。前記処理装置１０１は、処理装置自身が備える記憶手段ないしネットワークを介してアクセス可能な記憶手段にて予めデータを保持する各テストケースについて、テストケースに関する不具合発生確率である品質リスクの値と、テストケースに含まれるサブシステムプログラムの構成の複雑さを示す複雑度の値とを乗算し、該乗算値が高いものを優先順位が高いものとして各テストケース間での実施優先度を算出し記憶手段に格納するテストケース優先度算出部１０２を備える。
【００２８】
より具体的には、前記テストケース優先度算出部１０２は、テスト対象となるテストケース１０９を構成するサブテストプログラム１０８における設計段階の品質情報を記載したサブシステム設計品質１０７、及び、過去にテストされたサブシステムプログラム１０８における品質実績を格納したサブシステム品質実績１１２の各データを、これが格納された記憶手段から読み出し、前記サブシステム品質実績１０７が示すサブシステムの属性とサブシステムプログラム１０８の品質実績との相関について回帰分析を行って品質予測モデル式３０７を生成し、該品質予測モデル式３０７に前記サブシステム設計品質１０７が示すサブシステムの属性値を適用することで、該当サブシステムプログラム１０８の品質値を予測し、該当テストケースにおけるサブシステムプログラムの構成に応じて予め定めた算定式に前記サブシステムプログラム１０８の品質値を適用して品質リスクを算定し、該品質リスクの値と、テストケース１０９に含まれるサブシステムプログラム１０８の構成の複雑さを示す複雑度の値とを乗算し、該乗算値が高いものを優先順位が高いものとして各テストケース間での実施優先度を算出し記憶手段に格納する。
【００２９】
ここで、上述したテストケース優先度算出部１０２が利用するデータ類について説明しておく。図２は本実施形態におけるサブシステム設計品質１０７のデータ例を示す図である。サブシステム設計品質１０７は、開発対象のサブシステムプログラムを作成するための設計書に関する品質情報を記録したテーブルである。このテーブルにおいて、サブシステム設計書２０１は、サブシステム設計書の名称を記録する欄である。また、不具合密度２０２は、該当サブシステム設計書をレビューすることによって検出した不具合の数を、該当サブシステム設計書の規模単位あたりで正規化した値を記録する欄である。また、レビュー工数密度２０３は、レビューにかけた工数を、該当サブシステム設計書の規模単位あたりの値に正規化した値を記録する欄である。また、サブシステムプログラム２０４は、該当サブシステム設計書から作成されるサブシステムプログラムの名称を記録する欄である。また、前記サブシステム設計書２０１と前記サブシステムプログラム２０４の各欄の値により、サブシステム設計書とサブシステムプログラムとの間の対応関係を規定し、両者の間での追跡可能性を確保することができる。また、規模２０５は、サブシステムプログラムの規模を記録する欄である。
【００３０】
図３は本実施形態におけるサブシステム品質実績１１２のデータ例を示す図である。このサブシステム品質実績１１２は、サブシステム設計品質１０７に対し、サブシステムプログラムをテストした結果、不具合が発生したか否かの情報を記録したテーブルである。テーブルの構造としては、前記サブシステム設計品質１０７のテーブルに対し、サブシステムプログラム品質３０５を記録する欄、及び、品質予測モデル式３０７の欄を加えた構造となっている。
【００３１】
前記品質予測モデル式３０７は、サブシステム品質実績１１２に蓄積されたデータを統計処理することにより求められた、サブシステム設計品質と、サブシステムプログラム１０８との間の相関関係を示す式である。この式は、例えば、サブシステム品質実績１０７が示すサブシステムの属性（例：不具合密度、レビュー工数密度）とサブシステムプログラム１０８の品質実績との相関について回帰分析を行って得られる。サブシステム品質予測モデル式３０７は、サブシステム設計品質１０７の記録結果を随時反映させ、更新されるものである。
【００３２】
図４は本実施形態におけるテストケース１０９のデータ例を示す図である。テストケース１０９は、実施すべき個々のテストの情報を記録したテーブルである。このテーブルにおいて、テストケース４０１は、テストケースの名称が記述された欄である。また、サブシステム構成４０２は、該当テストケースで実施するサブシステムプログラム１０８の構成が記述された欄である。１つのテストケースでは、複数のサブシステムプログラム１０８が様々な順序で実施されるため、サブシステムプログラム間の呼び出し関係を定義する必要がある。そこで、前記サブシステム構成４０２の値としては、サブシステムプログラム間の呼び出し関係を定義するためのサブシステム呼び出し関係４０９のデータ（記憶手段に予め具備）を参照している。
【００３３】
図５に、あるテストケースにおけるサブシステムプログラム１０８の呼び出し関係の構造例５０１を、図６に、前記構造例５０１に対応したサブシステム呼び出し関係４０９の例を示す。呼び出し関係にある２つのサブシステムプログラムにおいて、呼び出されたサブシステムプログラムを親プログラムと定義することで、一連のテストケースの構成を表現することができる。図６に示すサブシステム呼び出し関係４０９のテーブルにおいて、テストケース６０１は、テストケース名称が記述された欄である。また、サブシステムプログラム６０２は、該当テストケースを構成する個々のサブシステムプログラムの名称が記述された欄である。また、親プログラム６０３は、該当サブシステムプログラムがどのサブシステムプログラムから呼び出されるか記述された欄である。このようにサブシステムプログラム間の呼び出し関係を定義することにより、図５のサブシステムプログラム１０８の呼び出し関係の構造例５０１に示すような、分岐を伴う構成も表現することが可能である。また、サブシステムプログラム品質６０５は、個々のサブシステムプログラム１０８を実行することにより、不具合が発生する確率が記述された欄である。このサブシステムプログラム品質６０５の値は、品質予測モデル式３０７を利用することで、一意に算出することができる。
【００３４】
ここで図４の説明に戻る。テストケース１０９において、複雑度４０３は、サブシステム呼び出し関係４０９で示されるテストケースでのサブシステムプログラム１０８の構成の複雑度を数値化した値が設定された欄である。一般に、プログラムの複雑度を評価する指標として「循環的複雑度」がある。この循環的複雑度は、図５に示したようなプログラムの呼び出し関係において線形的に独立した経路の数を算出したものである。この複雑度４０３の値としては、こうした一般的に利用されている循環的複雑度の手法等で得られる評価結果を適用する。
【００３５】
また、品質リスク４０４は、テストケースとして不具合が発生する確率が記述された欄である。品質リスク４０４は、各テストケースを構成するサブシステムプログラム１０８の構成、及び、各サブシステムプログラム１０８の不具合発生確率から算出することができる。例えば、テストケース優先度算出部１０２は、該当テストケースにおけるサブシステムプログラムの構成に応じて予め定めた算定式に前記サブシステムプログラム１０８の品質値を適用して品質リスクを算定する。
【００３６】
品質リスク算定の具体的な概念例を図７に示す。この図７に示されるようなサブシステムプログラム１０８の呼び出し関係７０１を持つテストケースが存在したとする。この呼び出し関係７０１において、各ボックスは、「：」の左側にサブシステムプログラム名を、右側にサブシステムプログラム品質の値を示している。
【００３７】
ここで、Ｐ（ｘ）をサブシステムプログラムｘで不具合が発生する確率とすると、品質リスクの値は、前記呼び出し関係７０１から、図８に示される式８０１のように求めることができる。ここで、「Ｐｒｏｇ−Ｂ」、「Ｐｒｏｇ−Ｃ」は、「Ｐｒｏｇ−Ａ」から分岐した構成であるが、このような場合は、「Ｐｒｏｇ−Ｂ、Ｐｒｏｇ−Ｃのいずれでも不具合が発生しない事象の余事象」として品質リスクを考えることができる。その結果、式８０１で示すように、サブシステムプログラム間が前記呼び出し関係７０１を持ったテストケースに関する品質リスクの値は、「０．６６４」と算出することができる。
【００３８】
また、図４のテストケース１０９において優先度４０５は、テストケース１０９に記録された各テストケース間での実施の優先度が記述される欄である。この優先度４０５の値は、複雑度４０３の値、及び、品質リスク４０３の値を掛け合わせた値を、値が大きい順にソートした結果となる。これは、複雑度４０３の値が高いサブシステムプログラム１０８ほど作成時に不具合が混入し易く、また、品質リスク４０３の値が高いほど不具合が発生し易いという考え方に基づいている。ここで、優先度４０５の値が小さいほどテストケースとして実施すべき優先度が高いことを示す。
【００３９】
また、工数４０６は、工数予測モデル式１００６（図１０参照）によって算出された、テストケースを実施するため必要な工数の予測値である。なお、担当４０７、及び、実施順序４０８は、テスト計画算出部１０４の処理により決定されるため、詳細は後に述べるものとする。
【００４０】
また、前記処理装置１０１は、テストケースの規模および複雑度の各データを所定の工数予測モデル式（図１０の式１００６）に適用して、各テストケースを実施するために必要な工数を算出し記憶手段に格納する、テスト工数算出部１０３を備えている。
【００４１】
なお、前記テスト工数算出部１０３は、テストテースの実施工数実績を、これが格納された記憶手段より読み出し、該実施工数実績が示すテストケースの規模および複雑度と実施工数との相関について回帰分析を行って工数予測モデル式（図１０の式１００６）を生成し、該工数予測モデル式に、テスト対象となるテストケースの規模および複雑度の各データを適用して、各テストケースを実施するために必要な工数を算出し記憶手段に格納する、としてもよい。
【００４２】
ここで、上記工数算出の処理に利用される、テスト実施工数実績１１３のデータについて説明しておく。図１０は本実施形態におけるテスト実施工数実績１１３のデータ例を示す図である。このテスト実施工数実績１１３のテーブルにおいて、テストケース１００１は、過去に実施したテストケース名を記録する欄である。また、サブシステム構成１００２は、前記テストケース１００１におけるサブシステムプログラム１０８の構成を示すものであり、サブシステムプログラム間の呼び出し関係についてはサブシステム呼び出し関係１００７に関連付けられている。図１１に例示するように、サブシステム呼び出し関係１００７の構成は、上述のサブシステム呼び出し関係４０９と同様の構成となる。
【００４３】
また、前記テスト実施工数実績１１３のテーブルにおいて、複雑度１００３は、前記テストケース１００１における複雑度を記録する欄である。また、規模１００４は、テストケースとしての規模を記述する欄であり、サブシステム構成１００２に関連付けられたサブシステム呼び出し関係１００７に記録されたサブシステムプログラム１０８の規模１１０４の総計値が記述される。また、実施工数１００５は、該当テストケース１００１の実施工数の実績値が記述される欄である。また、工数予測モデル式１００６は、テスト実施工数実績１１３に蓄積されたデータを統計処理することにより求められた、テストケースとテスト実施工数との相関関係を示す式であり、上述のように、品質予測モデル式３０７と同等の考え方で得られる式である。工数予測モデル式１００６は、テストケース１０９の実施結果を随時反映させ、更新されるものである。
【００４４】
また、前記処理装置１０１は、各テストケースの工数を記憶手段から読み出し、実施優先度が最も高いテストケースから順に前記工数に必要な人員リソースの割り当てを行ってテスト計画を生成し記憶手段に格納し、テスト計画中でのプロジェクト内外の制約条件に応じて所定期限までに実施すべきテストケースの部分集合を定義したテストマイルストンのデータを、これが格納された記憶手段より読み出し、該テストマイルストンが規定するテストケース集合のテスト実施完了時期が前記所定期限を越える場合、前記制約条件のパターンに応じて予め定めた対応処理内容に従って、前記所定期限を達成するテストケースの実施順序を算出してテスト計画のデータを更新する、テスト計画算出部１０４を備えている。
【００４５】
なお、前記処理装置１０１は、記憶手段において、前記テストマイルストンに関する制約条件として、当該テストマイルストンで実施すべきテストケースによって確保すべき品質状況の変更可否を定義する品質属性と、当該テストマイルストンの期限の変更可否を定義する期限属性と、当該テストマイルストンの実施期間における人員リソースの追加可否を定義する工数属性の各データを有しているとすれば好適である。
【００４６】
この場合、前記テスト計画算出部１０４は、テストマイルストンが規定するテストケース集合のテスト実施完了時期が前記所定期限を越える場合、前記テストマイルストンの品質属性、期限属性、及び、工数属性の各値が取りうるパターンに応じて予め定めた対応処理内容に従って、前記所定期限を達成するテストケースの実施順序を算出してテスト計画のデータを更新する、とする。
【００４７】
また、前記テスト計画算出部１０４は、テストマイルストンが規定するテストケース集合のテスト実施完了時期が前記所定期限を越える場合、前記テストマイルストンの品質属性、期限属性、及び、工数属性の各値が取りうるパターンに応じて予め定めた複数の対応処理内容に従って、前記所定期限を達成するテストケースの実施順序を複数算出してテスト計画のデータを複数生成して記憶手段に格納するとしてもよい。
【００４８】
また、前記処理装置１０１は、記憶手段からテスト計画のデータを読み出して出力装置にて表示する、テスト計画表示部１０５を備えている。このテスト計画表示部１０５は、複数のテスト計画のデータを記憶手段から読み出して出力装置にて表示するとしてもよい。
【００４９】
また、前記処理装置１０１は、前記テスト計画表示部１０５が出力装置に表示させたテスト計画に関して、ユーザからのテスト計画の可否や選定の指示を所定の入力装置を介して受け付けて、ユーザによる最終決定の指示を受けたテスト計画として記憶手段に格納するテスト計画情報入力部１０６を備えているとしてもよい。
【００５０】
なお、上述のテスト工数算出部１０３、テスト計画算出部１０４、テスト計画表示部１０５、テスト計画情報入力部１０６らの処理内容の詳細については後述の処理フロー例にて説明するものとする。
【００５１】
また、本実施形態の処理装置１０１が用いる各種データやテーブル類は、処理装置自身の備える、或いはネットワーク経由で利用可能なハードディスクドライブなどの不揮発性記憶手段において格納されている。
【００５２】
−−−処理フロー例１−−−
以下、本実施形態におけるテスト計画作成方法の実際手順について図に基づき説明する。以下で説明するテスト計画作成方法に対応する各種動作は、例えば、前記処理装置１０１のメモリ等に読み出して実行するプログラムによって実現される（勿論、必要な機能を実装した電子回路等によって実現してもよい）。そして、このプログラムは、以下に説明される各種の動作を行うためのコードから構成されている。
【００５３】
図９は本実施形態のテスト計画作成方法の処理フロー例１を示す図である。ここでは、テストケース優先度算出部１０２が実行する処理フローについて説明する。この場合、まず、前記テストケース優先度算出部１０２は、記憶手段のテストケース１０９から、（例えば名称の昇順などで。以下同様）テストケースを１つ選択する（ステップ９０１）。
【００５４】
また、テストケース優先度算出部１０２は、前記ステップ９０１で選択したテストケースに対応するサブシステム呼び出し関係４０９から、サブシステムプログラムを１つ選択する（ステップ９０２）。例えば、テストケース「Ｔ−Ｎ」に関して、サブシステムプログラム「Ｐｒｏｇ−１」が選択されるとする。
【００５５】
続いてテストケース優先度算出部１０２は、当該サブシステムプログラム「Ｐｒｏｇ−１」に対応するサブシステム設計書を、前記サブシステムプログラムの名称をキーに図２のサブシステム設計品質１０７のテーブル中で検索する（ステップ９０３）。図２のサブシステム設計品質１０７の例であれば、「Ｐｒｏｇ−１」のサブシステムプログラムに対応するサブシステム設計書は、「Ｄｏｃ−１」と検索できる。
【００５６】
また、テストケース優先度算出部１０２は、前記サブシステム設計品質１０７から当該サブシステム設計書「Ｄｏｃ−１」の不具合密度２０２、及び、レビュー工数密度２０３の各値を抽出する（ステップ９０４）。同じく図２の例であれば、不具合密度２０２は「０．７５」、レビュー工数密度２０３は「３０．５」と抽出できることになる。
【００５７】
次にテストケース優先度算出部１０２は、前記不具合密度、及び、レビュー工数密度の各値を、品質予測モデル式３０７に当てはめることにより、該当サブシステムプログラム（上記例では「Ｐｒｏｇ−１」）の品質予測値を算出し、これをサブシステム呼び出し関係４０９のテーブルにおけるサブシステムプログラム品質６０５の欄に記録する（ステップ９０５）。品質予測モデル式３０７の生成に関しては上述した通りである。
【００５８】
ここで、テストケース優先度算出部１０２は、該当テストケースに前記サブシステムプログラム以外のサブシステムプログラムが存在する場合（ステップ９０６：Ｙｅｓ）、前記ステップ９０２に戻り、作業を繰り返す。ここまでの処理により、前記テストケースに含まれる全サブシステムプログラム品質を求めることができた。
【００５９】
次に、テストケース優先度算出部１０２は、当該サブシステムプログラム品質、及び、当該テストケースのサブシステム呼び出し関係４０９の構成から、式８０１に示すような確率演算（上述した通り）を行い、当該テストケースの品質リスクを算出し、テストケース１０９のテーブルにおける品質リスク４０４の欄に記録する（ステップ９０７）。
【００６０】
また、テストケース優先度算出部１０２は、当該テストケースのサブシステム呼び出し関係４０９の構成に基づいて複雑度を算出し、テストケース１０９のテーブルにおける複雑度４０３の欄に記録する（ステップ９０８）。当該テストケース以外のテストケースがテストケース１０９のテーブル中に存在する場合は（ステップ９０９：Ｙｅｓ）、テストケース優先度算出部１０２は、ステップ９０１に処理を戻し、作業を繰り返す。
【００６１】
最後に、テストケース優先度算出部１０２は、前記テストケース１０９のテーブル中における各テストケースの複雑度４０３、品質リスク４０４の各値の乗算値に基づき、当該乗算値の大きい順にそのソートを行って順位付けを行い、当該順位をテストケースの優先度として優先度４０５の欄に記録する（ステップ９１０）。
【００６２】
−−−処理フロー例２−−−
次に、テスト工数算出部１０３の処理フローについて説明する。図１２は本実施形態のテスト計画作成方法の処理フロー例２を示す図である。この場合まず、テスト工数算出部１０３は、テストケース１０９のテーブルからテストケースを１つ選択する（ステップ１２０１）。
【００６３】
また、テスト工数算出部１０３は、前記ステップ１２０１で選択したテストケースに関連付けられたサブシステム呼び出し関係４０９の情報から、構成要素となる各サブシステムプログラム１０８の規模６０４の情報を取得し、それら規模６０４の値を合算して当該テストケースの規模を算出する（ステップ１２０２）。
【００６４】
続いてテスト工数算出部１０３は、前記テストケースの複雑度４０３の値を、前記テストケース１０９のテーブルより取得する（ステップ１２０３）。テスト工数算出部１０３は、当該テストケースの規模、及び、当該テストケースの複雑度の各値を前記工数予測モデル式１００６に当てはめ、該当テストケースの予測工数を算出し、テストケース１０９のテーブルにおける該当テストケースに関する工数４０６の欄に記録する（ステップ１２０４）。前記テストケース以外に工数４０６の値を求めるものがあれば（ステップ１２０５：Ｙｅｓ）、テスト工数算出部１０３は処理をステップ１２０１に戻し、作業を繰り返す。
【００６５】
−−−処理フロー例３−−−
続いて、テスト計画算出部１０４によるテスト計画算出の全体処理フローについて説明する。図１３は本実施形態のテスト計画作成方法の処理フロー例３を示す図である。この場合まず、テスト計画算出部１０４は、テストケース１０９のテーブルに記載の各テストケースのうち、実施順序４０８の値が未定、かつ、優先度４０５の値が最も高いものを選択する（ステップ１３０１）。
【００６６】
次に、テスト計画算出部１０４は、前記ステップ１３０１で選択した該当テストケースについて、その工数４０６の値を取得し（ステップ１３０２）、例えば実施期間が最小になるように、当該テストケースに対する、プロジェクト計画１１１に登録された担当者（人員リソース）の割り当てを行い、テストケース１０９における該当テストケースの担当４０７の欄に記録する（ステップ１３０３）。
【００６７】
また、テスト計画算出部１０４は、前記ステップ１３０３で担当者を割り当てたテストケースに関し、その実施順序を決定してテストケース１０９で該当件に対応する実施順序４０８の欄に記録する（ステップ１３０４）。実施順序の決定例としては、例えば、優先度４０５の値が小さいものから先に順序付けて行く手法などが想定できる。当該テストケース以外に実施順序４０８を求めるものがあれば（ステップ１３０５：Ｙｅｓ）、テスト計画算出部１０４はステップ１３０１に処理を戻し、作業を繰り返す。こうして各テストケースに関してその実施順序と担当者が決定されたデータ群はテスト計画の案となりうる。
【００６８】
なお、前記プロジェクト計画１１１は、特に図示しないが、テスト計画を行うべきソフトウェアシステム開発のプロジェクト毎に割り当てられた担当者と、この担当者が担当するテストケースの名称、実施期間といったデータが記述されたテーブルであり、前記記憶手段に予め保持されている。よって、前記テスト計画算出部１０４は、テストケースに対して担当者割当てを行う際、担当者の空き期間がテストケースの実施期間を含む者を、プロジェクト計画１１１のテーブル中より選択することになる。また、実施期間が最小になるように担当者を割り当てる場合、担当者の空き期間がテストケースの実施期間を含む者のうち、その空き期間が含む日付がテストケースの実施期間の開始日に最も近いものを選択することになる。
【００６９】
ところで、図１３にて示したテスト計画算出部１０４の処理フローは、テスト工程全体の期間を最小にすることを考慮して算出したものである。一方、テスト工程の期間中に、テスト実施のために特殊な装置が使用できる期間が顧客等から指定されていたり、顧客側の事情に応じて先行して納品する必要が生じた場合、これらの制約を考慮してテストケースを実施する必要がある。
【００７０】
そこで本実施形態においては、テストマイルストン１１０なる概念を新たに導入している。このテストマイルストン１１０は、テスト実施のための装置利用期間や、顧客への先行納品期限などの各種の制約状況を定義したものである。より具体的には、テスト計画中でのプロジェクト内外の制約条件に応じて所定期限までに実施すべきテストケースの部分集合を定義したデータとなる。
【００７１】
図１４は本実施形態におけるテストマイルストン１１０のデータ例を示す図である。この図で例示するテストマイルストンのテーブルにおいて、テストマイルストン１４０１は、該当テストマイルストンの名称を記録する欄である。また、テストケース１４０２は、該当テストマイルストンで実施すべきテストケースの集合を定義した欄であり、その実体はテストケース構成１４０７に定義される。図１５に示すテストケース構成１４０７において、テストマイルストン名称１５０１は対応するテストマイルストンの名称を記録する欄であり、これに続くテストケース一覧１５０２にて、対応するテストマイルストンで実施すべき全テストケースの名称を記録する欄である。
【００７２】
また、図１４に示すテーブルにおいて、期限１４０３は、該当テストマイルストンに与えられたテスト完了の期限である。また、品質属性１４０４は、テストマイルストンの属性の一つであり、品質目標の程度が変更可能か否かを定義するものである。ここで、品質目標とは、計画されたテストケースを全て実施し、かつ、当該テストケースでの不具合を摘出し対策済の状態を指す。品質目標を変更するとは、当該テストケースのうち、実施されないものがある状態を指す。
【００７３】
また図１４に示すテーブルにおいて、期限属性１４０５は、テストマイルストンの属性の一つであり、テストマイルストンの期限が変更可能か否かを定義するものである。また、工数属性１４０６は、テストマイルストンの属性の一つであり、テストマイルストンの期限を達成するために、プロジェクト計画１１１に記載の担当者に加え、他プロジェクトから新規に担当者の割り当てをしてもよいか否かを定義するものである。なお、割当て可能な新規担当者は、その空き期間＝テストケースの担当可能な期間が少なくともテストマイルストンの期限内であるものとする。
【００７４】
本実施形態の処理装置１０１では、テストマイルストンに含まれるテストケースの達成目標を最大限実現するため、品質属性１４０４、期限属性１４０５、工数属性１４０６の３つの属性値のパターン毎に、対応処理の内容を記憶手段やプログラムにて予め定義して保持するものとする。「対応処理の内容」については以下に示す。
【００７５】
図１６は本実施形態におけるテストマイルストンの属性値パターンと対応内容との関係例を示す図である。この図１６に示す各パターンは、処理装置１０１が、図２１〜２５に示すフロー実行時における条件分岐のパターンとなる。また、各パターンに応じた対応内容は前記処理装置１０１が前記条件分岐後に実行する処理内容となる（＝これら条件分岐やそれに応じた処理としてプログラムに記述されている）。或いは、この図１６に示すテーブルを処理装置１０１が所定の記憶装置に保持し、後述する図２１〜２５の処理実行時に参照して利用するとしてもよい。
【００７６】
図１６に示す対応関係の例では、テストマイルストンの３つの属性（品質、期限、工数）に加え、追加条件１６０１を定義している。これは、後に述べる対応（＝対応処理の内容）によって、他テストマイルストンの期限に影響を与えないように考慮したものである。図１６の例では、「対応」については９つ記載している。また、この対応の内容は４つのパターンから構成されている。１つめのパターンは、テストマイルストンの期限を延期するものである（１６０２）。２つめのパターンは、テストマイルストンに含まれるテストケースを削除するものである（１６０３）。３つめは、工数を追加することにより、テストマイルストンの品質、及び、期限を達成するものである（１６０４）。最後の４つめは、これら３つの対策では解決が困難であり、最大限目標を達成できる案としてテストマイルストンの期限を延長するもの、及び、テストケースを削除するものの双方を提示し、最終的な意思決定はプロジェクト管理者によって行われるもの（１６０５）である。
【００７７】
次に、上記の４つの対応処理のパターンに関して、概念を図示しながら説明する。図１７は本実施形態におけるテストマイルストン延期の概念例、図１８は本実施形態におけるテストケース削除の概念例、図１９は本実施形態における工数追加の概念例、をそれぞれ示す図である。図１７に示す例の場合、テストケース「Ｔ−３」、「Ｔ−４」がテストマイルストン期限「Ｍ１」を達成できていない。そこで、テストケース「Ｔ−４」の期限に合わせてテストマイルストン期限「Ｍ１」を延期する。
【００７８】
また図１８に示す例の場合、テストマイルストン期限「Ｍ１」を達成できていないテストケース「Ｔ−３」を削除することにより、テストマイルストン期限「Ｍ１」を達成している。また、図１９に示す例の場合、テストマイルストン期限「Ｍ１」を達成できていないテストケース「Ｔ−４」について、それまでの担当「Ａ」に替えて新規担当「Ｘ」を割り当てることにより、テストマイルストン期限「Ｍ１」を達成している。
【００７９】
−−−処理フロー例４−−−
続いて、テスト計画算出部１０４による、テストマイルストンが示す属性値の制約パターンへの対応を考慮したテスト計画作成の処理フローについて説明する。図２０は本実施形態のテスト計画作成方法の処理フロー例４を示す図である。
【００８０】
この場合、まず、テスト計画算出部１０４は、テストマイルストンのテーブル１１０からテストマイルストンを１つ選択する（ステップ２００１）。また、テスト計画算出部１０４は、当該テストマイルストンに対応するテストケース構成１４０７から、全テストケースの実施完了期限を算出し（２２０２）、当該テストマイルストンの期限１４０３と比較する（ステップ２００３）。前記ステップ２２０２における、全テストケースの実施完了期限の算出は、例えば、前記テストケース構成１４０７が示す各テストケースの名称をキーに、テストケースのテーブル１０９より該当テストケースを特定してその工数４０６、実施順序４０８の各値を抽出する。その上で、例えば、単位工数あたりの作業日数（予め決まっている規定値など）を各テストケースの工数４０６の値に乗じてテスト実施の必要日数を算定する。各テストケースの必要日数を、テストケースの実施順序毎に合算していけば（当然、テストケース間で実施期間が重複＝並行して実施される期間については除いておく）、全テストケースの実施完了期限を算出できる。
【００８１】
一方、前記ステップ２００３の比較処理において、全テストケースの実施完了期限が当該テストマイルストンの期限を超えていなければ（ステップ２００３：Ｙｅｓ）、テスト計画算出部１０４は、処理をステップ２００７に進める。
【００８２】
他方、全テストケースの実施完了期限が当該テストマイルストンの期限を超えていれば（ステップ２００３：Ｎｏ）、テスト計画算出部１０４は、例えば、当該テストマイルストンの期限にかかっているテストケースのうち、テストケース構成１４０７に含まれないテストケースを、当該テストマイルストンの期限後の順序に変更する（２００４）。当該テストケースの移動の後、テスト計画算出部１０４は、テストケース構成１４０７に含まれるテストケースを期限最小になるように再配置する（２００５）。再配置後のテストケース群の期限が当該テストマイルストンの期限を超えていなければ（ステップ２００６：Ｙｅｓ）、テスト計画算出部１０４は処理をステップ２００７に進め、一方、超えていれば（ステップ２００６：Ｎｏ）、処理フローＸに移る。ステップ２００７でテスト計画算出部１０４は、当該テストマイルストン以外に処理すべきテストマイルストンがあるか否かを判断する。他のテストマイルストンがあれば（ステップ２００７：Ｙｅｓ）、テスト計画算出部１０４は処理をステップ２００１に戻し、作業を繰り返す。
【００８３】
−−−処理フロー例５−−−
図２１は本実施形態のテスト計画作成方法の処理フロー例５を示す図である。この処理フロー例は、テスト計画算出部１０４において、テストマイルストンの属性値を評価し、対応内容を振り分ける処理フローＸであり、図１６に例示した制約パターンとその対応内容の関係を処理フローとして表現したものとなる。
【００８４】
この場合、上記処理フロー例４の前記ステップ２００１にて選択したテストマイルストンについて、その品質属性１４０４、期限属性１４０５、および工数属性１４０６を該当テストマイルストンのテーブルより取得する（ステップ２１０１）。
【００８５】
まず、テスト計画算出部１０４は、前記ステップ２１０１で得た各属性値について、品質属性＝「変更可」かつ期限属性＝「変更可」、に関する真偽を判定する（ステップ２１０２）。ここで、「真」と判定できれば（ステップ２１０２：Ｙｅｓ）、テスト計画算出部１０４は処理をステップ２１０３に進め、「偽」であれば（ステップ２１０２：Ｎｏ）、処理をステップ２１０４に進める。
【００８６】
ステップ２１０３において、テスト計画算出部１０４は、当該テストマイルストンの期限変更が、他のテストマイルストンの期限に影響があるかをチェックし、影響あれば（ステップ２１０３：Ｙｅｓ）、処理フローＢに進み、影響が無ければ（ステップ２１０３：Ｎｏ）、処理フローＡに進む。当該テストマイルストンの期限変更が、他のテストマイルストンの期限に影響があるかは、例えば、当該テストマイルストンのテストケースの担当者が期限変更に伴って担当期間も延長され、その結果、他のテストマイルストンのテストケースを担当予定でもあったが、それが困難をきたす場合などを、テストケースの実施期間と各担当者の割当期間とを照合して判定できる。
【００８７】
一方、ステップ２１０４において、テスト計画算出部１０４は、前記属性値について、品質属性＝「変更不可」かつ期限属性＝「変更可」、に関する真偽を判定する。ここで、「真」と判定されれば(ステップ２１０４：Ｙｅｓ)、テスト計画算出部１０４は処理をステップ２１０５に進め、「偽」であれば（ステップ２１０４：Ｎｏ）、処理をステップ２１０７に進める。
【００８８】
また、ステップ２１０５において、テスト計画算出部１０４は、当該テストマイルストンの期限変更が、他のテストマイルストンの期限に影響があるかをチェックし、影響がある場合（ステップ２１０５：Ｙｅｓ）、処理をステップ２１０６に進める。一方、影響が無ければ（ステップ２１０５：Ｎｏ）、処理フローＡに進める。
【００８９】
ステップ２１０６において、テスト計画算出部１０４は、前記属性値のうち工数属性をチェックし、その値が「工数追加可」であれば（ステップ２１０６：Ｙｅｓ）、処理フローＣに進む。他方、工数追加が「不可」であれば（ステップ２１０６：Ｎｏ）、処理フローＤに進む。
【００９０】
また、ステップ２１０７において、テスト計画算出部１０４は、前記属性値について、品質属性＝「変更可」かつ期限属性＝「変更不可」に関して、真偽を判断し、「真」であれば（ステップ２１０７：Ｙｅｓ）、処理をステップ２１０８に進める。一方、「偽」であれば（ステップ２１０７：Ｎｏ）、処理をステップ２１０９に進める。
【００９１】
また、ステップ２１０８において、テスト計画算出部１０４は、前記属性値のうち工数属性をチェックし、「工数追加可」であれば（ステップ２１０８：Ｙｅｓ）、処理フローＣに進み、「不可」であれば（ステップ２１０８：Ｎｏ）、処理フローＢに進む。
【００９２】
また、ステップ２１０９において、前記属性値の条件としては、品質属性＝「変更不可」かつ期限属性＝「変更不可」の状態となっている。ここでテスト計画算出部１０４は、前記属性値のうち工数属性をチェックし、「工数追加可」であれば（ステップ２１０９：Ｙｅｓ）、処理フローＣに進み、「不可」であれば（ステップ２１０９：Ｎｏ）、処理フローＤに進む。以下の処理フロー例で、上記処理フローＡ〜Ｄについて説明する。
【００９３】
−−−処理フロー例６−−−
図２２は本実施形態のテスト計画作成方法の処理フロー例６を示す図である。このフローは、テスト計画算出部１０４において、テストマイルストンの期限を延期する場合の処理フローＡである。ここでテスト計画算出部１０４は、前記処理フロー例１でのステップ２００１にて選択したテストマイルストンに関して、その期限として、当該テストマイルストンに含まれる全テストケース実施完了期限を設定し（ステップ２２０１）、その結果をテスト計画表示部１０５を介して出力装置に表示し（２２０２）、処理フローＹに移る。
【００９４】
−−−処理フロー例７−−−
図２３は本実施形態のテスト計画作成方法の処理フロー例７を示す図である。このフローは、テスト計画算出部１０４において、テストマイルストンに含まれるテストケースを削除する場合の処理フローＢである。この場合、まず、テスト計画算出部１０４は、前記処理フロー例１でのステップ２００１にて選択したテストマイルストンに関し、対応するテストケース構成１４０７から、最も優先度の低いテストケースを選択し削除する（ステップ２３０１）。
【００９５】
続いてテスト計画算出部１０４は、テストケース削除処理後の前記テストケース構成１４０７に含まれる全テストケースの実施完了期限を算出し（ステップ２３０２）、この実施完了期限を当該テストマイルストンの期限と比較する（ステップ２３０３）。前記実施完了期限が当該テストマイルストンの期限を超えていなければ（ステップ２３０３：Ｙｅｓ）、テスト計画算出部１０４はステップ２３０４に処理を進める。一方、実施完了期限がテストマイルストンの期限を超えている場合（ステップ２３０３：Ｎｏ）、テスト計画算出部１０４は、更にテストケースの削除を行うためステップ２３０１に処理を戻す。
【００９６】
また、ステップ２３０４において、テスト計画算出部１０４は、前記ステップ２３０１におけるテストケース削除によるテストケース１０９、及び、テストマイルストン１１０の影響範囲を更新（テスト実施に関する期限等、実施順序といったデータについて図１５、図４などの該当テーブルを更新）し、結果（例：図２６の上段にて削除前、下段にて「Ｔ−６」を削除した後の結果）をテスト計画表示部１０５を介して出力装置に表示し（ステップ２３０５）、処理フローＹに移る。
【００９７】
−−−処理フロー例８−−−
図２４は本実施形態のテスト計画作成方法の処理フロー例８を示す図である。このフローは、テスト計画算出部１０４において、工数の追加により、再テスト計画を実施する処理フローＣである。この場合、テスト計画算出部１０４は、前記処理フロー例１でのステップ２００１にて選択したテストマイルストンに関し、これに対応するテストケース構成１４０７から、担当者が再割り当てされていない中で最も優先度の高いテストケースを選択する（ステップ２４０１）。
【００９８】
また、テスト計画算出部１０４は、前記ステップ２４０１で選択した当該テストケースに関して工数４０６の値を取得する（ステップ２４０２）。また、例えば、前記プロジェクト計画１１１にて該当プロジェクトに関して割当てされている担当者に加え、他プロジェクトに関する担当者も含め、追加可能な担当者（＝割当てが無い空き期間がある担当者）について担当者を把握する（ステップ２４０３）。
【００９９】
テスト計画算出部１０４は、前記ステップ２４０１で選択したテストケースに、期限最小となるように担当者を割り当てる（ステップ２４０４）。期限最小になるよう担当者を割り当てる手法については処理フロー例３で既に述べている（他の処理フロー例でも同様）。また、テスト計画算出部１０４は、前記ステップ２４０４で担当者を割り当てた際のテストケースの期限が当該テストマイルストンの期限を超えるか判定し、テストケースの期限がテストマイルストンの期限を超えなければ（ステップ２４０５：Ｙｅｓ）、処理をステップ２４０６に進める。一方、テストケースの期限がテストマイルストンの期限を超えれば（ステップ２４０５：Ｎｏ）、テスト計画算出部１０４は、ステップ２４０１に処理を戻し、作業を繰り返す。
【０１００】
また、ステップ２４０６においてテスト計画算出部１０４は、前記ステップ２４０４における担当者割り当てによって生じるテストケース及びテストマイルストンの影響範囲を更新する（２４０６）。影響範囲の更新処理については、処理フロー例７に述べたものと同様である。また、テスト計画算出部１０４は、前記ステップ２４０６での処理結果を反映したテスト計画のデータをテスト計画表示部１０５を介して出力装置に表示し（ステップ２４０７）、処理フローＹに移る。
【０１０１】
−−−処理フロー例９−−−
図２５は本実施形態のテスト計画作成方法の処理フロー例９を示す図である。このフローは、テスト計画算出部１０４において、テストマイルストンの期限変更、または、テストケースの削除を実施する処理フローＤである。すなわち、この処理フローＤは、処理フローＡ、及び、処理フローＢの双方を組み合わせたものである。従って、この場合、テスト計画算出部１０４は、前記ステップ２２０１およびステップ２２０２を実施し（ステップ２５０１）、続いてステップ２３０１〜ステップ２３０５を実施（ステップ２５０２）した後、処理フローＹに移ることとなる。前記ステップ２２０１およびステップ２２０２、ステップ２３０１〜ステップ２３０５については、既に述べているのでここでは説明を省略する。
【０１０２】
−−−画面表示例−−−
図２６から図２９に、テスト計画表示部１０５によるテスト計画の表示例について示している。図２６は、テスト計画全体の結果表示例であり、この表示中において、領域２６０１は、テストマイルストンの属性値評価を実施する以前のテスト計画を示し、領域２６０２は、テストマイルストンの属性値評価の結果、その属性値パターンに応じた対応内容の結果を反映させたテスト計画を示している。テスト計画表示部１０５は、記憶手段から各テスト計画のデータとして、テストマイルストン１１０、当該テストマイルストン１１０が規定するテストケース１０９に関する各データを読み出し、所定の初期画面データに設定して前記領域２６０１、２６０２に対応した画面データを生成し、出力装置にて表示させる。以下、テスト計画表示部１０５が表示を行うデータについても、上記同様に該当データを記憶手段から抽出して、所定の初期画面データに設定して必要な画面データを生成するものとする。また、各テストマイルストンの属性値の状態によって複数の対応が発生しうるため、その対応の場合毎にテスト計画を表示することになる。
【０１０３】
図２６における領域２６０１では、テストマイルストン「Ｍ１」、テストマイルストン「Ｍ２」ともにその期限（領域内の時間軸上で△が指す期日）が達成できていないことを示している。テストマイルストン「Ｍ１」に関してはテストケース「Ｔ３」が、テストマイルストン「Ｍ２」に関してはテストケース「Ｔ６」が期限を越えてしまっている。
【０１０４】
一方、領域２６０２では、テスト計画算出部１０４の処理により、テストマイルストン「Ｍ１」の期限を延期するとともに、テストケース「Ｔ−６」を削除することにより、テストマイルストン「Ｍ２」の期限も達成できたことを示す。
【０１０５】
なお、テスト計画表示部１０５は、図２６で示したようなテスト計画全体のビューだけでなく、テストマイルストン毎のデータを記憶手段から抽出し、そのビューも表示することができる。こうしたビューの変更処理は、テスト計画情報入力部１０６が入力装置を介して受けたユーザの指示（テスト計画全体か、テストマイルストン毎かのビュー選択指示）に応じて、テスト計画表示部１０５が対応する。
【０１０６】
図２７に、テストマイルストン単位のテスト計画の表示例を示す。この表示中で領域２７０１は、テストマイルストンの属性値評価を実施する以前のテストマイルストンの状態（＝テストマイルストンに含まれるテストケース集合とテストマイルストンの期限との関係）を示すものとなる。領域２７０１の下段には、属性表示２７０２が配置され、当該テストマイルストンにおける品質属性、期限属性、工数属性の各値を表示する。また、期限表示２７０３においては、当該テストマイルストンの期限も表示する。
【０１０７】
一方、領域２７０４は、テスト計画算出部１０４によるテストマイルストンの属性値評価を実施した後の当該テストマイルストンの状態を表示するものとなる。テストマイルストンの属性値により複数の対応が可能な場合は、図に示すような、例えば各々の対応結果に対応したタブ２０７４ａ〜２０７４ｃをクリック可能に表示させ、ユーザ所望の対応結果を表示するとしてもよい。
【０１０８】
また、前記領域２７０４において、対応表示２７０５は、テスト計画算出部１０４の処理による、テストケースの削除、テストマイルストンの期限変更、工数の変更に関する各状態を表示する。また、詳細ボタン２７０６は、前記対応表示２７０５の各状態の詳細情報を別画面に表示するボタンとなる。図２８に、前記詳細ボタン２７０６のうち、「テストケース削除」に関する詳細ボタンが押下された場合に表示される、削除対象となったテストケースの詳細情報の表示例を示す。この場合、ビュー２８０１は、削除対象となったテストケースの情報を、記憶手段のテストケース１０９より抽出して表示するものとなる。また、表示ボタン２８０２は当該テストケースのサブシステム構成を別画面に表示するもので、図２９に別画面の構成例を示す。図２９の画面２９０１に示すように、テスト計画表示部１０５は、当該テストケースに対応するサブシステム呼び出し関係４０９を参照し、それをツリー図として表示することになる（既存のツリー図生成プログラム等を利用すればよい）。同様に、前記画面２９０１の表示ボタン２９０２が押下された場合、テスト計画表示部１０５は、対応するサブシステムプログラム１０８の詳細情報を画面表示する。この時、テスト計画表示部１０５は、当該サブシステムプログラム情報として、サブシステム設計品質１０７を参照して必要な情報を抽出し画面表示することとなる。
【０１０９】
一方、図２７の領域２７０４において、期限２７０７は、テスト計画算出部１０４によるテストマイルストンの属性値評価を実施した後の当該テストマイルストンの期限を表示する欄である。また、選択２７０８、キャンセル２７０９は、テスト計画算出部１０４の処理により提示された対応＝テストマイルストンの属性値評価を実施して特定した対応、を最終的にテスト計画に反映させるか否かユーザから指示を受けるインターフェイスである。ユーザ＝プロジェクト管理者は、テスト計画表示部１０５によって表示される様々なビューにより最終的な意思決定を行うことになる。ここでユーザが意思決定して選択した対応に応じたテスト計画については、テスト計画算出部１０４が記憶手段に格納する。
【０１１０】
−−−他の実施形態−−−
上述してきた実施形態では、主に、テスト計画を新規に立案する状況を想定している。しかしながら、テストが進行するにつれてプロジェクトには様々な課題が発生し、その対応に伴ってプロジェクト計画の変更も余儀なくされることがある。その場合、テスト計画にも影響が生じる場合がある。その影響を的確に捉えなければ、製品の品質、開発期限にも影響を与えかねない。そこで、次に示す実施形態では、プロジェクト計画の更新に応じて、テスト計画も変更するものである。  
図３０は他実施形態におけるテスト計画作成装置たる処理装置３００１の構成例を示す図である。この実施形態における処理装置３００１は、上記の実施形態での処理装置１０１とほぼ同様の構成を備えている。処理装置１０１との相違点は、プロジェクト計画監視部３００２を備える点である。このプロジェクト計画監視部３００２は、ソフトウェアシステムに関するプロジェクト計画１１１のデータ変更を検知し、テスト計画の為の各処理の少なくともいずれかを再実行してテスト計画を再生成するものとなる。
【０１１１】
図３１は他実施形態におけるテスト計画作成方法の処理フロー例を示す図である。このフローは、前記プロジェクト計画監視部３００２の処理フローである。この場合まず、プロジェクト計画監視部３００２は、記憶手段におけるプロジェクト計画１１１のデータ更新を監視し、データ更新を検知する。例えば、データ更新を検知するための一般的な監視用プログラムが記憶手段に配置してあるとする。この監視用プログラムはデータ更新を検知するとその旨をプロジェクト計画監視部３００２に通知する。
【０１１２】
こうしてプロジェクト計画１１１のデータ更新を検知した場合（ステップ３１０１）、プロジェクト計画監視部３００２は、テストケース１０９及びテストマイルストン１１０への影響箇所をチェックする（ステップ３１０２）。プロジェクト計画１１１の変更による、テストケース１０９やテストマイルストン１１０への影響箇所については、例えば、プロジェクト計画１１１におけるテストケースの担当者が他部署に転出することに伴って担当を外され、その結果、担当していたテストケースやそれを含むテストマイルストンの担当者が不在となる場合などを、テストケースの実施期間、各担当者の割当状況などを照合して判定できる。
【０１１３】
こうしてプロジェクト計画監視部３００２は、プロジェクト計画１１１の変更による影響箇所が存在するか否かを確認し（ステップ３１０３）、影響箇所が存在すれば（ステップ３１０３：Ｙｅｓ）、テスト計画算出部１０４を起動してテスト計画を再実施する（ステップ３１０４）。一方、プロジェクト計画監視部３００２は、前記影響箇所が存在しなければ（ステップ３１０３：Ｎｏ）、処理を終了する。
【０１１４】
以上、本発明を実施するための最良の形態などについて具体的に説明したが、本発明はこれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。
【０１１５】
こうした本実施形態によれば、テストマイルストンを設定して、期限内に実施すべきテストケースの集合を定義し、その制約パターンに応じて必要な対応を実行することとなる。その結果、テスト工程内で発生する個々のイベント（＝特殊機器の利用や客先の先行納品などの内外の制約となるイベントであり、テストマイルストンで規定可）に対する達成目標を考慮したテスト計画を立案することが可能となる。
【０１１６】
また、テストマイルストンの属性情報として品質、期限、及び、工数に関する制約を定義することが可能である。こうした属性情報のパターンに応じ、テスト計画に際しての対応策を用意することにより、プロジェクト内外で発生する制約を考慮したテスト計画を柔軟かつ効率的に立案することが可能となる。
【０１１７】
したがって、プロジェクト内外の制約のもとで効率的なテスト計画が作成可能となる。
【０１１８】
なお、本明細書の記載により、少なくとも次のことが明らかにされる。すなわち、テスト計画作成方法において、前記コンピュータ装置は、記憶手段において、前記テストマイルストンに関する制約条件として、当該テストマイルストンで実施すべきテストケースによって確保すべき品質状況の変更可否を定義する品質属性と、当該テストマイルストンの期限の変更可否を定義する期限属性と、当該テストマイルストンの実施期間における人員リソースの追加可否を定義する工数属性の各データを有し、テストマイルストンが規定するテストケース集合のテスト実施完了時期が前記所定期限を越える場合、前記テストマイルストンの品質属性、期限属性、及び、工数属性の各値が取りうるパターンに応じて予め定めた対応処理内容に従って、前記所定期限を達成するテストケースの実施順序を算出してテスト計画のデータを更新する、としてもよい。
【０１１９】
また、テスト計画作成方法において、前記コンピュータ装置は、テストマイルストンが規定するテストケース集合のテスト実施完了時期が前記所定期限を越える場合、前記テストマイルストンの品質属性、期限属性、及び、工数属性の各値が取りうるパターンに応じて予め定めた複数の対応処理内容に従って、前記所定期限を達成するテストケースの実施順序を複数算出してテスト計画のデータを複数生成して記憶手段に格納するとしてもよい。
【０１２０】
また、テスト計画作成方法において、前記コンピュータ装置は、複数のテスト計画のデータを記憶手段から読み出して出力装置にて表示するとしてもよい。
【０１２１】
また、テスト計画作成方法において、前記コンピュータ装置は、テスト対象となるテストケースを構成するサブテストプログラムにおける設計段階の品質情報を記載したサブシステム設計品質、及び、過去にテストされたサブシステムプログラムにおける品質実績を格納したサブシステム品質実績の各データを、これが格納された記憶手段から読み出し、前記サブシステム品質実績が示すサブシステムの属性とサブシステムプログラムの品質実績との相関について回帰分析を行って品質予測モデル式を生成し、該品質予測モデル式に前記サブシステム設計品質が示すサブシステムの属性値を適用することで、該当サブシステムプログラムの品質値を予測し、該当テストケースにおけるサブシステムプログラムの構成に応じて予め定めた算定式に前記サブシステムプログラムの品質値を適用して品質リスクを算定し、該品質リスクの値と、テストケースに含まれるサブシステムプログラムの構成の複雑さを示す複雑度の値とを乗算し、該乗算値が高いものを優先順位が高いものとして各テストケース間での実施優先度を算出し記憶手段に格納する、としてもよい。
【０１２２】
また、テスト計画作成方法において、前記コンピュータ装置は、テストテースの実施工数実績を、これが格納された記憶手段より読み出し、該実施工数実績が示すテストケースの規模および複雑度と実施工数との相関について回帰分析を行って工数予測モデル式を生成し、該工数予測モデル式に、テスト対象となるテストケースの規模および複雑度の各データを適用して、各テストケースを実施するために必要な工数を算出し記憶手段に格納する、としてもよい。
【０１２３】
また、テスト計画作成方法において、前記コンピュータ装置は、ソフトウェアシステムに関するプロジェクト計画のデータを記憶手段に格納しており、該記憶手段でのプロジェクト計画の変更を検知し、前記各処理の少なくともいずれかを再実行してテスト計画を再生成するとしてもよい。
【符号の説明】
【０１２４】
１０１  処理装置（テスト計画作成装置）
１０２  テストケース優先度算出部
１０３  テスト工数算出部
１０４  テスト計画算出部
１０５  テスト計画表示部
１０６  テスト計画情報入力部
１０７  サブシステム設計品質
１０８  サブシステムプログラム
１０９  テストケース
１１０  テストマイルストン
１１１  プロジェクト計画
１１２  サブシステム品質実績
１１３  テスト実施工数実績
【図１】
2011257947.tif 000003
【図２】
2011257947.tif 000004
【図３】
2011257947.tif 000005
【図４】
2011257947.tif 000006
【図５】
2011257947.tif 000007
【図６】
2011257947.tif 000008
【図７】
2011257947.tif 000009
【図８】
2011257947.tif 000010
【図９】
2011257947.tif 000011
【図１０】
2011257947.tif 000012
【図１１】
2011257947.tif 000013
【図１２】
2011257947.tif 000014
【図１３】
2011257947.tif 000015
【図１４】
2011257947.tif 000016
【図１５】
2011257947.tif 000017
【図１６】
2011257947.tif 000018
【図１７】
2011257947.tif 000019
【図１８】
2011257947.tif 000020
【図２０】
2011257947.tif 000021
【図２１】
2011257947.tif 000022
【図２２】
2011257947.tif 000023
【図２３】
2011257947.tif 000024
【図２４】
2011257947.tif 000025
【図２５】
2011257947.tif 000026
【図２７】
2011257947.tif 000027
【図２８】
2011257947.tif 000028
【図２９】
2011257947.tif 000029
【図３０】
2011257947.tif 000030
【図３１】
2011257947.tif 000031
【図１９】
2011257947.tif 000032
【図２６】
2011257947.tif 000033