説明

プログラムのデバッグ方法、デバッグ装置、およびデバッグ支援GUI

【課題】信頼できないコード範囲についてのみデバッグを実行することにより、デバッグの信頼性を高めつつ、プログラム全体のデバッグ時間を短縮する。
【解決手段】(a)プログラムの分類項目の指標毎の信頼度を含む信頼度情報を記憶部に格納するステップS11と、(b)演算処理部が、記憶部からデバッグ対象のプログラムについての信頼度情報を読み出して、当該信頼度情報中の指標毎の信頼度を用いて、信頼できるコード範囲と信頼できないコード範囲とを決定するステップS12と、(c)演算処理部が、信頼できないコード範囲についてのみデバッグ対象のプログラムのデバッグを実行するステップS13と、を含む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラムのデバッグに関し、より具体的には、プログラム(コード)のデバッグ範囲を限定して、デバッグ効率を向上させる技術に関する。
【背景技術】
【0002】
ソフトウェア開発において、対象となるプログラムのサイズが年々増加している。対象となるプログラムには、新規開発コードのほかに、過去に自社開発されたコードやサードパーティによるライブラリ等のテスト済みのコードが含まれる。
【0003】
ソフトウェア開発・保守では、プログラムのテストおよびデバッグが必要となる。そのデバッグ時に、全てのコードをデバッグしてしまうと、プログラムのサイズが大きくなるにつれて、デバッグしなければならないコードの範囲にテスト済みのコードまでもが含まれてしまい、デバッグの効率が悪くなってしまうという問題がある。
【0004】
公開特許公報の特開平06-103113号は、既に信頼性が保証されているプログラムの全部または一部分をテストデバッグの対象から外して効率的にデバッグすることができる差分テストデバッグ支援方法を開示する。その方法は、既存の完成または半完成のプログラムに対し、カバレジ情報蓄積ファイルを設け、このカバレジ情報蓄積ファイルに全命令文別にテスト実行済みの情報を設定した後、当該プログラムの変更に対しては、変更部分のカバレジ情報についてのみテスト未実行状態に設定し、変更部分の命令文のみをデバッグテスト対象として実行させる。
【0005】
公開特許公報の特開2002-108652号は、デバッグ作業の負担低減・効率化を図るためのプログラムの相関関係検出装置を開示する。その装置は、適用対象別の各プログラムを生成するために必要な構成部分同士を比較することにより、それらのプログラムをグループ分けし、そのグループ分けの結果をプログラム同士の相関関係として外部に出力する。プログラムの内容が一致している場合、その同様の内容について何度もデバッグ作業を行うことを避けることにより、デバッグ作業負担の軽減および作業効率の向上を図る。
【0006】
公開特許公報の特開平11-272502号は、テスト対象プログラムの信頼性を推定するソフトウェア信頼性評価装置を開示する。その評価方法は、テスト対象プログラムのテスト処理を実行すると共に該テスト対象プログラムの信頼性推定に必要な各種情報を取得する取得ステップと、信頼度推定モデルに基づき推定された推定信頼度に基づきテスト継続の有無を判断する判断ステップとを有する。その各種情報は、不具合発見情報、テスト時間、ソフトウェア故障発生回数、テスト者数、テスト網羅度、利用者の指示する適用方法、適用範囲、適用する信頼度推定モデルの種類を含む。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開平06−103113号公報
【特許文献2】特開平2002−108652号公報
【特許文献3】特開平11−272502号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
特許文献1の方法では、プログラムの変更部分の命令文のみをデバッグテスト対象とする。したがって、この方法では、プログラムの変更以外の本来デバッグが必要となるコード範囲がデバッグから漏れてしまい、プログラム全体でのデバッグが不十分になり、その信頼性が低下する恐れが大きい。
【0009】
特許文献2の装置では、プログラムの内容が一致している場合、その同様の内容についての重複したデバッグ作業を行うことを避ける。したがって、この装置では、プログラムの内容が一致していない場合には、何らデバッグ作業負担の軽減および作業効率の向上を図ることができない。
【0010】
特許文献3の装置では、信頼度推定モデルに基づき推定された推定信頼度に基づきテスト継続の有無を判断する。しかし、この装置では、プログラムのデバッグ範囲を限定していないので、デバッグ効率の向上が不十分になる可能性が大きい。
【0011】
したがって、本発明の目的は、これらの従来技術の問題を解決あるいは軽減しつつ、プログラム(コード)のデバッグ範囲を限定して、デバッグ効率を向上させることである。
【課題を解決するための手段】
【0012】
本発明は、記憶部と演算処理部を有するコンピュータによるプログラムのデバッグ方法を提供する。その方法は、(a)プログラムの分類項目の指標毎の信頼度を含む信頼度情報を記憶部に格納するステップと、(b)演算処理部が、記憶部からデバッグ対象のプログラムについての信頼度情報を読み出して、当該信頼度情報中の指標毎の信頼度を用いて、信頼できるコード範囲と信頼できないコード範囲とを決定するステップと、(c)演算処理部が、信頼できないコード範囲についてのみデバッグ対象のプログラムのデバッグを実行するステップと、を含む。
【0013】
本発明によれば、プログラムの分類項目の指標毎の信頼度を用いて決定された信頼できないコード範囲についてのみデバッグ対象のプログラムのデバッグを実行するので、プログラム全体のデバッグ時間を短縮することができる。
【0014】
本発明の一態様では、(d)演算処理部が、デバッグの実行中において、ユーザからの指示に応じて、実行パス上のコードについて、指標毎の信頼度の基づき既に決定された信頼できるコード範囲と信頼できないコード範囲とを更新するステップをさらに含む。
【0015】
本発明の一態様によれば、デバッグの進行状況に応じて、問題の無い、問題のある、あるいは問題がありそうなコード範囲を新たに信頼できるコード範囲あるいは信頼できないコード範囲として見直すことが可能となり、デバッグ時間を短縮するとともにそのデバッグの信頼性を向上させることが可能となる。
【0016】
本発明の一態様では、信頼できるコード範囲と信頼できないコード範囲とを決定するステップおよび更新するステップの少なくとも一方は、プログラムの分類項目の指標毎の信頼度からコード範囲毎の信頼度を算出するステップと、コード範囲毎の信頼度が所定範囲内である場合に、当該コード範囲を信頼できないコード範囲と決定するステップと、を含む。
【0017】
本発明の一態様によれば、デバッグ対象のプログラムの状況に即してコード範囲毎の信頼度を算出し、さらにその算出されたコード範囲毎の信頼度が所定範囲内である場合に、当該コード範囲を信頼できないコード範囲と決定するので、信頼できないコード範囲の精度を高めることが可能となり、その結果、デバッグ時間の短縮化およびデバッグの信頼性をさらに向上させることが可能となる。
【0018】
本発明によれば、プログラムのデバッグ装置が提供される。そのデバッグ装置は、プログラムの分類項目の指標毎の信頼度を含む第1の信頼度情報を保管する第1の保管部と、第1の保管部の指標毎の信頼度からコード範囲毎の信頼度を算出する信頼度算出部と、コード範囲毎の信頼度を含む第2の信頼度情報を保管する第2の保管部と、デバッグ対象のプログラムについて、第2の保管部のコード範囲毎の信頼度に基づき、信頼できるコード範囲と信頼できないコード範囲とを決定する決定部と、信頼できないコード範囲についてデバッグ対象のプログラムのデバッグを実行するデバッガと、を備える。
【0019】
本発明によれば、プログラムの分類項目の指標毎の信頼度から算出されたコード範囲毎の信頼度目の指標毎の信頼度に基づき決定された信頼できないコード範囲についてのみデバッグ対象のプログラムのデバッグを実行するので、デバッグの信頼性を高めつつ、プログラム全体のデバッグ時間を短縮することができる。
【0020】
本発明によれば、記憶部と演算処理部を有するコンピュータによるプログラムのデバッグを支援するためのグラフィカル・ユーザ・インターフェース(GUI)が提供される。そのGUIは、記憶部に格納された、プログラムの分類項目の指標毎の信頼度を含む信頼度情報を用いて、演算処理部が、デバッグ対象のプログラムについて、信頼できるコード範囲と信頼できないコード範囲とを決定し、前記信頼できないコード範囲についてのみデバッグを実行するように支援するために、(a)表示画面と、(b)表示画面上の、デバッグ対象のプログラムの実行パス上の複数のコード名が表示された第1のウィンドウと、(c)表示画面上の、第1のウィンドウ内の複数のコード名の中から選択したコード名に対応するコード範囲を表示可能な第2のウィンドウと、(d)表示画面上の、第1のウィンドウ内の複数のコード名の各々について、または第2のウィンドウ内に表示されたコード範囲について、対応するコード名またはコード範囲の信頼度に応じて、コード名またはコード範囲を表示する色を選択的に可変するためのスライダー表示部と、を備える。
【0021】
本発明によれば、デバッグ対象のプログラムについて、信頼できる、あるいは信頼できないコードおよびコード範囲を視覚上明確に把握することができるので、デバッグ作業の効率化や確実性を向上させることが可能となる。
【図面の簡単な説明】
【0022】
【図1】本発明のデバッグ方法を実施するシステムの構成例を示す図である。
【図2】本発明のデバッグ装置の構成例を示すブロック図である。
【図3】本発明の処理装置の機能ブロック図である。
【図4】本発明のデバッグ方法のフローの一例を示す図である。
【図5】本発明のデバッグ方法のフローの一例を示す図である。
【図6】本発明のGUIの一例を示す図である。
【発明を実施するための形態】
【0023】
図面を参照しながら本発明の実施の形態を説明する。図1は、本発明のデバッグ方法を実施するシステムの構成例を示す図である。システム100は、ネットワーク40で相互に通信可能に接続されたホスト(サーバー)10、PC(端末)20、ネットワーク・ドライブ30からなる。ネットワーク・ドライブ30は、HDDやテープドライブ等の記憶手段を含む。図1では、ホスト(サーバー)10とネットワーク・ドライブ30は、それぞれ1つしか描かれていないが、これはあくまで例示であって、2以上のホスト(サーバー)10とネットワーク・ドライブ30を含むことができることは言うまでもない。
【0024】
本発明のデバッグ方法は、図1の構成において、PC20が、サーバー10やネットワーク・ドライブ30からからダウンロードしたデバッグ用ソフトウェア、あるいは自己の内蔵する記憶手段(HDD等)内に保管されたデバッグ用ソフトウェアを実行することにより実施される。デバッグ対象となるプログラム(コード)も、同様に、PC20がサーバー10やネットワーク・ドライブ30からからダウンロードあるいは自己の内蔵する記憶手段から呼び出される。なお、ネットワークに接続されないスタンドアローンのPCによって、本発明のデバッグ方法が実施可能であることは言うまでもない。
【0025】
図2は、本発明のデバッグ装置の構成例を示すブロック図である。図1の構成で言えば、デバッグ装置としてはPC20が該当する。デバッグ装置20は、バス230を介して相互に接続された演算処理装置(CPU)200、記憶手段210、各種I/F220を含む。各種I/F220は、入力I/F、出力I/F、外部記憶I/F、外部通信I/F等を含む総称として用いられ、各I/Fが、それぞれ対応するキーボード、マウス等の入力手段240、CRT、LCD等の表示手段250、USB接続の半導体メモリやHDD等の外部記憶手段260等に接続する。
【0026】
記憶手段210は、RAM、ROM等の半導体メモリ、HDD等を含み、第1の保管部212と第2の保管部214を有する。両保管部は、単一の記憶手段あるいは複数の記憶手段に分けて設けることができる。第1の保管部212は、プログラムの分類項目の指標毎の信頼度を含む第1の信頼度情報を保管する。第2の保管部214は、第1の保管部212の指標毎の信頼度から算出されたコード範囲毎の信頼度を含む第2の信頼度情報を保管する。
【0027】
図3は、図2の演算処理装置200の機能ブロック図である。演算処理装置200は、本発明のデバッグ方法に係るデバッグ用ソフトウェアを実行することにより、デバッグ対象のプログラムに対して、図3の各機能を実施する。信頼度算出部201は、第1の保管部212に保管されるプログラムの分類項目の指標毎の信頼度からコード範囲毎の信頼度を算出する。信頼/非信頼のコード範囲決定部202は、デバッグ対象のプログラムについて、第2の保管部214のコード範囲毎の信頼度に基づき、信頼できるコード範囲と信頼できないコード範囲とを決定する。デバッガ203は、信頼できないコード範囲についてデバッグ対象のプログラムのデバッグを実行する。
【0028】
ここで、本発明の説明において使用する各用語および図3の各ブロックについて説明する。最初に、第1の保管部212に保管される、プログラムの分類項目の指標毎の信頼度について説明する。プログラムの分類項目とは、初期情報として設定されるもので、プログラムの名前、変更部分、ユーザが追加したタグ付けなどのメタデータ等のプログラムを分類するための項目(分類項目)を意味する。また、分類項目としてプログラマ(コード作成者)等の人的要素を加えることもできる。要は、デバッグの効率に影響を与える要因を分類項目として加えることができる。
【0029】
分類項目の指標には、例えば、名前による分類では、名前空間(例えばJava(登録商標)ではパッケージ名)やディレクトリ名、ファイル名等が含まれる。変更部分による分類の指標としては、変更セット内のファイルか否か、自分のワークスペースで編集中のソースか否か、特定の日付か否か、ベースラインやマイルストーン以降に変更された部分か否か等が含まれる。人的要素による分類では、プログラマやソフトウェアハウスの実績、経験年数等を指標として用いてもよい。
【0030】
分類項目の指標毎の信頼度は、分類された各プログラム(コード)の信頼度、言い換えればデバッグの必要度(重要度)を数値、例えば割合(%)で表したものを意味する。信頼度を割合(%)で表した場合は、割合(%)が大きくなるにつれて信頼度が高くなることを意味する。例として、名前空間では、A社のパッケージは信頼度96%、B社のパッケージは信頼度80%、開発中のパッケージは信頼度50%といったように、信頼度を設定する。変更セット内のファイルの場合は、開発中のパッケージの場合と同様に信頼度50%といったように設定する。
【0031】
次に、信頼度算出部201において算出され、第2の保管部214に保管される、コード範囲毎の信頼度について説明する。コード範囲毎の信頼度は、コード範囲が信頼できるコード範囲か信頼できないコード範囲かを決める基準になる。ここで、コード範囲は、信頼度を設定する、言い換えれば実際にデバッグするか否かの単位として定められるもので、一行のコードから1つのファイル、パッケージ等の単位まで、その大きさ(範囲)は任意に定めることができる。
【0032】
コード範囲毎の信頼度は、分類項目の指標毎の信頼度を基に定められる。例えば、開発中のパッケージであり、かつ変更セット内にあるコード(ファイル)の信頼度は、開発中のパッケージの信頼度50%に変更セット内のファイルの信頼度50%を乗算して、25%(=0.5*0.5)として算出される。この場合は、2つの指標毎の信頼度を乗算しているが、さらに重み付けの係数を掛けたり加えたりしてもよい。乗算以外の所定の関数を用いて信頼度を算出してもよい。また、分類項目の指標毎の信頼度をそのまま対応するコード範囲の信頼度とすることもできる。開発中のパッケージ全体の中で、既に開発およびデバッグ済のコード範囲(例えば信頼度80%)と、残りのコード範囲(例えば信頼度50%)というように、それぞれで信頼度を算出することもできる。
【0033】
上述したコード範囲毎の信頼度は、主にデバッグ前(時)に予め算出して第2の保管部214に保管しておくものであるが、デバッグ中に算出してその値を更新することもできる。例えば、デバッグ中に、途中までの実行で問題があることがわかった場合、その時点までの実行パス上のコード範囲の信頼度を下げるように算出し直し、その更新された信頼度を保管し、さらに、その実行パス上の先のコード範囲についても信頼度を見直すこともできる。デバッグ中のステップイン、ステップアウト動作では、ステップイン、ステップアウト時の特定の実行パスの信頼度をデバッグ作業中に更新することもできる。これにより、実際のデバッグ状況をより適切に反映した信頼度を算出(更新)および蓄積することができる。
【0034】
信頼/非信頼のコード範囲決定部202での信頼できるコード範囲と信頼できないコード範囲の決定について説明する。信頼できるコード範囲と信頼できないコード範囲は、算出されたコード範囲毎の信頼度が所定範囲内であるか否かで決定される。例えば、信頼度が75%以上は信頼できるコード範囲とし、それ以下、あるいは50%以下は、信頼できないコード範囲とすることができる。なお、所定範囲は、パッケージ単位、あるいは所定のコードの集合単位で個別に設定することもできる。また、何らかの理由で信頼度の設定(算出)がされていないコード範囲については、原則として信頼できないコード範囲として決定する。
【0035】
デバッガ203によるデバッグ動作について説明する。デバッガは、デバッグ対象のプロセスを開始後、デバッグ対象のプロセスに対して、ブレークポイントの位置の通知、ステップ実行、プロセスの再開の指示を信頼できないコードの範囲に対してのみ行う。具体的には、例えば、以下のように行われる。
(a)デバッガは、ブレークポイントの位置を、信頼できないコードの範囲に分類されているデバッグ対象のプロセスに指示する。
(b)デバッグ対象のプロセスは、指示されたブレークポイントまでプロセスを実行し、ブレークポイントで停止したことをデバッガに通知する。
(c)デバッガは、ステップ実行について、信頼度情報に基づいて次の実行位置までを指示する、またはプロセスの再開については従来どおり信頼度情報に基づかずに指示を行う。
(d)デバッグ対象のプロセスは、指示に従ってステップ実行またはプロセスを再開する。
【0036】
デバッガによるステップ実行は、ステップインとステップアウトの場合では例えば以下のように行われる。
<ステップインの場合>
(a)デバッガは、デバッグ対象のプロセスにステップインを指示する。
(b)デバッグ対象のプロセスは、ステップインを実行し、停止位置をデバッガに通知する。
(c)デバッガは、停止位置を信頼できるコード範囲、信頼できないコードの情報に基づいて判別する。すなわち、信頼できないコード範囲であればその位置で停止させる。信頼できるコード範囲であれば、デバッグ対象のプロセスにステップアウトを指示し、信頼できないコード範囲に到達した位置で停止させる。
【0037】
<ステップアウトの場合>
(a)デバッガは、デバッグ対象のプロセスにステップアウトを指示する。
(b)デバッグ対象のプロセスは、ステップアウトを実行し、停止位置をデバッガに通知する。
(c)デバッガは、停止位置を信頼できるコード範囲、信頼できないコード範囲の情報に基づいて判別する。すなわち、信頼できないコード範囲であればその位置で停止させる。信頼できるコード範囲であれば、デバッグ対象のプロセスに再開を指示し、信頼できないコード範囲に到達した位置で停止させる。
【0038】
次に、図4と図5を参照しながら本発明のデバッグ方法のフローについて説明する。図4は全体のフローを示し、図5は図4のステップS12の詳細フロー(サブルーチン)である。両図のフローは、処理装置200が実行するデバッグ用ソフトウェアにより実施される。
【0039】
ステップS11において、信頼度情報を記憶手段に保管する。ここで言う信頼度情報は、既に上述したプログラムの分類項目の指標毎の信頼度を含む信頼度情報である。記憶手段は、図2の記憶手段210(例えば第1の保管部212)が該当する。ステップS12において、信頼できるコード範囲と信頼できないコード範囲を決定する。この決定ステップは、後のステップS15において、デバッグ中の更新プロセスとしても同様に実行される。
【0040】
ここで、図5を参照する。ステップS121において、記憶手段から呼び出した分類項目の指標毎の信頼度を基にコード範囲毎の信頼度を算出する。算出方法は、上述した通りである。ステップS122において、コード範囲毎の信頼度が所定範囲内か否かを判定する。所定範囲については、上述した通りである。この判定がYesの場合、そのコード範囲が信頼できない範囲であると決定される。判定がNoの場合は、信頼できる範囲と決定される。なお、更新プロセスにおいては、コード範囲の決定が更新(維持、変更)される。ステップS125において、決定/更新された信頼度情報が記憶手段(第2保管部214)に保管される。
【0041】
図4に戻って、ステップS13において、デバッガによるデバッグ動作が行われる。デバッグ動作については、上述した通りである。ステップS14において、デバッグ中にユーザからの変更指示があるか否かを判定する。この変更指示とは、デバッグ中に、信頼度/コード範囲の設定を変更する指示を意味し、例えば、上述したように、途中までの実行で問題があることがわかった場合に、その時点までの実行パス上のコード範囲の信頼度を下げる場合や、その変更した信頼度に応じてコード範囲の設定(信頼、非信頼)を変更する場合が該当する。
【0042】
ステップS14の判定がYesの場合、ステップS15において、ステップS12(図5)と同様なプロセスにより、信頼できるコード範囲と信頼できないコード範囲が更新される。ステップS14の判定がNoの場合あるいはステップS15の更新後に、ステップS16において、デバッグの実行パスが終わりか否かが判定される。この判定がYesの場合、一連のデバッグが終了し、判定がNoの場合は、ステップS13に戻ってデバッグ動作が繰り返される。
【0043】
次に、図6を参照しながら上述した本発明のプログラムのデバッグを支援するためのグラフィカル・ユーザ・インターフェース(GUI)の一例について説明する。このGUIは、上述した本発明のデバッグ装置またはデバッグ方法を実施する上で用いられる。すなわち、このGUIは、例えば、記憶部に格納された、プログラムの分類項目の指標毎の信頼度を含む信頼度情報を用いて、演算処理部が、デバッグ対象のプログラムについて、信頼できるコード範囲と信頼できないコード範囲とを決定し、前記信頼できないコード範囲についてのみデバッグを実行するように支援するために用いられる。このGUIを用いることにより、ユーザによるデバッグ作業が効率化され、デバッグの全体の効率化がさらに促進される。
【0044】
図6のGUIは、図2のPC20の表示手段250の表示画面上に表示される。なお、図示の制約上、図6では白黒表示しかできないが、実際には、各ブロック表示部(313、321〜323)等は、カラー表示およびその色の濃淡が表示できるようになっている。また、表示されるアイコンは、絵文字など各種OS等の下で使用可能な任意の形態を選択することができる。各アイコンは、マウスのポインタ302やキーボードの操作により選択される。
【0045】
GUIは、表示画面300と、表示画面300上の、第1のウィンドウ310と、第2のウィンドウ320と、スライダー表示部33とを含む。第1のウィンドウ310には、デバッグ対象のプログラムの実行パス上の複数のコード名313が表示される。コード名に代わってパス名を直接表示しもよい。第1のウィンドウ310内の4つのアイコン311は、選択したコード名(パス名)に対して、その信頼度を上下させるためのもので、UPは信頼度を上げる場合、DNは信頼度を下げる場合に使われる。
【0046】
より具体的には、例えばJava(登録商標)のメソッド単位で信頼度を設定する場合は、アイコン311を現在停止しているメソッドの信頼度を上げてステップインさせるためのアイコン、次に実行するメソッドの信頼度を下げてステップインさせるためのアイコン、それまでの実行パスの信頼度を下げて終了させるためのアイコンといったように設定することができる。スクロールボタン312、314は、それぞれ信頼度上下アイコン311、コード名(パス名)313のスクロールのために使われる。
【0047】
第2のウィンドウ320には、第1のウィンドウ内の複数のコード名(パス名)の中から選択したコード名に対応するコード範囲が表示される。図6では、3つのコード範囲321〜323が示されている。各コード範囲には、複数のコードが列記されている。アイコン324は、表示されるコード範囲に対応するコード名(パス名)を示す。アイコン324には、第1のウィンドウ310のコード名313と同様な名称や略称が表示される。
【0048】
スクロールボタン325、327は、それぞれコード範囲、コード名(パス名)のスクロールのために使われる。スクロールボタン326は、現在のデバッグ位置を示すもので、ボタン右横の列のコードが現在デバッグ中のコードを示す。初期化アイコン328は、信頼度の設定を初期値に戻すためのもので、選択したコード範囲単位、あるいはコード名(パス名)単位で初期値に戻すことができる。詳細設定アイコン329は、後述するスライダー表示部330による信頼度の設定をさらに詳細に設定、例えば信頼度の数値を直接入力する場合などのために使われる。詳細設定アイコン329がクリックされると、詳細設定メニューが別ウィンドウ(図示なし)として表示される。
【0049】
スライダー表示部330は、第1のウィンドウ310内の複数のコード名(パス名)313の各々について、または第2のウィンドウ320内に表示されたコード範囲321〜323について、対応するコード名(パス名)またはコード範囲の信頼度に応じて、コード名(パス名)またはコード範囲を表示する色を選択的に可変するために使われる。具体的には、ボタン331を図の左右にずらすことで、選択したコード名(パス名)313またはコード範囲321〜323の色およびその濃淡を変えることができる。
【0050】
例えば、ボタン331が右に進むとともに、選択したコード名またはコード範囲の信頼度が上がり同時に色が濃くなり、逆に、ボタン331が左に進むとともに、選択したコード名またはコード範囲の信頼度が下がり同時に色が薄くなる。なお、ボタン331を図の左右にずらす過程で、コード名またはコード範囲が、信頼できない範囲と信頼できる範囲とで切り替わった場合は、その境で色が異なる色に変化して、信頼度が変わったことをユーザに知らせることもできる。例えば、当初信頼できるコード範囲であったコード範囲321は赤色であったが、ボタン331の右へのスライドにより、ある時点を境に信頼できないコード範囲であることを示す青色に切り替わる。その時点(境界)は、例えば上述した信頼度の所定範囲の境界(例えば75%)とすることができる。
【0051】
本発明の実施形態について、図を参照しながら説明をした。しかし、本発明はこれらの実施形態に限られるものではない。さらに、本発明はその趣旨を逸脱しない範囲で当業者の知識に基づき種々なる改良、修正、変形を加えた態様で実施できるものである。
【符号の説明】
【0052】
10 サーバー(ホスト)
20 PC
30 ネトワークドライブ
40 ネットワーク
100 ネットワークシステム
300 表示画面
310 第1のウィンドウ
320 第2のウィンドウ
330 スライダー表示部

