(57)【要約】【課題】バグでない構文についてソースコードを確認するという無駄な手間の発生を抑制して、バグ確認作業に要するユーザの手間を軽減させることを課題とする。【解決手段】複数の構文により構成されるソースコードと、バグの可能性がある構文を検出するための複数の検出条件情報とを照らし合わせて、バグの可能性がある構文を検出し、検出された構文に一意に付与されている構文識別情報を列挙して生成した構文識別情報一覧をユーザに出力する。そして、構文識別情報一覧の中から、いずれかの構文識別情報の選択をユーザから受け付けた場合に、構文識別情報一覧の中にある各構文識別情報に対応する構文と、選択された構文識別情報に対応する構文との間の類似度を算出して、類似度が閾値以上の構文識別情報を列挙した類似構文識別情報一覧を生成して、ユーザにより選択された構文識別情報と対応付けて出力する。【選択図】        図１
2010079447.tif 000002
【特許請求の範囲】
【請求項１】
複数の構文により構成されるソースコードと、バグの可能性がある構文を検出するための検出条件を示した複数の検出条件情報とを照らし合わせて、バグの可能性がある構文を検出し、検出された構文に一意に付与されている構文識別情報を列挙して生成した構文識別情報一覧をユーザに出力する構文識別情報一覧出力手順と、
前記構文識別情報一覧の中から、いずれかの構文識別情報の選択をユーザから受け付けた場合に、前記構文識別情報一覧の中にある各構文識別情報に対応する構文と、前記選択された構文識別情報に対応する構文との間の類似度を算出する類似度算出手順と、
前記構文識別情報一覧の中にある各構文識別情報の中から、前記類似度算出手順によって算出された類似度が予め設定されている所定の閾値以上の構文識別情報を特定する構文識別情報特定手順と、
前記構文識別情報特定手順により特定された構文識別情報を列挙して類似構文識別情報一覧を生成し、生成された類似構文識別情報一覧をユーザにより選択された構文識別情報と対応付けてユーザに出力する類似構文識別情報一覧出力手順と、
をコンピュータに実行させるバグ検出支援プログラム。
【請求項２】
前記構文識別情報一覧出力手順は、前記構文識別情報と、当該構文識別情報に対応する構文が満足している検出条件情報とを対応付けて列挙した構文識別情報一覧を生成し、
前記類似度算出手順は、前記構文識別情報一覧の中から、ユーザにより選択された構文識別情報と同一の検出条件識別情報に対応する構文識別情報を抽出して、抽出された構文識別情報それぞれについて類似度を算出し、
前記構文識別情報特定手順は、ユーザにより選択された構文識別情報と同一の検出条件識別情報に対応する各構文識別情報の中から、前記類似度算出手順によって算出された類似度が予め設定されている所定の閾値以上の構文識別情報を特定する請求項１に記載のバグ検出支援プログラム。
【請求項３】
前記類似度を算出するための算出定義を示した複数の算出定義情報の中から、単数または複数の算出定義情報の選択をユーザから受け付ける算出定義情報選択受付手順をさらにコンピュータに実行させ、
前記類似度算出手順は、前記構文識別情報一覧の中にある各構文識別情報それぞれについて、前記算出定義情報選択受付手順によって受け付けられた各算出定義情報に対応する類似度をそれぞれ算出し、
前記構文識別情報特定手順は、前記類似度算出手順によって算出された各算出定義情報に対応する類似度の合計値が予め設定されている所定の閾値以上の構文識別情報を特定する請求項１または２に記載のバグ検出支援プログラム。
【請求項４】
ユーザにより選択された各算出定義情報それぞれの重みを示した重み情報をユーザから受け付ける重み情報受付手順をさらにコンピュータに実行させ、
前記構文識別情報特定手順は、前記重み情報受付手順によって受け付けられた重み情報を用いて、前記類似度算出手順によって算出された各算出定義情報に対応する類似度に対してそれぞれ重み付けして得た値の合計値が予め設定されている所定の閾値以上の構文識別情報を特定する請求項３に記載のバグ検出支援プログラム。
【請求項５】
前記類似構文識別情報一覧出力手順は、前記構文識別情報特定手順により特定された構文識別情報と、前記類似度算出手順によって算出された各算出定義情報に対応する類似度とを応付けて列挙した類似構文識別情報一覧を生成して、生成された類似構文識別情報一覧をユーザにより選択された構文識別情報と対応付けてユーザに出力する請求項３または４に記載のバグ検出支援プログラム。
【請求項６】
複数の構文により構成されるソースコードと、バグの可能性がある構文を検出するための検出条件を示した複数の検出条件情報とを照らし合わせることで、バグの可能性がある構文を識別するための構文識別情報が列挙されて生成された構文識別情報一覧の中から、いずれかの構文識別情報の選択をユーザから受け付けた場合に、前記構文識別情報一覧の中にある各構文識別情報に対応する構文と、前記選択された構文識別情報に対応する構文との間の類似度を算出する類似度算出手順と、
前記構文識別情報一覧の中にある各構文識別情報の中から、前記類似度算出手順によって算出された類似度が予め設定されている所定の閾値以上の構文識別情報を特定する構文識別情報特定手順と、
前記構文識別情報特定手順により特定された構文識別情報を列挙して類似構文識別情報一覧を生成し、生成された類似構文識別情報一覧をユーザにより選択された構文識別情報と対応付けてユーザに出力する類似構文識別情報一覧出力手順と、
をコンピュータに実行させる類似構文識別情報一覧出力プログラム。
【請求項７】
複数の構文により構成されるソースコードと、バグの可能性がある構文を検出するための検出条件を示した複数の検出条件情報とを照らし合わせて、バグの可能性がある構文を検出し、検出された構文に一意に付与されている構文識別情報を列挙して生成した構文識別情報一覧をユーザに出力する構文識別情報一覧出力部と、
前記構文識別情報一覧の中から、いずれかの構文識別情報の選択をユーザから受け付けた場合に、前記構文識別情報一覧の中にある各構文識別情報に対応する構文と、前記選択された構文識別情報に対応する構文との間の類似度を算出する類似度算出部と、
前記構文識別情報一覧の中にある各構文識別情報の中から、前記類似度算出部によって算出された類似度が予め設定されている所定の閾値以上の構文識別情報を特定する構文識別情報特定部と、
前記構文識別情報特定部により特定された構文識別情報を列挙して類似構文識別情報一覧を生成し、生成された類似構文識別情報一覧をユーザにより選択された構文識別情報と対応付けてユーザに出力する類似構文識別情報一覧出力部と、
を有するバグ検出支援装置。
【請求項８】
複数の構文により構成されるソースコードと、バグの可能性がある構文を検出するための検出条件を示した複数の検出条件情報とを照らし合わせて、バグの可能性がある構文を検出し、検出された構文に一意に付与されている構文識別情報を列挙して生成した構文識別情報一覧をユーザに出力する構文識別情報一覧出力ステップと、
前記構文識別情報一覧の中から、いずれかの構文識別情報の選択をユーザから受け付けた場合に、前記構文識別情報一覧の中にある各構文識別情報に対応する構文と、前記選択された構文識別情報に対応する構文との間の類似度を算出する類似度算出ステップと、
前記構文識別情報一覧の中にある各構文識別情報の中から、前記類似度算出ステップによって算出された類似度が予め設定されている所定の閾値以上の構文識別情報を特定する構文識別情報特定ステップと、
前記構文識別情報特定ステップにより特定された構文識別情報を列挙して類似構文識別情報一覧を生成し、生成された類似構文識別情報一覧をユーザにより選択された構文識別情報と対応付けてユーザに出力する類似構文識別情報一覧出力ステップと、
を含むバグ検出支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ソースコードを構成する複数の構文の中から、バグの可能性がある構文を検出するバグ検出支援プログラム、類似構文識別情報一覧出力プログラム、バグ検出支援装置およびバグ検出支援方法に関する。
【背景技術】
【０００２】
ソフトウェア開発では、ソフトウェア開発者により作成されたソースコード内にあるバグを取り除く作業が行われる。このバグを取り除く作業に要するソフトウェア開発者の手間を軽減させることを目的として、ソースコードを構成する複数の構文の中から、バグの可能性がある構文を検出するツールがある（例えば、特許文献１参照）。以下では、上記したツールを適用したバグ検出支援装置について簡単に説明する。
【０００３】
バグ検出支援装置は、複数の検出条件情報を予め記憶部に記憶する。ここで、検出条件情報とは、バグの可能性がある構文を検出するための検出条件を示した情報であり、例えば、検出条件情報「条件式‘ｉｆ’で、代入演算子‘＝’を使用している」である。そして、バグ検出支援装置は、ソフトウェア開発者からソースコードの入力および検出要求を受け付けると、ソースコードと各検出条件情報とを照らし合わせる。続いて、バグ検出支援装置は、ソースコードを構成する各構文の中から、各検出条件情報の内でいずれかの検出条件情報を満足する構文（例えば、構文「ｉｆ（ｂ＝０）」など）を検出する。
【０００４】
次に、バグ検出支援装置は、検出された構文に一意に付与されている構文識別情報（例えば、構文の行番号）と、検出された構文が満足している検出条件情報とを対応付けて列挙した構文識別情報一覧を生成する。そして、バグ検出支援装置は、生成した構文識別情報一覧をソフトウェア開発者に対して表示出力する。
【０００５】
構文識別情報一覧を参照したソフトウェア開発者は、構文識別情報一覧の中にある各構文識別情報に対応するソースコード上の構文について、バグであるか否かを１つずつ目視で確認する。例えば、ソフトウェア開発者は、等値演算子‘＝＝’を使用すべき構文に代入演算子‘＝’を使用していないかを確認する。そして、ソフトウェア開発者は、バグであると判断した場合に、バグを取り除く。
【０００６】
【特許文献１】特開２００５−２２８２４１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところで、従来のバグ検出支援装置では、バグであるか否かを確認する作業を行うソフトウェア開発者に無駄な手間を強いることがあるという課題があった。すなわち、従来のバグ検出支援装置は、バグの可能性がある構文の構文識別情報を列挙して出力しているに過ぎない。そのため、ソフトウェア開発者は、列挙された構文識別情報に対応する全ての構文について、１つずつソースコードを確認して、バグであるか否かを確認しなければならなかった。したがって、従来のバグ検出支援装置では、バグでない構文についてもソースコードを確認するという無駄な手間をソフトウェア開発者に強いるという問題点があった。
【０００８】
そこで、バグ検出支援プログラム、類似構文識別情報一覧出力プログラム、バグ検出支援装置およびバグ検出支援方法は、上述した従来技術の課題を解決するためになされたものであり、バグでない構文についてソースコードを確認するという無駄な手間の発生を抑制して、バグであるか否かを確認する作業に要するソフトウェア開発者の手間を軽減させることが可能なバグ検出支援プログラム、類似構文識別情報一覧出力プログラム、バグ検出支援装置およびバグ検出支援方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するため、開示のバグ検出支援プログラムは、複数の構文により構成されるソースコードと、バグの可能性がある構文を検出するための検出条件を示した複数の検出条件情報とを照らし合わせて、バグの可能性がある構文を検出し、検出された構文に一意に付与されている構文識別情報を列挙して生成した構文識別情報一覧をユーザに出力する構文識別情報一覧出力手順と、前記構文識別情報一覧の中から、いずれかの構文識別情報の選択をユーザから受け付けた場合に、前記構文識別情報一覧の中にある各構文識別情報に対応する構文と、前記選択された構文識別情報に対応する構文との間の類似度を算出する類似度算出手順と、前記構文識別情報一覧の中にある各構文識別情報の中から、前記類似度算出手順によって算出された類似度が予め設定されている所定の閾値以上の構文識別情報を特定する構文識別情報特定手順と、前記構文識別情報特定手順により特定された構文識別情報を列挙して類似構文識別情報一覧を生成し、生成された類似構文識別情報一覧をユーザにより選択された構文識別情報と対応付けてユーザに出力する類似構文識別情報一覧出力手順とをコンピュータに実行させることを要する。
【００１０】
また、開示の類似構文識別情報一覧出力プログラムは、複数の構文により構成されるソースコードと、バグの可能性がある構文を検出するための検出条件を示した複数の検出条件情報とを照らし合わせることで、バグの可能性がある構文を識別するための構文識別情報が列挙されて生成された構文識別情報一覧の中から、いずれかの構文識別情報の選択をユーザから受け付けた場合に、前記構文識別情報一覧の中にある各構文識別情報に対応する構文と、前記選択された構文識別情報に対応する構文との間の類似度を算出する類似度算出手順と、前記構文識別情報一覧の中にある各構文識別情報の中から、前記類似度算出手順によって算出された類似度が予め設定されている所定の閾値以上の構文識別情報を特定する構文識別情報特定手順と、前記構文識別情報特定手順により特定された構文識別情報を列挙して類似構文識別情報一覧を生成し、生成された類似構文識別情報一覧をユーザにより選択された構文識別情報と対応付けてユーザに出力する類似構文識別情報一覧出力手順とをコンピュータに実行させることを要する。
【００１１】
また、開示のバグ検出支援装置は、複数の構文により構成されるソースコードと、バグの可能性がある構文を検出するための検出条件を示した複数の検出条件情報とを照らし合わせて、バグの可能性がある構文を検出し、検出された構文に一意に付与されている構文識別情報を列挙して生成した構文識別情報一覧をユーザに出力する構文識別情報一覧出力部と、前記構文識別情報一覧の中から、いずれかの構文識別情報の選択をユーザから受け付けた場合に、前記構文識別情報一覧の中にある各構文識別情報に対応する構文と、前記選択された構文識別情報に対応する構文との間の類似度を算出する類似度算出部と、前記構文識別情報一覧の中にある各構文識別情報の中から、前記類似度算出部によって算出された類似度が予め設定されている所定の閾値以上の構文識別情報を特定する構文識別情報特定部と、前記構文識別情報特定部により特定された構文識別情報を列挙して類似構文識別情報一覧を生成し、生成された類似構文識別情報一覧をユーザにより選択された構文識別情報と対応付けてユーザに出力する類似構文識別情報一覧出力部とを有することを要する。
【００１２】
また、開示のバグ検出支援方法は、複数の構文により構成されるソースコードと、バグの可能性がある構文を検出するための検出条件を示した複数の検出条件情報とを照らし合わせて、バグの可能性がある構文を検出し、検出された構文に一意に付与されている構文識別情報を列挙して生成した構文識別情報一覧をユーザに出力する構文識別情報一覧出力ステップと、前記構文識別情報一覧の中から、いずれかの構文識別情報の選択をユーザから受け付けた場合に、前記構文識別情報一覧の中にある各構文識別情報に対応する構文と、前記選択された構文識別情報に対応する構文との間の類似度を算出する類似度算出ステップと、前記構文識別情報一覧の中にある各構文識別情報の中から、前記類似度算出ステップによって算出された類似度が予め設定されている所定の閾値以上の構文識別情報を特定する構文識別情報特定ステップと、前記構文識別情報特定ステップにより特定された構文識別情報を列挙して類似構文識別情報一覧を生成し、生成された類似構文識別情報一覧をユーザにより選択された構文識別情報と対応付けてユーザに出力する類似構文識別情報一覧出力ステップとを含むことを要する。
【発明の効果】
【００１３】
開示のバグ検出支援プログラム、類似構文識別情報一覧出力プログラム、バグ検出支援装置およびバグ検出支援方法によれば、バグでない構文についてソースコードを確認するという無駄な手間の発生を抑制して、バグであるか否かを確認する作業に要するソフトウェア開発者の手間を軽減させることが可能である。
【発明を実施するための最良の形態】
【００１４】
以下に添付図面を参照して、この発明に係るバグ検出支援プログラム、類似構文識別情報一覧出力プログラム、バグ検出支援装置およびバグ検出支援方法の実施例を詳細に説明する。なお、以下では、この発明が適用されたバグ検出支援装置を実施例として説明する。
【実施例１】
【００１５】
以下の実施例１では、実施例１に係るバグ検出支援装置の概要、バグ検出支援装置の構成、バグ検出支援装置による処理の流れを順に説明し、最後に実施例１の効果を説明する。
【００１６】
［実施例１に係るバグ検出支援装置の概要］
まず、図１を用いて実施例１に係るバグ検出支援装置を説明する。図１は、実施例１に係るバグ検出支援装置の概要を説明するための図である。
【００１７】
実施例１に係るバグ検出支援装置は、バグの可能性がある構文の構文識別情報を列挙した構文識別情報一覧をソフトウェア開発者に対して出力すること概要とし、特に、バグでない構文についてソースコードを確認するという無駄な手間の発生を抑制して、バグであるか否かを確認する作業に要するソフトウェア開発者の手間を軽減させる。
【００１８】
すなわち、バグ検出支援装置は、バグの可能性がある構文の検出要求をソフトウェア開発者から受け付けると、複数の構文により構成されるソースコードと、バグの可能性がある構文を検出するための検出条件を示した複数の検出条件情報とを照らし合わせて、バグの可能性がある構文を検出する。続いて、バグ検出支援装置は、図１の（Ａ）示すように、検出された構文に一意に付与されている構文識別情報を列挙して生成した構文識別情報一覧をソフトウェア開発者に対して出力する。
【００１９】
構文識別情報一覧を参照したソフトウェア開発者は、構文識別情報一覧の中から任意に選択した所定の構文識別情報に対応するソースコード上の構文について、バグであるか否かを確認する。続いて、ソフトウェア開発者は、バグであるか否かを確認した構文識別情報の選択指示をバグ検出支援装置に入力する。
【００２０】
バグ検出支援装置は、図１の（Ｂ）示すように、構文識別情報の選択指示をソフトウェア開発者から受け付けると、図１の（Ｃ）示すように、構文識別情報一覧の中にある各構文識別情報に対応する構文と、ソフトウェア開発者により選択された構文識別情報に対応する構文との間の類似度を算出する。続いて、バグ検出支援装置は、図１の（Ｄ）示すように、構文識別情報一覧の中にある各構文識別情報の中から、算出された類似度が予め設定されている所定の閾値以上の構文識別情報を特定する。そして、バグ検出支援装置は、図１の（Ｅ）示すように、特定された構文識別情報を列挙した類似構文識別情報一覧を生成して、生成された類似構文識別情報一覧をソフトウェア開発者により選択された構文識別情報と対応付けてソフトウェア開発者に出力する。
【００２１】
このようなことから、実施例１に係るバグ検出支援装置は、バグでない構文についてソースコードを確認するという無駄な手間の発生を抑制して、バグであるか否かを確認する作業に要するソフトウェア開発者の手間を軽減させることが可能である。例えば、実施例１に係るバグ検出支援装置は、バグが検出された構文の構文識別情報の選択をソフトウェア開発者から受け付けた場合には、バグが検出された構文と類似する構文の構文識別情報を列挙した類似構文識別情報一覧を出力する。そのため、ソフトウェア開発者は、類似構文識別情報一覧に列挙された構文識別情報に対応する構文だけバグであるか否かを確認すれば、バグがある構文を効率よく検出することができる。したがって、実施例１に係るバグ検出支援装置は、バグでない構文についてソースコードを確認するという無駄な手間の発生を抑制して、バグであるか否かを確認する作業に要するソフトウェア開発者の手間を軽減させることが可能である。
【００２２】
また、実施例１に係るバグ検出支援装置は、バグが検出されなかった構文の構文識別情報の選択をソフトウェア開発者から受け付けた場合には、バグが検出されなかった構文と類似する構文の構文識別情報を列挙した類似構文識別情報一覧を出力する。そのため、ソフトウェア開発者は、類似構文識別情報一覧に列挙された構文識別情報について、バグであるか否かを確認する必要が無く、ソースコードのバグ確認作業に関する手間を省くことができる。したがって、実施例１に係るバグ検出支援装置は、バグでない構文についてソースコードを確認するという無駄な手間の発生を抑制して、バグであるか否かを確認する作業に要するソフトウェア開発者の手間を軽減させることが可能である。
【００２３】
［バグ検出支援装置の構成］
次に、図２〜図７を用いて、図１で説明したバグ検出支援装置の構成を説明する。図２は、バグ検出支援装置の構成を示すブロック図である。図３は、ソースコード記憶部に記憶される情報の一例を示した図である。図４は、解析データ記憶部に記憶される情報の一例を示した図である。図５は、構文識別情報一覧の一例を示した図である。図６は、選択構文識別情報一覧の一例を示した図である。図７は、類似構文識別情報一覧の一例を示した図である。
【００２４】
図２に示すように、バグ検出支援装置１０は、入力部１１、出力部１２、ソースコード記憶部２１、解析データ記憶部２２、検出条件情報記憶部２３、ログ記憶部２４、選択指示情報記憶部２５、類似度算出結果記憶部２６、ソースコード解析部３１、構文識別情報一覧出力部３２、類似度算出部３３および類似構文識別情報一覧出力部３４を有する。なお、類似構文識別情報一覧出力部３４は、構文識別情報特定部ともいう。
【００２５】
このうち、入力部１１は、各種の情報の入力を受付ける。具体的には、入力部１１は、キーボードやマウスなどを備えて構成される。
【００２６】
出力部１２は、各種の情報を出力する。具体的には、出力部１２は、モニタやディスプレイを備えて構成され、例えば、構文識別情報を列挙した構文識別情報一覧などを表示出力する。
【００２７】
ソースコード記憶部２１は、ソフトウェア開発者により作成されたソースコードを記憶する（図３参照）。また、解析データ記憶部２２は、ソースコードを静的解析して生成された解析データを記憶する。ここで、解析データとは、例えば、言語要素に変換されたソースコードを示したプログラムモデルと、データの参照関係や関数の呼び出し関係を示したデータモデルと、データの処理の流れを示したフローモデルとを含むデータである（図４参照）。
【００２８】
検出条件情報記憶部２３は、バグの可能性がある構文を検出するための検出条件を示した複数の検出条件情報を記憶する。具体的には、検出条件情報記憶部２３は、検出条件情報を識別するための検出条件識別情報と、検出条件情報とを対応付けて記憶する。例えば、検出条件情報記憶部２３は、検出条件識別情報「ｐｇｒ０７２２」と、検出条件情報「条件式‘ｉｆ’で、代入演算子‘＝’を使用している」とを対応付けて記憶する。
【００２９】
ログ記憶部２４は、バグの可能性がある構文の構文識別情報と、検出条件識別情報とを対応付けてなるログを記憶する。具体的には、ログ記憶部２４は、ログとして、ソースコードのファイル名、構文識別情報（例えば、構文の行番号）、検出条件識別情報が属するグループを示したグループ名（例えば、グループ名「ａ」）、検出条件識別情報およびメッセージ（例えば、「条件式‘ｉｆ（ｉ＝ｆｕｎｃ（））」’で、代入演算子‘＝’を使用している」）を対応付けて記憶する。
【００３０】
選択指示情報記憶部２５は、構文識別情報一覧の中から選択された構文識別情報、検出条件識別情報、ソースコードのファイル名およびメッセージを対応付けて記憶する。また、類似度算出結果記憶部２６は、ソースコードのファイル名、構文識別情報および構文間の類似度合いを示した類似度を対応付けて記憶する。
【００３１】
ソースコード解析部３１は、ソースコードを静的解析して、プログラムモデルと、データモデルと、フローモデルとを含む解析データを生成する。具体的には、ソースコード解析部３１は、ソフトウェア開発者から検出要求を受け付けると、ソースコード記憶部２１からソースコードを読み出して、ソースコードを静的解析して解析データを生成する。続いて、ソースコード解析部３１は、生成した解析データを解析データ記憶部２２に格納する。
【００３２】
構文識別情報一覧出力部３２は、ソースコードと、複数の検出条件情報とを照らし合わせて、バグの可能性がある構文を検出し、検出された構文に一意に付与されている構文識別情報を列挙して構文識別情報一覧を生成する。そして、構文識別情報一覧出力部３２は、生成した構文識別情報一覧をソフトウェア開発者に対して出力する。具体的には、構文識別情報一覧出力部３２は、解析データ記憶部２２に解析データが格納されると、解析データ記憶部２２から解析データを読み出すとともに、検出条件情報記憶部２３から全ての検出条件情報を読み出す。
【００３３】
続いて、構文識別情報一覧出力部３２は、解析データを構成する各構文の中から、いずれかの検出条件情報を満足する構文をバグの可能性がある構文として検出する。そして、構文識別情報一覧出力部３２は、バグの可能性がある構文を検出すると、検出した構文に一意に付与されている構文識別情報や、その構文が満足している検出条件情報の検出条件識別情報などを対応付けたログを生成して、生成したログをログ記憶部２４に格納する。
【００３４】
その後、構文識別情報一覧出力部３２は、全てのバグの可能性がある構文を解析データの中から検出すると、ログ記憶部２４に格納した全てのログを読み出し、構文識別情報を列挙した構文識別情報一覧を生成する。そして、構文識別情報一覧出力部３２は、生成した構文識別情報一覧を出力部１２を介してソフトウェア開発者に対して表示出力する。例えば、構文識別情報一覧出力部３２は、図５に示すように、指摘メッセージビューワに構文識別情報一覧を出力する。
【００３５】
類似度算出部３３は、構文識別情報一覧の中から、いずれかの構文識別情報の選択をソフトウェア開発者から受け付けた場合に、構文識別情報一覧の中にある各構文識別情報に対応する構文と、ソフトウェア開発者により選択された構文識別情報に対応する構文との間の類似度を算出する。
【００３６】
具体的には、類似度算出部３３は、構文識別情報一覧の中から、いずれかの構文識別情報の選択を入力部を介してソフトウェア開発者から受け付けると、ソフトウェア開発者により選択された構文識別情報や、検出条件識別情報などを選択指示情報記憶部２５に格納する。続いて、類似度算出部３３は、ソフトウェア開発者により選択された構文識別情報や、検出条件識別情報などを列挙した選択構文識別情報一覧を生成して、生成した選択構文識別情報一覧を出力部１２を介してソフトウェア開発者に対して表示出力する。例えば、類似度算出部３３は、図６に示すように、類似度ビューワに選択構文識別情報一覧を出力する。
【００３７】
そして、類似度算出部３３は、選択構文識別情報一覧の中から、いずれかの構文識別情報の選択を入力部を介してソフトウェア開発者から受け付けると、ソフトウェア開発者により選択された構文識別情報に対応する検出条件識別情報を選択指示情報記憶部２５から読み出す。続いて、類似度算出部３３は、読み出した検出条件識別情報と同一の検出条件識別情報を含むログをログ記憶部２４に記憶されている全てのログの中から検索して、検索した各ログに含まれている構文識別情報を取得する。
【００３８】
次に、類似度算出部３３は、解析データ記憶部２２に記憶されている解析データの中から、取得した各構文識別情報に基づいて、比較対象となる各構文を抽出するとともに、ソフトウェア開発者により選択された構文識別情報に基づいて、比較元となる構文を抽出する。続いて、類似度算出部３３は、比較対象となる各構文それぞれについて、比較元となる構文と比較して、構文間の類似度合いを示した類似度を算出する。そして、類似度算出部３３は、比較対象の構文の構文識別情報や、算出した類似度などを対応づけて類似度算出結果記憶部２６に格納する。
【００３９】
類似構文識別情報一覧出力部３４は、構文識別情報一覧の中にある各構文識別情報の中から、類似度算出部３３によって算出された類似度が予め設定されている所定の閾値以上の構文識別情報を特定する。そして、類似構文識別情報一覧出力部３４は、特定された構文識別情報を列挙して類似構文識別情報一覧を生成し、生成された類似構文識別情報一覧をソフトウェア開発者により選択された構文識別情報と対応付けてソフトウェア開発者に出力する。
【００４０】
具体的には、類似構文識別情報一覧出力部３４は、類似度算出結果記憶部２６に記憶されている全ての構文識別情報の中から、予め設定されている所定の閾値以上の類似度に対応する構文識別情報を特定する。そして、類似構文識別情報一覧出力部３４は、特定した構文識別情報を列挙した類似構文識別情報一覧を生成して、生成された類似構文識別情報一覧をソフトウェア開発者により選択された構文識別情報と対応付けて出力部１２を介してソフトウェア開発者に対して表示出力する。例えば、類似構文識別情報一覧出力部３４は、図７に示すように、類似度ビューワに類似構文識別情報一覧を出力する。
【００４１】
［バグ検出支援装置による処理］
次に、図８を用いて、バグ検出支援装置１０による処理を説明する。図８は、バグ検出支援装置による処理の流れを示すフローチャート図である。図８に示すように、構文識別情報一覧出力部３２は、ソースコードからバグの可能性がある構文を検出して、構文識別情報一覧を生成し、出力する（ステップＳ１０１）。
【００４２】
続いて、類似度算出部３３は、構文識別情報一覧の中から、いずれかの構文識別情報の選択を受け付けると（ステップＳ１０２肯定）、ソフトウェア開発者により選択された構文識別情報を列挙した選択構文識別情報一覧を生成し、出力する（ステップＳ１０３）。そして、類似度算出部３３は、選択構文識別情報一覧の中から、いずれかの構文識別情報の選択を受け付けると（ステップＳ１０４肯定）、ソフトウェア開発者により選択された構文識別情報と同一の検出条件識別情報に対応する構文識別情報を取得する（ステップＳ１０５）。
【００４３】
続いて、類似度算出部３３は、取得した各構文識別情報に対応する構文と、ソフトウェア開発者により選択された構文識別情報に対応する構文との間の類似度を算出する（ステップＳ１０６）。その後、類似構文識別情報一覧出力部３４は、取得された全ての構文識別情報について類似度が算出されると（ステップＳ１０７肯定）、所定の閾値以上の類似度の構文識別情報を列挙した類似構文識別情報一覧を生成して、出力し（ステップＳ１０８）、処理を終了する。
【００４４】
［実施例１の効果］
上記したように、実施例１によれば、バグでない構文についてソースコードを確認するという無駄な手間の発生を抑制して、バグであるか否かを確認する作業に要するソフトウェア開発者の手間を軽減させることが可能である。例えば、バグ検出支援装置１０は、バグが検出された構文の構文識別情報の選択をソフトウェア開発者から受け付けた場合には、バグが検出された構文と類似する構文の構文識別情報を列挙した類似構文識別情報一覧を出力する。そのため、ソフトウェア開発者は、類似構文識別情報一覧に列挙された構文識別情報に対応する構文について、ソースコードを確認して、バグであるか否かを確認すれば、バグがある構文を効率よく検出することができる。したがって、バグ検出支援装置１０は、バグでない構文についてソースコードを確認するという無駄な手間の発生を抑制して、バグであるか否かを確認する作業に要するソフトウェア開発者の手間を軽減させることが可能である。
【００４５】
また、バグ検出支援装置１０は、バグが検出されなかった構文の構文識別情報の選択をソフトウェア開発者から受け付けた場合には、バグが検出されなかった構文と類似する構文の構文識別情報を列挙した類似構文識別情報一覧を出力する。そのため、ソフトウェア開発者は、類似構文識別情報一覧に列挙された構文識別情報について、ソースコードを確認して、バグであるか否かを確認する必要が無く、ソースコードのバグ確認作業に関する手間を省くことができる。したがって、バグ検出支援装置１０は、バグでない構文についてソースコードを確認するという無駄な手間の発生を抑制して、バグであるか否かを確認する作業に要するソフトウェア開発者の手間を軽減させることが可能である。
【実施例２】
【００４６】
さて、構文間の類似度を算出する方法については、種々の異なる形態にて実施されてよいものである。そこで、以下の実施例２では、ソフトウェア開発者により設定された算出定義情報を用いて構文間の類似度を算出するバグ検出支援装置１０について説明する。なお、以下では、実施例２に係るバグ検出支援装置の構成、バグ検出支援装置による処理の流れ、実施例２の効果を説明する。
【００４７】
［バグ検出支援装置の構成］
まず、図９〜図１３を用いて、実施例２に係るバグ検出支援装置の構成を説明する。図９は、実施例２に係るバグ検出支援装置の構成を示すブロック図である。図１０は、算出定義情報記憶部に記憶される情報の一例を示した図である。図１１および図１２は、類似度算出部による処理を説明するための図である。図１３は、類似構文識別情報一覧の一例を示した図である。
【００４８】
実施例２に係るバグ検出支援装置の構成は、図９に示すように、算出定義情報記憶部２７をさらに有する他は、実施例１に係るバグ検出支援装置の構成と、以下に説明する点が異なる。すなわち、算出定義情報記憶部２７は、類似度を算出するための算出定義を示した複数の算出定義情報を記憶する。具体的に一例をあげて説明すると、図１０に示すように、算出定義情報記憶部２７は、算出定義情報を識別するための算出定義識別情報と、算出定義情報とを対応付けて記憶する。ここで、例えば、算出定義識別情報「ｐｇｒ０７２２−１」とは、検出条件識別情報「ｐｇｒ０７２２」に対応していることを意味する。また、例えば、算出定義識別情報「共通−１」とは、全ての検出条件識別情報に対応していることを意味する。
【００４９】
類似度算出部３３は、類似度を算出するための算出定義を示した複数の算出定義情報の中から、単数または複数の算出定義情報の選択と、各算出定義情報それぞれの重みを示した重み情報とをソフトウェア開発者から受け付ける。続いて、類似度算出部３３は、構文識別情報一覧の中にある構文識別情報それぞれについて、算出定義情報ソフトウェア開発者により選択された各算出定義情報を用いて、各算出定義情報に対応する類似度をそれぞれ算出する。そして、類似度算出部３３は、重み情報を用いて、算出された各算出定義情報に対応する類似度に対してそれぞれ重み付けして得た値の合計値を算出する。
【００５０】
具体的には、類似度算出部３３は、選択構文識別情報一覧の中から、いずれかの構文識別情報の選択を入力部を介してソフトウェア開発者から受け付けると、ソフトウェア開発者により選択された構文識別情報に対応する検出条件識別情報を選択指示情報記憶部２５から読み出す。次に、類似度算出部３３は、選択指示情報記憶部２５から読み出した検出条件識別情報に対応する算出定義情報を算出定義情報記憶部２７に記憶されている全ての算出定義情報の中から取得する。そして、類似度算出部３３は、取得した各算出定義情報を列挙したダイアルログを生成して、図１１に示すように、生成したダイアルログを出力部１２を介してソフトウェア開発者に対して表示出力する。
【００５１】
ここで、類似度算出部３３は、ダイアルログに示された各算出定義情報の中から、単数または複数の算出定義情報の選択および各算出定義情報それぞれの重みを示した重み情報の入力を受け付ける。続いて、類似度算出部３３は、読み出した検出条件識別情報と同一の検出条件識別情報を含むログをログ記憶部２４に記憶されている全てのログの中から検索して、検索した各ログに含まれている構文識別情報を取得する。次に、類似度算出部３３は、解析データ記憶部２２に記憶されている解析データの中から、取得した各構文識別情報に基づいて、比較対象となる各構文を抽出するとともに、ソフトウェア開発者により選択された構文識別情報に基づいて、比較元となる構文を抽出する。
【００５２】
続いて、類似度算出部３３は、ソフトウェア開発者により選択された構文識別情報それぞれについて、ソフトウェア開発者により選択された各算出定義情報を用いて、各算出定義情報に対応する類似度をそれぞれ算出する。そして、類似度算出部３３は、構文識別情報それぞれについて、重み情報を用いて、算出された各算出定義情報に対応する類似度に対してそれぞれ重み付けして得た値の合計値を算出する。
【００５３】
例えば、類似度算出部３３は、構文識別情報（行番号）「５０」について、算出定義識別情報「ｐｇｒ０７２２−１」に対応する類似度「◎」を算出する（図１２参照）。続いて、類似度算出部３３は、算出定義識別情報「ｐｇｒ０７２２−１」に対応する類似度に対して重み付を行う（図１２の（×２）参照）。そして、類似度算出部３３は、類似度を算出すべき算出定義識別情報が無くなるまで、構文識別情報「５０」について、各算出定義識別情報に対応する類似度を算出して、算出された類似度に対してそれぞれ重み付を行う。
【００５４】
ここで、類似度を算出すべき算出定義識別情報が無くなると、類似度算出部３３は、構文識別情報「５０」について、各類似度に対してそれぞれ重み付けして得た値の合計値「１６」を算出する。そして、類似度算出部３３は、類似度を算出すべき構文識別情報が無くなるまで、各構文識別情報について、各算出定義情報に対応する類似度をそれぞれ算出し、算出された類似度に対してそれぞれ重み付けして得た値の合計値を算出する。
【００５５】
なお、算出定義識別情報「ｐｇｒ０７２２−１」〜「ｐｇｒ０７２２−４」に対応する類似度は、比較元となる構文および比較対象となる構文が、ともに算出定義識別情報を満足しているか否かで類似度「◎」もしくは、類似度「×」を算出するものとする。例えば、算出定義識別情報「ｐｇｒ０７２２−１」に対応する類似度は、比較元となる構文および比較対象となる構文において、代入演算子‘＝’の右辺の文字列が完全に一致するともに、代入演算子‘＝’の左辺の文字列が完全に一致すれば、類似度「◎」となる。
【００５６】
また、算出定義識別情報「共通１」〜「共通３」に対応する類似度は、構文間の文字列比較による一致率を算出して、類似度「◎（８０％以上で一致）」、類似度「○（３１％〜７９％で一致）」もしくは、類似度「×（３０％以下で一致）」を算出するものとする。ここで、類似度「◎」は、２点に換算され、類似度「○」は、１点に換算され、類似度「×」は、１点に換算されるものとする。また、図１２に示した類似点とは、各算出定義識別情報に対応する合計値を、合計値の満点（図１２に示す例では「１６」）で除算して得た値である。
【００５７】
類似構文識別情報一覧出力部３４は、各算出定義情報に対応する類似度に対してそれぞれ重み付けして得た値の合計値が予め設定されている所定の閾値以上の構文識別情報を特定する。そして、類似構文識別情報一覧出力部３４は、特定した構文識別情報と、各算出定義情報に対応する類似度とを応付けて列挙した類似構文識別情報一覧を生成して、生成された類似構文識別情報一覧をソフトウェア開発者により選択された構文識別情報と対応付けて出力する。例えば、類似構文識別情報一覧出力部３４は、図１３に示すように、類似度ビューワに類似構文識別情報一覧を出力する。
【００５８】
［バグ検出支援装置による処理］
次に、図１４を用いて、バグ検出支援装置１０による処理を説明する。図１４は、実施例２に係るバグ検出支援装置による処理の流れを示すフローチャート図である。なお、以下では、実施例１に係るバグ検出支援装置による処理と異なる点についてのみ説明する。
【００５９】
図１４に示すように、類似度算出部３３は、選択構文識別情報一覧の中から、いずれかの構文識別情報の選択を受け付けると（ステップＳ２０４肯定）、算出定義情報設定処理を実行する（ステップＳ２０５）。具体的には、類似度算出部３３は、ソフトウェア開発者により選択された構文識別情報に対応する算出定義情報を列挙したダイアルログを出力して、算出定義情報の選択および重み情報の入力を受け付ける。
【００６０】
そして、類似度算出部３３は、ソフトウェア開発者により選択された構文識別情報と同一の検出条件識別情報に対応する構文識別情報を取得する（ステップＳ２０６）。続いて、類似度算出部３３は、ソフトウェア開発者により選択された構文識別情報について、各算出定義情報に対応する類似度を算出して、算出された類似度に対して重み付を行う（ステップＳ２０７）。
【００６１】
その後、類似度を算出すべき算出定義情報が無くなると（ステップＳ２０８否定）、類似度算出部３３は、算出された類似度に対してそれぞれ重み付けして得た値の合計値を算出する（ステップＳ２０９）。続いて、類似度算出部３３は、類似度を算出すべき構文識別情報が無くなるまで、構文識別情報を取得して（ステップＳ２０６）、上記した処理を繰り返し実行する。そして、類似度を算出すべき構文識別情報が無くなると（ステップＳ２１０否定）、類似構文識別情報一覧出力部３４は、合計値が予め設定されている所定の閾値以上の構文識別情報を列挙した類似構文識別情報一覧を生成して、出力し（ステップＳ２１１）、処理を終了する。
【００６２】
［実施例２の効果］
上記したように、実施例２によれば、バグ検出支援装置は、ソフトウェア開発者により設定された算出定義情報に応じて生成した類似構文識別情報一覧を出力することが可能である。そのため、ソフトウェア開発者は、所望する視点でバグであるか否かを確認することができるため、確認作業を効率よく行うことができる。
【００６３】
また、実施例２によれば、バグ検出支援装置は、ソフトウェア開発者により重み付けされた算出定義情報に応じて生成した類似構文識別情報一覧を出力することが可能である。そのため、ソフトウェア開発者は、同一視点でバグであるか否かを確認することができるため、確認作業をさらに効率よく行うことができる。
【００６４】
また、実施例２によれば、バグ検出支援装置は、構文識別情報と、各算出定義情報に対応する類似度とを応付けて列挙した類似構文識別情報一覧を出力することが可能である。そのため、ソフトウェア開発者は、類似構文識別情報一覧の中にある各構文識別情報について、選択した構文識別情報とどのように類似しているかを一意に把握することができるため、バグ確認作業を効率よく行うことができる。
【実施例３】
【００６５】
さて、これまで実施例１および実施例２について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、実施例３として、他の実施例を説明する。
【００６６】
（１）算出定義情報の重みの履歴を保存
例えば、実施例２では、ダイアルログを出力して、算出定義情報の選択と、算出定義情報の重み付けをソフトウェア開発者に要求する場合を説明した。しかしながら、バグ検出支援装置１０が、類似度を算出する際に、予め記憶部に記憶された各算出定義情報の重みを自動的に読み出すようにすれば、算出定義情報の選択と、算出定義情報の重み付けを入力する作業に要するソフトウェア開発者の手間を省くことができる。
【００６７】
具体的には、バグ検出支援装置１０は、図１５に示すように、算出定義識別情報と、算出定義情報の重みを示した重み情報とを対応付けた履歴を記憶部に記憶する。そして、類似度算出部３３は、図１６に示すように、構文識別情報一覧の中から、いずれかの構文識別情報の選択を受け付けると、ソフトウェア開発者により選択された構文識別情報に対応する算出定義識別情報の重みの履歴が記憶部に記憶されているか否かを判定する（ステップＳ３０１）。
【００６８】
ここで、履歴が記憶部に記憶されていない場合には（ステップＳ３０１否定）、類似度算出部３３は、算出定義識別情報を列挙したダイアルログを出力して、算出定義識別情報および重み情報の入力を受け付ける（ステップＳ３０２）。そして、類似度算出部３３は、受け付けた算出定義識別情報と、重み情報とを対応付けて記憶部に格納して（ステップＳ３０３）、算出定義情報設定処理を終了する。一方では、履歴が記憶部に記憶されている場合には、類似度算出部３３は、記憶部から構文識別情報に対応する算出定義識別情報の重みを読み出し（ステップＳ３０４）、算出定義情報設定処理を終了する。なお、図１５は、履歴の一例を示した図である。図１６は、算出定義情報設定処理の流れを示すフローチャート図である。
【００６９】
（２）一致率と、換算後の点数とを任意に設定
また、実施例２では、構文間の文字列比較による一致率を、類似度を示す点数に換算する場合を説明したが、図１７に示すようなダイアルログを出力して、ソフトウェア開発者が一致率と、換算後の点数とを任意に設定できるようにしてもよい。なお、図１７は、一致率と、換算後の点数とを設定するためのダイアルログの一例を示した図である。
【００７０】
（３）一致率の算出方法
また、実施例２では、構文間の文字列比較により一致率を算出する場合を説明したが、図１８の（Ａ−１）および（Ａ−２）に示すように、識別子の記載方法が異なる場合であってもソース記述が一致するとみなしてもよい。また、図１８の（Ｂ−１）および（Ｂ−２）に示すように、構文に記載されている内容が異なる場合であってもソース記述の構文が一致するものとみなしてよい。図１８は、一致率の算出方法について説明するための図である。
【００７１】
（４）装置構成など
また、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報（例えば、図３、図４、図１０および図１５に示した記憶情報や図１５に示した重み情報）については、特記する場合を除いて任意に変更することができる。
【００７２】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、例えば、図２に示したログ記憶部２４と、選択指示情報記憶部２５とを統合して構成するなど、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【００７３】
（５）バグ検出支援プログラム
ところで、本発明はあらかじめ用意されたプログラムをバグ検出支援装置１０としてのコンピュータで実行することによって実現するようにしてもよい。そこで、以下では、図１９を用いて、上記の実施例に示したバグ検出支援装置１０と同様の機能を有するバグ検出支援プログラムを実行するコンピュータを一例として説明する。図１９は、バグ検出支援プログラムを実行するコンピュータを示す図である。
【００７４】
同図に示すように、バグ検出支援装置１０としてのコンピュータ１１０は、入力部１２０、ＲＯＭ１３０、ＣＰＵ１４０、ＨＤＤ１５０、ＲＡＭ１６０および出力部１７０をバス１８０などで接続して構成される。
【００７５】
ＲＯＭ１３０には、上記の実施例１に示したバグ検出支援装置１０と同様の機能を発揮するバグ検出支援プログラム、つまり、図１９に示すようにソースコード解析プログラム１３０ａと、構文識別情報一覧出力プログラム１３０ｂと、類似度算出プログラム１３０ｃと、類似構文識別情報一覧出力プログラム１３０ｄとが、あらかじめ記憶されている。なお、これらのプログラム１３０ａ〜プログラム１３０ｄについては、図２に示したバグ検出支援装置１０の各構成要素と同様、適宜統合または、分散してもよい。
【００７６】
そして、ＣＰＵ１４０がこれらのプログラム１３０ａ〜プログラム１３０ｄをＲＯＭ１３０から読み出して実行することで、図１９に示すように、プログラム１３０ａ〜プログラム１３０ｄは、ソースコード解析プロセス１４０ａと、構文識別情報一覧出力プロセス１４０ｂと、類似度算出プロセス１４０ｃと、類似構文識別情報一覧出力プロセス１４０ｄとして機能するようになる。なお、プロセス１４０ａ〜プロセス１４０ｄは、図２に示した、ソースコード解析部３１、構文識別情報一覧出力部３２、類似度算出部３３および類似構文識別情報一覧出力部３４にそれぞれ対応する。
【００７７】
また、ＨＤＤ１５０には、図１９に示すように、検出条件情報データテーブル１５０ａが設けられる。そして、ＣＰＵ１４０は、検出条件情報データテーブル１５０ａから、検出条件情報データ１６０ｄを読み出してＲＡＭ１６０に格納し、ＲＡＭ１６０に格納された検出条件情報データデータ１６０ｄおよび入力部１２０を介して入力されたソースコード１６０ａ、選択指示データ１６０ｅに基づいて処理を実行する。
【００７８】
なお、データ１６０ａ〜データ１６０ｆは、図２に示したソースコード記憶部２１、解析データ記憶部２２、検出条件情報記憶部２３、ログ記憶部２４、選択指示情報記憶部２５および類似度算出結果記憶部２６に対応する。
【００７９】
なお、上記した各プログラム１３０ａ〜プログラム１３０ｄについては、必ずしも最初からＲＯＭ１３０に記憶させておく必要はなく、例えば、コンピュータ１１０に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」、またはコンピュータ１１０の内外に備えられるＨＤＤなどの「固定用の物理媒体」、さらには公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ１１０に接続される「他のコンピュータ（またはサーバ）」などに各プログラムを記憶させておき、コンピュータ１１０がこれから各プログラムを読み出して実行するようにしてもよい。
【００８０】
（６）バグ検出支援方法
また、上記したバグ検出支援装置により、以下のようなバグ検出支援方法が実現される。すなわち、複数の構文により構成されるソースコードと、バグの可能性がある構文を検出するための検出条件を示した複数の検出条件情報とを照らし合わせて、バグの可能性がある構文を検出し、検出された構文に一意に付与されている構文識別情報を列挙して生成した構文識別情報一覧をユーザに出力する構文識別情報一覧出力ステップと（例えば、図８のステップＳ１０３）、前記構文識別情報一覧の中から、いずれかの構文識別情報の選択をユーザから受け付けた場合に、前記構文識別情報一覧の中にある各構文識別情報に対応する構文と、前記選択された構文識別情報に対応する構文との間の類似度を算出する類似度算出ステップ（例えば、図８のステップＳ１０６）と、前記構文識別情報一覧の中にある各構文識別情報の中から、前記類似度算出ステップによって算出された類似度が予め設定されている所定の閾値以上の構文識別情報を特定する構文識別情報特定ステップと、前記構文識別情報特定ステップにより特定された構文識別情報を列挙して類似構文識別情報一覧を生成し、生成された類似構文識別情報一覧をユーザにより選択された構文識別情報と対応付けてユーザに出力する類似構文識別情報一覧出力ステップと（例えば、図８のステップＳ１０８）とを含んだバグ検出支援方法が実現される。
【図面の簡単な説明】
【００８１】
【図１】実施例１に係るバグ検出支援装置の概要を説明するための図である。
【図２】バグ検出支援装置の構成を示すブロック図である。
【図３】ソースコード記憶部に記憶される情報の一例を示した図である。
【図４】解析データ記憶部に記憶される情報の一例を示した図である。
【図５】構文識別情報一覧の一例を示した図である。
【図６】選択構文識別情報一覧の一例を示した図である。
【図７】類似構文識別情報一覧の一例を示した図である。
【図８】バグ検出支援装置による処理の流れを示すフローチャート図である。
【図９】実施例２に係るバグ検出支援装置の構成を示すブロック図である。
【図１０】算出定義情報記憶部に記憶される情報の一例を示した図である。
【図１１】類似度算出部による処理を説明するための図である。
【図１２】類似度算出部による処理を説明するための図である。
【図１３】類似構文識別情報一覧の一例を示した図である。
【図１４】実施例２に係るバグ検出支援装置による処理の流れを示すフローチャート図である。
【図１５】履歴の一例を示した図である。
【図１６】算出定義情報設定処理の流れを示すフローチャート図である。
【図１７】一致率と、換算後の点数とを設定するためのダイアルログの一例を示した図である。
【図１８】一致率の算出方法について説明するための図である。
【図１９】バグ検出支援プログラムを実行するコンピュータを示す図である。
【符号の説明】
【００８２】
１０  バグ検出支援装置
１１  入力部
１２  出力部
２１  ソースコード記憶部
２２  解析データ記憶部
２３  検出条件情報記憶部
２４  ログ記憶部
２５  選択指示情報記憶部
２６  類似度算出結果記憶部
２７  算出定義情報記憶部
３１  ソースコード解析部
３２  構文識別情報一覧出力部
３３  類似度算出部
３４  類似構文識別情報一覧出力部
１１０  コンピュータ
１２０  入力部
１３０  ＲＯＭ（Read Only Memory）
１３０ａ  ソースコード解析プログラム
１３０ｂ  構文識別情報一覧出力プログラム
１３０ｃ  類似度算出プログラム
１３０ｄ  類似構文識別情報一覧出力プログラム
１４０  ＣＰＵ（Central Processing Unit）
１４０ａ  ソースコード解析プロセス
１４０ｂ  構文識別情報一覧出力プロセス
１４０ｃ  類似度算出プロセス
１４０ｄ  類似構文識別情報一覧出力プロセス
１５０  ＨＤＤ（Hard Disk Drive）
１５０ａ  検出条件情報データテーブル
１６０  ＲＡＭ（Random Access Memory）
１６０ａ  ソースコード
１６０ｂ  解析データ
１６０ｃ  検出条件情報
１６０ｄ  ログデータ
１６０ｅ  選択指示データ
１６０ｆ  類似度算出結果データ
１７０  出力部
１８０  バス
【図１】
2010079447.tif 000003
【図２】
2010079447.tif 000004
【図３】
2010079447.tif 000005
【図４】
2010079447.tif 000006
【図５】
2010079447.tif 000007
【図６】
2010079447.tif 000008
【図７】
2010079447.tif 000009
【図８】
2010079447.tif 000010
【図９】
2010079447.tif 000011
【図１０】
2010079447.tif 000012
【図１１】
2010079447.tif 000013
【図１２】
2010079447.tif 000014
【図１３】
2010079447.tif 000015
【図１４】
2010079447.tif 000016
【図１５】
2010079447.tif 000017
【図１６】
2010079447.tif 000018
【図１７】
2010079447.tif 000019
【図１８】
2010079447.tif 000020
【図１９】
2010079447.tif 000021