(57)【要約】【課題】不具合管理ツール内の不具合情報同士、または不具合情報と他のツールが持つ情報を関連付ける際、あるいは、要求管理ツール内の要求仕様同士、または要求仕様と他のツールが持つ情報を関連付ける際に、関連付けの候補を自動で絞り込み、検索作業の負担を軽減する成果物の関連候補生成装置を提供する。【解決手段】不具合管理ツールにおける成果物である不具合、構成管理ツールにおける成果物であるリビジョン、テスト管理ツールにおける成果物であるテスト項目について、テスト管理ツール、構成管理ツール、不具合管理ツールから、成果物毎にテスト結果を含む所定の管理ツールデータを入力し、不具合に関連するテスト結果が、失敗から成功または成功から失敗に変化するまでの期間を抽出する期間抽出部と、期間抽出部による抽出期間における成果物間の属性変化の関係を利用し、不具合と不具合に関係のある他の成果物との関連付けにおける関連候補の絞り込みを行う絞り込み処理部とを備える成果物の関連候補生成装置。【選択図】図１
2015069615.tif 000002
【特許請求の範囲】
【請求項１】
不具合管理ツールにおける成果物である不具合、構成管理ツールにおける成果物であるリビジョン、テスト管理ツールにおける成果物であるテスト項目について、前記テスト管理ツール、前記構成管理ツール、前記不具合管理ツールから、前記成果物毎にテスト結果を含む所定の管理ツールデータを入力し、
前記不具合に関連する前記テスト結果が、失敗から成功または成功から失敗に変化するまでの期間を抽出する期間抽出部と、
前記期間抽出部による抽出期間における前記成果物間の属性変化の関係を利用し、前記不具合と前記不具合に関係のある他の前記成果物との関連付けにおける関連候補の絞り込みを行う絞り込み処理部とを備える成果物の関連候補生成装置。
【請求項２】
前記属性変化の関係は、
前記テスト結果と前記リビジョンの関係を使用した絞り込みのパターン１と、
前記テスト結果と前記不具合の関係を使用した絞り込みのパターン２と、
前記テスト結果同士の関係を使用した絞り込みのパターン３のいずれかである請求項１記載の成果物の関連候補生成装置。
【請求項３】
前記不具合の修正担当者、前記不具合の登録者、前記リビジョンのコミット者の人に関する属性値も組み合わせて絞り込む請求項１記載の成果物の関連候補生成装置。
【請求項４】
関連付ける前記成果物の組み合わせが、前記不具合と前記リビジョンであって、前記パターン１により、前記不具合を修正した前記リビジョンを抽出する請求項２記載の成果物の関連候補生成装置。
【請求項５】
関連付ける前記成果物の組み合わせが、前記不具合と前記リビジョンであって、前記パターン１により、前記不具合を発生させた前記リビジョンを抽出する請求項２記載の成果物の関連候補生成装置。
【請求項６】
関連付ける前記成果物の組み合わせが、前記不具合と前記テスト項目であって、前記パターン２により、前記不具合を発見した前記テスト項目を抽出する請求項２記載の成果物の関連候補生成装置。
【請求項７】
関連付ける前記成果物の組み合わせが、前記不具合同士であって、前記パターン３により、前記不具合と原因が同じ別の前記不具合を抽出する請求項２記載の成果物の関連候補生成装置。
【請求項８】
構成管理ツールにおける成果物であるリビジョン、テスト管理ツールにおける成果物であるテスト項目、要求管理ツールにおける成果物である要求仕様について、前記テスト管理ツール、前記構成管理ツール、前記要求管理ツールから、前記成果物毎にテスト結果を含む所定の管理ツールデータを入力し、
前記不具合に関連する前記テスト結果が、失敗から成功または成功から失敗に変化するまでの期間を抽出する期間抽出部と、
前記期間抽出部による抽出期間における前記成果物間の属性変化の関係を利用し、前記要求仕様と前記要求仕様に関係のある他の前記成果物との関連付けにおける関連候補の絞り込みを行う絞り込み処理部とを備える成果物の関連候補生成装置。
【請求項９】
前記属性変化の関係は、
前記テスト結果と前記リビジョンの関係を使用した絞り込みのパターン１と、
前記テスト結果と前記不具合の関係を使用した絞り込みのパターン２と、
前記テスト結果同士の関係を使用した絞り込みのパターン３のいずれかである請求項８記載の成果物の関連候補生成装置。
【請求項１０】
関連付ける前記成果物の組み合わせが、前記要求仕様同士であって、前記パターン３により、共通モジュールを持つ前記要求仕様を抽出する請求項９記載の成果物の関連候補生成装置。
【請求項１１】
関連付ける前記成果物の組み合わせが、前記要求仕様とリビジョンであって、前記パターン１により、前記要求仕様を実装した前記リビジョンを抽出する請求項９記載の成果物の関連候補生成装置。
【請求項１２】
関連付ける前記成果物の組み合わせが、前記要求仕様と前記テスト項目であって、前記パターン１により、前記要求仕様の実現を確認した前記テスト項目を抽出する請求項９記載の成果物の関連候補生成装置。
【請求項１３】
絞り込まれた前記関連候補のデータを表示する表示部を備える請求項１乃至請求項１２のいずれか１項に記載の成果物の関連候補生成装置。
【請求項１４】
前記成果物毎に前記管理ツールデータを入力する入力部と、
入力した前記管理ツールデータ、前記抽出期間のデータを保持するメモリとを備える請求項１乃至請求項１３のいずれか１項に記載の成果物の関連候補生成装置。
【請求項１５】
前記テスト開始前の前記リビジョンについては、前記テスト結果を失敗と見做す処理を行った後に、抽出処理を行う請求項１１又は請求項１２記載の成果物の関連候補生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、成果物の関連候補生成装置に関する。
【背景技術】
【０００２】
近年、ソフトウェアの開発においては不具合（バグ）の修正が重要な作業となっている。不具合を漏らさず修正し、再発を防ぐには、不具合の発見日時や発見者、再現方法、修正担当者、修正履歴、修正方法、重要度、テスト状況などの多くの情報を残し管理する必要がある。
【０００３】
開発管理ツールの普及に伴い、成果物情報を1つのツールだけで独立に管理するのではなく、他のツールが持つ成果物と関連付けることで、ツール同士を連携させる取り組みが活発になってきている。
【０００４】
不具合を管理するツールの不具合情報と、関係のある他の成果物との関連付けは、手作業で行うのが一般的だが、該当成果物を検索・特定する作業に手間が掛かるという問題がある。
【０００５】
要求を管理するツールの要求仕様と、関係のある他の成果物との関連付けは、手作業で行うのが一般的だが、該当成果物を検索・特定する作業に手間が掛かるという問題がある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１１−２５３３４５号公報
【特許文献２】特開２００９−３７２９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明が解決しようとする課題は、不具合管理ツール内の不具合情報同士、または不具合情報と他のツールが持つ情報を関連付ける際、あるいは、要求管理ツール内の要求仕様同士、または要求仕様と他のツールが持つ情報を関連付ける際に、関連付けの候補を自動で絞り込み、検索作業の負担を軽減する成果物の関連候補生成装置を提供することである。
【課題を解決するための手段】
【０００８】
実施形態に係る成果物の関連候補生成装置は、不具合管理ツールにおける成果物である不具合、構成管理ツールにおける成果物であるリビジョン、テスト管理ツールにおける成果物であるテスト項目について、前記テスト管理ツール、前記構成管理ツール、前記不具合管理ツールから、前記成果物毎にテスト結果を含む所定の管理ツールデータを入力し、前記不具合に関連する前記テスト結果が、失敗から成功または成功から失敗に変化するまでの期間を抽出する期間抽出部と、前記期間抽出部による抽出期間における前記成果物間の属性変化の関係を利用し、前記不具合と前記不具合に関係のある他の前記成果物との関連付けにおける関連候補の絞り込みを行う絞り込み処理部とを備える。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施形態に係る成果物の関連候補生成装置の概略構成を示すブロック図である。
【図２】成果物間の属性変化のパターンを説明する図である。
【図３】本実施形態における成果物間の関連付けの組み合わせを一覧にした表である。
【図４】管理ツール毎に使用するデータを定義してまとめた表である。
【図５】テスト管理ツール、不具合管理ツール、構成管理ツールから取得するデータの一例を示す表である。
【図６】実施例１における抽出データの一例を示す図である。
【図７】不具合がどのリビジョンで修正されたかの関連付け処理の流れを示すフローチャートである。
【図８】不具合がどのリビジョンで埋め込まれたかの関連付けにおける抽出データの一例を示す図である。
【図９】不具合がどのリビジョンで埋め込まれたかの関連付け処理の流れを示すフローチャートである。
【図１０】実施例２における抽出データの一例を示す図である。
【図１１】不具合が生じたテスト内容や発生条件の関連付け処理の流れを示すフローチャートである。
【図１２】実施例３における抽出データの一例を示す図である。
【図１３】不具合と不具合の関連付け処理の流れを示すフローチャートである。
【図１４】テスト結果の見做しを説明する図である。
【図１５】実施例４における抽出データの一例を示す図である。
【図１６】要求仕様とリビジョンの関連付け処理の流れを示すフローチャートである。
【図１７】実施例５における抽出データの一例を示す図である。
【図１８】要求仕様とテスト項目の関連付け処理の流れを示すフローチャートである。
【図１９】実施例６における抽出データの一例を示す図である。
【図２０】要求仕様と要求仕様の関連付け処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下、本発明の一実施の形態について、図面を参照して説明する。尚、各図において同一箇所については同一の符号を付すとともに、重複した説明は省略する。
【００１１】
まず、本実施形態で用いる主要な用語について説明する。
【００１２】
「テスト管理ツール」とは、ソースコードの良否をチェックするテスト項目（以下、単にテストＡ、テストＢ、・・・のように称する場合もある）や、テストの実行結果（成功あるいは失敗）を管理するものである。
【００１３】
「不具合管理ツール」とは、ソースコードの不具合を登録し、修正状況を追跡して管理するものである。一般的には、不具合の報告、担当者の決定、不具合の修正、修正の確認、修正の完了を管理する。
【００１４】
「構成管理ツール」とは、構成管理対象であるソースコードのバージョン管理ツールで、誰がどのように変更したかを管理するものである。版管理ツールとも呼ばれる。
【００１５】
「要求管理ツール」とは、システム構築におけるユーザからの要求仕様をデータベースで管理するためのツールである。
【００１６】
本実施形態では、不具合管理ツールにおける“不具合”、構成管理ツールにおける“リビジョン”、テスト管理ツールにおける“テスト項目”、要求管理ツールにおける“要求仕様”が「成果物」に該当する。
【００１７】
本実施形態においては、テスト管理ツールが持つテスト結果が×→○、または○→×に変化するまでの期間に行われる、成果物間の属性変化をパターン分けし、成果物間の関連付けを利用した絞り込みを行う。
【００１８】
図１は、本発明の実施形態に係る成果物の関連候補生成装置の概略構成を示すブロック図である。この装置は汎用のコンピュータ（例えばパーソナルコンピュータ（ＰＣ）等）と、同コンピュータ上で動作するソフトウェアとを用いて実現される。コンピュータとしては、ＣＡＤ（Computer Aided Design）やＣＡＥ（Computer Aided Engineering）に好適なエンジニアリングワークステーション（ＥＷＳ）等も含む。本実施形態はこのようなコンピュータに、成果物間の関連候補の絞り込みに係る一連の手続きを実行させるプログラムとして実施することもできる。
【００１９】
図１に示すように、本実施形態に係る成果物の関連候補生成装置１００は、主として、入力部１１、期間抽出部１２、絞り込み処理部１３、表示部１４から構成されている。
【００２０】
入力部１１は、テスト管理ツール、構成管理ツール、要求管理ツール、不具合管理ツールから、管理ツールデータを入力する。詳述すると、不具合管理ツール内の不具合情報同士、または不具合情報と他のツールが持つ情報（成果物）を関連付ける際には、不具合管理ツールからの管理ツールデータを入力し、要求管理ツール内の要求仕様同士、または要求仕様と他のツールが持つ情報（成果物）を関連付ける際には、要求管理ツールからの管理ツールデータを入力する。それぞれの管理データの詳細は後述する。テスト管理ツール、要求管理ツール、不具合管理ツールから入力した管理ツールデータは、期間抽出部１２によって参照される。構成管理ツールから入力した管理ツールデータは、絞り込み処理部１３によって参照される。尚、入力部１１で入力した管理ツールデータは、一旦、メモリ（図示しない）に保持してもよい。
【００２１】
期間抽出部１２は、テスト管理ツールが持つテスト結果が×→○、または○→×に変化するまでの“期間”を抽出する。ここで、×はテストがうまくいかなかった“失敗”を表している。○はテストがうまくいった“成功”を表している。“期間”は、例えば、“ｘｘ日間”で表す。期間抽出の詳細は、後述する。
【００２２】
抽出した期間のデータは、一旦、メモリ（図示しない）に保持してもよい。抽出した期間のデータは、絞り込み処理部１３によって参照される。
【００２３】
絞り込み処理部１３は、成果物間の属性変化の関係を利用し、関連候補の絞り込みを行う。本実施形態では、成果物間の属性変化について、３パターン（詳細は、後述する）を適用している。特に、不具合情報を成果物として紐付ける場合には、人に関する属性値（例えば、誰が不具合の修正担当者か、誰が不具合の登録者か、誰がコミット者か等）を組み合わせて絞り込む。いずれの成果物間の属性変化を使用して関連候補の絞り込みを行うかは、関連付ける成果物の組み合わせによって定められる。関連付ける成果物の組み合わせは、後述する。
【００２４】
絞り込まれた関連候補のデータは、表示部１４に送られ、ユーザは、絞り込まれた成果物の関連候補を目視により確認することができる。
【００２５】
次に、以上のように構成された成果物の関連候補生成装置１００における成果物の関連候補の生成処理について説明する。
【００２６】
＜成果物の属性変化＞
本実施形態では、関連付ける成果物の組み合わせに応じ、成果物間の属性変化について３パターンのいずれかを適用して、成果物の関連候補を抽出する。図２は、成果物間の属性変化のパターンを説明する図である。図２（ａ）はパターン１、図２（ｂ）はパターン２、図２（ｃ）はパターン３を示している。
【００２７】
パターン１：
これは、「テスト結果とリビジョンの関係」を使用した絞り込みのパターンである。テストを行った結果、不具合がある場合には、ソースコードの修正が行われる。ソースコードの修正がなされた場合には、修正内容を構成管理ツールに反映させるためにコミットコマンドが使用され、構成管理ツールにおいてリビジョンのカウントアップが行われる。
【００２８】
パターン１では、テスト結果が×→○、又は○→×の期間には、必ず1回以上、コミットがあることに着目するものである。
【００２９】
パターン１によれば、不具合とリビジョンとを関連付け、両者間の関連候補を絞り込み、“不具合を修正したリビジョン”や“不具合を発生させたリビジョン”を抽出することができる。
【００３０】
また、特に、テスト結果の×→○の関係を利用して、要求仕様とリビジョンとを関連付けて両者間の関連候補を絞り込み、“要求仕様を実装したリビジョン” を抽出し、要求仕様とテストとを関連付けて両者間の関連候補を絞り込み、“要求仕様の実現を確認したテスト”を抽出することができる。
【００３１】
パターン２：
これは、「テスト結果と不具合の関係」を使用した絞り込みのパターンである。
【００３２】
テスト結果に不具合がある場合には、不具合があることが新規に登録され、ソースコードの修正が行われると、当該不具合は修正済となったことが登録される。
【００３３】
パターン２では、テスト結果が×→○の期間には、不具合に関して“新規”と“修正済”の属性変化があることに着目するものである。
【００３４】
パターン２によれば、テスト結果と不具合とを関連付けて両者間の関連候補を絞り込み、“不具合を発見したテスト”を抽出することができる。
【００３５】
パターン３：
これは、「テスト結果同士の関係」を使用した絞り込みのパターンである。
【００３６】
パターン３では、同じ原因の不具合１、２に対応するテストA、Bは、同時期に×→○と変化することに着目するものである。例えば、同日にテストA、Bが行われた場合には、同日に×→○と変化する。
【００３７】
パターン３によれば、テスト結果同士を関連付けて両者間の関連候補を絞り込み、“不具合１と原因が同じ不具合２”を抽出することができる。
【００３８】
また、「テスト結果同士の関係」を使用し、関連する要求仕様A、Bに対応するテストA、Bは、同時期に×→○と変化することにも着目することができる。このようなパターン３によれば、テスト結果同士を関連付けて両者間の関連候補を絞り込み、“共通モジュールを持つ要求仕様”を抽出することができる。
【００３９】
＜関連付ける成果物の組み合わせ＞
図３は、本実施形態における成果物間の関連付けの組み合わせを一覧にした表である。
【００４０】
本実施形態では、“不具合”と“リビジョン”、“不具合”と“テスト項目”、“不具合”と“不具合”、“要求仕様”と“リビジョン”、“要求仕様”と“テスト項目”、“要求仕様”と“要求仕様”を関連付ける成果物の組み合わせとしている。図３に示すように、関連付ける成果物の組み合わせに対して、各成果物について使用する属性変化、人に関する属性値との関連、絞り込み条件、発見する関連候補が、対応付けられる。それぞれの詳細は、後述の実施例にて説明する。
【００４１】
＜管理ツールのデータ＞
本実施形態では、各管理ツールが取り扱う様々なデータのうち、成果物の関連候補の絞り込みに必要なデータを利用する。
【００４２】
図４は、管理ツール毎に使用するデータを定義してまとめた表である。尚、データの名称は一例であって、これらに限定されるものではない。図４に示すように、テスト管理ツールでは、テスト項目毎のテスト結果データとして、成功○、失敗×などのテスト結果を表す“テスト結果”、テスト実施を担当したユーザを表す“テスト担当者”、テスト結果を登録した日時を表す“テスト報告日”を保持する。
【００４３】
不具合管理ツールでは、不具合項目毎のデータとして、不具合を登録したユーザを表す“登録者”、不具合を登録した日を表す“登録日”、不具合の修正を担当するユーザを表す“修正担当者”、新規、進行中、修正済、完了などのステータスを表す“ステータス”、不具合が持つデータ（ステータス等）を変更した日時を表す“変更履歴”、不具合が発見されたテスト項目、及びテスト結果を表す“関連テスト結果”、不具合を埋め込んだリビジョン又は不具合を修正したリビジョンを表す“関連リビジョン”を保持する。
【００４４】
構成管理ツールでは、リビジョン毎のデータとして、管理対象の状態を変更したユーザを表す“コミット者”、管理対象の状態を変更した日時を表す“コミット日”を保持する。
【００４５】
要求管理ツールでは、要求仕様項目毎のデータとして、要求仕様の実現を確認する為のテスト項目を表す“関連テスト”、要求仕様を実現したリビジョンを表す“関連リビジョン”を保持する。
【００４６】
本実施形態では、従来、関連が抜けている不具合管理ツール及び要求管理ツールにおける“関連テスト”、“関連リビジョン”の各データについて候補となるものを検索する。
【００４７】
以上のように構成された成果物の関連候補生成装置で、関連候補を抽出する実施例について説明する。
【００４８】
＜実施例１＞
実施例１は、不具合とリビジョンを関連付けるものである。不具合とリビジョンの関連付けは、
(1)  不具合がどのリビジョンで修正されたか知る為、関連付けておきたい場合
例えば、リリースノートを作成する場合など
(2)  不具合がどのリビジョンで埋め込まれたかを知る為、関連付けておきたい場合
例えば、不具合修正者がその原因を特定する場合など
に行われる。実施例１は、「テスト結果とリビジョンの関係」を使用して絞り込むパターン１を利用する。
【００４９】
ここでは、紐付け元となる不具合は、対応するテスト結果と関連付いており、
(1) の場合は、対応するテスト結果は×→○に変化していること（テスト結果が×→×の場合、不具合修正のコミットがされていないと判断する）
(2) の場合は、対応するテスト結果は○→×に変化していること
を前提条件とする。
【００５０】
＜不具合がどのリビジョンで修正されたかの関連付け＞
まず、(1)不具合がどのリビジョンで修正されたかの関連付けについて説明する。ここでの候補の絞り込み条件は、以下の（ａ）〜（ｃ）である。
【００５１】
（ａ）リビジョンは、不具合登録日から、対応するテストaの結果が×→○に変化した日の期間内にコミットしたリビジョンである
（ｂ）リビジョンのコミット者は、不具合1の修正担当者と同じである
（ｃ）リビジョンは、ユーザ指定のキーワードを含む
図５は、テスト管理ツール、不具合管理ツール、構成管理ツールから取得するデータの一例を示している。
【００５２】
テスト管理ツールのデータによれば、テストａは担当者Ａによって実行され、８月３日までは成功○であったが、８月４日には失敗×に変化している。その後、失敗×は８月９日まで続き、８月１０日に成功○に変化している。
【００５３】
テスト結果は、不具合管理ツールのデータに反映され、不具合データとして管理される。不具合１の修正担当として担当者Ａがアサインされ、８月４日に新規登録されている。不具合１に関連するリビジョンは、当初は“無し”である。不具合１の修正作業は“進行中”として８月８日まで続き、８月９日に“修正済”となっている。
【００５４】
さらに、構成管理ツールでは、リビジョンに関するデータが管理され、リビジョン７及びリビジョン９について、コミット者はＡとなっている。コミット者Ａは、リビジョン７について８月３日にコミットすることが登録され、リビジョン９について８月７日にコミットすることが登録されている。
【００５５】
これらを受けて、期間抽出部１２は、不具合1に関連するテストａのテスト結果が×→○に変化した期間を抽出する。テスト管理ツールのデータから、図６（ａ）に示すように8月４日から８月１０日までの期間データが抽出される。
【００５６】
続いて、絞り込み処理部１３は、不具合管理ツールのデータから不具合1の新規登録日として８月４日を取得し、登録日からテスト結果が成功○となる期間を把握する。そして、構成管理ツールのデータから、8月４日から８月１０日までの期間内にコミットしたリビジョンを絞り込む。図６（ｂ）に示すような、リビジョンが絞り込まれる。
【００５７】
さらに、絞り込み処理部１３は、さらに、コミット者が不具合1の修正担当者と一致するリビジョンを絞り込む。ここでは、コミット者Aで絞り込み、不具合１に関連するリビジョンの候補として、図６（ｃ）に示すような候補データが絞り込まれる。その結果、“リビジョン９”が候補となる。候補データは、表示部１４に表示される。
【００５８】
図７は、不具合がどのリビジョンで修正されたかの関連付け処理の流れを示すフローチャートである。
【００５９】
まず、テストを実施し（ステップＳ７０１）、テストが成功したか否かを判定する（ステップＳ７０２）。テストが失敗であれば、テスト結果(×)をテスト管理ツールに登録する（ステップＳ７０３）。
【００６０】
続いて、不具合を不具合管理ツールに登録し、不具合とテスト結果(×)を関連付ける（ステップＳ７０４）。
【００６１】
次に、不具合を修正し（ステップＳ７０５）、再度テストを実施する（ステップＳ７０６）。
【００６２】
テストが成功したか否かを判定し（ステップＳ７０７）。テストが失敗であれば、ステップＳ７０５に戻る。
【００６３】
テストが成功したら、テスト結果(○)をテスト管理ツールに登録する（ステップＳ７０８）。
【００６４】
続いて、期間抽出部１２において、テスト管理ツールからテスト結果×→○の期間を取りだす（ステップＳ７０９）。
【００６５】
次に、絞り込み処理部１３において、構成管理ツールからコミット日時を取得し、期間内にコミットされたリビジョンを絞り込む（ステップＳ７１０）。
【００６６】
続いて、絞り込み処理部１３において、コミット者が不具合の修正担当者と一致するリビジョンを絞り込む（ステップＳ７１１）。
【００６７】
次に、表示部１４において、絞り込んだ結果のリビジョンをユーザに表示する（ステップＳ７１２）。
【００６８】
続いて、不具合とリビジョンの関連を不具合管理ツールに登録し（ステップＳ７１３）、不具合がどのリビジョンで修正されたかの関連付け処理を終了する。
【００６９】
＜不具合がどのリビジョンで埋め込まれたかの関連付け＞
次に、(2)不具合がどのリビジョンで埋め込まれたかの関連付け処理について説明する。ここでの候補の絞り込み条件は、以下の（ａ）〜（ｃ）である。
【００７０】
（ａ）リビジョンは、対応するテストaの結果が○→×の期間内にコミットしたリビジョンである
（ｂ）リビジョンのコミット者は、不具合1の修正担当者と同じである
（ｃ）リビジョンは、ユーザ指定のキーワードを含む
テスト管理ツールからのデータのうち、テストａについてのテスト結果が抜き出される。図８（ａ）に示すように、８月３日には成功○であったものが、８月４日には失敗×となっている。図８（ｂ）に示すように、不具合管理ツールからのデータから、不具合１の修正担当者がＡであることがわかる。以上のことから、図８（ｃ）に示すように、構成管理ツールのデータから、○→×の期間内にコミット者Ａがコミットした“リビジョン７”が抜き出される。
【００７１】
図９は、不具合がどのリビジョンで埋め込まれたかの関連付け処理の流れを示すフローチャートである。
【００７２】
まず、テストを実施し（ステップＳ９０１）、テストが成功したか否かを判定する（ステップＳ９０２）。テストが失敗であれば、テスト結果(×)をテスト管理ツールに登録する（ステップＳ９０３）。
【００７３】
続いて、不具合を不具合管理ツールに登録し、不具合とテスト結果(×)を関連付ける（ステップＳ９０４）。
【００７４】
続いて、期間抽出部１２において、テスト管理ツールからテスト結果○→×の期間を取りだす（ステップＳ９０５）。
【００７５】
次に、絞り込み処理部１３において、構成管理ツールからコミット日時を取得し、期間内にコミットされたリビジョンを絞り込む（ステップＳ９０６）。
【００７６】
続いて、絞り込み処理部１３において、コミット者が不具合の修正担当者と一致するリビジョンを絞り込む（ステップＳ９０７）。
【００７７】
次に、表示部１４において、絞り込んだ結果のリビジョンをユーザに表示する（ステップＳ９０８）。
【００７８】
続いて、不具合とリビジョンの関連を不具合管理ツールに登録し（ステップＳ９０９）、不具合がどのリビジョンで埋め込まれたかの関連付け処理を終了する。
【００７９】
＜実施例２＞
実施例２は、不具合とテスト項目を関連付けるものである。不具合とテスト項目の関連付けは、
（１）不具合が発生したテスト内容、発生する条件などを確認する為、 関連付けておきたい場合
（２）テスト失敗時、テスト結果(×)と関連付けずに登録してしまった不具合を、遡及して関連付けを行う場合
に行われる。実施例２は、「テスト結果と不具合の関係」を使用して絞り込むパターン２を利用する。具体的には、テスト結果が×→○の期間には、当該テストについて不具合の“新規”登録から不具合の“修正済”への属性変化があることを利用することによって、候補を絞り込む。
【００８０】
テスト管理ツール、不具合管理ツール、構成管理ツールからは、それぞれ図５に示すようなデータを取得している。ここでの候補の絞り込み条件は、以下の（ａ）〜（ｄ）である。
【００８１】
（ａ）テスト結果(×)の登録日時は、不具合１の“新規”登録日時より前である
（ｂ）テスト結果(×)は、不具合１が“修正済”に変化した日以降に○へと変化したテスト結果(×)である
（ｃ）テスト担当者は、不具合１の登録者と同じである
（ｄ）テスト結果(×)は、ユーザ指定のキーワードを含むものである
不具合管理ツールからのデータのうち、図１０（ａ）に示すように、不具合１についてのデータが抜き出される。
【００８２】
テスト管理ツールからのデータのうち、図１０（ｂ）に示すように、当該テスト担当者Ａが関与したデータが抜き出される。
【００８３】
図１０（ａ）から、不具合１の“新規”登録日は８月４日であり、不具合１は８月９日に“修正済”となる。図１０（ｂ）から、修正済日以降に○へと変化したテスト結果は、テストａのテスト結果(×)である。登録日（８月４日）前にテスト結果が×である日は、8月２日、同３日、同４日である。テスト結果(×)と関連付けるには、直前の×で最も古いものが最適であることから、条件に合致する対象箇所は、８月２日となる。
【００８４】
図１１は、不具合が生じたテスト内容や発生条件の関連付け処理の流れを示すフローチャートである。
【００８５】
まず、テストを実施し（ステップＳ１１０１）、テストが成功したか否かを判定する（ステップＳ１１０２）。テストが失敗であれば、テスト結果(×)をテスト管理ツールに登録する（ステップＳ１１０３）。
【００８６】
続いて、不具合を不具合管理ツールに登録する（ステップＳ１１０４）。ここでは、テスト失敗時に、テスト結果(×)を関連付けることなく不具合を登録してしまった状況である。
【００８７】
次に、不具合を修正し（ステップＳ１１０５）、再度テストを実施する（ステップＳ１１０６）。
【００８８】
テストが成功したか否かを判定し（ステップＳ１１０７）。テストが失敗であれば、ステップＳ１１０５に戻る。
【００８９】
テストが成功したら、テスト結果(○)をテスト管理ツールに登録する（ステップＳ１１０８）。
【００９０】
続いて、期間抽出部１２において、テスト管理ツールからテスト結果×→○の期間を取りだす（ステップＳ１１０９）。
【００９１】
次に、絞り込み処理部１３において、不具合が“新規”へ変更した日時以前に×、かつ“修正済”に変更した日時以降に○となるテストを絞り込む（ステップＳ１１１０）。
【００９２】
続いて、絞り込み処理部１３において、絞り込んだテストの内、テスト担当者が不具合の登録者と一致するテストを絞り込む（ステップＳ１１１１）。
【００９３】
次に、表示部１４において、絞り込んだ結果のテストをユーザに表示する（ステップＳ１１１２）。
【００９４】
続いて、不具合とテスト項目の関連を不具合管理ツールに登録し（ステップＳ１１１３）、不具合が生じたテスト内容や発生条件の関連付け処理を終了する。
【００９５】
＜実施例３＞
実施例３は、不具合と不具合を関連付けるものである。不具合と不具合の関連付けは、現象は違うが、原因が同じ不具合を関連付けておきたい場合である。
【００９６】
実施例３は、「テスト結果同士の関係」を使用して絞り込むパターン３を利用する。具体的には、同じ原因の不具合A・Bに対応するテストA・Bは、同時期に×→○と変化する関係を利用する。
【００９７】
ここでは、
（１）不具合は、対応するテスト項目と関連付いていること
（２）起点となる不具合に対応するテストは×→○に変化していること
を前提条件とする。
【００９８】
不具合管理ツールからのデータのうち、図１２（ａ）に示すように、不具合１についてのデータが抜き出される。不具合１の修正担当者はＡであり、８月４日に“新規”登録され、８月９日に“修正済”となっている。テスト管理ツールからのデータでは、図１２（ｂ）に示すように、不具合１に対応するテストａは８月９日に×であったものが、８月１０日に○に変化している。８月９日に×で８月１０日に○に変化しているのはテストｄであり、不具合管理ツールからのデータから、図１２（ｃ）に示すように、テストｄの不具合１０は、同じ修正担当者Ａに関係する不具合であることが関係付けられる。
【００９９】
図１３は、不具合と不具合の関連付け処理の流れを示すフローチャートである。
【０１００】
まず、テストを実施し（ステップＳ１３０１）、テストが成功したか否かを判定する（ステップＳ１３０２）。テストが失敗であれば、テスト結果(×)をテスト管理ツールに登録する（ステップＳ１３０３）。
【０１０１】
続いて、不具合１を不具合管理ツールに登録する（ステップＳ１３０４）。ここでは、テスト失敗時に、テスト結果(×)を関連付けて不具合を登録する。
【０１０２】
次に、不具合１を修正し（ステップＳ１３０５）、再度テストを実施する（ステップＳ１３０６）。
【０１０３】
テストが成功したか否かを判定し（ステップＳ１３０７）。テストが失敗であれば、ステップＳ１３０５に戻る。
【０１０４】
テストが成功したら、テスト結果(○)をテスト管理ツールに登録する（ステップＳ１３０８）。
【０１０５】
続いて、期間抽出部１２において、テスト管理ツールからテスト結果×→○の期間を取りだす（ステップＳ１３０９）。
【０１０６】
次に、絞り込み処理部１３において、取り出した期間と同日に×→○となるテストと関連付けられた不具合を取りだす（ステップＳ１３１０）。
【０１０７】
続いて、絞り込み処理部１３において、取り出した不具合のうち、修正担当者が不具合１の修正担当者と一致する不具合を絞り込む（ステップＳ１３１１）。
【０１０８】
次に、表示部１４において、絞り込んだ結果の不具合をユーザに表示する（ステップＳ１３１２）。
【０１０９】
続いて、不具合と不具合の関連を不具合管理ツールに登録し（ステップＳ１３１３）、不具合と不具合の関連付け処理を終了する。
【０１１０】
＜実施例４＞
実施例４は、要求仕様とリビジョンを関連付けるものである。要求仕様とリビジョンの関連付けは、要求仕様がどのリビジョンで実装されたか知る為、関連付けておきたい場合である。実施例４は、「テスト結果とリビジョンの関係」を使用した絞り込むパターン１を利用する。具体的には、テスト結果が×→○、又は○→×の期間には、必ず1回以上、コミットがあることから、×→○の関係を利用するものである。
【０１１１】
ここでは、
（１）紐付け元となる要求仕様は、対応するテスト項目と関連付いていること
（２）起点となる要求仕様に対応するテストは全て×→○に変化していること
を前提条件とする。
【０１１２】
まず、実施例４では、テスト結果の「見做し」を行う。具体的には、テスト結果が一度も×にならない（テスト開始当初から対応が済んでいる）場合を考慮して、テスト開始リビジョン以前は全て×と見做す。「見做し」を行うことにより、対象リビジョン以前に、要求仕様が満たされていることを保証することができる。
【０１１３】
図１４は、テスト結果の見做しを説明する図である。図１４（ａ）に示すように、総合的なテストが、リビジョン７で開始された。そのとき、同じ担当者Ａによってテストａ、ｂ、ｃ、ｄが実行され、それらテスト結果とリビジョンの状況が図１４（ａ）に示されている。係る状況にあるとき、リビジョン７以前のテスト結果は、判然としていない。それに対して、図１４（ｂ）に示すように、テスト開始前のリビジョンは全て×として扱う。
【０１１４】
実施例４における候補の絞り込み条件は、以下の（ａ）〜（ｂ）である。
【０１１５】
（ａ）リビジョンは、要求仕様1-3に対応する各テスト項目が、最後に×になった日時〜○になった日時の期間内にコミットしたリビジョンである
（ｂ）リビジョンは、ユーザ指定のキーワードを含む
要求管理ツールからのデータのうち、図１５（ａ）に示すような要求仕様データが抜き出される。図１５（ａ）では、要求仕様１〜３については、８月１日〜８月１１日のデータが対応していることがわかる。図１５（ｂ）に示すように、テスト管理ツールからのデータのうち、当該要求仕様に対応するテスト項目のテスト結果が抜き出される。図１５（ｂ）からは、テストａについては、８月１日〜８月９日の期間中はテスト結果が×であり、８月１０日以降、テスト結果が○に変化している。テストｂについては、８月１日〜８月３日の期間中はテスト結果が○であり、８月４日、５日にはテスト結果が×に変化し、８月６日以降、○に変化している。
【０１１６】
構成管理ツールからのデータでは、図１５（ｃ）に示すように、８月１日〜８月１１日の期間中の各リビジョンが抜き出される。
【０１１７】
これらから、最後にテスト結果が×→○に変化した期間、最後にテスト結果が×→○に変化した期間にコミットしたリビジョンが抽出される。
【０１１８】
図１６は、要求仕様とリビジョンの関連付け処理の流れを示すフローチャートである。
【０１１９】
まず、要求仕様を作成する（ステップＳ１６０１）。次いで、要求仕様に対応するテストを作成し、テスト管理ツールに登録する（ステップＳ１６０２）。このとき、要求仕様とテストを関連付けておく。登録に併せて、設計・実装作業を行う（ステップＳ１６０３）。
【０１２０】
次いで、テストを実施し（ステップＳ１６０４）、テストが成功したか否かを判定する（ステップＳ１６０５）。テストが失敗であれば、テスト結果(×)をテスト管理ツールに登録する（ステップＳ１６０６）。
【０１２１】
次に、不具合を修正し（ステップＳ１６０７）、再度テストを実施する（ステップＳ１６０８）。
【０１２２】
テストが成功したか否かを判定し（ステップＳ１６０９）。テストが失敗であれば、ステップＳ１６０７に戻る。
【０１２３】
テストが成功したら、テスト結果(○)をテスト管理ツールに登録する（ステップＳ１６１０）。
【０１２４】
続いて、期間抽出部１２において、テスト管理ツールからテスト管理ツールから最後にテスト結果が×になった日時〜○になった日時の期間を取りだす（ステップＳ１６１１）。
【０１２５】
次に、絞り込み処理部１３において、構成管理ツールから期間内にコミットされたリビジョンを絞り込む（ステップＳ１６１２）。
【０１２６】
次に、表示部１４において、絞り込んだ結果のリビジョンをユーザに表示する（ステップＳ１６１３）。
【０１２７】
続いて、要求仕様とリビジョンの関連を要求管理ツールに登録し（ステップＳ１６１４）、
要求仕様とリビジョンの関連付け処理を終了する。
【０１２８】
＜実施例５＞
実施例５は、要求仕様とテスト項目を関連付けるものである。要求仕様とテスト項目の関連付けは、要求仕様に対応するテストが全て実施されているか確認するため、関連付けておきたい場合である。実施例５は、「テスト結果とリビジョンの関係」を使用した絞り込むパターン１を利用する。具体的には、テスト結果が×→○、又は○→×の期間には、必ず1回以上、コミットがあることから、×→○の関係を利用するものである。
【０１２９】
ここでは、
（１）紐付け元となる要求仕様は、対応するリビジョンと関連付いていること
を前提条件とする。
【０１３０】
実施例５においても、実施例４と同様に、上述したテスト結果の「見做し」を行う。具体的には、テスト結果が一度も×にならない（テスト開始当初から対応が済んでいる）場合を考慮して、テスト開始リビジョン以前は全て×と見做す。「見做し」を行うことにより、対象リビジョン以前に、要求仕様が満たされていることを保証することができる。
【０１３１】
実施例５における候補の絞り込み条件は、以下の（ａ）〜（ｂ）である。
【０１３２】
（ａ）テストは、要求仕様1-3に対応するリビジョンのコミット前後で×→○に変化したテストである
（ｂ）リビジョンは、ユーザ指定のキーワードを含む
要求管理ツールからのデータのうち、図１７（ａ）に示すような要求仕様データが抜き出される。図１７（ａ）では、要求仕様１〜３については、８月１日〜８月１１日のデータが対応していることがわかる。構成管理ツールからのデータでは、図１７（ｂ）に示すように、８月１日〜８月１１日の期間中のリビジョンとして、８月５日にコミットされたリビジョン８、８月９日にコミットされたリビジョン９が抜き出される。
【０１３３】
図１７（ｃ）に示すように、テスト管理ツールからのデータのうち、当該要求仕様に対応するテスト項目のテスト結果が抜き出される。図１７（ｃ）からは、８月５日付けのコミットの前後でテスト結果が×→○に変化したテストｂ、および８月９日付けのコミットの前後でテスト結果が×→○に変化したテストａが抽出される。
【０１３４】
図１８は、要求仕様とテスト項目の関連付け処理の流れを示すフローチャートである。
【０１３５】
まず、要求仕様を作成する（ステップＳ１８０１）。次いで、要求仕様に対応するテストを作成し、テスト管理ツールに登録する（ステップＳ１８０２）。登録に併せて、実装作業を行う（ステップＳ１８０３）。このとき、要求仕様とリビジョンの関連を要求管理ツールに登録する。
【０１３６】
次いで、テストを実施し（ステップＳ１８０４）、テストが成功したか否かを判定する（ステップＳ１８０５）。テストが失敗であれば、テスト結果(×)をテスト管理ツールに登録する（ステップＳ１８０６）。
【０１３７】
次に、不具合を修正し（ステップＳ１８０７）、再度テストを実施する（ステップＳ１８０８）。
【０１３８】
テストが成功したか否かを判定し（ステップＳ１８０９）。テストが失敗であれば、ステップＳ１８０７に戻る。
【０１３９】
テストが成功したら、テスト結果(○)をテスト管理ツールに登録する（ステップＳ１８１０）。
【０１４０】
続いて、期間抽出部１２において、テスト管理ツールからテスト結果×→○の期間を取りだす（ステップＳ１８１１）。
【０１４１】
次に、絞り込み処理部１３において、対応するリビジョンのコミット日時の前後で、×→○へ変化しているテストを絞り込む（ステップＳ１８１２）。
【０１４２】
次に、表示部１４において、絞り込んだ結果のテストをユーザに表示する（ステップＳ１８１３）。
【０１４３】
続いて、要求仕様とテスト項目の関連を要求管理ツールに登録し（ステップＳ１８１４）、
要求仕様とテスト項目の関連付け処理を終了する。
【０１４４】
＜実施例６＞
実施例６は、要求仕様と要求仕様を関連付けるものである。要求仕様と要求仕様の関連付けは、共通モジュールなど、互いに影響を及ぼし合う、要求仕様同士を把握したい場合である。実施例６は、「テスト結果同士の関係」を使用して絞り込むパターン３を利用する。具体的には、関連する要求仕様A・Bに対応するテストA・Bは、同時期に×→○と変化する関係を利用する。
【０１４５】
ここでは、
（１）要求仕様は、対応するテスト項目と関連付いていること
（２）起点となる要求仕様に対応するテストは×→○に変化していること
を前提条件とする。
【０１４６】
実施例６における候補の絞り込み条件は、以下の（ａ）〜（ｂ）である。
【０１４７】
（ａ）要求仕様Ａに対応するテストa と同日に×→○の変化をしたテストと関連付く要求仕様である
（ｂ）関連不具合は、ユーザ指定のキーワードを含むものである
要求管理ツールからのデータのうち、図１９（ａ）に示すような要求仕様データが抜き出される。図１９（ａ）では、要求仕様Ａについては、８月１日〜８月１１日のデータが対応していることがわかる。テスト管理ツールからのデータでは、図１９（ｂ）に示すように、要求仕様Ａに対応するテスト項目としてテストａが抜き出される。
【０１４８】
図１９（ｂ）に示すように、テストａのテスト結果は、８月３日に○であったものが、８月４日に×に変化し、さらに８月９日に×であったものが、８月１０日に○に変化している。テストａのテスト結果と同様の変化をしているテスト項目は、テストｄであることが抜き出される。
【０１４９】
図１９（ｃ）に示すように、要求管理ツールからのデータのうち、テストｄと関連する要求仕様は、Ｂであることが抽出される。
【０１５０】
図２０は、要求仕様と要求仕様の関連付け処理の流れを示すフローチャートである。
【０１５１】
まず、要求仕様を作成する（ステップＳ２００１）。次いで、要求仕様に対応するテストを作成し、テスト管理ツールに登録する（ステップＳ２００２）。このとき、要求仕様とテスト項目の関連を要求管理ツールに登録する。登録に併せて、設計・実装作業を行う（ステップＳ２００３）。
【０１５２】
次いで、テストを実施し（ステップＳ２００４）、テストが成功したか否かを判定する（ステップＳ２００５）。テストが失敗であれば、テスト結果(×)をテスト管理ツールに登録する（ステップＳ２００６）。
【０１５３】
次に、不具合を修正し（ステップＳ２００７）、再度テストを実施する（ステップＳ２００８）。
【０１５４】
テストが成功したか否かを判定し（ステップＳ２００９）。テストが失敗であれば、ステップＳ２００７に戻る。
【０１５５】
テストが成功したら、テスト結果(○)をテスト管理ツールに登録する（ステップＳ２０１０）。
【０１５６】
続いて、期間抽出部１２において、テスト管理ツールからテスト結果×→○の期間を取りだす（ステップＳ２０１１）。
【０１５７】
次に、絞り込み処理部１３において、取り出した期間と同日に×→○となるテストと関連付けられた要求仕様を取りだす（ステップＳ２０１２）。
【０１５８】
次に、表示部１４において、絞り込んだ結果の要求仕様をユーザに表示する（ステップＳ２０１３）。
【０１５９】
続いて、要求仕様と要求仕様の関連を要求管理ツールに登録し（ステップＳ２０１４）、要求仕様と要求仕様の関連付け処理を終了する。
【０１６０】
以上説明したように、本実施形態によれば、不具合管理ツール内の不具合情報同士、または不具合情報と他のツールが持つ情報を関連付ける際、あるいは、要求管理ツール内の要求仕様同士、または要求仕様と他のツールが持つ情報を関連付ける際に、関連付けの候補を自動で絞り込み、検索作業の負担を軽減することができる。
【０１６１】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１６２】
１００・・・関連候補生成装置
１１・・・入力部
１２・・・期間抽出部
１３・・・絞り込み処理部
１４・・・表示部
【図１】
2015069615.tif 000003
【図２】
2015069615.tif 000004
【図３】
2015069615.tif 000005
【図４】
2015069615.tif 000006
【図５】
2015069615.tif 000007
【図６】
2015069615.tif 000008
【図７】
2015069615.tif 000009
【図８】
2015069615.tif 000010
【図９】
2015069615.tif 000011
【図１０】
2015069615.tif 000012
【図１１】
2015069615.tif 000013
【図１２】
2015069615.tif 000014
【図１３】
2015069615.tif 000015
【図１４】
2015069615.tif 000016
【図１５】
2015069615.tif 000017
【図１６】
2015069615.tif 000018
【図１７】
2015069615.tif 000019
【図１８】
2015069615.tif 000020
【図１９】
2015069615.tif 000021
【図２０】
2015069615.tif 000022