【特許請求の範囲】
【請求項1】
記憶部と演算処理部を有するコンピュータによるプログラムのデバッグ方法であって、
プログラムの分類項目の指標毎の信頼度を含む信頼度情報を前記記憶部に格納するステップと、
前記演算処理部が、前記記憶部からデバッグ対象のプログラムについての前記信頼度情報を読み出して、当該信頼度情報中の前記指標毎の信頼度を用いて、信頼できるコード範囲と信頼できないコード範囲とを決定するステップと、
前記演算処理部が、前記信頼できないコード範囲についてのみ前記デバッグ対象のプログラムのデバッグを実行するステップと、を含む方法。
【請求項2】
前記演算処理部が、前記デバッグの実行中において、ユーザからの指示に応じて、実行パス上のコードについて、前記指標毎の信頼度の基づき既に決定された前記信頼できるコード範囲と前記信頼できないコード範囲とを更新するステップをさらに含む、請求項1の方法。
【請求項3】
前記決定するステップおよび前記更新するステップの少なくとも一方は、
前記指標毎の信頼度からコード範囲毎の信頼度を算出するステップと、
コード範囲毎の信頼度が所定範囲内である場合に、当該コード範囲を信頼できないコード範囲と決定するステップと、
を含む、請求項2の方法。
【請求項4】
プログラムのデバッグ装置であって、
プログラムの分類項目の指標毎の信頼度を含む第1の信頼度情報を保管する第1の保管部と、
前記第1の保管部の前記指標毎の信頼度からコード範囲毎の信頼度を算出する信頼度算出部と、
前記コード範囲毎の信頼度を含む第2の信頼度情報を保管する第2の保管部と、
デバッグ対象のプログラムについて、前記第2の保管部の前記コード範囲毎の信頼度に基づき、信頼できるコード範囲と信頼できないコード範囲とを決定する決定部と、
前記信頼できないコード範囲について前記デバッグ対象のプログラムのデバッグを実行するデバッガと、を備えるデバッグ装置。
【請求項5】
前記デバッガは、デバッグ中の実行パスを前記信頼度算出部に通知し、
前記信頼度算出部は、ユーザからの指示に応じて、前記実行パス上のコードについて、既に算出された前記コード範囲毎の信頼度を更新して前記第2の保管部に保管し、
前記決定部は、前記第2の保管部の更新された前記コード範囲毎の信頼度に基づき、信頼できるコード範囲と信頼できないコード範囲とを更新する、請求項4のデバッグ装置。
【請求項6】
前記決定部は、前記コード範囲毎の信頼度が所定範囲内である場合に、当該コード範囲を信頼できないコード範囲と決定する、請求項4または5のデバッグ装置。
【請求項7】
記憶部と演算処理部を有するコンピュータによるプログラムのデバッグを支援するためのグラフィカル・ユーザ・インターフェース(GUI)であって、
前記記憶部に格納された、プログラムの分類項目の指標毎の信頼度を含む信頼度情報を用いて、前記演算処理部が、デバッグ対象のプログラムについて、信頼できるコード範囲と信頼できないコード範囲とを決定し、前記信頼できないコード範囲についてのみデバッグを実行するように支援するために、
表示画面と、
前記表示画面上の、デバッグ対象のプログラムの実行パス上の複数のコード名が表示された第1のウィンドウと、
前記表示画面上の、前記第1のウィンドウ内の前記複数のコード名の中から選択したコード名に対応するコード範囲を表示可能な第2のウィンドウと、
前記表示画面上の、前記第1のウィンドウ内の前記複数のコード名の各々について、または前記第2のウィンドウ内に表示されたコード範囲について、対応するコード名またはコード範囲の信頼度に応じて、前記コード名または前記コード範囲を表示する色を選択的に可変するためのスライダー表示部と、を備えるGUI。
【請求項8】
前記スライダー表示部における前記コード名および前記コード範囲を表示する色または当該色の濃淡の可変は、前記デバッグ対象のプログラムのデバッグ中に前記スライダー表示部のポインタ位置を変えることによりおこなうことができる、請求項7のGUI。
【請求項9】
前記信頼度に応じて、前記コード名または前記コード範囲の表示色が変化する、あるは当該表示色の濃淡が変化する、請求項7または8のGUI。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2013−92950(P2013−92950A)
【公開日】平成25年5月16日(2013.5.16)
【国際特許分類】
【出願番号】特願2011−235534(P2011−235534)
【出願日】平成23年10月27日(2011.10.27)
【出願人】(390009531)インターナショナル・ビジネス・マシーンズ・コーポレーション (4,084)
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【復代理人】
【識別番号】100134740
【弁理士】
【氏名又は名称】小池 文雄
【Fターム(参考)】