(57)【要約】【課題】ソフトウェアに含まれる関数のうちでテストを優先的に実施すべき関数を抽出する。【解決手段】変更関数抽出部１１０は、利用される利用関数の識別子を含んだ利用関数リスト１９１と、変更が加えられた変更関数を識別する変更関数識別子を含んだ影響関数リスト１９２とを用いて、変更関数抽出リスト１８１を生成する。変更関数抽出リスト１８１は、利用関数から呼び出される変更関数の変更関数識別子を含む。絞り込み部１２０は、変更関数抽出リスト１８１から絞り込んだ変更関数識別子を含んだ絞り込みリスト１８２を生成する。テスト対象抽出部１３０は、変更関数毎のテスト網羅度を含んだテスト網羅度リスト１９４を用いて、テスト対象リスト１９６を生成する。テスト対象リスト１９６は、絞り込みリスト１８２に含まれる変更関数識別子のうち、網羅度範囲に含まれないテスト網羅度の変更関数の変更関数識別子を含む。【選択図】図１
2016134072.tif 000002
【特許請求の範囲】
【請求項１】
第１のソフトウェアに含まれて第２のソフトウェアから呼び出される関数である利用関数を識別する利用関数識別子を含んだ利用関数リストと、前記第１のソフトウェアに含まれる関数のうちの変更が加えられた関数である変更関数を識別する変更関数識別子に、変更関数を呼び出す関数である影響関数を識別する影響関数識別子を対応付けた影響関数リストとを用いて、前記影響関数リストに含まれるいずれかの影響関数識別子と同じ関数を識別する利用関数識別子を前記利用関数リストから抽出し、抽出した利用関数識別子と同じ関数を識別する影響関数識別子に対応付けられた変更関数識別子を前記影響関数リストから抽出し、抽出した変更関数識別子を含んだ変更関数抽出リストを生成する変更関数抽出部
を備えるソフトウェア開発支援装置。
【請求項２】
前記変更関数抽出リストは、抽出された変更関数識別子を抽出された利用関数識別子に対応付けて含み、
前記ソフトウェア開発支援装置は、
前記変更関数抽出リストに含まれる利用関数識別子毎に利用関数識別子に対応付けられた変更関数識別子で識別される変更関数の数に基づいた値である関連度を取得し、関連度の条件である関連度範囲に含まれる関連度の利用関数識別子に対応付けられた変更関数識別子を前記変更関数抽出リストから抽出し、抽出した変更関数識別子を含んだ絞り込みリストを生成する絞り込み部
を備える請求項１に記載のソフトウェア開発支援装置。
【請求項３】
変更関数識別子に変更関数のテスト網羅度を対応付けたテスト網羅度リストを用いて、テスト網羅度の条件である網羅度範囲に含まれないテスト網羅度に対応付けられた変更関数識別子と同じ変更関数識別子を前記絞り込みリストから抽出し、抽出した変更関数識別子を含んだテスト対象リストを生成するテスト対象抽出部
を備える請求項２に記載のソフトウェア開発支援装置。
【請求項４】
変更関数識別子に変更関数のテスト網羅度を対応付けたテスト網羅度リストを用いて、テスト網羅度の条件である網羅度範囲に含まれないテスト網羅度に対応付けられた変更関数識別子と同じ変更関数識別子を前記影響関数リストから抽出し、抽出した変更関数識別子を含んだテスト対象リストを生成するテスト対象抽出部
を備える請求項１に記載のソフトウェア開発支援装置。
【請求項５】
第１のソフトウェアに含まれて第２のソフトウェアから呼び出される関数である利用関数を識別する利用関数識別子を含んだ利用関数リストと、前記第１のソフトウェアに含まれる関数のうちの変更が加えられた関数である変更関数を識別する変更関数識別子に、変更関数を呼び出す関数である影響関数を識別する影響関数識別子を対応付けた影響関数リストとを用いて、前記影響関数リストに含まれるいずれかの影響関数識別子と同じ関数を識別する利用関数識別子を前記利用関数リストから抽出し、抽出した利用関数識別子と同じ関数を識別する影響関数識別子に対応付けられた変更関数識別子を前記影響関数リストから抽出し、抽出した変更関数識別子を含んだ変更関数抽出リストを生成する変更関数抽出処理
をコンピュータに実行させるためのソフトウェア開発支援プログラム。
【請求項６】
前記変更関数抽出リストは、抽出された変更関数識別子を抽出された利用関数識別子に対応付けて含み、
前記ソフトウェア開発支援プログラムは、
前記変更関数抽出リストに含まれる利用関数識別子毎に利用関数識別子に対応付けられた変更関数識別子で識別される変更関数の数に基づいた値である関連度を取得し、関連度の条件である関連度範囲に含まれる関連度の利用関数識別子に対応付けられた変更関数識別子を前記変更関数抽出リストから抽出し、抽出した変更関数識別子を含んだ絞り込みリストを生成する絞り込み処理
をコンピュータに実行させる請求項５に記載のソフトウェア開発支援プログラム。
【請求項７】
変更関数識別子に変更関数のテスト網羅度を対応付けたテスト網羅度リストを用いて、テスト網羅度の条件である網羅度範囲に含まれないテスト網羅度に対応付けられた変更関数識別子と同じ変更関数識別子を前記影響関数リストから抽出し、抽出した変更関数識別子を含んだテスト対象リストを生成するテスト対象抽出処理
をコンピュータに実行させる請求項５に記載のソフトウェア開発支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア開発に関するものである。
【背景技術】
【０００２】
近年、大規模なソフトウェアを開発する場合、開発の効率化を図るために、自作外ソフトウェアを利用することが多い。そして、自作外ソフトウェアの品質の低下に伴って、開発したソフトウェアの不具合が多発している。
【０００３】
そこで、特許文献１に開示される装置などを利用することによって、自作外ソフトウェアの関数間の依存関係の情報と、変更が加えられた関数である変更関数の情報とをもとに、変更関数の影響を受けるインタフェース関数を抽出できる。
しかし、自作外ソフトウェアに含まれる一部のインタフェース関数が自作ソフトウェアで利用される場合、自作ソフトウェアで利用されて、且つ、変更関数の影響を受けるインタフェース関数は、人手で抽出する必要がある。また、抽出したインタフェース関数のテストを実施する必要がある。
さらに、抽出したインタフェース関数から呼び出される変更関数のテストを実施する場合、抽出したインタフェース関数の呼び出し関係に基づいて、人手で変更関数を抽出する必要がある。また、抽出した変更関数のテストの実施要否および優先順位は属人的に決められるため、抽出した変更関数のテストの品質にはばらつきが生じる。
【０００４】
以上のように、大規模なソフトウェアを開発する場合、優先的にテストすべき関数およびテストを確実に実施すべき関数を抽出するには手間と時間がかかり、また、テスト漏れによって不具合が発生するリスクも高い。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１３−２１８３８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明は、第１のソフトウェアにおいて変更が加えられた関数のうち、第２のソフトウェアが利用する関数から呼び出される関数を抽出できるようにすることを目的とする。
【課題を解決するための手段】
【０００７】
本発明のソフトウェア開発支援装置は、
第１のソフトウェアに含まれて第２のソフトウェアから呼び出される関数である利用関数を識別する利用関数識別子を含んだ利用関数リストと、前記第１のソフトウェアに含まれる関数のうちの変更が加えられた関数である変更関数を識別する変更関数識別子に、変更関数を呼び出す関数である影響関数を識別する影響関数識別子を対応付けた影響関数リストとを用いて、前記影響関数リストに含まれるいずれかの影響関数識別子と同じ関数を識別する利用関数識別子を前記利用関数リストから抽出し、抽出した利用関数識別子と同じ関数を識別する影響関数識別子に対応付けられた変更関数識別子を前記影響関数リストから抽出し、抽出した変更関数識別子を含んだ変更関数抽出リストを生成する変更関数抽出部を備える。
【発明の効果】
【０００８】
本発明によれば、第１のソフトウェアにおいて変更が加えられた関数のうち、第２のソフトウェアが利用する関数から呼び出される関数を抽出できる。
【図面の簡単な説明】
【０００９】
【図１】実施の形態１におけるソフトウェア開発支援装置１００の機能構成図。
【図２】実施の形態１における利用関数リスト１９１を示す図。
【図３】実施の形態１における影響関数リスト１９２を示す図。
【図４】実施の形態１における変更関数抽出リスト１８１を示す図。
【図５】実施の形態１における関連度範囲情報１９３を示す図。
【図６】実施の形態１における絞り込みリスト１８２を示す図。
【図７】実施の形態１におけるテスト候補リスト１８３を示す図。
【図８】実施の形態１におけるテスト網羅度リスト１９４を示す図。
【図９】実施の形態１における網羅度範囲情報１９５を示す図。
【図１０】実施の形態１におけるテスト対象リスト１９６を示す図。
【図１１】実施の形態１におけるソフトウェア開発支援装置１００のハードウェア構成図。
【図１２】実施の形態１におけるソフトウェア開発支援方法のフローチャート。
【図１３】実施の形態１における変更関数抽出処理（Ｓ１１０）のフローチャート。
【図１４】実施の形態１における絞り込み処理（Ｓ１２０）のフローチャート。
【図１５】実施の形態１におけるテスト候補抽出処理（Ｓ１３１）のフローチャート。
【図１６】実施の形態１における網羅性評価処理（Ｓ１３２）のフローチャート。
【図１７】実施の形態２におけるソフトウェア開発支援装置１００の機能構成図。
【図１８】実施の形態２におけるソフトウェア開発支援方法のフローチャート。
【図１９】実施の形態２におけるテスト候補抽出処理（Ｓ１３１Ｂ）のフローチャート。
【図２０】実施の形態２におけるテスト候補リスト１８３を示す図。
【図２１】実施の形態２におけるテスト対象リスト１９６を示す図。
【発明を実施するための形態】
【００１０】
実施の形態１．
ソフトウェアに含まれる関数のうちでテストを優先的に実施すべき関数を抽出するための形態について、図１から図１６に基づいて説明する。
【００１１】
＊＊＊構成の説明＊＊＊
図１に基づいて、ソフトウェア開発支援装置１００について説明する。
ソフトウェア開発支援装置１００は、変更関数抽出部１１０と、絞り込み部１２０と、テスト対象抽出部１３０と、データ記憶部１９０とを備える。
【００１２】
変更関数抽出部１１０は、利用関数リスト１９１と、影響関数リスト１９２とを用いて、以下のように変更関数抽出リスト１８１を生成する。利用関数リスト１９１は、第１のソフトウェアに含まれて第２のソフトウェアから呼び出される関数である利用関数を識別する利用関数識別子を含む。影響関数リスト１９２は、第１のソフトウェアに含まれる関数のうちの変更が加えられた関数である変更関数を識別する変更関数識別子に、変更関数を呼び出す関数である影響関数を識別する影響関数識別子を対応付ける。
変更関数抽出部１１０は、影響関数リスト１９２に含まれるいずれかの影響関数識別子と同じ関数を識別する利用関数識別子を利用関数リスト１９１から抽出する。変更関数抽出部１１０は、抽出した利用関数識別子と同じ関数を識別する影響関数識別子に対応付けられた変更関数識別子を影響関数リスト１９２から抽出する。そして、変更関数抽出部１１０は、抽出した変更関数識別子を含んだ変更関数抽出リスト１８１を生成する。
変更関数抽出リスト１８１は、抽出された変更関数識別子を抽出された利用関数識別子に対応付けて含む。
【００１３】
絞り込み部１２０は、変更関数抽出リスト１８１に含まれる利用関数識別子毎に利用関数識別子に対応付けられた変更関数識別子で識別される変更関数の数に基づいた値である関連度を取得する。
絞り込み部１２０は、関連度の条件である関連度範囲に含まれる関連度の利用関数識別子に対応付けられた変更関数識別子を変更関数抽出リスト１８１から抽出する。そして、絞り込み部１２０は、抽出した利用関数識別子に抽出した変更関数識別子を対応付けた絞り込みリスト１８２を生成する。
【００１４】
テスト対象抽出部１３０は、テスト網羅度リスト１９４を用いて、以下のようにテスト対象リスト１９６を生成する。テスト網羅度リスト１９４は、変更関数識別子に変更関数のテスト網羅度を対応付ける。テスト網羅度は関数全体のうちのテストされた部分の割合を表す。
テスト対象抽出部１３０は、テスト網羅度の条件である網羅度範囲に含まれないテスト網羅度に対応付けられた変更関数識別子と同じ変更関数識別子を絞り込みリスト１８２から抽出する。そして、テスト対象抽出部１３０は、抽出した変更関数識別子を含んだテスト対象リスト１９６を生成する。
【００１５】
テスト対象抽出部１３０は、テスト候補抽出部１３１と網羅性評価部１３２とを備える。
テスト候補抽出部１３１は、絞り込みリスト１８２に含まれる変更関数識別子を重複せずに含んだテスト候補リスト１８３を生成する。
網羅性評価部１３２は、網羅度範囲に含まれないテスト網羅度に対応付けられた変更関数識別子と同じ変更関数識別子をテスト候補リスト１８３から抽出し、抽出した変更関数識別子を含んだリストをテスト対象リスト１９６として生成する。
【００１６】
データ記憶部１９０は、ソフトウェア開発支援装置１００が使用、生成または入出力するデータを記憶する。
例えば、データ記憶部１９０は、利用関数リスト１９１と、影響関数リスト１９２と、関連度範囲情報１９３と、テスト網羅度リスト１９４と、網羅度範囲情報１９５と、テスト対象リスト１９６とを記憶する。
関連度範囲情報１９３は関連度範囲を示し、網羅度範囲情報１９５は網羅度範囲を示す。
【００１７】
図２に基づいて、利用関数リスト１９１について説明する。
利用関数リスト１９１は、第１のソフトウェアである自作外ソフトウェアに含まれるインタフェース関数のうち、第２のソフトウェアである自作ソフトウェアが利用するインタフェース関数の識別子を示している。インタフェース関数は、他のソフトウェアから呼び出される関数である。
【００１８】
図３において、影響関数リスト１９２は、影響関数の識別子と変更関数の識別子とを互いに対応付けている。
【００１９】
図４において、変更関数抽出リスト１８１は、利用関数の識別子と変更関数の識別子とを互いに対応付けている。
【００２０】
図５に基づいて、関連度範囲情報１９３について説明する。
関連度範囲情報１９３は、関連度の内容と関連度範囲とを互いに対応付けている。関連度の内容は、利用関数から呼び出される変更関数の数である。
【００２１】
図６において、絞り込みリスト１８２は、利用関数の識別子と変更関数の識別子とを互いに対応付けている。
【００２２】
図７において、テスト候補リスト１８３は、テスト対象の候補である変更関数の識別子を示している。
【００２３】
図８において、テスト網羅度リスト１９４は、変更関数の識別子と変更関数のカバレッジ率とを互いに対応付けている。カバレッジ率はテスト網羅度を表す値の一例である。
【００２４】
図９において、網羅度範囲情報１９５は、テスト網羅度の種類と網羅度範囲とを互いに対応付けている。
【００２５】
図１０において、テスト対象リスト１９６は、テスト対象である変更関数の識別子と変更関数のカバレッジ率とを互いに対応付けている。
【００２６】
図１１に基づいて、ソフトウェア開発支援装置１００のハードウェア構成例について説明する。
ソフトウェア開発支援装置１００は、プロセッサ９０１、補助記憶装置９０２、メモリ９０３、通信装置９０４、入力インタフェース９０５、ディスプレイインタフェース９０６といったハードウェアを備えるコンピュータである。
プロセッサ９０１は信号線９１０を介して他のハードウェアと接続されている。入力インタフェース９０５はケーブル９１１を介して入力装置９０７に接続されている。ディスプレイインタフェース９０６はケーブル９１２を介してディスプレイ９０８に接続されている。
【００２７】
プロセッサ９０１は、プロセッシングを行うＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）であり、他のハードウェアを制御する。例えば、プロセッサ９０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。
補助記憶装置９０２は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリ、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）である。
メモリ９０３は、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。
通信装置９０４は、データを受信するレシーバ９４０１と、データを送信するトランスミッタ９４０２とを備える。例えば、通信装置９０４は通信チップまたはＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）である。
入力インタフェース９０５はケーブル９１１が接続されるポートであり、ポートの一例はＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）端子である。
ディスプレイインタフェース９０６はケーブル９１２が接続されるポートであり、ポートの一例はＵＳＢ端子またはＨＤＭＩ（Ｈｉｇｈ  Ｄｅｆｉｎｉｔｉｏｎ  Ｍｕｌｔｉｍｅｄｉａ  Ｉｎｔｅｒｆａｃｅ）端子である。ＨＤＭＩは登録商標である。
入力装置９０７は、例えば、マウス、キーボードまたはタッチパネルである。
ディスプレイ９０８は、例えば、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）である。
【００２８】
補助記憶装置９０２には、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）が記憶されている。また、補助記憶装置９０２には、ソフトウェア開発支援装置１００に備わる変更関数抽出部１１０、絞り込み部１２０、テスト対象抽出部１３０といった「部」の機能を実現するプログラムが記憶されている。
ＯＳの少なくとも一部はメモリ９０３にロードされ、プロセッサ９０１はＯＳを実行しながら「部」の機能を実現するプログラムを実行する。「部」の機能を実現するプログラムは、メモリ９０３にロードされ、プロセッサ９０１に読み込まれ、プロセッサ９０１によって実行される。
なお、ソフトウェア開発支援装置１００が複数のプロセッサ９０１を備えて、複数のプロセッサ９０１が「部」の機能を実現するプログラムを連携して実行してもよい。
【００２９】
「部」の処理の結果を示すデータ、情報、信号値および変数値などは、メモリ９０３、補助記憶装置９０２、プロセッサ９０１内のレジスタ、または、プロセッサ９０１内のキャッシュメモリに記憶される。
【００３０】
「部」は「サーキットリ」で実装してもよい。「部」は「回路」、「工程」、「手順」または「処理」に読み替えてもよい。
「回路」及び「サーキットリ」は、プロセッサ９０１、ロジックＩＣ、ＧＡ（Ｇａｔｅ  Ａｒｒａｙ）、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）といった処理回路を包含する概念である。
【００３１】
＊＊＊動作の説明＊＊＊
ソフトウェア開発支援装置１００の動作はソフトウェア開発支援方法に相当する。また、ソフトウェア開発支援方法はソフトウェア開発支援プログラムの処理手順に相当する。
【００３２】
図１２に基づいて、ソフトウェア開発支援方法について説明する。
Ｓ１１０は変更関数抽出処理である。
Ｓ１１０において、変更関数抽出部１１０は、図２の利用関数リスト１９１と図３の影響関数リスト１９２とを用いて、図４の変更関数抽出リスト１８１を生成する。
【００３３】
図１３に基づいて、変更関数抽出処理（Ｓ１１０）の詳細について説明する。
Ｓ１１１において、変更関数抽出部１１０は、未抽出の利用関数識別子を利用関数リスト１９１から抽出する。
例えば、変更関数抽出部１１０は、図２の利用関数リスト１９１からＦｕｎｃ＿ＩＦ０１を抽出する。
Ｓ１１１の後、処理はＳ１１２に進む。
【００３４】
Ｓ１１２において、変更関数抽出部１１０は、抽出した利用関数識別子と一致する影響関数識別子が影響関数リスト１９２に含まれるか判定する。
抽出した利用関数識別子がＦｕｎｃ＿ＩＦ０１である場合、抽出した利用関数識別子と一致する影響関数識別子であるＦｕｎｃ＿ＩＦ０１は、図３の影響関数リスト１９２に含まれる。
一致する影響関数識別子が影響関数リスト１９２に含まれる場合（ＹＥＳ）、処理はＳ１１３に進む。
一致する影響関数識別子が影響関数リスト１９２に含まれない場合（ＮＯ）、処理はＳ１１５に進む。
【００３５】
Ｓ１１３において、変更関数抽出部１１０は、一致する影響関数識別子に対応付けられた変更関数識別子を影響関数リスト１９２から抽出する。
一致する影響関数識別子がＦｕｎｃ＿ＩＦ０１である場合、変更関数抽出部１１０は、Ｆｕｎｃ＿ｃｈｇ０１、Ｆｕｎｃ＿ｃｈｇ０２およびＦｕｎｃ＿ｃｈｇ０５を、図３の影響関数リスト１９２から抽出する。
Ｓ１１３の後、処理はＳ１１４に進む。
【００３６】
Ｓ１１４において、変更関数抽出部１１０は、Ｓ１１１で抽出した利用関数識別子とＳ１１３で抽出した変更関数識別子とを互いに対応付けて、変更関数抽出リスト１８１に登録する。
例えば、抽出された利用関数識別子はＦｕｎｃ＿ＩＦ０１である。また、抽出された変更関数識別子はＦｕｎｃ＿ｃｈｇ０１、Ｆｕｎｃ＿ｃｈｇ０２およびＦｕｎｃ＿ｃｈｇ０５である。図４において、これらの識別子は変更関数抽出リスト１８１の１行目に登録されている。
Ｓ１１４の後、処理はＳ１１５に進む。
【００３７】
Ｓ１１５において、変更関数抽出部１１０は、未抽出の利用関数識別子が利用関数リスト１９１に残っているか判定する。
未抽出の利用関数識別子が残っている場合（ＹＥＳ）、処理はＳ１１１に戻る。
未抽出の利用関数識別子が残っていない場合（ＮＯ）、変更関数抽出処理（Ｓ１１０）は終了する。
【００３８】
図１２に戻り、Ｓ１２０から説明を続ける。
Ｓ１２０は絞り込み処理である。
Ｓ１２０において、絞り込み部１２０は、図４の変更関数抽出リスト１８１と図５の関連度範囲情報１９３とを用いて、図６の絞り込みリスト１８２を生成する。
【００３９】
図１４に基づいて、絞り込み処理（Ｓ１２０）の詳細について説明する。
Ｓ１２１において、絞り込み部１２０は、未抽出の利用関数識別子を変更関数抽出リスト１８１から抽出する。
例えば、絞り込み部１２０は、図４の変更関数抽出リスト１８１からＦｕｎｃ＿ＩＦ０１を抽出する。
Ｓ１２１の後、処理はＳ１２２に進む。
【００４０】
Ｓ１２２において、絞り込み部１２０は、抽出した利用関数識別子に対応付けられた変更関数識別子を変更関数抽出リスト１８１から抽出する。
抽出した利用関数識別子がＦｕｎｃ＿ＩＦ０１である場合、絞り込み部１２０は、Ｆｕｎｃ＿ｃｈｇ０１、Ｆｕｎｃ＿ｃｈｇ０２およびＦｕｎｃ＿ｃｈｇ０５を、図４の変更関数抽出リスト１８１から抽出する。
Ｓ１２２の後、処理はＳ１２３に進む。
【００４１】
Ｓ１２３において、絞り込み部１２０は、Ｓ１２１で抽出した利用関数識別子で識別される利用関数の関連度を取得する。
図５の関連度範囲情報１９３において、関連度の内容は、利用関数から呼び出される変更関数の数である。例えば、抽出された利用関数識別子はＦｕｎｃ＿ＩＦ０１であり、抽出された変更関数識別子はＦｕｎｃ＿ｃｈｇ０１、Ｆｕｎｃ＿ｃｈｇ０２およびＦｕｎｃ＿ｃｈｇ０５である。この場合、Ｆｕｎｃ＿ＩＦ０１で識別される利用関数が参照している変更関数は、Ｆｕｎｃ＿ｃｈｇ０１で識別される変更関数と、Ｆｕｎｃ＿ｃｈｇ０２で識別される変更関数と、Ｆｕｎｃ＿ｃｈｇ０５で識別される変更関数との３つである。したがって、Ｆｕｎｃ＿ＩＦ０１で識別される利用関数の関連度は３である。
【００４２】
関連度の内容は、以下の（１）または（２）のような変更関数の数であってもよい。
（１）利用関数が参照している変更関数のうち、複雑度の変化量が５以上である変更関数の数。複雑度の一例はサイクロマティック複雑度である。例えば、サイクロマティック複雑度はｉｆ文の数である。ｉｆ文は分岐文である。「５以上」は変化量の条件である変化量範囲を意味する。
（２）利用関数が参照している変更関数のうち、変更された行が１００行以上である変更関数の数。「１００行以上」は行数の条件である行数範囲を意味する。
【００４３】
関連度の内容は複数あってもよい。その場合、関連度の内容毎に個別の関連度が取得される。そして、関連度の内容毎の関連度を用いて利用関数の関連度が算出される。例えば、関連度の内容毎の関連度を合計した値が利用関数の関連度である。
Ｓ１２３の後、処理はＳ１２４に進む。
【００４４】
Ｓ１２４において、絞り込み部１２０は、利用関数の関連度が関連度範囲に含まれるか判定する。
図５の関連度範囲情報１９３において、関連度範囲は「２以上」である。したがって、利用関数の関連度が３である場合、利用関数の関連度は関連度範囲に含まれる。
利用関数の関連度が関連度範囲に含まれる場合（ＹＥＳ）、処理はＳ１２５に進む。
利用関数の関連度が関連度範囲に含まれない場合（ＮＯ）、処理はＳ１２６に進む。
【００４５】
Ｓ１２５において、絞り込み部１２０は、Ｓ１２１で抽出した利用関数識別子とＳ１２２で抽出した変更関数識別子とを互いに対応付けて、絞り込みリスト１８２に登録する。
例えば、抽出された利用関数識別子はＦｕｎｃ＿ＩＦ０１である。また、抽出された変更関数識別子はＦｕｎｃ＿ｃｈｇ０１、Ｆｕｎｃ＿ｃｈｇ０２およびＦｕｎｃ＿ｃｈｇ０５である。図６において、これらの識別子は絞り込みリスト１８２の１行目に登録されている。
Ｓ１２５の後、処理はＳ１２６に進む。
【００４６】
Ｓ１２６において、絞り込み部１２０は、未抽出の利用関数識別子が変更関数抽出リスト１８１に残っているか判定する。
未抽出の利用関数識別子が残っている場合（ＹＥＳ）、処理はＳ１２１に戻る。
未抽出の利用関数識別子が残っていない場合（ＮＯ）、絞り込み処理（Ｓ１２０）は終了する。
【００４７】
図１２に戻り、Ｓ１３１から説明を続ける。
Ｓ１３１はテスト対象抽出処理に含まれるテスト候補抽出処理である。
Ｓ１３１において、テスト候補抽出部１３１は、図６の絞り込みリスト１８２を用いて、図７のテスト候補リスト１８３を生成する。
【００４８】
図１５に基づいて、テスト対象抽出処理（Ｓ１３１）の詳細について説明する。
Ｓ１３１−１において、テスト候補抽出部１３１は、未抽出の変更関数識別子を絞り込みリスト１８２から抽出する。
例えば、テスト候補抽出部１３１は、図６の絞り込みリスト１８２からＦｕｎｃ＿ｃｈｇ０１を抽出する。
Ｓ１３１−１の後、処理はＳ１３１−２に進む。
【００４９】
Ｓ１３１−２において、テスト候補抽出部１３１は、抽出した変更関数識別子がテスト候補リスト１８３に登録済みか判定する。
抽出された変更関数識別子が登録済みである場合（ＹＥＳ）、処理はＳ１３１−４に進む。
抽出された変更関数識別子が登録済みでない場合（ＮＯ）、処理はＳ１３１−３に進む。
【００５０】
Ｓ１３１−３において、テスト候補抽出部１３１は、抽出した変更関数識別子をテスト候補リスト１８３に登録する。
例えば、抽出された変更関数識別子はＦｕｎｃ＿ｃｈｇ０１である。図７において、この変更関数識別子はテスト候補リスト１８３の１行目に登録されている。
Ｓ１３１−３の後、処理はＳ１３１−４に進む。
【００５１】
Ｓ１３１−４において、テスト候補抽出部１３１は、未抽出の変更関数識別子が絞り込みリスト１８２に残っているか判定する。
未抽出の変更関数識別子が残っている場合（ＹＥＳ）、処理はＳ１３１−１に戻る。
未抽出の変更関数識別子が残っていない場合（ＮＯ）、テスト候補抽出処理（Ｓ１３１）は終了する。
【００５２】
図１２に戻り、Ｓ１３２から説明を続ける。
Ｓ１３２はテスト対象抽出処理に含まれる網羅性評価処理である。
Ｓ１３２において、網羅性評価部１３２は、図７のテスト候補リスト１８３と図８のテスト網羅度リスト１９４と図９の網羅度範囲情報１９５とを用いて、図１０のテスト対象リスト１９６を生成する。
【００５３】
図１６に基づいて、網羅性評価処理（Ｓ１３２）について説明する。
Ｓ１３２−１において、網羅性評価部１３２は、未抽出の変更関数識別子をテスト候補リスト１８３から抽出する。
例えば、網羅性評価部１３２は、図７のテスト候補リスト１８３からＦｕｎｃ＿ｃｈｇ０１を抽出する。
Ｓ１３２−１の後、処理はＳ１３２−２に進む。
【００５４】
Ｓ１３２−２において、網羅性評価部１３２は、抽出した変更関数識別子と同じ変更関数識別子に対応付けられたカバレッジ率をテスト網羅度リスト１９４から抽出する。カバレッジ率はテスト網羅度の一例である。
抽出された変更関数識別子がＦｕｎｃ＿ｃｈｇ０１である場合、網羅性評価部１３２は、図８のテスト網羅度リスト１９４から「１００％」を抽出する。
Ｓ１３２−２の後、処理はＳ１３２−３に進む。
【００５５】
Ｓ１３２−３において、網羅性評価部１３２は、抽出したカバレッジ率が網羅度範囲に含まれるか判定する。
図９の網羅度範囲情報１９５において、網羅度範囲は１００％である。したがって、カバレッジ率が１００％である場合、このカバレッジ率は網羅度範囲に含まれる。
抽出したカバレッジ率が網羅度範囲に含まれる場合（ＹＥＳ）、処理はＳ１３２−５に進む。
抽出したカバレッジ率が網羅度範囲に含まれない場合（ＮＯ）、処理はＳ１３２−４に進む。
【００５６】
Ｓ１３２−４において、網羅性評価部１３２は、Ｓ１３２−１で抽出した変更関数識別子とＳ１３２−２で抽出したカバレッジ率とを互いに対応付けて、テスト対象リスト１９６に登録する。
例えば、抽出された変更関数識別子は「Ｆｕｎｃ＿ｃｈｇ０２」である。また、抽出されたカバレッジ率は「５０％」である。図１０において、「Ｆｕｎｃ＿ｃｈｇ０２」および「５０％」はテスト対象リスト１９６の１行目に登録されている。
Ｓ１３２−４の後、処理はＳ１３２−５に進む。
【００５７】
Ｓ１３２−５において、網羅性評価部１３２は、未抽出の変更関数識別子がテスト候補リスト１８３に残っているか判定する。
未抽出の変更関数識別子が残っている場合（ＹＥＳ）、処理はＳ１３２−１に戻る。
未抽出の変更関数識別子が残っていない場合（ＮＯ）、網羅性評価処理（Ｓ１３２）は終了する。
【００５８】
図１２から図１６に基づいて説明したソフトウェア開発支援方法によって、テストすべき変更関数の識別子が含まれるテスト対象リスト１９６が生成される。
【００５９】
＊＊＊効果の説明＊＊＊
ソフトウェアに含まれる関数のうちでテストを優先的に実施すべき関数を抽出してテスト対象リスト１９６を生成することができる。そして、テスト対象リスト１９６に示される関数をテストすることによって、ソフトウェアの品質を向上させると共にテスト工程の効率化を図ることができる。
【００６０】
実施の形態２．
ソフトウェア開発支援方法が絞り込み処理（Ｓ１２０）を備えない形態について、図１７から図２１に基づいて説明する。但し、実施の形態１と重複する説明は省略する。
【００６１】
＊＊＊構成の説明＊＊＊
図１７に基づいて、ソフトウェア開発支援装置１００の機能構成について説明する。
ソフトウェア開発支援装置１００は、実施の形態１における機能構成（図１参照）のうちの絞り込み部１２０を備えていない。
【００６２】
テスト対象抽出部１３０は、テスト網羅度リスト１９４を用いて、網羅度範囲に含まれないテスト網羅度に対応付けられた変更関数識別子と同じ変更関数識別子を変更関数抽出リスト１８１から抽出する。そして、テスト対象抽出部１３０は、抽出した変更関数識別子を含んだテスト対象リスト１９６を生成する。
【００６３】
＊＊＊動作の説明＊＊＊
図１８に基づいて、ソフトウェア開発支援方法について説明する。
【００６４】
Ｓ１１０は実施の形態１（図１２参照）と同じである。
Ｓ１１０において、変更関数抽出部１１０は、図２の利用関数リスト１９１と図３の影響関数リスト１９２とを用いて、図４の変更関数抽出リスト１８１を生成する。
但し、変更関数抽出部１１０は、利用関数識別子を変更関数抽出リスト１８１に登録しなくてもよい。
【００６５】
Ｓ１３１Ｂにおいて、テスト候補抽出部１３１は、図４の変更関数抽出リスト１８１を用いて、図２０のテスト候補リスト１８３を生成する。
図２０のテスト候補リスト１８３は、図４の変更関数抽出リスト１８１に含まれる変更関数識別子であるＦｕｎｃ＿ｃｈｇ０８を含んでいる。
【００６６】
図１９に基づいて、テスト候補抽出処理（Ｓ１３１Ｂ）の詳細について説明する。
Ｓ１３１Ｂ−１において、テスト候補抽出部１３１は、未抽出の変更関数識別子を変更関数抽出リスト１８１から抽出する。
Ｓ１３１Ｂ−１の後、処理はＳ１３１−２に進む。
Ｓ１３１−２以降の処理は実施の形態１（図１５参照）と同じである。
【００６７】
Ｓ１３２は実施の形態１（図１２参照）と同じである。
Ｓ１３２において、網羅性評価部１３２は、図２０のテスト候補リスト１８３と図８のテスト網羅度リスト１９４と図９の網羅度範囲情報１９５とを用いて、図２１のテスト対象リスト１９６を生成する。
図８のテスト網羅度リスト１９４において、Ｆｕｎｃ＿ｃｈｇ０８のカバレッジ率は８０％である。また、図９の網羅度範囲情報１９５において、網羅度範囲は１００％である。そのため、図２１のテスト対象リスト１９６はＦｕｎｃ＿ｃｈｇ０８を含んでいる。
【００６８】
＊＊＊効果の説明＊＊＊
テスト対象リスト１９６を生成するための処理数を減らすことができる。
【００６９】
各実施の形態は、好ましい形態の例示であり、本発明の技術的範囲を制限することを意図するものではない。各実施の形態は、部分的に実施してもよいし、他の実施の形態と組み合わせて実施してもよい。
構成図等を用いて説明した構成は、ソフトウェア開発支援装置１００の構成の一例である。
フローチャート等を用いて説明した処理手順は、ソフトウェア開発支援装置１００、ソフトウェア開発支援方法およびソフトウェア開発支援プログラムの処理手順の一例である。
【符号の説明】
【００７０】
１００  ソフトウェア開発支援装置、１１０  変更関数抽出部、１２０  絞り込み部、１３０  テスト対象抽出部、１３１  テスト候補抽出部、１３２  網羅性評価部、１８１  変更関数抽出リスト、１８２  絞り込みリスト、１８３  テスト候補リスト、１９０  データ記憶部、１９１  利用関数リスト、１９２  影響関数リスト、１９３  関連度範囲情報、１９４  テスト網羅度リスト、１９５  網羅度範囲情報、１９６  テスト対象リスト、９０１  プロセッサ、９０２  補助記憶装置、９０３  メモリ、９０４  通信装置、９０４１  レシーバ、９０４２  トランスミッタ、９０５  入力インタフェース、９０６  ディスプレイインタフェース、９０７  入力装置、９０８  ディスプレイ、９１０  信号線、９１１  ケーブル、９１２  ケーブル。
【図１】
2016134072.tif 000003
【図２】
2016134072.tif 000004
【図３】
2016134072.tif 000005
【図４】
2016134072.tif 000006
【図５】
2016134072.tif 000007
【図６】
2016134072.tif 000008
【図７】
2016134072.tif 000009
【図８】
2016134072.tif 000010
【図９】
2016134072.tif 000011
【図１０】
2016134072.tif 000012
【図１１】
2016134072.tif 000013
【図１２】
2016134072.tif 000014
【図１３】
2016134072.tif 000015
【図１４】
2016134072.tif 000016
【図１５】
2016134072.tif 000017
【図１６】
2016134072.tif 000018
【図１７】
2016134072.tif 000019
【図１８】
2016134072.tif 000020
【図１９】
2016134072.tif 000021
【図２０】
2016134072.tif 000022
【図２１】
2016134072.tif 000023